版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、防火墻帶寬控制技術(shù)的研究與實現(xiàn) 摘要 隨著網(wǎng)絡應用的不斷豐富,人們對網(wǎng)絡服務質(zhì)量提出了更高的要求,帶寬控制則日益受到人們的關注。本文深入研究了Linux系統(tǒng)下的帶寬控制工具TC,以及HTB隊列規(guī)定,針對防火墻中不同的應用和服務,實現(xiàn)了帶寬控制。 關鍵詞 QoS;TC;HTB;隊列;分類;過濾規(guī)則 1引言 隨著網(wǎng)絡多媒體技術(shù)的飛速發(fā)展,Internet上的多媒體應用層出不窮,如IP電話、視頻會議
2、、視頻點播(VOD)、遠程教育等多媒體實時業(yè)務;另外,電子商務作為一種新興的網(wǎng)絡經(jīng)濟模式日益受到人們的青睞。同時,在很多企業(yè)的局域網(wǎng)內(nèi)部,網(wǎng)絡應用也極為豐富,如MIS系統(tǒng)、Web服務、郵件服務,甚至還有數(shù)據(jù)流量較大的視頻點播等業(yè)務。面對網(wǎng)絡服務與應用的不斷增長,人們對其質(zhì)量提出了更高的要求。 近年來,網(wǎng)絡帶寬不斷擴大,但是依然無法滿足網(wǎng)絡應用的要求。為此,帶寬控制逐漸為人們所關注。一般說來,企業(yè)內(nèi)部網(wǎng)絡有足夠的帶寬可以使用。但是,企業(yè)接入Internet的帶寬是有限的。為了提高網(wǎng)絡帶寬的利用率,保證用戶關鍵性業(yè)務的正常運行,越來越多的企業(yè)和組織意識
3、到了帶寬控制的重要性。 QoS,即質(zhì)量服務,是網(wǎng)絡中的一種安全機制, 用來解決網(wǎng)絡延遲和阻塞等問題。帶寬控制是實現(xiàn)QoS的重要組成部分,它根據(jù)源/目的端口(服務類型)、源/目的地址等數(shù)據(jù)包的關鍵字段,對網(wǎng)絡帶寬進行分類,*每個分類中數(shù)據(jù)包發(fā)送的速率,從而達到控制網(wǎng)絡流量,保障關鍵業(yè)務帶寬的目的。 防火墻是目前最有效、使用最廣泛的網(wǎng)絡安全產(chǎn)品,它處于網(wǎng)絡的邊界處,而這里也是實現(xiàn)帶寬控制最合適的位置。本文深入分析了Linux下的帶寬控制工具TC,并且結(jié)合最新的HTB隊列規(guī)定和iptables工具,
4、給出了在防火墻上實現(xiàn)帶寬控制的具體實現(xiàn)。2Linux下的帶寬控制工具TC TC(Traffic Control),即帶寬控制,是Linux中功能強大的帶寬控制工具。通過TC,可以很方便地管理網(wǎng)絡帶寬,實現(xiàn)QoS。TC擁有數(shù)據(jù)包分類、優(yōu)先級設定、數(shù)據(jù)共享、輸入和輸出流量*等多種功能。2.1 TC的結(jié)構(gòu) TC共分為三個模塊:隊列規(guī)定模塊、分類模塊和過濾模塊。它們之間的關系如圖1所示,隊列規(guī)定模塊是TC實現(xiàn)的基礎,在這個模塊中封裝了其它兩個模塊。而分類和過濾規(guī)則是實現(xiàn)TC的主體
5、。 每一個網(wǎng)絡接口上都可以綁定一個隊列規(guī)定,用于控制經(jīng)過這個接口的數(shù)據(jù)流。它把一條物理鏈路模擬成幾條更慢的鏈路或者把發(fā)出的不同類型的流量模擬成不同的連接。Linux內(nèi)核中支持的隊列規(guī)定有許多。有些是不可以分類的,如FIFO,pfifo-fast,red,sfq,tbf,另一些是可以分類的,如CBQ、HTB、優(yōu)先級隊列規(guī)定。其中,CBQ和HTB的功能最為豐富,它們可以為每個模擬鏈路設置優(yōu)先級,優(yōu)先級高的先發(fā)送;還可以實現(xiàn)鏈路共享,當一個分類上的帶寬空閑時可以借用給其它的分類;還有突發(fā)流量控制,速率*等。如果一個接口上沒有綁定任何隊列,則使用默認的FI
6、FO隊列。 在一個隊列上必須有一個主干分類,它擁有全部的帶寬。在主干分類上可創(chuàng)建多個分類,每個分類可以再創(chuàng)建它們的子類,以此類推,但是每一個子類只能有一個父類。它們的主要作用是將數(shù)據(jù)流依據(jù)各種條件進行分類,便于對它們進行控制。針對各個不同的網(wǎng)絡接口可創(chuàng)建相同的分類,但是同一個接口上的分類不能相同。每個分類都分配了一定的帶寬值,屬于同一個父類的所有子類的帶寬總和不能超過父類的帶寬值。分類就好像是為數(shù)據(jù)包建立了幾條通道,而數(shù)據(jù)包的流向則由過濾規(guī)則來決定。 每一個分類可以設置一條或者多條過濾規(guī)則,每一條規(guī)則由
7、兩部分組成:匹配和判決。匹配部分根據(jù)數(shù)據(jù)報的某些特征來區(qū)分數(shù)據(jù)報,如數(shù)據(jù)報的源IP地址、目地IP地址,協(xié)議類型、TOS字節(jié)、網(wǎng)絡接口、端口等。如果沒有匹配到,就調(diào)用下一條過濾規(guī)則;如果匹配到了就通過判決部分來決定是將它丟棄、延遲還是傳入下層分類。目前,Linux可以使用的過濾器有:fwmark分類器,u32分類器,RSVP分類器等。其中,fwmark 分類器允許使用Linux netfilter代碼選擇流量,而u32分類器允許選擇基于ANY頭的流量。圖1隊列規(guī)定、分類和過濾模塊三者的關系2.2 TC的實現(xiàn)原理 TC將流
8、經(jīng)網(wǎng)絡接口的數(shù)據(jù)放入一個隊列中,對它們進行分類,并根據(jù)過濾規(guī)則把數(shù)據(jù)包放入每個分類的分隊列中,通過控制每個分隊列數(shù)據(jù)包發(fā)送的速率來*每個分類的帶寬。 首先,TC在網(wǎng)絡接口處綁定一個隊列規(guī)定,并為這個隊列創(chuàng)建多個分類,如果需要,還可以為每個分類創(chuàng)建多個子分類,每個子分類都有一個數(shù)據(jù)包分隊列,它們形成了一個樹型的結(jié)構(gòu)(如圖1)。同屬一個父類的各個分類之間可以互相共享帶寬,當然在創(chuàng)建分類時也可以設置為不共享自己的帶寬。 其次,針對每個分類,設置一條或多條過濾規(guī)則與它相對應。當數(shù)據(jù)包進入分類后,相應的過濾規(guī)則根
9、據(jù)數(shù)據(jù)包的各個字段或者標志位進行匹配,這些字段或者標志位中,有的是數(shù)據(jù)包創(chuàng)建的時候就有的,如源、目的端口,源、目的地址等;有些是在數(shù)據(jù)包進入系統(tǒng)時由iptables命令設置的(用以區(qū)分不同的數(shù)據(jù)流),如mark值。當一個數(shù)據(jù)包被匹配后就會對它執(zhí)行相應的判決,決定這個數(shù)據(jù)包是丟棄、延遲還是繼續(xù)流入下一層分類。 最后,所有沒有被丟棄,需要通過網(wǎng)絡接口發(fā)送的數(shù)據(jù)包都會被放入某個子類的分隊列中等待發(fā)送。TC按照不同的速率到每個隊列中取出數(shù)據(jù)包,交給網(wǎng)絡接口進行發(fā)送。每個分隊列都有它的優(yōu)先級,優(yōu)先級高(設置的數(shù)值低)的隊列先發(fā)送,當優(yōu)先級高的隊列中的數(shù)據(jù)包全
10、部發(fā)送完畢后,再發(fā)送優(yōu)先級低的。也可以為分隊列設置其它排隊方法,防止優(yōu)先級高的隊列長期占用網(wǎng)絡接口。3帶寬控制在防火墻中的實現(xiàn)3.1 隊列的選擇 對于防火墻來說,選擇一個功能強大,適合具體應用環(huán)境的隊列規(guī)定有助于提高系統(tǒng)實現(xiàn)帶寬控制的成功率和精確度。相對于其它的隊列規(guī)定,CBQ和HTB提供了分類、鏈路共享、限速等豐富的功能,是構(gòu)建帶寬控制模塊的首選隊列。 CBQ作為一個經(jīng)歷長久考驗的排隊算法,它功能強大,且較早地被Linux所支持,有許多成功的實例。CBQ隊列在內(nèi)核中依靠粗糙的計時信息來固定帶
11、寬,雖然在一個較長的時間段內(nèi),可以維持很好的精度,但是在以秒為單位進行計量的時間段內(nèi),其結(jié)果就不準確了。CBQ是通過計算連接的空閑時間來*帶寬的,如果要把某個應用的帶寬*為整個帶寬的10%,則這個應用的相關連接的空閑時間應為90%。其空閑時間的計算標準是數(shù)據(jù)包離隊事件發(fā)生的頻率和下層連接(數(shù)據(jù)鏈路層)的帶寬。當一個連接長期處于空閑時,就會造成對空閑時間計算的偏差,導致帶寬*失效。雖然CBQ中也可以通過設定某些參數(shù)(如maxidle,minburst等)來糾正這個問題,但是由于糾正參數(shù)不止一個,且每一個參數(shù)的改變都會影響到其它參數(shù),較為復雜。所以在這個問題上,CBQ始終無法很好地解決。
12、; HTB是一個更好理解更容易掌握的可以快速替換CBQ隊列規(guī)定的隊列,它是CBQ的一個精簡改進版,繼承了CBQ的多項功能,去掉了一些復雜且不實用的部分。HTB可以實現(xiàn)帶寬分類、帶寬共享、設置優(yōu)先級、設定突發(fā)流量等功能。更重要的是,HTB改變了*帶寬的方法。它通過*每個分隊列上數(shù)據(jù)包的發(fā)送速率來*每個分類的帶寬。提高了帶寬*的精確度。對于每一個網(wǎng)絡接口來說,同一時刻只能發(fā)送一個數(shù)據(jù)包,所以網(wǎng)絡接口處數(shù)據(jù)包的發(fā)送速率是一定的。HTB隊列規(guī)定通過在一個固定時間段內(nèi)從每個分類的分隊列中取出的數(shù)據(jù)包個數(shù)來決定該分類的帶寬。取的數(shù)據(jù)包數(shù)越多,則分配給它的帶寬就越大。這就很
13、好地解決了CBQ對帶寬*不精確的問題。所以說,在防火墻的帶寬控制模塊中,選擇HTB作為隊列規(guī)定是高效而且實用的。3.2 TC實現(xiàn)的位置 TC在系統(tǒng)中的具體位置如圖2所示,數(shù)據(jù)包流入系統(tǒng)后,進行路由選擇:如果接收包的目的IP是本主機,那么將該包送給上層處理;否則需要進行轉(zhuǎn)發(fā),將接收包交到轉(zhuǎn)發(fā)模塊處理。轉(zhuǎn)發(fā)模塊同時也接收本主機上層(TCP/UDP等)產(chǎn)生的包。轉(zhuǎn)發(fā)模塊通過查看路由表,決定包的下一跳。然后,對包進行排列以便將它們傳送到輸出接口。TC正是在排列數(shù)據(jù)包時進行處理和實現(xiàn)的。 圖2TC在數(shù)據(jù)包流程中的位置3.3
14、160; iptables的作用 iptables是Linux-2.4核心以后才支持的一個包過濾工具,它與netfilter相配合,共同組成了防火墻的核心部分。有關iptables工具的相關知識請大家查閱相關資料,此處不再贅述了。iptales在這里的主要作用是為實現(xiàn)細粒度的帶寬控制作好準備工作。它通過強大的匹配功能,對數(shù)據(jù)包的源/目的地址、源/目的端口、協(xié)議類型、傳輸方向、時間段等特征進行檢查,并為匹配到的數(shù)據(jù)包打上mark值。TC的過濾規(guī)則與iptables規(guī)則通過mark值進行關聯(lián),共同決定數(shù)據(jù)包歸屬于哪個分類。3.4 具
15、體實例 為了在防火墻中實現(xiàn)帶寬控制,我們將結(jié)合iptbales工具,通過設置iptables規(guī)則對基于源IP 地址、目的IP地址、協(xié)議、服務、方向、時間段的不同數(shù)據(jù)流進行細粒度的帶寬策略管理,通過對每一個粒度元素的設定可以滿足對極精細流量的控制要求。假設防火墻架設在公司的出口處。為了保障公司專用服務的帶寬,在周一至周五的9:0017:00時間段內(nèi),要把WWW和FTP這兩個常用服務的帶寬分別控制在20M和10M。帶寬分配情況如圖3所示:圖3帶寬分配 (1)tc qdisc a
16、dd dev eth0 root handle 1:0 htb default 24 (2)tc class add dev eth0 parent 1:0 classid 1:1 htb rate 100Mbit ceil 100Mbit prio 0 (3)tc
17、class add dev eth0 parent 1:1 classid 1:11 htb rate 30Mbit ceil 30Mbit prio 1 (4)tc class add dev eth0 parent 1:1 classid 1:12 htb rate 70Mbit ceil
18、 70Mbitprio 1 (5)tc class add dev eth0 parent 1:11 classid 1:20 htb rate 20Mbit ceil 30Mbit prio 2 (6)tc class add dev eth0 parent 1:
19、11 classid 1:21 htb rate 10Mbit ceil 30Mbit prio 2 (7)tc qdisc add dev eth0 parent 1:12 handle 112:0 sfq perturb 5 (8)tc qdisc add dev
20、;eth0 parent 1:20 handle 113:0 sfq perturb 5 (9)tc qdisc add dev eth0 parent 1:21 handle 114:0 sfq perturb 5 (10)tc filter add dev eth0 par
21、ent 1:0 protocol ip prio 1 handle 1 fw classid 1:12 (11)tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 2 fw classid 1:20 &
22、#160;(12)tc filter add dev eth0 parent 1:0 protocol ip prio 3 handle 3 fw classid 1:21 第1行命令為網(wǎng)絡接口eth0綁定一個htb隊列,并且指定了一個名稱為handle的句柄1:0, 這個名稱用于標識它下面的子類, default 24 的意思是沒有被分類的流量被分配到類1:2
23、4。第2行命令為剛才建立的隊列建一個主干類,帶寬為100M,最大速率為100M,優(yōu)先級為0(最高),HTB規(guī)定主干類之間不能互相借用帶寬,但是一個父類的所有子類之間可以借用帶寬。第3行為通用服務建立一個分類,帶寬為30M,最大速率為30M,優(yōu)先級為1。 第4行命令為專用服務建立一個分類,帶寬為70M,最大速率為70M,優(yōu)先級為1。由于以上兩條命令的rate值和ceil值相等,所以它們不允許自已的帶寬外借。后兩行為WWW和FTP服務分別創(chuàng)建子類,它們的父類為通用服務。為WWW服務子分類分配的帶寬為20M,為FTP服務子分類分配10M的帶寬。優(yōu)先級都為
24、2。他們的ceil值與父類的相同,都比自己的rate值高,所以它們的帶寬可以互相借用,且僅限于它們之間。第7、8、9行分別為專用服務、WWW服務和FTP服務建立一個分隊列,并使用隨機公平算法(sfp)把所有的數(shù)據(jù)包映射到幾個分隊列中去,“perturb 5”表示每隔5秒重新配置一次散列算法。數(shù)據(jù)包按照各分隊列輪轉(zhuǎn)的方式發(fā)送,防止優(yōu)先級高的專用服務長期占有網(wǎng)絡接口而使其它兩種服務完全無法使用。在一定時間段內(nèi),每個分隊列所發(fā)出的數(shù)據(jù)包的個數(shù)由分配給該分類的帶寬值所決定,帶寬值越大,所發(fā)出的包的數(shù)量就越多。最后三行為三個帶寬分類分別設置過濾規(guī)則,其中的handle值所對應的就是iptabl
25、es規(guī)則所設置的mark值。 (1)iptables t mangle A PREROUTING p tcp m tcp -dport 1234 m time -timestart 9:00 -timestop 17:00 -days Mon,Tue,Wed,Thu,Fri -j MARK -set-mark 1
26、0; (2)iptables t mangle A PREROUTING p tcp m tcp -dport 80 m time -timestart 9:00 -timestop 17:00 -days Mon,Tue,Wed,Thu,Fri -j MARK -set-mark 2 (3)ipt
27、ables t mangle A PREROUTING p tcp m tcp -dport 21 m time -timestart 9:00 -timestop 17:00 -days Mon,Tue,Wed,Thu,Fri -j MARK -set-mark 3 以上三條iptables規(guī)則分別將專有服務(端口值為1234)、
28、WWW服務(端口值為80)、FTP服務(端口值為21) 在周一至周五9:00到17:00時間段內(nèi)的數(shù)據(jù)包的mark值設為1、2、3。正好與TC過濾規(guī)則中的handle值相對應。4利用TTCPW測試工具驗證帶寬控制的效果 TTCPW是Windows下的網(wǎng)絡性能(主要指吞吐量)測試工具,采用P2P模式。從一端內(nèi)存生成要傳送的數(shù)據(jù),通過網(wǎng)絡傳送后,由另一端收下來。數(shù)據(jù)包接收后無需寫到磁盤,直接丟棄,既方便,又實用,更不受磁盤讀寫速度的影響,測試結(jié)果比較真實。下面,我們通過它來測試上面的實例,并給出相應的測試結(jié)果。測試環(huán)境如圖4所示,網(wǎng)絡環(huán)境是百
29、兆的局域網(wǎng)。圖4TTCPW測試環(huán)境其中-r表示接收端,-t表示發(fā)送端,-s如果是發(fā)送端就表示產(chǎn)生并發(fā)送數(shù)據(jù)包到網(wǎng)絡,如果是接收端則表示收到后丟棄數(shù)據(jù)包,-p如果是發(fā)送端就表示目的端口,如果是接收端就表示接收端口,-n表示發(fā)送數(shù)據(jù)包的個數(shù),最后為接收端的IP地址。在設與不設帶寬控制兩種情況下,用TTCPW測試結(jié)果統(tǒng)計如下:時間WWW服務帶寬(KB/S)轉(zhuǎn)換后帶寬值(Mb/s)FTP服務帶寬值(KB/S)轉(zhuǎn)換后帶寬值(Mb/s)總帶寬值(Mb/s)204802.5038.425137.5041.1079.52305878.7347.034566.2536.5383.56405843.7546.754817.5038.5485.29504871.2638.975431.2543.4582.42605383.7743.075535.0144.2887.35平均5356.0142.855097.5040.7883.63表1不設帶寬控制的測試結(jié)果時間WWW服務帶寬(KB/S)轉(zhuǎn)換后帶寬值(Mb/s)FTP服務帶寬(KB/S)轉(zhuǎn)換后帶寬值(Mb/s)總帶寬(Mb/s)誤差(Mb/s)誤差率202625.3921.001295.3810.3631.361.364.5%302586.3720.691328.5210.6331.3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)文化展示系統(tǒng)合作協(xié)議書
- 2025年農(nóng)產(chǎn)品初加工機械合作協(xié)議書
- 八年級英語下冊 Unit 9 單元綜合測試卷(人教河南版 2025年春)
- 人教版 七年級英語下冊 UNIT 5 單元綜合測試卷(2025年春)
- 完整版幼兒園大班加減混合運算
- 公司之間合作協(xié)議書范本模板
- 2025年鄉(xiāng)村山地承包合同標準版本(三篇)
- 2025年個人貸款保證合同(2篇)
- 2025年產(chǎn)學研校企合作協(xié)議標準版本(4篇)
- 2025年個人汽車抵押合同樣本(2篇)
- 2024年網(wǎng)格員考試題庫完美版
- 《建筑與市政工程防水規(guī)范》解讀
- 審計合同終止協(xié)議書(2篇)
- 2024年重慶市中考數(shù)學試題B卷含答案
- 腰椎間盤突出癥護理查房
- 醫(yī)生給病人免責協(xié)議書(2篇)
- 外購外協(xié)管理制度
- 人教版(2024年新教材)七年級上冊英語Unit 7 Happy Birthday 單元整體教學設計(5課時)
- 2024變電站無人機巡檢系統(tǒng)規(guī)范第1部分:技術(shù)規(guī)范
- 機動車商業(yè)保險條款(2020版)
- 《大小比較》(說課課件)二年級下冊數(shù)學西師大版
評論
0/150
提交評論