防火墻帶寬控制技術的研究與實現(1)_第1頁
防火墻帶寬控制技術的研究與實現(1)_第2頁
防火墻帶寬控制技術的研究與實現(1)_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、防火墻帶寬控制技術的研究與實現(1)    摘要  隨著網絡應用的不斷豐富,人們對網絡服務質量提出了更高的要求,帶寬控制則日益受到人們的關注。本文深入研究了Linux系統下的帶寬控制工具TC,以及HTB隊列規定,針對防火墻中不同的應用和服務,實現了帶寬控制。     關鍵詞  QoS;TC;HTB;隊列;分類;過濾規則 1引言    隨著網絡多媒體技術的飛速發展,Internet上的多媒體應用層出不窮,如IP電話、視頻會議、視頻點播(VOD)、遠程教育等多媒體實時業

2、務;另外,電子商務作為一種新興的網絡經濟模式日益受到人們的青睞。同時,在很多企業的局域網內部,網絡應用也極為豐富,如MIS系統、Web服務、郵件服務,甚至還有數據流量較大的視頻點播等業務。面對網絡服務與應用的不斷增長,人們對其質量提出了更高的要求。    近年來,網絡帶寬不斷擴大,但是依然無法滿足網絡應用的要求。為此,帶寬控制逐漸為人們所關注。一般說來,企業內部網絡有足夠的帶寬可以使用。但是,企業接入Internet的帶寬是有限的。為了提高網絡帶寬的利用率,保證用戶關鍵性業務的正常運行,越來越多的企業和組織意識到了帶寬控制的重要性。  

3、0; QoS,即質量服務,是網絡中的一種安全機制, 用來解決網絡延遲和阻塞等問題。帶寬控制是實現QoS的重要組成部分,它根據源/目的端口(服務類型)、源/目的地址等數據包的關鍵字段,對網絡帶寬進行分類,限制每個分類中數據包發送的速率,從而達到控制網絡流量,保障關鍵業務帶寬的目的。    防火墻是目前最有效、使用最廣泛的網絡安全產品,它處于網絡的邊界處,而這里也是實現帶寬控制最合適的位置。本文深入分析了Linux下的帶寬控制工具TC,并且結合最新的HTB隊列規定和iptables工具,給出了在防火墻上實現帶寬控制的具體實現。2Linux下的帶寬控制工具TC 

4、;   TC(Traffic Control),即帶寬控制,是Linux中功能強大的帶寬控制工具。通過TC,可以很方便地管理網絡帶寬,實現QoS。TC擁有數據包分類、優先級設定、數據共享、輸入和輸出流量限制等多種功能。2.1  TC的結構    TC共分為三個模塊:隊列規定模塊、分類模塊和過濾模塊。它們之間的關系如圖1所示,隊列規定模塊是TC實現的基礎,在這個模塊中封裝了其它兩個模塊。而分類和過濾規則是實現TC的主體。2.1.1 隊列    每一個網絡接口上都可以綁定一個隊列規定,用于控制經過這個接口的數

5、據流。它把一條物理鏈路模擬成幾條更慢的鏈路或者把發出的不同類型的流量模擬成不同的連接。Linux內核中支持的隊列規定有許多。有些是不可以分類的,如FIFO,pfifo-fast,red,sfq,tbf,另一些是可以分類的,如CBQ、HTB、優先級隊列規定。其中,CBQ和HTB的功能最為豐富,它們可以為每個模擬鏈路設置優先級,優先級高的先發送;還可以實現鏈路共享,當一個分類上的帶寬空閑時可以借用給其它的分類;還有突發流量控制,速率限制等。如果一個接口上沒有綁定任何隊列,則使用默認的FIFO隊列。2.1.2 分類    在一個隊列上必須有一個主干分類,它擁有全部的帶寬

6、。在主干分類上可創建多個分類,每個分類可以再創建它們的子類,以此類推,但是每一個子類只能有一個父類。它們的主要作用是將數據流依據各種條件進行分類,便于對它們進行控制。針對各個不同的網絡接口可創建相同的分類,但是同一個接口上的分類不能相同。每個分類都分配了一定的帶寬值,屬于同一個父類的所有子類的帶寬總和不能超過父類的帶寬值。分類就好像是為數據包建立了幾條通道,而數據包的流向則由過濾規則來決定。2.1.3過濾規則    每一個分類可以設置一條或者多條過濾規則,每一條規則由兩部分組成:匹配和判決。匹配部分根據數據報的某些特征來區分數據報,如數據報的源IP地址、目地IP地

7、址,協議類型、TOS字節、網絡接口、端口等。如果沒有匹配到,就調用下一條過濾規則;如果匹配到了就通過判決部分來決定是將它丟棄、延遲還是傳入下層分類。目前,Linux可以使用的過濾器有:fwmark分類器,u32分類器,RSVP分類器等。其中,fwmark 分類器允許使用Linux netfilter代碼選擇流量,而u32分類器允許選擇基于ANY頭的流量。圖1隊列規定、分類和過濾模塊三者的關系2.2 TC的實現原理    TC將流經網絡接口的數據放入一個隊列中,對它們進行分類,并根據過濾規則把數據包放入每個分類的分隊列中,通過控制每個分隊列數據包發送的速率來限制每個

8、分類的帶寬。    首先,TC在網絡接口處綁定一個隊列規定,并為這個隊列創建多個分類,如果需要,還可以為每個分類創建多個子分類,每個子分類都有一個數據包分隊列,它們形成了一個樹型的結構(如圖1)。同屬一個父類的各個分類之間可以互相共享帶寬,當然在創建分類時也可以設置為不共享自己的帶寬。    其次,針對每個分類,設置一條或多條過濾規則與它相對應。當數據包進入分類后,相應的過濾規則根據數據包的各個字段或者標志位進行匹配,這些字段或者標志位中,有的是數據包創建的時候就有的,如源、目的端口,源、目的地址等;有些是在數據包進入系統時由ipta

9、bles命令設置的(用以區分不同的數據流),如mark值。當一個數據包被匹配后就會對它執行相應的判決,決定這個數據包是丟棄、延遲還是繼續流入下一層分類。    最后,所有沒有被丟棄,需要通過網絡接口發送的數據包都會被放入某個子類的分隊列中等待發送。TC按照不同的速率到每個隊列中取出數據包,交給網絡接口進行發送。每個分隊列都有它的優先級,優先級高(設置的數值低)的隊列先發送,當優先級高的隊列中的數據包全部發送完畢后,再發送優先級低的。也可以為分隊列設置其它排隊方法,防止優先級高的隊列長期占用網絡接口。3帶寬控制在防火墻中的實現3.1 隊列的選擇  

10、;  對于防火墻來說,選擇一個功能強大,適合具體應用環境的隊列規定有助于提高系統實現帶寬控制的成功率和精確度。相對于其它的隊列規定,CBQ和HTB提供了分類、鏈路共享、限速等豐富的功能,是構建帶寬控制模塊的首選隊列。    CBQ作為一個經歷長久考驗的排隊算法,它功能強大,且較早地被Linux所支持,有許多成功的實例。CBQ隊列在內核中依靠粗糙的計時信息來固定帶寬,雖然在一個較長的時間段內,可以維持很好的精度,但是在以秒為單位進行計量的時間段內,其結果就不準確了。CBQ是通過計算連接的空閑時間來限制帶寬的,如果要把某個應用的帶寬限制為整個帶寬的10%,則

11、這個應用的相關連接的空閑時間應為90%。其空閑時間的計算標準是數據包離隊事件發生的頻率和下層連接(數據鏈路層)的帶寬。當一個連接長期處于空閑時,就會造成對空閑時間計算的偏差,導致帶寬限制失效。雖然CBQ中也可以通過設定某些參數(如maxidle,minburst等)來糾正這個問題,但是由于糾正參數不止一個,且每一個參數的改變都會影響到其它參數,較為復雜。所以在這個問題上,CBQ始終無法很好地解決。    HTB是一個更好理解更容易掌握的可以快速替換CBQ隊列規定的隊列,它是CBQ的一個精簡改進版,繼承了CBQ的多項功能,去掉了一些復雜且不實用的部分。HTB可以實現帶寬分類、帶寬共享、設置優先級、設定突發流量等功能。更重要的是,HTB改變了限制帶寬的方法。它通過限制每個分隊列上數據包的發送速率來限制每個分類的帶寬。提高了帶寬限制的精確度。對于每一個網絡接口來說,同一時刻只能發送一個數據包,所以網絡接口處數據包的發送速率是一定的。HTB隊列規定通過在一個固定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論