※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

このページでは、海外接続時の伝送遅延等の影響を再現するためLinux付属のnetemを利用して遅延発生、帯域制御を行います。(Linuxがルータになっている必要があります。未設定の場合は「ルータ」のページを参照のこと)

遅延を発生させる


設定追加
# tc qdisc add dev eth0 root netem delay 100ms
設定変更
# tc qdisc change dev eth0 root netem delay 200ms
設定削除
# tc qdisc del dev eth0 root

※netemはパケット送信時に動作するため、上記設定ではeth0からの送信時に有効となる。往復で想定する場合はeth1側にも同様の設定を行う。(遅延時間は倍になる)

帯域制御


netem自体は帯域制御の機能を持っていないので,TBF (Token Bucket Filter)を組み合わせる。
こちらも送信時に適用され以下のコマンドはeth1からの送信時に1Mbpsの制限をかけるものである。(「ルータ」ページの構成ではインターネットからの受信時)
設定追加
# tc qdisc add dev eth1 root tbf limit 15Kb buffer 10Kb/8 rate 1000Kbit

設定変更
# tc qdisc add dev eth1 root tbf limit 15Kb buffer 10Kb/8 rate 2000Kbit

設定削除
# tc qdisc del dev eth1 root

設定確認
# tc qdisc show
qdisc pfifo_fast 0: dev eth0 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc tbf 8008: dev eth1 rate 1Mbit burst 10Kb lat 40.0ms
eth0はデフォルト状態になっている。

複数の設定を有効にする。

上記2種類の設定を同時に有効にする。
# tc qdisc add dev eth1 root handle 1: netem delay 100ms
# tc qdisc add dev eth1 parent 1: handle 10: tbf limit 15Kb buffer 10Kb/8 rate 1000Kbit