「NWシミュレータ(netem) Linux」の編集履歴(バックアップ)一覧に戻る

NWシミュレータ(netem) Linux - (2015/10/18 (日) 17:25:53) のソース

このページでは、海外接続時の伝送遅延等の影響を再現するため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