web-dev-qa-db-ja.com

FreeBSD10でダミーネットフィルタリングが機能しない

FreeBSD 10でdummynetを使用してネットワークエミュレーションを実行しようとしています。これは9.3で機能していますが、状況が変わったはずで、正確に何を判断できないのですが、セットアップが機能しなくなりました。私はかなり基本的な設定をしています:

**/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"

私のファイアウォールスクリプトには次のものがあります。

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

10.25.0.129から10.25.0.11までのpingテストを実行すると、常に成功しますが、ファイアウォールのヒットは次のようになります。

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

BSDマシンをシャットダウンすると、pingが機能しなくなるため、何らかの理由でpingがBSDによって確実にブリッジされていることがわかりますが、FreeBSD9.3のようにルールがヒットしていません。

2
Rj01

それはすべてnet.inet.ip.dummynet.io_fast=1のせいです。この変数は高速パケット処理をオンにしました。帯域幅が使い果たされていない間、すべてのパケットはブリッジを介して直接転送されます。シェイパーは完全にバイパスされ、DUMMYNETではパケットはカウントされません。

この動作は、関連性のない統計情報を犠牲にして、CPUオフロード用の高負荷ゲートウェイを特に対象としています。

オフにして、パケットが推定どおりにカウントされるようにしてください。

1
Kondybas