專利名稱::一種基于tc和iptables17-filter的應(yīng)用層流量控制方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)軟件
技術(shù)領(lǐng)域:
,尤其涉及一種流量控制方法,特別涉及一種一種基于tc和iptables17-filter的應(yīng)用層流量控制方法。
背景技術(shù):
:在各種網(wǎng)關(guān)應(yīng)用中,經(jīng)常需要對局域網(wǎng)用戶訪問外網(wǎng)的行為進(jìn)行管理。以P2P為代表的下載軟件,對帶寬資源的占用越來越高。如果不加限制,會(huì)嚴(yán)重消耗企業(yè)的帶寬資源,從而影響正常的業(yè)務(wù)數(shù)據(jù)的傳輸。如何正確識別出應(yīng)用類型,并對應(yīng)用類型利用的帶寬進(jìn)行管理,通常采用分析數(shù)據(jù)包,根據(jù)協(xié)議類型(TCP、UDP、ICMP)、端口等來實(shí)現(xiàn)識別應(yīng)用類型的目的。但某些應(yīng)用在設(shè)計(jì)的時(shí)候就加入了突破防火墻的設(shè)置,所用端口號可以隨機(jī)生成,甚至可以采用常用端口號(如80)等,這樣就不能很好地識別出應(yīng)用類型。本發(fā)明通過分析應(yīng)用類型數(shù)據(jù)包的特征值,來對應(yīng)用類型進(jìn)行匹配。采用特征值匹配的方式,可以大大降低誤判的機(jī)率。在通過iptables防火墻時(shí),在mangle表處對被識別出的應(yīng)用類型打上相應(yīng)的標(biāo)記,利用tc實(shí)現(xiàn)流量控制的目的。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種基于tc和iptables17-filter的應(yīng)用層流量控制方法。該方法綜合利用tc和iptables防火墻,解決無法對正確識別應(yīng)用層協(xié)議并對鞭占用帶寬進(jìn)行限制的問題。本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn)一種基于tc和iptables17-filter的應(yīng)用層流量控制方法,該方法通過tc設(shè)置不同類型的網(wǎng)絡(luò)接口隊(duì)列,改變數(shù)據(jù)包發(fā)送的速率和優(yōu)先級。通過對Linux防火墻iptables添加L7-filter補(bǔ)丁,使防火墻能夠識別出各種應(yīng)用層協(xié)議的類型,并在iptables的mangle表中對數(shù)據(jù)包進(jìn)行標(biāo)記,一種標(biāo)記對應(yīng)一個(gè)具體的網(wǎng)絡(luò)接口隊(duì)列。這樣,同一種標(biāo)記的應(yīng)用層協(xié)議都會(huì)進(jìn)到同一個(gè)網(wǎng)絡(luò)接口隊(duì)列中,達(dá)到了流量控制的目的。本發(fā)明的有益效果為本發(fā)明方法有效結(jié)合tc和iptables防火墻,通過iptables將正則表達(dá)式表示的特征碼傳給內(nèi)核模塊,內(nèi)核根據(jù)連接表匹配數(shù)據(jù)包。能夠正確識別出應(yīng)用層協(xié)議類型,通過將應(yīng)用層協(xié)議打上不同的標(biāo)記,使其進(jìn)入到不同的網(wǎng)絡(luò)接口隊(duì)列中。不同的網(wǎng)絡(luò)接口隊(duì)列對應(yīng)不同的數(shù)據(jù)包發(fā)送速率和優(yōu)先級。該方法能夠正確識別應(yīng)用層協(xié)議類型,避免了針對端口來限制帶寬的弊端。具體實(shí)施例方式為使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合具體實(shí)施方式,進(jìn)一步闡述本發(fā)明。一種基于tc和iptables17-filter的應(yīng)用層流量控制方法,該方法通過tc設(shè)置不同類型的網(wǎng)絡(luò)接口隊(duì)列,改變數(shù)據(jù)包發(fā)送的速率和優(yōu)先級。通過對Linux防火墻iptables添加L7-filter補(bǔ)丁,使防火墻能夠識別出各種應(yīng)用層協(xié)議的類型,并在iptables的mangle表中對數(shù)據(jù)包進(jìn)行標(biāo)記,一種標(biāo)記對應(yīng)一個(gè)具體的網(wǎng)絡(luò)接口隊(duì)列。在實(shí)施實(shí)例中,本發(fā)明使用一個(gè)具體的通道來進(jìn)行說明。公司專線網(wǎng)絡(luò)為4M,上下行帶寬對等。因近期公司內(nèi)部人員大量使用P2P對網(wǎng)絡(luò)帶寬造成很大的影響,所以需要對帶寬進(jìn)行流量控制。ethO為外網(wǎng)口,ethl為內(nèi)網(wǎng)口。對上行流量需要在外網(wǎng)口ethO處控制,下行流量需要在內(nèi)網(wǎng)口ethl處控制。內(nèi)網(wǎng)用戶為192.168.2.5。1)控制上行流量##創(chuàng)建一個(gè)HTB的根,缺省分類器為class1tcqdiscadddevethOroothandle1:htbdefault1##設(shè)置類1:1總帶寬tcclassadddevethOparentceil$maxUpBandwidth##設(shè)置分類器tcclassadddevethOparentceil$maxSpeedlprio1tcclassadddevethOparentceil$maxSpeed2prio2##設(shè)置隊(duì)列規(guī)則tcqdiscadddevethOparent1tcqdiscadddevethOparent1##設(shè)置過濾規(guī)則tcfilteradddevethOprotocolipparent1:0prio1handle1fwflowidl11tcfilteradddevethOprotocolipparent1:0prio1handle2fwflowid1122)控制下行流量##創(chuàng)建一個(gè)HTB的根,缺省分類器為class1tcqdiscadddevethlroothandle1:htbdefault1##設(shè)置類1:1總帶寬tcclassadddevethlparent1:classid1;1htbrate$downBandwidthceil$maxdownBandwidth##設(shè)置分類器tcclassadddevethlparent1;1classid1;11htbrate$speed3ceil$maxSpeed3prio1tcclassadddevethlparent1;1classid1;12htbrate$speed4ceil$maxSpeed4prio2##設(shè)置隊(duì)列規(guī)則1:classid1;1htbrate$upBandwidth1;1classid1;11htbrate$speedl1;1classid1;12htbrate$speed2;11handle11:sfqperturb10;12handle12:sfqperturb10tcqdiscadddevethlparent1:11handle11:sfqperturb10tcqdiscadddevethlparent1;12handle12:sfqperturb10##設(shè)置過濾規(guī)則tcfilteradddevethOprotocolipparent1:0prio1handle3fwflowidl11tcfilteradddevethOprotocolipparent1;0prio1handle4fwflowidl123)設(shè)置iptables規(guī)則iptables-tmangle-APREROUTING-iethl_mlayer7—17protoedonkey-s192.168.2.5-jMARK-set-mark1iptables_tmangle-APREROUTING_iethl_mlayer7—17protoedonkey-sl92.168.2.5-jRETURNiptables-tmangle-APREROUTING-iethl_mlayer7—ITprotoxunlei-s192.168.2.5-jMARK-set-mark2iptables-tmangle-APREROUTING-iethl_mlayer7—ITprotoxunlei-s192.168.2.5-jRETURNiptables-tmangle-APOSTROUTING-oethl_mlayer7—17protoedonkey-dl92.168.2.5-jMARK-set-mark3iptables_tmangle-APOSTROUTING_oethl_mlayer7—17protoedonkey-dl92.168.2.5-jRETURNiptables_tmangle-APOSTROUTING_oethl_mlayer7—17protoxunlei-dl92.168.2.5-jMARK-set-mark4iptables_tmangle-APOSTROUTING_oethl_mlayer7—17protoxunlei-dl92.168.2.5-jRETURN圖1:流量控制作用于iptables流程圖。權(quán)利要求1.一種基于tc和iptables17-filter的應(yīng)用層流量控制方法,其特征在于通過tc設(shè)置不同類型的網(wǎng)絡(luò)接口隊(duì)列,改變數(shù)據(jù)包發(fā)送的速率和優(yōu)先級。通過對Linux防火墻iptables添加L7-filter補(bǔ)丁,使防火墻能夠識別出各種應(yīng)用層協(xié)議的類型,并在iptables的mangle表中對數(shù)據(jù)包進(jìn)行標(biāo)記,一種標(biāo)記對應(yīng)一個(gè)具體的網(wǎng)絡(luò)接口隊(duì)列。這樣,同一種標(biāo)記的應(yīng)用層協(xié)議都會(huì)進(jìn)到同一個(gè)網(wǎng)絡(luò)接口隊(duì)列中,達(dá)到了流量控制的目的。全文摘要一種基于tc和iptables17-filter的應(yīng)用層流量控制方法,該方法通過tc設(shè)置不同類型的網(wǎng)絡(luò)接口隊(duì)列,改變數(shù)據(jù)包發(fā)送的速率和優(yōu)先級。通過對Linux防火墻iptables添加L7-filter補(bǔ)丁,使防火墻能夠識別出各種應(yīng)用層協(xié)議的類型,并在iptables的mangle表中對數(shù)據(jù)包進(jìn)行標(biāo)記,一種標(biāo)記對應(yīng)一個(gè)具體的網(wǎng)絡(luò)接口隊(duì)列。這樣,同一種標(biāo)記的應(yīng)用層協(xié)議都會(huì)進(jìn)到同一個(gè)網(wǎng)絡(luò)接口隊(duì)列中,達(dá)到了流量控制的目的。文檔編號H04L12/56GK102281185SQ201010199328公開日2011年12月14日申請日期2010年6月12日優(yōu)先權(quán)日2010年6月12日發(fā)明者王從勝申請人:王從勝