亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Linux下TC的網(wǎng)絡(luò)流量管理

        2010-08-15 00:45:09郭正球
        關(guān)鍵詞:控制策略分類管理

        郭正球

        (長沙航空職業(yè)技術(shù)學(xué)院,湖南長沙 410124)

        基于Linux下TC的網(wǎng)絡(luò)流量管理

        郭正球

        (長沙航空職業(yè)技術(shù)學(xué)院,湖南長沙 410124)

        介紹Linux下的流量管理器(TC),討論了TC的排隊(duì)規(guī)定、分類和過濾器三個(gè)關(guān)鍵組件的相關(guān)細(xì)節(jié),給出運(yùn)用TC工具實(shí)現(xiàn)網(wǎng)絡(luò)流量管理的具體實(shí)例。

        服務(wù)質(zhì)量;流量管理;隊(duì)列規(guī)定;類;過濾器

        目前采用盡力而為(Best-effort)模型設(shè)計(jì)的互聯(lián)網(wǎng),會盡可能地為所有用戶分配網(wǎng)絡(luò)帶寬,用以傳送更多的網(wǎng)絡(luò)流量,但對帶寬和數(shù)據(jù)傳輸延時(shí)卻沒有明確規(guī)定。[1]當(dāng)下,以BT為代表的P2P服務(wù)在提升網(wǎng)絡(luò)傳輸效率的同時(shí)也極大地消耗了網(wǎng)絡(luò)帶寬,對其他網(wǎng)絡(luò)應(yīng)用帶來沖擊。網(wǎng)絡(luò)長時(shí)間的高度擁塞,給網(wǎng)絡(luò)管理帶來困難和功能失效的危險(xiǎn),將直接影響網(wǎng)絡(luò)的正常運(yùn)行和關(guān)鍵業(yè)務(wù)的開展。因此,需要對網(wǎng)絡(luò)流量進(jìn)行分類與控制,監(jiān)控網(wǎng)絡(luò)中的各流量狀態(tài),并根據(jù)應(yīng)用的需求實(shí)施面向用戶、帶寬、業(yè)務(wù)類型和服務(wù)質(zhì)量的流量控制,從而有效地利用網(wǎng)絡(luò)帶寬,保障網(wǎng)絡(luò)的正常運(yùn)行。

        在網(wǎng)絡(luò)服務(wù)質(zhì)量(QoS)領(lǐng)域里,流量管理被作為其重要的研究方向。目前,很多網(wǎng)絡(luò)硬件廠商都在防火墻、路由器等網(wǎng)絡(luò)關(guān)鍵上設(shè)備整合了流量管理功能,也有廠家推出了基于ASIC芯片的專業(yè)流量控制設(shè)備,這些基于硬件的流量管理設(shè)備具有高性能和高可靠性等特點(diǎn),但價(jià)格不菲,并且在部署和使用過程中缺乏靈活性和可定制性。Linux作為一個(gè)優(yōu)秀的網(wǎng)絡(luò)操作系統(tǒng),在對網(wǎng)絡(luò)QoS的支持有著得天獨(dú)厚的優(yōu)勢。通過Linux內(nèi)核(Kernel)中的流量控制(TC)模塊完全可以實(shí)現(xiàn)網(wǎng)絡(luò)流量的顆??刂?而且靈活性非常高。

        1 Linux對流量管理的支持

        目前,Linux內(nèi)核已經(jīng)發(fā)展到Kernel 2.6版本,其帶寬管理模塊(TC)通過這幾年的發(fā)展,已經(jīng)變得非常成熟和穩(wěn)定。TC模塊主要包括隊(duì)列規(guī)定(Queuing discip line)、過濾器(Filter)、類(Class)這三個(gè)關(guān)鍵組件。[2]

        Linux的帶寬管理模塊(TC)會將流經(jīng)網(wǎng)絡(luò)接口的數(shù)據(jù)包按某種隊(duì)列算法放入相應(yīng)的隊(duì)列,并通過優(yōu)先級、大小、長度等隊(duì)列規(guī)定來控制數(shù)據(jù)包發(fā)送,從而達(dá)到對流量的控制。能夠?qū)崿F(xiàn)流量控制功能的隊(duì)列規(guī)定主要有:CLASSLESSQDISC(無類隊(duì)列規(guī)定)和CLASSFULQDIS(分類隊(duì)列規(guī)定)兩種。

        1.1 無類隊(duì)列規(guī)定

        無類隊(duì)列規(guī)定能夠接受數(shù)據(jù)包和重組、延遲或丟棄數(shù)據(jù)包。這可以用作對于整個(gè)網(wǎng)絡(luò)接口的流量進(jìn)行整形,但不細(xì)分各種情況,屬于粗放型的流量管理。典型的無類隊(duì)列規(guī)定有SFQ(隨機(jī)公平隊(duì)列)、TBF(令牌桶過濾器)、pfifo-fast(先進(jìn)現(xiàn)出)、ID(前向隨機(jī)丟包)。

        1.2 分類隊(duì)列規(guī)定

        在分類隊(duì)列規(guī)定的概念里擴(kuò)展了Class(類)和Filter(過濾器)兩個(gè)組件,在類和過濾器的支持下, Linux可以根據(jù)數(shù)據(jù)包的類型、優(yōu)先級別等來區(qū)分不同類型的流量,然后通過不同的隊(duì)列規(guī)則來控制數(shù)據(jù)包的發(fā)送方式,以實(shí)現(xiàn)對流量的控制。

        典型的分類隊(duì)列規(guī)定主要有以下幾種:

        1)CBQ(Class Based Queueing,基于類的隊(duì)列)

        CBQ是一種基于類的可以包含其它隊(duì)列的超級隊(duì)列,CBQ會根據(jù)對流量特征處理數(shù)據(jù)包,并確保一定的傳輸速率,在接收數(shù)據(jù)包時(shí)根據(jù)IP協(xié)議頭、IP地址、應(yīng)用程序或協(xié)議、URL或其它信息等進(jìn)行分類。每類流量被分配到指定的FIFO (FirstInFirstOut)隊(duì)列。如果隊(duì)列為空閑,帶寬便可以供其它隊(duì)列使用,即帶寬借用。

        2)HTB(Hierarchical Token Buchet,分層的令牌桶)

        HTB實(shí)際是在TBF上發(fā)展起來的,它的分層機(jī)制使網(wǎng)絡(luò)在帶寬固定的情況下很容易實(shí)現(xiàn)對每個(gè)類別的帶寬分配,同時(shí)還允許特定的類可以突破帶寬上限,占用別的類的空閑帶寬,這對要在具有固定連接速率的鏈路上實(shí)現(xiàn)帶寬管理非常方便。

        3)PRIO:PRIOQDisc

        PRIO不能限制帶寬,因?yàn)閷儆诓煌悇e的數(shù)據(jù)報(bào)是順序離隊(duì)。使用PRIO Qdisc可以很容易對流量進(jìn)行優(yōu)先級管理,只有屬于高優(yōu)先級類別的數(shù)據(jù)報(bào)全部發(fā)送完畢,才會發(fā)送屬于低優(yōu)先級類別的數(shù)據(jù)報(bào)。為方便管理,需要使用iptables或者ipchain處理數(shù)據(jù)包的服務(wù)類型(Type Of Service, TOS)。

        1.3 過濾器和類

        在分類隊(duì)列中使用過濾器區(qū)別不同類型的數(shù)據(jù)包,過濾器根據(jù)源IP地址、端口、目地IP、端口、協(xié)議類型、TOS字節(jié)、網(wǎng)絡(luò)接口等參數(shù)或準(zhǔn)則將進(jìn)入隊(duì)列的數(shù)據(jù)包分為不同的類。類由隊(duì)列規(guī)定來管理,它和隊(duì)列規(guī)定緊密聯(lián)系在一起。不同的類對應(yīng)著不同的隊(duì)列規(guī)定,類本身不儲存數(shù)據(jù)包,而是利用隊(duì)列規(guī)定來管理其所擁有的數(shù)據(jù)。它們之間的關(guān)系如圖1所示。

        Linux下常用的過濾器有fwmark、u32、route等,通過這些過濾器可以區(qū)別不同類型的網(wǎng)絡(luò)流量。fwmark過濾器是根據(jù)防火墻對數(shù)據(jù)包所做的特定標(biāo)記進(jìn)行判斷;u32過濾器基于哈希表實(shí)現(xiàn),能夠?qū)Ξ?dāng)前通過的數(shù)據(jù)包進(jìn)行匹配的特征定義; route過濾器是根據(jù)數(shù)據(jù)如何被路由進(jìn)行判斷。

        在過濾器里有protocol、parent、prio、hand le、fw、u32這些參數(shù)需要進(jìn)行設(shè)置。protocol是必要參數(shù),指的是過濾器所接受的協(xié)議。parent也是必要參數(shù),用來明確過濾器附帶在哪個(gè)句柄上,句柄必須是一個(gè)已經(jīng)存在的類。prio是用來說明分類器的優(yōu)先權(quán)值,優(yōu)先權(quán)值低的優(yōu)先級越高。handle是過濾器句柄的描述,對于不同過濾器,它的意義不同。

        1.4 實(shí)現(xiàn)TC的三個(gè)關(guān)鍵組件

        TC的實(shí)現(xiàn)涉及到隊(duì)列(Queue),分類器(Class)和過濾器(Filter)三個(gè)關(guān)鍵組件。

        隊(duì)列用來實(shí)現(xiàn)控制網(wǎng)絡(luò)的收發(fā)速度。通過隊(duì)列,Linux可以將網(wǎng)絡(luò)數(shù)據(jù)包緩存起來,然后根據(jù)用戶的設(shè)置,在盡量不中斷連接(如TCP)的前提下來平滑網(wǎng)絡(luò)流量。需要注意的是,基于IP/TCP平行協(xié)議族的特點(diǎn),TC對流量控制的實(shí)現(xiàn)一般都在發(fā)送隊(duì)列上來實(shí)現(xiàn),即“控發(fā)不控收”。對于Linux防火墻來說,控制下行速率需要在對內(nèi)接口上實(shí)施,而控制上行速率則需要在對外接口上實(shí)施。[3]

        Class用來表示控制策略。很多時(shí)候可能要對不同的IP實(shí)施不同的流量控制策略,此時(shí)可用不同的Class來表示不同的控制策略。

        Filter用來將流量劃入到具體的控制策略中(即不同的Class中)。比如,要對A、B兩個(gè)IP產(chǎn)生的流量實(shí)行不同的控制策略(C、D),這時(shí),可以用Filter將A流量劃入到控制策略C,將B流量劃入到控制策略D,Filter劃分的標(biāo)志位可用u32打標(biāo)功能或iptables的set-mark功能來實(shí)現(xiàn)。

        2 流量控制的具體實(shí)例

        Linux流量控制模塊提供一個(gè)用戶狀態(tài)下的TC命令,可以通過TC命令來實(shí)現(xiàn)對流量的管理。

        2.1 實(shí)例環(huán)境

        先假設(shè)一個(gè)簡單的網(wǎng)絡(luò)環(huán)境,如圖2所示。

        流量控制器(TC)上有兩個(gè)網(wǎng)絡(luò)接口,連接ISP的對外接口為eth0,分配公網(wǎng)IP地址:a.b.c.d,最大帶寬為50Mbps。連接內(nèi)部網(wǎng)絡(luò)的為eth1,分配私有IP地址:192.168.1.1。另有三臺內(nèi)網(wǎng)主機(jī)1、主機(jī)2和主機(jī)3,各主機(jī)的IP地址分配見圖2。

        現(xiàn)在需要對內(nèi)網(wǎng)主機(jī)實(shí)施以下的流量管理:

        1)控制內(nèi)網(wǎng)主機(jī)1、主機(jī)2和主機(jī)3的下行(下載)速率分別為為8Mbps、15Mbps和20Mbps;

        2)控制內(nèi)網(wǎng)主機(jī)1、主機(jī)2和主機(jī)3的上行(上載)速率分別為為5Mbps、8Mbps和10Mbps;

        2.2 下行控制

        對下行速率的控制,需要在TC的內(nèi)接口上實(shí)施,基本步驟如下:

        1)在流量控制器(TC)內(nèi)接口上(eth1)綁定一個(gè)HTB隊(duì)列用以控制下行速率,指定缺省分類為2:40,沒有被過濾的流量將進(jìn)行這個(gè)缺省分類。

        tc qdisc add dev eth1 root handle 2:0 htb default40

        2)建立主干分類,并指定最大帶寬為50Mbit,允許突發(fā)流量15Kbit。

        tc class add dev eth1 parent 2:0 classid 2:1 htb rate 50Mbit burst15kbit

        3)在內(nèi)接口上隊(duì)列(HTB)上為三臺內(nèi)網(wǎng)主機(jī)分別建立相應(yīng)速率的子分類;最后一條命令創(chuàng)建默認(rèn)分類。

        tc class add dev eth1 parent 2:1 classid 2:10 htb rate 8Mbit burst 15kbit

        tc class add dev eth1 parent 2:1 classid 2:20 htb rate 10Mbit burst 15kbit

        tc class add dev eth1 parent 2:1 classid 2:30 htb rate 15Mbit burst 15k

        tc class add dev eth1 parent 2:1 classid 2:40 htb rate 7Mbit burst 15k

        4)在每個(gè)類下面再附加上另一個(gè)隨機(jī)公平隊(duì)列(SFQ),以保證帶寬的平均公平使用。

        tc qdisc add dev eth1 parent 2:10 hand le 10: sfq perturb 10

        tc qdisc add dev eth1 parent 2:20 hand le 20: sfq perturb 10

        tc qdisc add dev eth1 parent 2:30 hand le 30: sfq perturb 10

        tc qdisc add dev eth1 parent 2:40 hand le 30: sfq perturb 10

        5)根據(jù)下行流量控制要求建立相應(yīng)的u32過濾器;最后一條命令創(chuàng)建默認(rèn)流量的過濾器,可以省略。

        tc filter add dev eth0 protocol ip parent2:0 prio 2 u32match ip dst 192.168.1.2/32 flowid 2:10

        tc filter add dev eth0 protocol ip parent2:0 prio 2 u32match ip dst 192.168.1.3/32 flowid 2:20

        tc filter add dev eth0 protocol ip parent2:0 prio 2 u32match ip dst 192.168.1.4/32 flowid 2:30

        tc filter add dev eth0 protocol ip parent2:0 prio 3 u32 match ip dst 192.168.1.0/24 flowid 2:40

        2.3 上行控制

        對上行速率的控制,需要在TC的對外接口上實(shí)施,但需要以下兩個(gè)方面的問題:

        1)因?yàn)閮?nèi)部網(wǎng)絡(luò)使用的是私有地址,內(nèi)部IP產(chǎn)生的上行流量在經(jīng)過外網(wǎng)卡(eth0)時(shí)會進(jìn)行NAT轉(zhuǎn)換,所以不能用源地址進(jìn)行u32過濾,需要使用fw過濾器進(jìn)行流量標(biāo)識;

        2)在使用fw過濾器分類的時(shí)候優(yōu)先級一定不能相同,否則將失效。

        基本步驟如下:

        1)使用iptables在TC的內(nèi)接口處為三臺內(nèi)網(wǎng)主機(jī)的上行流量分別打上不同的mark,以此來標(biāo)識不同的數(shù)據(jù)流,為fw過濾分類時(shí)所使用;

        iptables-A PREROUTING-tmangle-ieth1 -s 192.168.1.2/32-j MARK--set-mark 1

        iptables-A PREROUTING-tmangle-ieth1 -s 192.168.1.3/32-j MARK--set-mark 2

        iptables-A PREROUTING-tmangle-ieth1 -s 192.168.1.4/32-j MARK--set-mark 3

        2)如同控制下行流量一般,在eth0上建立HTB隊(duì)列、主干、子分類及默認(rèn)分類;

        tc qdisc add dev eth0 roothand le 1:0 htb default 40

        tc classadd dev eth0 parent 1:0 classid 2:1 htb rate 50Mbit burst 15kbit

        tc class add dev eth0 parent 1:1 classid 2:10 htb rate 5Mbitburst 15kbit

        tc class add dev eth0 parent 1:1 classid 2:20 htb rate 8Mbitburst 15kbit

        tc class add dev eth0 parent 1:1 classid 2:30 htb rate 10Mbit burst 15k

        tc class add dev eth0 parent 1:1 classid 2:40 htb rate 27Mbit burst 15k

        3)附加一個(gè)隨機(jī)公平隊(duì)列(SFQ),以保證帶寬的平均公平使用。

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

        tc qdisc add dev eth0 parent 2:20 handle 20: sfq perturb 10

        tc qdisc add dev eth0 parent 2:30 handle 30: sfq perturb 10

        tc qdisc add dev eth0 parent 2:40 handle 30: sfq perturb 10

        4)創(chuàng)建相應(yīng)的fw過濾器,注意使用不同的優(yōu)先級(prio)。

        tc filter add dev eth0 parent1:0 protocol ip prio 1 handle 1 fw classid 1:10

        tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 1 fw classid 1:20

        tc filter add dev eth0 parent 1:0 protocol ip prio 3 handle 1 fw classid 1:30

        tc filter add dev eth0 parent 1:0 p rotocol ip prio 4 handle 1 fw classid 1:40

        通過以上命令,便可以實(shí)現(xiàn)對內(nèi)網(wǎng)主機(jī)的上/下行流量的管理。

        Linux作為一個(gè)開源的操作系統(tǒng),可以通過其強(qiáng)大的腳本程序來靈活地控制內(nèi)部網(wǎng)絡(luò)的上/下行流量,包括對不同類型流量(如HTTP、DNS、SYN等)進(jìn)行優(yōu)先級的調(diào)整,以保證關(guān)鍵服務(wù)的質(zhì)量。同樣,也可以對TC進(jìn)行二次開發(fā),設(shè)計(jì)出適用性強(qiáng)的可視化流量管理系統(tǒng),如今已有一些網(wǎng)絡(luò)設(shè)備廠家在X86硬件平臺下設(shè)計(jì)出基于Linux內(nèi)核的流量控制設(shè)備。相比采用ASIC芯片設(shè)計(jì)的高端流量控制設(shè)備,通過Linux的TC在X86平臺搭建的流量管理平臺具有更高的性價(jià)比,而且Linux對硬件配置要求不高,在一臺普通的PC機(jī)就可以通過Linux輕松地實(shí)現(xiàn)流量管理,對于大流量的園區(qū)網(wǎng)絡(luò)則可以通過Linux集群技術(shù)將多臺普通PC組合部署,構(gòu)建更高性能的流量管理集群系統(tǒng),以滿足流量管理的需要。

        3 結(jié)束語

        網(wǎng)絡(luò)流量的管理是目前困擾很多網(wǎng)絡(luò)管理者的問題,對流量進(jìn)行靈活的定制管理是當(dāng)前網(wǎng)絡(luò)管理的需要。實(shí)踐證明通過Linux平臺下的TC可以實(shí)現(xiàn)網(wǎng)絡(luò)流量的有效控制與管理,改善網(wǎng)絡(luò)的服務(wù)質(zhì)量。

        [1]林闖.計(jì)算機(jī)網(wǎng)絡(luò)的服務(wù)質(zhì)量QoS[M].北京:清華大學(xué)出版社,2004.

        [2]祝琳.Linux網(wǎng)絡(luò)系統(tǒng)對QoS的支持[J].計(jì)算機(jī)技術(shù), 2002,(2):100-102.

        [3]Bert Hubert.Linux的高級路由和流量控制[M].北京:人民郵電出版社,2005.

        [編校:劉敏]

        TC's Network Traffic Management Based on the Linux

        GUO Zhengqiu
        (Changsha Aeronautical Vocationaland Technical College,Changsha Hunan 410124)

        This paper introduces the traffic controlor(TC)based on the Linux,discusses the related detailsof TC's queuing discipline,classification and filtermodules,lists some samples ofachieving network management by way of TC.

        QoS;traffic management;queuing discipline;class;filter

        TP393

        A

        1671-9654(2010)02-050-04

        2010-03-15

        郭正球(1980-),男,湖南沅江人,助理工程師,研究方向?yàn)檐浖こ獭⒕W(wǎng)絡(luò)安全與管理。

        猜你喜歡
        控制策略分類管理
        棗前期管理再好,后期管不好,前功盡棄
        分類算一算
        考慮虛擬慣性的VSC-MTDC改進(jìn)下垂控制策略
        能源工程(2020年6期)2021-01-26 00:55:22
        工程造價(jià)控制策略
        山東冶金(2019年3期)2019-07-10 00:54:04
        分類討論求坐標(biāo)
        現(xiàn)代企業(yè)會計(jì)的內(nèi)部控制策略探討
        數(shù)據(jù)分析中的分類討論
        教你一招:數(shù)的分類
        容錯(cuò)逆變器直接轉(zhuǎn)矩控制策略
        “這下管理創(chuàng)新了!等7則
        雜文月刊(2016年1期)2016-02-11 10:35:51
        美女国产毛片a区内射| 亚洲AV无码成人精品区H| 国产亚洲精品综合在线网站| 久久午夜av一区二区三区| 开心五月激情综合婷婷色| 亚洲红怡院| 亚洲av高清在线一区二区三区| 久久伊人最新网址视频| 男人靠女人免费视频网站| 国产精品短视频| 日本小视频一区二区三区| 蜜桃视频插满18在线观看| 午夜精品久久久久久久久久久久| 九九久久国产精品大片| 亚洲av无吗国产精品| 亚洲av无码乱码国产一区二区| 日韩精品一区二区亚洲av| 中文字幕有码高清| 日本最新一区二区三区在线| 粗大的内捧猛烈进出视频| 99福利网| 亚洲中文字幕一区高清在线| 少妇无码太爽了在线播放 | 青青草免费激情自拍视频| 在线天堂av一区二区| 天天躁日日躁狠狠久久| 巨爆乳中文字幕爆乳区| 白色白色白色在线观看视频| 中国少妇×xxxx性裸交| 亚洲综合无码一区二区三区| 日韩精品人妻中文字幕有码| 日韩女同精品av在线观看| 亚洲av日韩综合一区在线观看 | 午夜成人精品福利网站在线观看| 日本女优中文字幕看片| 日本免费视频一区二区三区| 狠狠色噜噜狠狠狠777米奇小说| 欧美aⅴ在线| 久久久亚洲一区二区三区| 在线中文字幕乱码英文字幕正常 | 久久精品国产9久久综合|