[FUG-BR] RES: IPFW - Sequência de PIPE e QUEUE

Renato Frederick frederick em dahype.org
Sexta Abril 24 18:56:57 BRT 2009


Trober,

Eu fiz um sistema simples e o pipe e queue eu pego do id da linha, algo bem rudimentar.

E funciona sem problemas.


> 
> 1) O IPFW aceita para pipe e queue qualquer inteiro positivo entre 1 e
> 65535, porém, desgraçadamente, em ordem, começando em um, contíguo, sem
> intervalo.


Como falei acima, o sistema, por ser tão rudimentar, quando alguém apaga um registro e cria outro, o id é autoincrementado, então, tenho situação parecida com a sua, desde pipe 1 até pipe 4000, já que editaram 4mil vezes a tabela.
Tenho algo do tipo

Pipe 1 all from 172.16.1.1 to any
Pipe 4000 all from 172.16.1.2 to any

Então, não tem problema ser seqüencial ou não.


> 
> 2) Não há documentação sobre a ordem de inserção de pipes e queues
> quanto
> à numeração (já li quase tudo que Luigi Rizzo escreveu sobre IPFW e
> nada).


A numeração do pipe é para o ipfw saber aonde jogar aquele tráfego. O que importa é a regra ipfw.

Exemplo:

Ipfw add pipe 1 all from 172.16.1.1 to any
Ipfw add pipe 10 all from 172.16.1.1 to any

Nesta caso, como a regra que joga para o pipe 1 veio primeiro(e considerando que o a syssctl one_pass=1), então o pipe 10 não vai ter nada.

Da mesma maneira, se você fizer:

Ipfw add pipe 10 all from 172.16.1.1 to any
Ipfw add pipe 1 all from 172.16.1.1 to any

Vai para o pipe 10, porque a regra veio 1o.


> 
> 3) Esse comportamento está evidente, ao meu ver, em ipfw2.c, onde o
> número
> do pipe é o mesmo número da posição na pilha, não deixando o
> administrador
> escolher manualmente o número pipe (até deixa, mas dá nessa bagunça
> toda).
> 

Não sou muito de olhar código, mal sei fazer um 'hello word', mas pelo uso prático que tenho de pipe e queue, eles funcionam obedecendo a ordem das regras IPFW.
A numeração do pipe e queue é tão somente um indicador, você pode escolher usar pipe 300 a 900 para as regras ipfw 1 a 299.

Mas para padronizar normalmente o pessoal faz algo do tipo

Ipfw add 100 pipe 100 all from X to Y
Ipfw add 101 pipe 101 all from A to B

Deixando o pipe igual regra, mas nada obrigatório.



> Quem concorda? Quem descorda? De forma alguma quero criar flames, e
> sim,
> obter a opinião de vocês, pois se for procedente, temos aí um caso
> omisso
> na documentação do IPFW; e sistemas como WARTA e SnowDog Firewall com
> regras tortas.
> 
> Saudações,
> 
> Trober
> -


Mais detalhes sobre a lista de discussão freebsd