Linux流量管理
1 Linux帶寬管理
一般帶寬管理遵循以下步驟:
(1) 如何劃分帶寬;
(2) 選擇所要使用的隊列;
(3) 設置隊列規則;
(4) 設置過濾器;
2 限速實現
2.1 限速設計
加載兩個虛擬網卡ifb10、ifb11,在ifb10、ifb11虛擬網卡上設置三級限速類別,然後將ath設備的ingress和egress重定向到ifb10和ifb11上。
2.2 結構圖
2.3 三級class管理
命令結構示例: ######ifb10 上行################################# ####root##### ifconfig ifb10 up tc qdisc add dev ifb10 root handle 1: hfsc default 10 tc class add dev ifb10 parent 1: classid 1:1 hfsc sc rate 1000kbit ul rate 1000kbit tc class add dev ifb10 parent 1:1 classid 1:10 hfsc sc rate 500kbit ul rate 1000kbit ####ssid##### tc class add dev ifb10 parent 1:1 classid 1:20 hfsc sc rate 500kbit ul rate 1000kbit ####sta##### tc class add dev ifb10 parent 1:20 classid 1:230 hfsc sc rate 500kbit ul rate 500kbit tc filter add dev ifb10 parent 1:0 protocol all prio 11 u32 match u16 0xa518 0xffff at -4 match u32 0x7ce9d3f6 0xffffffff at -8 flowid 1:230
######ifb11 下行################################# ####root##### ifconfig ifb11 up tc qdisc add dev ifb11 root handle 1: hfsc default 10 tc class add dev ifb11 parent 1: classid 1:1 hfsc sc rate 1000kbit ul rate 5000kbit tc class add dev ifb11 parent 1:1 classid 1:10 hfsc sc rate 500kbit ul rate 5000kbit ####ssid##### tc class add dev ifb11 parent 1:1 classid 1:20 hfsc sc rate 500kbit ul rate 5000kbit ####sta##### tc class add dev ifb11 parent 1:10 classid 1:230 hfsc sc rate 500kbit ul rate 500kbit tc filter add dev ifb11 parent 1:0 protocol all prio 11 u32 match u32 0xd3f6a518 0xffffffff at -12 match u16 0x7ce9 0xffff at -14 flowid 1:230
######ath ingress################################# tc qdisc add dev ath15 handle ffff: ingress tc filter add dev ath15 parent ffff: protocol all u32 match u32 0 0 flowid 10:10 action mirred egress redirect dev ifb10
######ath egress################################# tc qdisc add dev ath15 root handle 1: fq_codel tc filter add dev ath15 parent 1: protocol all u32 match u32 0 0 flowid 10:10 action mirred egress redirect dev ifb11 |
3 Linux內核Qos實現機制
詳見網上資料:《Linux內核Qos實現機制》
Linux流量管理