| 860700672 |
2013-04-24 16:55 |
TC服務(wù)器流量控制功能
TC主要用于企業(yè)的,當(dāng)然自己家也是可以用,不過(guò)我覺(jué)得沒(méi)有必要了,企業(yè)用網(wǎng)絡(luò)通常都會(huì)超過(guò)流量,或者流量不受控制,因此可以用TC來(lái)控制下服務(wù)器流量,下面就教教大家怎么做。 k\ZU%"^J TC介紹 JqEo~]E] 在linux中,TC有二種控制方法CBQ和HTB.HTB是設(shè)計(jì)用來(lái)替換CBQ的。它是一個(gè)層次式的過(guò)濾框架。 =S\pI TC包括三個(gè)基本的構(gòu)成塊: 隊(duì)列規(guī)定qdisc(queueing discipline )、類(lèi)(class)和分類(lèi)器(Classifiers) y@Td]6|f 隊(duì)列(queueing discipline):用來(lái)實(shí)現(xiàn)控制網(wǎng)絡(luò)的收發(fā)速度。通過(guò)隊(duì)列,linux可以將網(wǎng)絡(luò)數(shù)據(jù)包緩存起來(lái),然后根據(jù)用戶的設(shè)置,在盡量不中斷連接(如 TCP)的前提下來(lái)平滑網(wǎng)絡(luò)流量。需要注意的是,linux對(duì)接收隊(duì)列的控制不夠好,所以我們一般只用發(fā)送隊(duì)列,即“控發(fā)不控收”。它封裝了其他兩個(gè)主要 TC組件(類(lèi)和分類(lèi)器)。內(nèi)核如果需要通過(guò)某個(gè)網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)包,它都需要按照為這個(gè)接口配置的qdisc(排隊(duì)規(guī)則)把數(shù)據(jù)包加入隊(duì)列。然后,內(nèi)核會(huì)盡可能多地從qdisc里面取出數(shù)據(jù)包,把它們交給網(wǎng)絡(luò)適配器驅(qū)動(dòng)模塊。 -&QpQ7q1 最簡(jiǎn)單的QDisc是pfifo它不對(duì)進(jìn)入的數(shù)據(jù)包做任何的處理,數(shù)據(jù)包采用先入先出的方式通過(guò)隊(duì)列。不過(guò),它會(huì)保存網(wǎng)絡(luò)接口一時(shí)無(wú)法處理的數(shù)據(jù)包。 %*Yb
J_j7 隊(duì)列規(guī)則包括FIFO(先進(jìn)先出),RED(隨機(jī)早期探測(cè)),SFQ(隨機(jī)公平隊(duì)列)和令牌桶(Token Bucket),類(lèi)基隊(duì)列(CBQ),CBQ 是一種超級(jí)隊(duì)列,即它能夠包含其它隊(duì)列(甚至其它CBQ)。 P_gai7Xg class用來(lái)表示控制策略。很顯然,很多時(shí)候,我們很可能要對(duì)不同的IP實(shí)行不同的流量控制策略,這時(shí)候我們就得用不同的class來(lái)表示不同的控制策略了。 59?$9}ob filter用來(lái)將用戶劃入到具體的控制策略中(即不同的class中)。比如,現(xiàn)在,我們想對(duì)xxa,xxb兩個(gè)IP實(shí)行不同的控制策略(A,B),這時(shí),我們可用filter將xxa劃入到控制策略A,將xxb劃入到控制策略B,filter劃分的標(biāo)志位可用u32打標(biāo)功能或IPtables的 set-mark(大多使用iptables來(lái)做標(biāo)記)功能來(lái)實(shí)現(xiàn)。 t,kai6UM 目前,TC可以使用的過(guò)濾器有:fwmark分類(lèi)器,u32分類(lèi)器,基于路由的分類(lèi)器和RSVP分類(lèi)器(分別用于IPV6、IPV4)等;其中,fwmark分類(lèi)器允許我們使用 Linux netfilter 代碼選擇流量,而u32分類(lèi)器允許我們選擇基于 ANY 頭的流量 .需要注意的是,filter(過(guò)濾器)是在QDisc內(nèi)部,它們不能作為主體。 lO}I>yo}\ 數(shù)據(jù)包->iptables(在通過(guò)iptables時(shí),iptables根據(jù)不同的ip來(lái)設(shè)置不同的mark)->TC(class)->TC(queue) KnK\X>: 應(yīng)用 |1T[P)Q 假設(shè)eth0位是服務(wù)器的外網(wǎng)網(wǎng)絡(luò)接口。 R]o2_r7N"} 1)首先在eth0的qdiscA,qdiscA控制通過(guò)本機(jī)到外網(wǎng)的速度,因此是用來(lái)控制服務(wù)器流出速度的 P+
乐清市|
满城县|
泾源县|
滨州市|
顺义区|
中江县|
察雅县|
黄山市|
北宁市|
临洮县|
麻城市|
西充县|
南部县|
芷江|
商城县|
涿州市|
宿迁市|
许昌县|
仁布县|
中卫市|
荆州市|
长岛县|
万载县|
石林|
西乌珠穆沁旗|
商洛市|
尚志市|
三台县|
河西区|
玉屏|
文水县|
周宁县|
祥云县|
武夷山市|
莱西市|
包头市|
顺义区|
克山县|
商城县|
环江|
乐都县|
| |