FreeBSDのdummynetでネットワーク遅延環境を構築する(bridge編)
FreeBSD 4系とか5系とかだとカーネル再構築が必要なようですが、8.2Rでは必要ありません。
ネット上には古い情報が多かったので、FreeBSD 8.2Rでのdummynet設定メモです。
実現したいこと
-
- 高遅延な環境を構築する
- インライン(ブリッジ)で接続する
構成
[Client PC(192.168.0.10)] <-----> [(bge0) FreeBSD (bge1)] <-----> [Client PC(192.168.0.20)]
設定内容
以下では、FreeBSD上のNICを"bge0"と"bge1"として記載しています。
(/etc/rc.conf)
cloned_interfaces="bridge0" ifconfig_bridge0="addm bge0 addm bge1 up" ifconfig_bge0="up" ifconfig_bge1="up" firewall_enable="YES" firewall_type="/etc/ipfw.conf" dummynet_enable="YES"
(/etc/ipfw.conf)
add 10 pipe 1 ip from any to any pipe 1 config delay 100ms # 100ms遅延させる add 65534 allow all from any to any
(/etc/sysctl.conf)
net.link.bridge.ipfw=1
OS再起動後、bridgeインタフェースが作成されていること、ipfw設定が適用されていることを確認します。
# ifconfig -a # ipfw show # ipfw pipe show
Client PCから対向側Client PCへ"ping"を実行し、遅延することを確認します。
上記設定の場合、インタフェースのINとOUTのそれぞれで遅延が発生するので、200ms程度の遅延が発生します。
*1:インストールしたDistributionは、"Developer"です