Linux 網絡故障模擬工具TC

      網友投稿 1070 2022-05-30

      什么是TC?

      什么是HTB?

      TC使用步驟

      基本操作

      正常網絡

      模擬網絡丟包

      模擬網絡延遲

      HTB 隊列分層限制

      網絡限流效果

      什么是TC?

      什么是HTB?

      TC使用步驟

      基本操作

      正常網絡

      模擬網絡丟包

      模擬網絡延遲

      Linux 網絡故障模擬工具TC

      HTB 隊列分層限制

      網絡限流效果

      小結

      什么是TC?

      TC(traffic control) 是 linux 中的流量控制工具。它是通過控制 netem 來實現的網絡場景模擬。該工具是直接對物理網卡生效的,如果是邏輯網卡,則該控制無效。如果是用的虛擬機,可視虛擬網卡為物理網卡。

      什么是HTB?

      HTB 是 Hierarchy Token Bucket 的縮寫。通過在實踐基礎上的改進,它實現了一個豐富的連接共享類別體系。使用 HTB 可以很容易地保證每個類別的帶寬,雖然它也允許特定的類可以突破帶寬上限,占用別的類的帶寬。HTB 可以通過 TBF(Token Bucket Filter) 實現帶寬限制,也能夠劃分類別的優先級。

      TC使用步驟

      要對網卡進行流量控制的配置,需要進行如下的步驟:

      為網卡配置一個隊列

      在該隊列上建立分類

      根據需要建立子隊列和子分類

      為每個分類建立過濾器

      建立與過濾器配合的路由表

      基本操作

      正常網絡

      使用 iperf 產生流量

      Server 端:

      iperf - s

      Client 端:

      iperf -c 172.17.211.143 -p 5001 -i 2 -P 5

      Server 端結果:

      [ 12] 0.0-10.1 sec 95.2 MBytes 79.3 Mbits/sec [ 10] 0.0-10.1 sec 158 MBytes 131 Mbits/sec [ 6] 0.0-10.1 sec 116 MBytes 95.7 Mbits/sec [ 9] 0.0-10.2 sec 143 MBytes 118 Mbits/sec [ 4] 0.0-10.3 sec 183 MBytes 150 Mbits/sec [ 7] 0.0-10.3 sec 117 MBytes 96.0 Mbits/sec [ 11] 0.0-10.3 sec 156 MBytes 127 Mbits/sec [ 14] 0.0-10.3 sec 138 MBytes 113 Mbits/sec [ 8] 0.0-10.3 sec 136 MBytes 111 Mbits/sec [ 5] 0.0-10.3 sec 162 MBytes 132 Mbits/sec [SUM] 0.0-10.3 sec 1.37 GBytes 1.14 Gbits/sec

      Client 端:

      [ ID] Interval Transfer Bandwidth [ 6] 0.0- 2.0 sec 88.9 MBytes 373 Mbits/sec [ 4] 0.0- 2.0 sec 85.8 MBytes 360 Mbits/sec [ 5] 0.0- 2.0 sec 68.2 MBytes 286 Mbits/sec [ 7] 0.0- 2.0 sec 52.2 MBytes 219 Mbits/sec [ 3] 0.0- 2.0 sec 92.5 MBytes 388 Mbits/sec [SUM] 0.0- 2.0 sec 388 MBytes 1.63 Gbits/sec [ 4] 2.0- 4.0 sec 62.4 MBytes 262 Mbits/sec [ 6] 2.0- 4.0 sec 48.9 MBytes 205 Mbits/sec [ 5] 2.0- 4.0 sec 27.4 MBytes 115 Mbits/sec [ 3] 2.0- 4.0 sec 68.9 MBytes 289 Mbits/sec [ 7] 2.0- 4.0 sec 44.6 MBytes 187 Mbits/sec [SUM] 2.0- 4.0 sec 252 MBytes 1.06 Gbits/sec [ 3] 4.0- 6.0 sec 45.5 MBytes 191 Mbits/sec [ 5] 4.0- 6.0 sec 30.0 MBytes 126 Mbits/sec [ 4] 4.0- 6.0 sec 54.8 MBytes 230 Mbits/sec [ 6] 4.0- 6.0 sec 69.4 MBytes 291 Mbits/sec [ 7] 4.0- 6.0 sec 53.1 MBytes 223 Mbits/sec [SUM] 4.0- 6.0 sec 253 MBytes 1.06 Gbits/sec [ 4] 6.0- 8.0 sec 40.4 MBytes 169 Mbits/sec [ 6] 6.0- 8.0 sec 25.6 MBytes 107 Mbits/sec [ 7] 6.0- 8.0 sec 76.1 MBytes 319 Mbits/sec [ 3] 6.0- 8.0 sec 59.1 MBytes 248 Mbits/sec [ 5] 6.0- 8.0 sec 38.2 MBytes 160 Mbits/sec [SUM] 6.0- 8.0 sec 240 MBytes 1.00 Gbits/sec [ 6] 8.0-10.0 sec 37.8 MBytes 158 Mbits/sec [ 6] 0.0-10.0 sec 270 MBytes 227 Mbits/sec [ 4] 8.0-10.0 sec 39.9 MBytes 167 Mbits/sec [ 4] 0.0-10.1 sec 283 MBytes 234 Mbits/sec [ 5] 8.0-10.0 sec 40.8 MBytes 171 Mbits/sec [ 5] 0.0-10.1 sec 205 MBytes 169 Mbits/sec [ 7] 8.0-10.0 sec 48.0 MBytes 201 Mbits/sec [ 7] 0.0-10.1 sec 274 MBytes 227 Mbits/sec [ 3] 8.0-10.0 sec 84.8 MBytes 355 Mbits/sec [SUM] 8.0-10.0 sec 251 MBytes 1.05 Gbits/sec [ 3] 0.0-10.2 sec 351 MBytes 289 Mbits/sec [SUM] 0.0-10.2 sec 1.35 GBytes 1.14 Gbits/sec

      做了多遍,都和上面的結果相似。5 個線程加在一起每秒大概 1Gbits 左右。

      模擬網絡丟包

      模擬命令:

      tc qdisc add dev eth0 root netem loss 10%

      丟包率與帶寬的關系:

      模擬網絡延遲

      模擬命令:

      tc qdisc add dev eth0 root netem delay 100ms

      延遲與帶寬的關系:

      HTB 隊列分層限制

      分類配置:

      tc qdisc add dev eth0 root handle 1: htb default 2 tc class add dev eth0 parent 1: classid 1:1 htb rate 100Mbps ceil 100Mbps tc class add dev eth0 parent 1:1 classid 1:2 htb rate 20Mbps ceil 20Mbps tc class add dev eth0 parent 1:1 classid 1:3 htb rate 50Mbps ceil 50Mbps tc class add dev eth0 parent 1:1 classid 1:4 htb rate 20Mbps ceil 20Mbps tc filter add dev eth0 parent 1:0 protocol ip prio 100 route tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 2 flowid 1:2 tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 3 flowid 1:3 tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 4 flowid 1:4 ip route add 172.17.211.144 dev eth0 via 172.17.211.143 realm 2 [root@7dgroup ~]# tc -s class ls dev eth0 class htb 1:1 root rate 800000Kbit ceil 800000Kbit burst 1600b cburst 1600b Sent 1350897 bytes 6146 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 234 ctokens: 234 class htb 1:2 parent 1:1 prio 0 rate 160000Kbit ceil 160000Kbit burst 1600b cburst 1600b Sent 1350897 bytes 6146 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 5850 borrowed: 0 giants: 0 tokens: 1170 ctokens: 1170 class htb 1:3 parent 1:1 prio 0 rate 400000Kbit ceil 400000Kbit burst 1600b cburst 1600b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 500 ctokens: 500 class htb 1:4 parent 1:1 prio 0 rate 160000Kbit ceil 160000Kbit burst 1600b cburst 1600b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 1250 ctokens: 1250

      網絡限流效果

      測試手段從 A 機往 B 機用 iperf 開 5 個線程發數據包。

      不限制:

      [ 5] 0.0-10.0 sec 168 MBytes 140 Mbits/sec [ 7] 0.0-10.1 sec 75.2 MBytes 62.4 Mbits/sec [ 8] 0.0-10.2 sec 210 MBytes 172 Mbits/sec [ 4] 0.0-10.3 sec 92.8 MBytes 75.7 Mbits/sec [ 6] 0.0-10.3 sec 158 MBytes 129 Mbits/sec [SUM] 0.0-10.3 sec 704 MBytes 574 Mbits/sec

      限 10 M

      [ 8] 0.0-10.2 sec 16.6 MBytes 13.7 Mbits/sec [ 4] 0.0-10.2 sec 16.4 MBytes 13.5 Mbits/sec [ 5] 0.0-10.2 sec 14.5 MBytes 11.9 Mbits/sec [ 6] 0.0-10.2 sec 25.8 MBytes 21.2 Mbits/sec [ 7] 0.0-10.2 sec 19.8 MBytes 16.2 Mbits/sec [SUM] 0.0-10.2 sec 93.0 MBytes 76.4 Mbits/sec

      限 20 M

      [ 5] 0.0-10.1 sec 55.6 MBytes 46.0 Mbits/sec [ 7] 0.0-10.2 sec 28.9 MBytes 23.8 Mbits/sec [ 9] 0.0-10.2 sec 26.1 MBytes 21.6 Mbits/sec [ 4] 0.0-10.2 sec 45.0 MBytes 37.1 Mbits/sec [ 6] 0.0-10.2 sec 29.5 MBytes 24.3 Mbits/sec [SUM] 0.0-10.2 sec 185 MBytes 153 Mbits/sec

      限 30 M:

      [ 4] 0.0-10.2 sec 53.0 MBytes 43.7 Mbits/sec [ 6] 0.0-10.2 sec 62.0 MBytes 51.1 Mbits/sec [ 8] 0.0-10.2 sec 57.9 MBytes 47.7 Mbits/sec [ 5] 0.0-10.2 sec 58.5 MBytes 48.2 Mbits/sec [ 7] 0.0-10.2 sec 46.4 MBytes 38.2 Mbits/sec [SUM] 0.0-10.2 sec 278 MBytes 229 Mbits/sec

      限 40 M:

      [ 5] 0.0-10.1 sec 76.6 MBytes 63.5 Mbits/sec [ 9] 0.0-10.1 sec 76.9 MBytes 63.6 Mbits/sec [ 6] 0.0-10.1 sec 72.4 MBytes 59.9 Mbits/sec [ 7] 0.0-10.1 sec 70.6 MBytes 58.5 Mbits/sec [ 4] 0.0-10.1 sec 72.9 MBytes 60.3 Mbits/sec [SUM] 0.0-10.1 sec 369 MBytes 305 Mbits/sec

      限 50 M:

      [ 4] 0.0-10.1 sec 89.9 MBytes 74.5 Mbits/sec [ 5] 0.0-10.1 sec 99.6 MBytes 82.5 Mbits/sec [ 8] 0.0-10.1 sec 89.9 MBytes 74.3 Mbits/sec [ 6] 0.0-10.1 sec 91.9 MBytes 76.0 Mbits/sec [ 7] 0.0-10.2 sec 89.8 MBytes 74.1 Mbits/sec [SUM] 0.0-10.2 sec 461 MBytes 381 Mbits/sec

      限 60 M:

      [ 4] 0.0-10.1 sec 107 MBytes 89.1 Mbits/sec [ 7] 0.0-10.1 sec 121 MBytes 101 Mbits/sec [ 9] 0.0-10.1 sec 108 MBytes 89.3 Mbits/sec [ 5] 0.0-10.1 sec 107 MBytes 89.1 Mbits/sec [ 6] 0.0-10.1 sec 107 MBytes 89.2 Mbits/sec [SUM] 0.0-10.1 sec 550 MBytes 457 Mbits/sec

      限 70 M:

      [ 8] 0.0-10.1 sec 178 MBytes 148 Mbits/sec [ 7] 0.0-10.1 sec 94.4 MBytes 78.5 Mbits/sec [ 4] 0.0-10.1 sec 95.0 MBytes 78.9 Mbits/sec [ 6] 0.0-10.1 sec 94.6 MBytes 78.6 Mbits/sec [ 5] 0.0-10.1 sec 178 MBytes 148 Mbits/sec [SUM] 0.0-10.1 sec 640 MBytes 531 Mbits/sec

      限 80M:

      [ 7] 0.0-10.0 sec 167 MBytes 140 Mbits/sec [ 9] 0.0-10.1 sec 166 MBytes 137 Mbits/sec [ 4] 0.0-10.2 sec 99.8 MBytes 82.4 Mbits/sec [ 5] 0.0-10.2 sec 157 MBytes 129 Mbits/sec [ 6] 0.0-10.2 sec 110 MBytes 90.2 Mbits/sec [SUM] 0.0-10.2 sec 700 MBytes 574 Mbits/sec

      限 90 M

      [ 4] 0.0-10.0 sec 220 MBytes 184 Mbits/sec [ 7] 0.0-10.2 sec 124 MBytes 102 Mbits/sec [ 5] 0.0-10.2 sec 104 MBytes 85.2 Mbits/sec [ 8] 0.0-10.2 sec 117 MBytes 96.2 Mbits/sec [ 6] 0.0-10.2 sec 135 MBytes 111 Mbits/sec [SUM] 0.0-10.2 sec 699 MBytes 573 Mbits/sec

      限 100 M

      [ 4] 0.0-10.1 sec 140 MBytes 116 Mbits/sec [ 7] 0.0-10.1 sec 139 MBytes 116 Mbits/sec [ 6] 0.0-10.1 sec 145 MBytes 121 Mbits/sec [ 5] 0.0-10.1 sec 128 MBytes 106 Mbits/sec [ 9] 0.0-10.1 sec 146 MBytes 121 Mbits/sec [SUM] 0.0-10.1 sec 698 MBytes 579 Mbits/sec

      小結

      Linux 下有很多種手段可以模擬網絡丟包、延遲、限流等情況,大家可以自行探索。

      Linux 網絡

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:由生產者/消費者問題看JAVA多線程
      下一篇:讓煤炭生產更安全更智能,精英數智聯手華為云打造煤礦大腦
      相關文章
      亚洲精品在线不卡| 亚洲电影中文字幕| 亚洲精品中文字幕无码AV| 亚洲av永久无码制服河南实里| 亚洲一级片免费看| 亚洲а∨天堂久久精品| 亚洲成A人片在线观看无码3D| 偷自拍亚洲视频在线观看99| 日韩欧美亚洲中文乱码| 亚洲av日韩av永久无码电影| 亚洲aⅴ天堂av天堂无码麻豆 | 亚洲成在人线在线播放无码| 久久亚洲精品国产精品婷婷| 亚洲乱妇熟女爽到高潮的片| 亚洲av最新在线观看网址| 亚洲AV无码专区亚洲AV桃| 久久亚洲中文字幕无码| 国产av无码专区亚洲av毛片搜| 婷婷国产偷v国产偷v亚洲| 五月天婷亚洲天综合网精品偷| 亚洲电影日韩精品 | 亚洲一区二区在线免费观看| 日韩精品亚洲人成在线观看| 亚洲色偷偷av男人的天堂| 亚洲日本在线免费观看| 亚洲H在线播放在线观看H| 亚洲午夜无码久久| 亚洲av乱码中文一区二区三区| 午夜亚洲国产成人不卡在线| 国产成人毛片亚洲精品| 亚洲人成色7777在线观看| 亚洲AV天天做在线观看| 亚洲综合久久久久久中文字幕| 久久亚洲最大成人网4438| 人人狠狠综合久久亚洲| 国产成人高清亚洲| 人人狠狠综合久久亚洲婷婷| 久久精品国产亚洲av麻豆小说 | 黑人大战亚洲人精品一区 | 亚洲国产精品美女久久久久| 亚洲精品岛国片在线观看|