linux 模擬弱網路環境工具
阿新 • • 發佈:2019-02-06
在Linux下, 通常使用netem或bridge來模擬網路不穩定情況。 在模擬過程中, 最好使用虛擬機器。 如果是遠端機器, 那麼網路環境模擬需要兩塊網絡卡, 而橋模擬最好使用三塊網絡卡。 就是需要附加一個網絡卡, 用作管理。
netem
是一個網路模擬器, 它為測試提供了一些網際網路我, 如延時, 丟包, 重包, re-ordering. 在Linux2.6的發行版本中, 一般會帶有此包。
- 埠延時命令
- tc qdisc add dev eth0 root netem delay 100ms : 表示對埠廷時100ms
- tc qdisc del dev eth0 root netem delya 100ms : 表示對埠廷時命令刪除
- tc qdisc change dev eth0 root netem delay 100ms 10ms :表示對改變埠廷時命100ms ± 10ms 延時範圍(90到110)
- tc qdisc change dev eth0 root netem delay 100ms 10ms 25% : 表示廷時範圍100ms ± 10ms * 25%
- 埠丟包命令:
- tc qdisc change dev eth0 root netem loss 0.1% : 丟包率為0。1%
- tc qdisc change dev eth0 root netem loss 0.3% 25% : 丟包率為範圍(0。3% 25%)
- 資料包副本命令
- tc qdisc change dev eth0 root netem duplicate 1% : 資料包副本率 1%
- 資料包分發命令
- tc qdisc change dev eth0 root netem gap 5 delay 10ms : 資料包重發每格5的整數倍的包將不被延時。其它的將延時10ms
- 速率控制命令:兩條命令共同完成
- tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
- tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
- 檢視規則資訊1
- tc -s qdisc ls dev eth0
- tc qdisc show
- 刪除規則
tc qdisc del dev eth0 root
bridge
bridge-utils可以模擬一個網橋。 在多數情況下,我們做網橋防火牆需要的是一臺三網絡卡的服務,2個網絡卡做橋接,另外一個配置好ip地址作為管理介面,以便遠端登陸網橋伺服器對防火牆進行管 理。 (這是可以把此主機看到兩個埠的HUB )
- brctl addbr mybridge (建立bridge mybridge,然後用ifconfig檢視會發現多了一個mybridge埠)
- brctl addif mybridge eth0
- brctl addif mybridge eth1 (把eth0和eth1包含到mybridge中)
- 然後需要對各埠做以下動作
- ifconfig eth0 0.0.0.0 promisc
- ifconfig eth1 0.0.0.0 promisc(開啟混雜模式)
- ifconfig mybridge up(啟動網橋)
*.從網橋中刪除網絡卡eth0 和eth1
- brctl delif eth0
- brctl delif eth1
- 刪除網橋br0
- brctl delbr br0