Linux 下使用traffic control 模擬網路故障的注入
1、traffic control
參考文獻:https://wiki.linuxfoundation.org/networking/netem
注入延時故障:
tc qdisc add dev eth0 root netem delay 100ms 10ms 25% #延時時長100ms ±10ms 25% 為與上一個包時長的相關係數
注入丟包故障:
tc qdisc add dev eth0 root netem loss 0.3% 25% #有0.3%的包丟失,25%為相關係數,詳情參考文獻中有
注入包重複故障:
tc qdisc add dev eth0 root netem duplicate 1% #資料包重複的概率為1%,改成95%才能在短時間出效果,用ping www.baidu.com 可以看出有DUP
注入隨機故障:
tc qdisc add dev eth0 root netem corrupt 0.1% #說是隨機,ping的時候只看到了丟包
注入亂序故障:
tc qdisc add dev eth0 root netem delay 10ms reorder 25% 50% #25%的包正常傳送,其餘的延時10ms
除了ping 也可以用tc qdisc 看規則是否加上了,來檢查命令是否執行成功
PS: 以上命令都是隻能add 一次,需修改將add 改為change ,需刪除用tc qdisc del dev eth0 root
2、模擬網路閃斷
ip link set eth0 down
sleep(1)
ip link set eth0 up
迴圈執行,設定一下迴圈次數和sleep時間,ifdown eth0 和ifup eth0 也可以,不過說是快被淘汰了