1. 程式人生 > >Linux模擬控制網絡時延

Linux模擬控制網絡時延

後來 控制 找到 blog 上網 配置 應用 親測 toc

之前以為可以使用Linux自帶的工具模擬控制網絡時延,所以上網找了一些資料。後來發現,找到的資料目前只支持在一個網卡上模擬發送報文的時延,而不能 設置有差別的網絡時延,或者說當要模擬的向A發送的時延與要模擬的向B發送的時延不一致時,Linux的tc功能就無能為力了。記錄一下在網上查到的有用 的資料:

  1. TC帶寬管理規則排版最好的鏈接:http://www.tuicool.com/articles/7zYzey
  2. TC 命令的man手冊:http://wenku.baidu.com /link?url=o0CPVzuBDLJMt0_7Qph1T7TtdFOzu7O-apIpvaWbIYMz8ZWqBneGqI8LGtLdqpuKHbUoZ-eXcguONVJ9ruTQN1JuV6xC0b-okqu7b7Ro-oW
  3. TC詳細說明及應用實例:http://wenku.baidu.com/view/f02078db50e2524de5187e45.html
  4. TC控制網絡時延:http://blog.csdn.net/blade2001/article/details/7163316


------------------------------------------------------------
後來仔細回顧資料,發現TC控制網絡時延的netem關鍵字不在man手冊中,然後發現控制網絡時延的不是原生的tc功能,而是tc調用了netem模塊。 在netem官網 http://www.linuxfoundation.org/collaborate/workgroups/networking/netem#Delaying_only_some_traffic 發現了控制某個ip的網絡時延的shell命令,親測可用。

------------------------------------------------------------


在10.10.10.133,10.10.10.134,10.10.10.135上配置的:

tc qdisc add dev ib0 root handle 1: prio
tc qdisc add dev ib0 parent 1:3 handle 30: tbf rate 1000mbit burst 100mbit latency 1000ms mtu 100kbit
tc qdisc add dev ib0 parent 30:1 handle 31: netem delay 9.4ms
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.136/32 flowid 1:3
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.137/32 flowid 1:3
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.138/32 flowid 1:3


在10.10.10.136,10.10.10.137,10.10.10.138上配置的:

tc qdisc add dev ib0 root handle 1: prio
tc qdisc add dev ib0 parent 1:3 handle 30: tbf rate 1000mbit burst 100mbit latency 1000ms mtu 100kbit
tc qdisc add dev ib0 parent 30:1 handle 31: netem delay 9.4ms
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.133/32 flowid 1:3
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.134/32 flowid 1:3
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.135/32 flowid 1:3


查看:
tc -s qdisc ls dev ib0

刪除:
tc qdisc del dev ib0 root handle 1: prio

Linux模擬控制網絡時延