1. 程式人生 > >Linux 下使用traffic control 模擬網路故障的注入

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 也可以,不過說是快被淘汰了