[FUG-BR] RES: RES: Testando ipfw nat

Luiz Otavio O Souza lists.br em gmail.com
Quinta Agosto 20 09:05:08 BRT 2009


> ipfw -f flush
> ipfw add 1 check-state
> ipfw add 10 prob 0.5 setfib 0 tag 1 all from any to any keep-state
> ipfw add 11 setfib 1 tag 2 all from any to any keep-state
> ipfw add 20 nat 1 all from any to any tagged 1
> ipfw add 21 nat 2 all from any to any tagged 2
> ipfw add 30 allow all from any to any

Wanderson, Ricardo e lista,

Para o correto funcionamento do setfib é necessário tomar alguns cuidados (e 
observar algumas limitações que vou comentar).

Cada FIB representa uma tabela de roteamento distinta e as FIBs só estão 
disponíveís para o protocolo IPv4 (não há multiplas fibs para outros 
protocolos...).

Como a fib representa uma tabela de roteamento os pacotes devem ser marcados 
ANTES do roteamento com a fib que você deseja utilizar e as únicas forma de 
fazer isso é:

- Na recepção dos pacotes pela sua placa conectada à "rede interna": ipfw 
setfib 1 ip from 192.168.0.0/24 to any IN via ${iif}

- Rodando um programa no FreeBSD com o utilitário setfib: setfib 1 ping 
www.uol.com.br

Assim os pacotes são marcados com a fib desejada ANTES do roteamento, que 
vai olhar para a tabela fib que você selecionou.

Setar a fib na saída dos pacotes ou depois que o roteamento já foi feito 
simplesmente não funciona.

Outro detalhe é que o ipfw prob não respeita os fluxos, ou seja, uma conexão 
que é iniciada utilizando aquela regra pode ter seus próximos pacotes 
seguindo outro caminho (não sei dizer ao certo se a interação com o 
keep-state resolve isso - poderia resolver).

E para terminar eu diria que as tabelas FIBs não devem ser utilizadas para 
balanceamento das conexões, mas sim para pbr, ou seja, aquele tipo de 
pré-seleção que você faz para dizer que a maquina X ou o recurso Y utilizam 
o link 2 enquanto a navegação é feita pelo link 1.

E vocês viram que eu nem falei de nat...

Eu já consegui um hardware aqui pra fazer os testes no freebsd 8, mas vai 
levar algum tempo... (tem uma pilha de coisas esperando aqui...), dai 
pretendo postar mais detalhes do balanceamento com ipfw.

Att.,
Luiz 



Mais detalhes sobre a lista de discussão freebsd