[FUG-BR] ipfw nat in-kernel FreeBSD 9.2

Márcio Elias marcioelias em gmail.com
Terça Novembro 11 14:36:05 BRST 2014


Fabricio, eu uso o divert em alguns cases (mais de 20), só que o consumo de
cpu e a latência conforme a banda consumida e o número de sub-redes com
alias na placa interna aumenta está ficando inviável.

A tentativa de utilizar essa forma de NAT é reduzir esse consumo de CPU e
também manter uma latência mais baixa na rede.

Já tentei com one_pass 1 e 0.

Estava testando o FreeBSD 10.1 RC4 para ver se ainda tinha o bug do MAC com
PIPE mais o mesmo está dando kernel panic assim que eu ativo o dummynet
para controlar a banda (subo as regras do firewall).

Vejo relatos deste nat usando libalias deste a versão 8, deve ser algum
tratamento diferenciado nos pacotes que obriga a criação de regras de nat
diferentes na versão 9, e por isso esteja errando, mais não encontrei a
lógica correta.

Vi alguns usuários usando duas FIBs, mais não sei se isso seria necessário.

-- 
Att.
__________________________________
Márcio Elias Hahn do Nascimento

Bacharel em Tecnologias da Informação e Comunicação - TIC
Cel:   (55) 48-8469-1819
Emails: marcioelias em bsd.com.br / marcioelias em gmail.com
Skype: marcioeliashahn em hotmail.com
FreeBSD - The Power To Serve

2014-11-11 12:13 GMT-02:00 Fabricio Lima <listas em fabriciolima.com.br>:

> Talvez o divert natd seja o q esteja funcionando no seu script
>
> add divert natd all from 192.168.0.0/16 to any via wan0
>
> eu costumava usar assim, inclusive com pipes.
>
> mas o seu one_pass está me fazendo refletir se deveria ser setado em 1 ou
> nao...
>
>
> [ ]'s
> Fabricio Lima
> When your hammer is C++, everything begins to look like a thumb.
>
> Em 11 de novembro de 2014 11:37, Márcio Elias <marcioelias em gmail.com>
> escreveu:
>
> > Bom dia pessoal, devido a um problema com Pipe + MAC Address no FreeBSD
> 10
> > para controle de upload (thread antiga aqui), estou fazendo testes na
> > versão 9.2 do Nat do IPFW usando libalias.
> >
> > Pois bem, independentemente das demais regras (testei somente com as de
> > NAT) o comportamento no FreeBSD 9.2 ficou diferente do FreeBSD 10.
> >
> > Considerem o seguinte:
> >
> > ipfw nat 123 config if WAN_IF log
> > ipfw add 50 nat 123 ip from any to me in recv WAN_IF
> > ipfw add 51 nat 123 ip from 192.168.0.0/16 to any out xmit WAN_IF
> > ipfw add 52 nat 123 ip from 172.16.1.0/24 to any out xmit WAN_IF
> > ipfw add 65000 allow ip from any to any
> >
> > Pois bem, esse cenário na versão 10 funciona, mais na 9 não, todos os
> > pacotes incrementam somente a regra 50, mesmo que eu tente acessar o
> > endereço IP configurado na interface WAN.
> >
> > outros detalhes
> > sysctl: net.inet.ip.forwarding=1
> > net.inet.ip.fastforwarding=1
> > net.inet.ip.fw.one_pass=1
> >
> > kernel:
> > options         IPFIREWALL
> > options         IPFIREWALL_FORWARD #(somente no 9, no 10 não existe)
> > options         IPFIREWALL_VERBOSE
> > options         IPFIREWALL_VERBOSE_LIMIT=100
> > options         IPFIREWALL_DEFAULT_TO_ACCEPT
> > options         DUMMYNET
> > options         DEVICE_POLLING
> > options         HZ=1000
> > options         IPFIREWALL_NAT
> > options         LIBALIAS
> >
> > Alguma ideia de como configurar essas regras de NAT usando IPFW no
> FreeBSD
> > 9?
> >
> >
> >
> > --
> > Att.
> > __________________________________
> > Márcio Elias Hahn do Nascimento
> >
> > Bacharel em Tecnologias da Informação e Comunicação - TIC
> > Cel:   (55) 48-8469-1819
> > Emails: marcioelias em bsd.com.br / marcioelias em gmail.com
> > Skype: marcioeliashahn em hotmail.com
> > FreeBSD - The Power To Serve
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


Mais detalhes sobre a lista de discussão freebsd