[Linux] TC(traffic control)流量控制實作筆記(1)

最近Linux上做流量控制,主要參考了這篇網誌:

【教學】Coyote Linux 頻寬管制 (QoS) 設定教學 - PCZONE 討論區
http://www.pczone.com.tw/vbb3/thread/29/116666/

主要會用到tc command:
tc qdisc
tc class
tc filter

建置流程:
(1)使用tc qdisk建立root佇列規則
(2)使用tc class建立root類別
(3)使用tc class建立leaf類別
(4)使用tc qidsk建立leaf佇列規則
(5)使用tc filter建立leaf過濾器



輸入指令:
(1)使用tc qdisk建立root佇列規則
tc qdisc add dev eth1 root handle 1: htb default 70

(2)使用tc class建立root類別
tc class add dev eth1 parent 1: classid 1:30 htb rate 65536bps ceil 64kbps

(3)使用tc class建立leaf類別
tc class add dev eth1 parent 1:30 classid 1:100 htb rate 65536bps ceil 65536bps prio 2
tc class add dev eth1 parent 1:30 classid 1:200 htb rate 65536bps ceil 65536bps prio 2

(4)使用tc qidsk建立leaf佇列規則
tc qdisc add dev eth1 parent 1:100 handle 100: pfifo
tc qdisc add dev eth1 parent 1:200 handle 200: pfifo

(5)使用tc filter建立leaf過濾器(dport 80以及dport 21)
tc filter add dev eth1 parent 1: protocol ip prio 100 u32 match ip dport 80 0xffff flowid 1:100
tc filter add dev eth1 parent 1: protocol ip prio 100 u32 match ip dport 21 0xffff flowid 1:200

這樣就建立一個基本的tc-tree了,
接下來可以使用這個tool,把tc-tree轉成可視圖
ze-phyr-us/tcviz: Visualize your Linux traffic control (TC) configuration.
https://github.com/ze-phyr-us/tcviz

這是轉出的png檔:


簡單說明一下
方塊是qdisc,橢圓是class,虛線是filter



如此一來就建立了port 80和port 21的兩條流量控管了。
不過這樣的設定,實際跑的時候會有問題,我們在下一篇討論。


燒飯程序猿: [Linux] TC(traffic control)流量控制實作筆記(2)
http://shofan.blogspot.tw/2017/08/linux-tctraffic-control2.html






較新的 較舊