[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