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

Luiz Otavio O Souza lists.br em gmail.com
Sexta Agosto 28 10:27:32 BRT 2009


>>
>> 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
>>
>>
> Luiz Otávio, obrigado por esse esclarecimento, acabei por marcar o pacote
> entrando pela interface interna e funcionou. Tenho visto muitos exemplos
> pela net bem diferente da sua explicação.

Você tem referencias desses exemplos ?

Eu andei estudando - fazendo meu dever de casa - (e até mesmo incomodando 
alguns dos desenvolvedores) com relação a esse assunto, mas o roteamento no 
freebsd é, digamos, _complexo_ e eu estou longe de conhecer todos os 
detalhes da implementação (embora já tenha uma certa idéia de como as coisas 
funcionam por ali).

Toda informação disponivel é sempre bem-vinda.

> Em um post 'meio-recente' você comentou ter tido problemas no freebsd 8
> quando forçava a saída do pacote com fwd pela segunda fib, foi preciso
> desabilitar a sysctl flowtable eu acho, isso confere?

Sim, confere... houve uma primeira tentativa de correção (r196234 - 
2009-08-14) mas que acabou criando outro problema e esse só foi corrigido 
agora (r196608 | qingli | 2009-08-28 02:37:31).

E isso quer dizer que as correções estarão disponíveis no 8.0-RELEASE 
(espero) e que a solução final foi commitada depois do BETA-3.

Não tenho certeza se essas correções já foram mfced - copiadas para o 
stable/8... mas estão no head e nesse caso é só uma questão de tempo.

Na duvida sysctl net.inet.flowtable.enable=0 resolve :)

[]'s
Luiz 



Mais detalhes sobre a lista de discussão freebsd