1. 程式人生 > >linux 模擬弱網路環境工具

linux 模擬弱網路環境工具

在Linux下, 通常使用netem或bridge來模擬網路不穩定情況。 在模擬過程中, 最好使用虛擬機器。 如果是遠端機器, 那麼網路環境模擬需要兩塊網絡卡, 而橋模擬最好使用三塊網絡卡。 就是需要附加一個網絡卡, 用作管理。

netem

是一個網路模擬器, 它為測試提供了一些網際網路我, 如延時, 丟包, 重包, re-ordering. 在Linux2.6的發行版本中, 一般會帶有此包。


  • 埠延時命令
  1. tc qdisc add dev eth0 root netem delay 100ms : 表示對埠廷時100ms
  2. tc qdisc del dev eth0 root netem delya 100ms : 表示對埠廷時命令刪除
  3. tc qdisc change dev eth0 root netem delay 100ms 10ms :表示對改變埠廷時命100ms ± 10ms 延時範圍(90到110)
  4. tc qdisc change dev eth0 root netem delay 100ms 10ms 25% : 表示廷時範圍100ms ± 10ms * 25%
  • 埠丟包命令:
  1. tc qdisc change dev eth0 root netem loss 0.1% : 丟包率為0。1%
  2. tc qdisc change dev eth0 root netem loss 0.3% 25% : 丟包率為範圍(0。3% 25%)
  • 資料包副本命令
  1. tc qdisc change dev eth0 root netem duplicate 1% : 資料包副本率 1%
  • 資料包分發命令
  1. tc qdisc change dev eth0 root netem gap 5 delay 10ms : 資料包重發每格5的整數倍的包將不被延時。其它的將延時10ms
  • 速率控制命令:兩條命令共同完成
  1. tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
  2. tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
  • 檢視規則資訊1
  1. tc -s qdisc ls dev eth0
  2. tc qdisc show
  • 刪除規則
    tc qdisc del dev eth0 root


bridge

bridge-utils可以模擬一個網橋。 在多數情況下,我們做網橋防火牆需要的是一臺三網絡卡的服務,2個網絡卡做橋接,另外一個配置好ip地址作為管理介面,以便遠端登陸網橋伺服器對防火牆進行管 理。 (這是可以把此主機看到兩個埠的HUB )

  1. brctl addbr mybridge (建立bridge mybridge,然後用ifconfig檢視會發現多了一個mybridge埠)
  2. brctl addif mybridge eth0
  3. brctl addif mybridge eth1 (把eth0和eth1包含到mybridge中)
  • 然後需要對各埠做以下動作
  1. ifconfig eth0 0.0.0.0 promisc
  2. ifconfig eth1 0.0.0.0 promisc(開啟混雜模式)
  3. ifconfig mybridge up(啟動網橋)

*.從網橋中刪除網絡卡eth0 和eth1

  1. brctl delif eth0
  2. brctl delif eth1
  • 刪除網橋br0
  1. brctl delbr br0