小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Linux的流量控制器(Traffic Control)

 mrjbydd 2011-06-11
Linux從kernel 2.1.105開始支持QOS,不過,需要重新編譯內(nèi)核。運(yùn)行 make config時(shí)將 EXPERIMENTAL _OPTIONS 設(shè)置成 y,并且將 Class Based Queueing (CBQ), Token Bucket Flow, Traffic Shapers 設(shè)置為 y ,運(yùn)行 make dep; make clean; make bzilo,生成新的內(nèi)核。

   在Linux操作系統(tǒng)中流量控制器(TC)主要是在輸出端口處建立一個(gè)隊(duì)列進(jìn)行流量控制,控制的方式是基于路由,亦即基于目的IP地址或目的子網(wǎng)的網(wǎng)絡(luò)號的流量控制。流量控制器TC,其基本的功能模塊為隊(duì)列、分類和過濾器。Linux內(nèi)核中支持的隊(duì)列有,Class Based Queue ,Token Bucket Flow ,CSZ ,F(xiàn)irst In First Out ,Priority ,TEQL ,SFQ ,ATM ,RED。這里討論的隊(duì)列與分類都是基于CBQ(Class Based Queue)的,而過濾器是基于路由(Route)的。

    配置和使用流量控制器TC,主要分以下幾個(gè)方面:分別為建立隊(duì)列、建立分類、建立過濾器和建立路由,另外還需要對現(xiàn)有的隊(duì)列、分類、過濾器和路由進(jìn)行監(jiān)視。

    其基本使用步驟為:
     1) 針對網(wǎng)絡(luò)物理設(shè)備(如以太網(wǎng)卡eth0)綁定一個(gè)CBQ隊(duì)列;
     2) 在該隊(duì)列上建立分類;
     3) 為每一分類建立一個(gè)基于路由的過濾器;
     4) 最后與過濾器相配合,建立特定的路由表


    假設(shè)環(huán)境:

    流量控制器上的以太網(wǎng)卡(eth0) 的IP地址為192.168.1.66,在其上建立一個(gè)CBQ隊(duì)列。假設(shè)包的平均大小為1000字節(jié),包間隔發(fā)送單元的大小為8字節(jié),可接收沖突的發(fā)送最長包數(shù)目為20字節(jié)。

     假如有三種類型的流量需要控制:
     1) 是發(fā)往主機(jī)1的,其IP地址為192.168.1.24。其流量帶寬控制在8Mbit,優(yōu)先級為2;
     2) 是發(fā)往主機(jī)2的,其IP地址為192.168.1.26。其流量帶寬控制在1Mbit,優(yōu)先級為1;
     3) 是發(fā)往子網(wǎng)1的,其子網(wǎng)號為192.168.1.0,子網(wǎng)掩碼為255.255.255.0。流量帶寬控制在1Mbit,優(yōu)先級為6。

1. 建立隊(duì)列


    一般情況下,針對一個(gè)網(wǎng)卡只需建立一個(gè)隊(duì)列。:


   將一個(gè)cbq隊(duì)列綁定到網(wǎng)絡(luò)物理設(shè)備eth0上,其編號為1:0;網(wǎng)絡(luò)物理設(shè)備eth0的實(shí)際帶寬為10 Mbit,包的平均大小為1000字節(jié);包間隔發(fā)送單元的大小為8字節(jié),最小傳輸包大小為64字節(jié)。

  ·tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt 1000 cell 8 mpu 64

2. 建立分類

    分類建立在隊(duì)列之上。一般情況下,針對一個(gè)隊(duì)列需建立一個(gè)根分類,然后再在其上建立子分類。對于分類,按其分類的編號順序起作用,編號小的優(yōu)先;一旦符合某個(gè)分類匹配規(guī)則,通過該分類發(fā)送數(shù)據(jù)包,則其后的分類不再起作用。

1) 創(chuàng)建根分類1:1;分配帶寬為10Mbit,優(yōu)先級別為8。
·tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 10Mbit rate 10Mbit maxburst 20 allot 1514 prio 8 avpkt 1000 cell 8 weight 1Mbit

   該隊(duì)列的最大可用帶寬為10Mbit,實(shí)際分配的帶寬為10Mbit,可接收沖突的發(fā)送最長包數(shù)目為20字節(jié);最大傳輸單元加MAC頭的大小為1514字節(jié),優(yōu)先級別為8,包的平均大小為1000字節(jié),包間隔發(fā)送單元的大小為8字節(jié),相應(yīng)于實(shí)際帶寬的加權(quán)速率為1Mbit。

2)創(chuàng)建分類1:2,其父分類為1:1,分配帶寬為8Mbit,優(yōu)先級別為2。
·tc class add dev eth0 parent 1:1 classid 1:2 cbq bandwidth 10Mbit rate 8Mbit maxburst 20 allot 1514 prio 2 avpkt 1000 cell 8 weight 800Kbit split 1:0 bounded

   該隊(duì)列的最大可用帶寬為10Mbit,實(shí)際分配的帶寬為 8Mbit,可接收沖突的發(fā)送最長包數(shù)目為20字節(jié);最大傳輸單元加MAC頭的大小為1514字節(jié),優(yōu)先級別為1,包的平均大小為1000字節(jié),包間隔發(fā)送單元的大小為8字節(jié),相應(yīng)于實(shí)際帶寬的加權(quán)速率為800Kbit,分類的分離點(diǎn)為1:0,且不可借用未使用帶寬。
3)創(chuàng)建分類1:3,其父分類為1:1,分配帶寬為1Mbit,優(yōu)先級別為1。
·tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 10Mbit rate 1Mbit maxburst 20 allot 1514 prio 1 avpkt 1000 cell 8 weight 100Kbit split 1:0

   該隊(duì)列的最大可用帶寬為10Mbit,實(shí)際分配的帶寬為 1Mbit,可接收沖突的發(fā)送最長包數(shù)目為20字節(jié);最大傳輸單元加MAC頭的大小為1514字節(jié),優(yōu)先級別為2,包的平均大小為1000字節(jié),包間隔發(fā)送單元的大小為8字節(jié),相應(yīng)于實(shí)際帶寬的加權(quán)速率為100Kbit,分類的分離點(diǎn)為1:0。

4)創(chuàng)建分類1:4,其父分類為1:1,分配帶寬為1Mbit,優(yōu)先級別為6。
·tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 10Mbit rate 1Mbit maxburst 20 allot 1514 prio 6 avpkt 1000 cell 8 weight 100Kbit split 1:0

   該隊(duì)列的最大可用帶寬為10Mbit,實(shí)際分配的帶寬為 64Kbit,可接收沖突的發(fā)送最長包數(shù)目為20字節(jié);最大傳輸單元加MAC頭的大小為1514字節(jié),優(yōu)先級別為1,包的平均大小為1000字節(jié),包間隔發(fā)送單元的大小為8字節(jié),相應(yīng)于實(shí)際帶寬的加權(quán)速率為100Kbit,分類的分離點(diǎn)為1:0。

3. 建立過濾器
過濾器主要服務(wù)于分類。一般只需針對根分類提供一個(gè)過濾器,然后為每個(gè)子分類提供路由映射。

1) 應(yīng)用路由分類器到cbq隊(duì)列的根,父分類編號為1:0;過濾協(xié)議為ip,優(yōu)先級別為100,過濾器為基于路由表。
·tc filter add dev eth0 parent 1:0 protocol ip prio 100 route

2) 建立路由映射分類1:2, 1:3, 1:4
·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

4.建立路由
該路由是與前面所建立的路由映射一一對應(yīng)。
1) 發(fā)往主機(jī)192.168.1.24的數(shù)據(jù)包通過分類2轉(zhuǎn)發(fā)(分類2的速率8Mbit)
·ip route add 192.168.1.24 dev eth0 via 192.168.1.66 realm 2

2) 發(fā)往主機(jī)192.168.1.30的數(shù)據(jù)包通過分類3轉(zhuǎn)發(fā)(分類3的速率1Mbit)
·ip route add 192.168.1.30 dev eth0 via 192.168.1.66 realm 3

3)發(fā)往子網(wǎng)192.168.1.0/24的數(shù)據(jù)包通過分類4轉(zhuǎn)發(fā)(分類4的速率1Mbit)
·ip route add 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4

   注:一般對于流量控制器所直接連接的網(wǎng)段建議使用IP主機(jī)地址流量控制限制,不要使用子網(wǎng)流量控制限制。如一定需要對直連子網(wǎng)使用子網(wǎng)流量控制限制,則在建立該子網(wǎng)的路由映射前,需將原先由系統(tǒng)建立的路由刪除,才可完成相應(yīng)步驟。

5. 監(jiān)視
   主要包括對現(xiàn)有隊(duì)列、分類、過濾器和路由的狀況進(jìn)行監(jiān)視。
1)顯示隊(duì)列的狀況

簡單顯示指定設(shè)備(這里為eth0)的隊(duì)列狀況
·tc qdisc ls dev eth0
qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit

詳細(xì)顯示指定設(shè)備(這里為eth0)的隊(duì)列狀況
·tc -s qdisc ls dev eth0
qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit
Sent 7646731 bytes 13232 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 31 undertime 0

   這里主要顯示了通過該隊(duì)列發(fā)送了13232個(gè)數(shù)據(jù)包,數(shù)據(jù)流量為7646731個(gè)字節(jié),丟棄的包數(shù)目為0,超過速率限制的包數(shù)目為0。

2)顯示分類的狀況

簡單顯示指定設(shè)備(這里為eth0)的分類狀況
·tc class ls dev eth0
class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
class cbq 1:1 parent 1: rate 10Mbit prio no-transmit #no-transmit表示優(yōu)先級為8
class cbq 1:2 parent 1:1 rate 8Mbit prio 2
class cbq 1:3 parent 1:1 rate 1Mbit prio 1
class cbq 1:4 parent 1:1 rate 1Mbit prio 6

詳細(xì)顯示指定設(shè)備(這里為eth0)的分類狀況
·tc -s class ls dev eth0
class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
Sent 17725304 bytes 32088 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 31 undertime 0
class cbq 1:1 parent 1: rate 10Mbit prio no-transmit
Sent 16627774 bytes 28884 pkts (dropped 0, overlimits 0)
borrowed 16163 overactions 0 avgidle 587 undertime 0
class cbq 1:2 parent 1:1 rate 8Mbit prio 2
Sent 628829 bytes 3130 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 4137 undertime 0
class cbq 1:3 parent 1:1 rate 1Mbit prio 1
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 159654 undertime 0
class cbq 1:4 parent 1:1 rate 1Mbit prio 6
Sent 5552879 bytes 8076 pkts (dropped 0, overlimits 0)
borrowed 3797 overactions 0 avgidle 159557 undertime 0

   這里主要顯示了通過不同分類發(fā)送的數(shù)據(jù)包,數(shù)據(jù)流量,丟棄的包數(shù)目,超過速率限制的包數(shù)目等等。其中根分類(class cbq 1:0)的狀況應(yīng)與隊(duì)列的狀況類似。
   例如,分類class cbq 1:4發(fā)送了8076個(gè)數(shù)據(jù)包,數(shù)據(jù)流量為5552879個(gè)字節(jié),丟棄的包數(shù)目為0,超過速率限制的包數(shù)目為0。

顯示過濾器的狀況
·tc -s filter ls dev eth0
filter parent 1: protocol ip pref 100 route
filter parent 1: protocol ip pref 100 route fh 0xffff0002 flowid 1:2 to 2
filter parent 1: protocol ip pref 100 route fh 0xffff0003 flowid 1:3 to 3
filter parent 1: protocol ip pref 100 route fh 0xffff0004 flowid 1:4 to 4

這里flowid 1:2代表分類class cbq 1:2,to 2代表通過路由2發(fā)送。

顯示現(xiàn)有路由的狀況
·ip route
192.168.1.66 dev eth0 scope link
192.168.1.24 via 192.168.1.66 dev eth0 realm 2
202.102.24.216 dev ppp0 proto kernel scope link src 202.102.76.5
192.168.1.30 via 192.168.1.66 dev eth0 realm 3
192.168.1.0/24 via 192.168.1.66 dev eth0 realm 4
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.66
172.16.1.0/24 via 192.168.1.66 dev eth0 scope link
127.0.0.0/8 dev lo scope link
default via 202.102.24.216 dev ppp0
default via 192.168.1.254 dev eth0

   如上所示,結(jié)尾包含有realm的顯示行是起作用的路由過濾器。

6. 維護(hù)
   主要包括對隊(duì)列、分類、過濾器和路由的增添、修改和刪除。
   增添動(dòng)作一般依照"隊(duì)列->分類->過濾器->路由"的順序進(jìn)行;修改動(dòng)作則沒有什么要求;刪除則依照"路由->過濾器->分類->隊(duì)列"的順序進(jìn)行。

1)隊(duì)列的維護(hù)
一般對于一臺流量控制器來說,出廠時(shí)針對每個(gè)以太網(wǎng)卡均已配置好一個(gè)隊(duì)列了,通常情況下對隊(duì)列無需進(jìn)行增添、修改和刪除動(dòng)作了。

2)分類的維護(hù)

增添
增添動(dòng)作通過tc class add命令實(shí)現(xiàn),如前面所示。

修改
修改動(dòng)作通過tc class change命令實(shí)現(xiàn),如下所示:
·tc class change dev eth0 parent 1:1 classid 1:2 cbq bandwidth 10Mbit rate 7Mbit maxburst 20 allot 1514 prio 2 avpkt 1000 cell 8 weight 700Kbit split 1:0 bounded
對于bounded命令應(yīng)慎用,一旦添加后就進(jìn)行修改,只可通過刪除后再添加來實(shí)現(xiàn)。

刪除
刪除動(dòng)作只在該分類沒有工作前才可進(jìn)行,一旦通過該分類發(fā)送過數(shù)據(jù),則無法刪除它了。因此,需要通過shell文件方式來修改,通過重新啟動(dòng)來完成刪除動(dòng)作。

3)過濾器的維護(hù)

增添
增添動(dòng)作通過tc filter add命令實(shí)現(xiàn),如前面所示。

修改
修改動(dòng)作通過tc filter change命令實(shí)現(xiàn),如下所示:
·tc filter change dev eth0 parent 1:0 protocol ip prio 100 route to 10 flowid 1:8

刪除
刪除動(dòng)作通過tc filter del命令實(shí)現(xiàn),如下所示:
·tc filter del dev eth0 parent 1:0 protocol ip prio 100 route to 10

4)與過濾器一一映射路由的維護(hù)

增添
增添動(dòng)作通過ip route add命令實(shí)現(xiàn),如前面所示。

修改
修改動(dòng)作通過ip route change命令實(shí)現(xiàn),如下所示:
·ip route change 192.168.1.30 dev eth0 via 192.168.1.66 realm 8

刪除
刪除動(dòng)作通過ip route del命令實(shí)現(xiàn),如下所示:
·ip route del 192.168.1.30 dev eth0 via 192.168.1.66 realm 8
·ip route del 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多