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

Fabricio Lima listas em fabriciolima.com.br
Terça Novembro 11 15:31:32 BRST 2014


Entendi...

seu objetivo (q estaria causando o kernel panic) é o MAC + pipes

Duvida:

-sem as regras de mac address, está tudo carregando normal ne? (pipes por
IP) e baixa cpu?

-pra estar gerando tanta carga na cpu assim, qual o throughput q estamos
falando? (pra saber se a alta demanda de cpu é a filtragem dos MAC, ou o
dummynet em si)  geralmente eu nao tinha problemas de cpu qndo usava, mas
eram poucos clientes aplicados dummynet.

tenta refazer suas regras em pf (mas ele so suporta filtragem por mac
operando como bridge)
ou poderia cogitar migrar os usuarios para pppoe, levantando um servidor de
pppoe na sua ponta.

se tudo mais falhar, poderia usar uma integraçao dhcp + reserva por mac +
dummynet + script levantando o firewall pra este ip dinamicamente,
validando a origem do mac, e aplicando sua limitaçao de banda por IP ao
inves de mac.

ou seja, caso nao resolva, tem 2 paleativos pra vc fugir da alta cpu, com
outras soluçoes. ou refazendo em outro fw.  mas nao esqueça de responder as
perguntas acima.

[ ]'s
Fabricio Lima
When your hammer is C++, everything begins to look like a thumb.

Em 11 de novembro de 2014 14:36, Márcio Elias <marcioelias em gmail.com>
escreveu:

> 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
> >
> -------------------------
> 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