概要
データが欠損時の再送機能のテストのためにパケットロスを発生させる環境を作った時のお話
環境
PC | IP |
---|---|
データ送信PC | 192.168.1.100 |
Macbook Pro | 192.168.1.110,192.168.2.100 |
テスト対象PC | 192.168.2.110 |
データ送信PC
|
Macbook Pro <-ここでtcコマンドを実行
|
テスト対象PC
tcコマンドでパケットロスを発生させる
パケットロスを発生させるためtcコマンドを使用する。
tc(8) man
しっかり設定しようとするとかなりややこしいコマンドなので、今回は簡単にパケットロスの設定と変更、削除のみ。
設定
tc qdisc add dev eth0 root netem loss 2%
設定値は少数も可能
確認
tc qdisc show dev eth0
設定値の変更
tc qdisc change dev eth0 root netem loss 4%
削除
tc qdisc del dev eth0 root
まとめ
tcコマンドはSource/Dest IPごとに制御したり帯域制限(帯域保証まで!)の設定もできる面白いコマンドだと思います。
この後に物理NIC一本で同じ環境作れない?みたいな面倒な案件もありましたが、それはまた時間があれば...
参考情報
tcを利用したトラフィックコントロール
よくわかるLinux帯域制限
Linux TC (帯域制御、帯域保証) 設定ガイドライン
tcコマンドの使い方