> 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 ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd