TC模塊限速實(shí)例

一、網(wǎng)絡(luò)拓?fù)?/strong>

創(chuàng)新互聯(lián)主要從事做網(wǎng)站、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)普陀,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575

TC模塊限速實(shí)例

二、環(huán)境介紹

服務(wù)器系統(tǒng)是centos6.5,內(nèi)核:2.6.32-431.el6.x86_64

Server:兩張網(wǎng)卡eth0:10.0.0.100

         eth2:192.168.0.1

PC:一張網(wǎng)卡eth0:192.168.0.10,gw:192.168.0.1

三、tc介紹

在linux中,tc有二種控制方法CBQ和HTB。HTB是設(shè)計(jì)用來(lái)替換CBQ的,HTB比CBQ更加靈活,但是CPU開(kāi)銷也更大,通常高速的鏈路會(huì)使用CBQ,一般而言HTB使用的更加廣泛我們對(duì)tc中的HTB的規(guī)則本質(zhì)上是一個(gè)樹(shù)形結(jié)構(gòu),包括三個(gè)基本的構(gòu)成塊:隊(duì)列規(guī)定qdisc(queueing discipline) ,類(class)和分類器(Classifiers).

qdisc 隊(duì)列規(guī)則(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組件(類和分類器).內(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)模塊.

最簡(jiǎn)單的QDisc是pfifo它不對(duì)進(jìn)入的數(shù)據(jù)包做任何的處理,數(shù)據(jù)包采用先入先出的方式通過(guò)隊(duì)列.不過(guò),它會(huì)保存網(wǎng)絡(luò)接口一時(shí)無(wú)法處理的數(shù)據(jù)包.常有的隊(duì)列規(guī)則包括FIFO先進(jìn)先出,RED隨機(jī)早期探測(cè),SFQ隨機(jī)公平隊(duì)列和令牌桶Token Bucket,類基隊(duì)列CBQ,CBQ是一種超級(jí)隊(duì)列,即它能夠包含其它隊(duì)列,甚至其它CBQ.

Class類

class 用來(lái)表示控制策略.很顯然,很多時(shí)候,我們很可能要對(duì)不同的IP實(shí)行不同的流量控制策略,這時(shí)候我們就得用不同的class來(lái)表示不同的控制策略了.

Filter規(guī)則

    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).目前,tc可以使用的過(guò)濾器有:fwmark分類器,u32分類器,基于路由的分類器和RSVP分類器(分別用于IPV6、IPV4)等;其中,fwmark分類器允許我們使用Linux netfilter代碼選擇流量,而u32分類器允許我們選擇基于ANY頭的流量.需要注意的是,filter (過(guò)濾器)是在QDisc內(nèi)部,它們不能作為主體.

實(shí)施步驟

主要是建立隊(duì)列、分類、過(guò)濾器三步。

1 給物理設(shè)備建立一個(gè)隊(duì)列qdisc

2 在相關(guān)隊(duì)列上建立分類,一般是在該qdisc上建立一個(gè)根分類,然后在此根分類上建立子類。

3 為每一個(gè)分類建立基于路由的過(guò)濾器,并把過(guò)濾規(guī)則與特定的路由結(jié)合。一般只需要針對(duì)根分類提供一個(gè)過(guò)濾器,然后為每個(gè)子類提供路由映射。

四、實(shí)施

Server端

sed -i 's#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#g' /etc/sysctl.conf

sysctl -p

做nat命令如下:

iptables -F

iptables -t nat -F

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to 10.0.0.100

為流量控制做基于fw過(guò)濾器的標(biāo)記

iptables -t mangle -I PREROUTING-o eth0 -s 192.168.0.0/24 -j MARK --set-mark 0x11

上傳速率做流量控制

tc 只能控制網(wǎng)卡發(fā)送包的速率,所以上傳速率的限制要在eth0上做

刪除舊有隊(duì)列

tc qdisc del dev eth0 root2>/dev/null

加一個(gè)根隊(duì)列

tc qdisc add dev eth0 root handle1:0 htb default60

加一個(gè)根類

tcclass add dev eth0 parent 1:0 classid 1:1 htb rate 100Mbit ceil 100Mbit prio 0

加一個(gè)子類用于內(nèi)網(wǎng)速率限制為10Mbit

tcclass add dev eth0 parent 1:1 classid 1:11 htb rate 10Mbit ceil 10Mbit prio 1 burst 96kbit

設(shè)置隊(duì)列規(guī)則  

tc qdisc add dev eth0 parent 1:11 handle 111:0 sfq perturb 10

將隊(duì)列和fw過(guò)濾器映射起來(lái) 其中hand 0x11 的0x11是開(kāi)始用iptables 做的標(biāo)記

tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 0x11 fw classid 1:11                                                

做下載限制,過(guò)濾器是用u32 

tc qdisc del dev eth2 root 2>/dev/null
根隊(duì)列

tc qdisc add dev eth1 root handle2:0 htb default30
根類

tcclass add dev eth1 parent2:0 classid2:1 htb rate 10Mbit ceil 10Mbit prio 0
子類
tcclass add deveth1 parent2:1 classid2:11 htb rate 1Mbit ceil 1Mbit prio 1

設(shè)置隊(duì)列規(guī)則

tc qdisc add deveth1 parent2:11 sfq perturb 10

tc filter add dev eth2 parent 2:0 protocol ip prio 2 u32 match ip dst 192.168.0.0/24 flowid 2:11

用以下命令監(jiān)視流量

tc -s qdisc ls dev eth0 
tc -s qdisc ls dev eth2 
tc -s class ls dev eth0 
tc -s class ls dev eth2 

參考:

http://lartc.org/howto/lartc.qdisc.classful.html

https://blog.csdn.net/eydwyz/article/details/53320612

網(wǎng)站欄目:TC模塊限速實(shí)例
分享路徑:http://bm7419.com/article14/gegsge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、標(biāo)簽優(yōu)化、自適應(yīng)網(wǎng)站手機(jī)網(wǎng)站建設(shè)、App開(kāi)發(fā)域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)