A filtragem do Dummynet não funciona no FreeBSD 10

2

Estou tentando fazer emulação de rede usando o dummynet no FreeBSD 10. Eu tenho isso trabalhando em 9.3, mas as coisas devem ter mudado e eu não posso determinar exatamente o que, mas minha configuração não funciona mais. Eu tenho uma configuração bem básica:

**/boot/loader.conf**
dummynet_load="YES"
if_bridge_load="YES"
ipfw_load="YES"
kern.hz=10000

**/etc/sysctl.conf**
net.link.bridge.ipfw=1
net.inet.ip.fw.one_pass=1
net.inet.ip.forwarding=1
net.inet.ip.fastforwarding=1
net.inet.ip.dummynet.io_fast=1
net.inet.ip.dummynet.pipe_byte_limit=16777216

**/etc/rc.conf**
cloned_interfaces="bridge0"
ifconfig_bridge0="addm em0 addm em1 up"
ifconfig_em0="up"
ifconfig_em1="up"

No meu script de firewall, tenho:

ipfw pipe 111 config bw 1Mbit/s delay 10ms plr .01 queue 1000KB
ipfw add pipe 111 log all from 10.25.0.129 to 10.25.0.11

Quando faço um teste de ping de 10.25.0.129 a 10.25.0.11, ele é sempre bem-sucedido, mas os hits do firewall se parecem com:

root@dummynet:/etc/dummynet # ipfw -a list
00100   0     0 pipe 111 log ip from 10.25.0.129 to 10.25.0.11
65535  77 15511 deny ip from any to any

Se eu desligar a máquina BSD, os pings param de funcionar, então eu sei que os pings estão definitivamente sendo comprimidos pelo BSD, por alguma razão, a regra não está sendo atingida, como aconteceu no FreeBSD9.3.

    
por Rj01 20.12.2014 / 14:53

1 resposta

1

É tudo por causa de net.inet.ip.dummynet.io_fast=1 . Esta variável ativou o processamento rápido de pacotes: enquanto a largura de banda não está esgotada, todos os pacotes são encaminhados diretamente pela ponte. O shaper é ignorado completamente - e nenhum pacote é contado no DUMMYNET.

Esse comportamento é planejado especialmente para gateways carregados com carga pesada para descarregamento de CPU pelo custo de estatísticas irrelevantes.

Tente desligá-lo e garantir que os pacotes sejam contados como estimados.

    
por 21.12.2014 / 01:27