改進及優化Linux網絡協議棧_第1頁
改進及優化Linux網絡協議棧_第2頁
改進及優化Linux網絡協議棧_第3頁
改進及優化Linux網絡協議棧_第4頁
改進及優化Linux網絡協議棧_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第 36卷 第 6期 電 子 科 技 大 學 學 報 V ol.36 No.62007年 12月 Journalof University of Electronic Science and Technology of China Dec. 2007 改進及優化 Linux 網絡協議棧童 浩,陳興蜀,嚴 宏(四川大學計算機學院 成都 610064【 摘要 】 針對 X86通用硬件平臺,分析了 Linux 網絡協議棧工作原理及網絡安全功能實現的機理,及基于 Linux 協議棧設 計與配置網絡安全平臺中存在的問題,對原有 Linux 網絡協議棧進行了改進及優化,實現了一種適應網絡安全平臺要求的、基

2、 于網絡硬件端口轉發、轉發端口與管理端口分離,與原有 Linux 網絡協議棧兼容的新的網絡協議棧。通過測試,利用該協議棧 實現的網絡安全平臺比基于傳統 Linux 協議棧實現的網絡安全平臺性能有較大輻度的提升, 并可使網絡安全產品的設計更具緊 湊性與正交性。關 鍵 詞 Linux; 網絡 ; 端口 ; 協議棧中圖分類號 TN918; O332 文獻標識碼 AImproved Network Protocol Stack of Linux NetworkTONG Hao, CHEN Xing-shu, YAN Hong(College of Computer Science, Sichuan U

3、niversity Chendu 610064Abstract Focusing on the X86 platform, this paper analyzes the theory of Linux network protocol stack andthe mechanism of firewall under this architecture, The problems of designing the Linux protocol stack and configuring secure network platform are pointed out. Then we intro

4、duce a new Linux network protocol stack which is based on the network hardware port transmission and the separation of transmission port and managerial port. By testing and comparing to traditional Linux protocol stack, this technology can greatly improve the performance of secure network platform a

5、nd it makes the design of secure network products more compactness and orthogonality.Key words Linux; network; port; stack收稿日期:2007 05 30基金項目:國家 242信息安全計劃項目 (2005C47; 2006電子發展基金 (信部運 634號 ;四川省科技攻關項目 (06GG0618作者簡介:童 浩 (1971 ,男,碩士生,主要從事信息安全、計算機網絡方面的研究;陳興蜀 (1968 ,女,博士,副教授,主要從事信息安全 方面的研究;嚴 宏 (1984 ,男,碩士

6、,主要從事信息安全、計算機網絡方面的研究 .目前國內廣泛使用 X86+Linux 作為網絡防火墻 或其他類似安全設備的開發平臺。 X86架構采用了 通用 CPU 和 PCI 總線接口, 具有很高的靈活性和可擴 展性; Linux 作為開放源代碼的操作系統,開發者具有良好的開發環境和系統源碼支持。基于該平臺的產品功能主要由軟件實現,可以根據用戶的需求靈活調整功能模塊,因此它一直作為網絡安全設備開發的主要平臺。X86+Linux 架構的缺點:X86通用的計算平臺結構層次較多,不易優化; Linux 作為通用的操作系 統,更多考慮的是系統的通用性,沒有對應用作進 一步的性能優化。該平臺往往作為防火墻

7、低端產品 的開發平臺 1。隨著 CPU 性能的不斷提升,總線結構的不斷發 展 2, X86+Linux 平臺上的網絡安全產品逐步向高 端發展。為與硬件平臺發展相適應,本文針對 Linux 操作系統, 特別是對 Linux 網絡協議棧進行了優化與 改進,提高了系統的處理能力,使之能適應網絡安 全發展的需求。 1 網絡安全設備實現及存在的問題許多網絡安全設備通常會采用 Linux 網絡協議 棧中的 netfilter 框架 3來實現。它將一個網卡作為內 網口,另一個網卡作為外網口,當數據從網口進入 協議棧后,通過橋方式或路由方式實現數據包的轉 發。在數據包的轉發路徑上,通過 netfilter 框

8、架上的 鉤子點 (PreRouting、 Forward 、 PostRouting 實現對數 據包的審查與處理 4。網絡安全平臺的功能模塊可分類為兩大部分:網絡數據的審查處理模塊與網絡數據的尋址路由模 塊。審查處理模塊可通過在 netfilter 框架中注冊鉤子 函數,以實現對網絡數據包的審查處理 5;尋址路電 子 科 技 大 學 學 報 第 36卷 1494由模塊由協議棧中路由判決模塊和橋判決模塊 6來 實現,用戶根據設備工作的不同環境配置確定設備 是路由模式還是橋模式。路由模式和橋模式都是解決數據包從哪個接口 進入設備,又應由哪個接口輸出的問題。這些工作 與網絡安全設備所關注的數據包的安

9、全審查處理無 關。由于每個數據包都需要進行尋址路由,當數據 流量較大時,尋址路由操作及相關的路由表、 mac 地址表的更新工作需花費大量的機器處理時間。對 于大多數網絡安全設備而言,網絡安全平臺設備的 數據從一個端口流入,另一個端口流出,其流入端 口和流出端口是固定的,并不需要尋址和路由。對 于這類具有固定的流入流出端口的網絡安全平臺而 言,路由模塊和橋模塊完全是冗余的。如果能裁剪 掉這部分不必要的尋址操作,將大大提高系統運行 的效率。分析產生這些問題根源, 是由于 Linux 通用的網 絡協議棧造成的。由于 Linux 是一個通用的網絡系 統, 沒有考慮到網絡安全設備轉發數據的特殊需求。 理

10、想的網絡安全設備的工作模式應該是:數據包進 入數據包審查處理數據包送出,并不希望協議 棧中除了網絡安全功能以外的其他部分對轉發的數 據包進行處理及響應。但在 Linux 協議棧中,只要目 標地址是本機或者是與本機相關的多播、廣播包, 相應的模塊就會作出響應。 這是因為到 Linux 協議棧 中的所有與本機相關的數據包都會通過棧中的 Input 、 Output 鏈接到達本機中的相應模塊。本來只 想通過設備進行轉發的數據包中的一些多播、廣播 包也會通過協議棧到達網絡安全設備本機。而對這 些數據包,特別是多播、廣播包處理響應往往會影 響到網絡安全設備的正常運行;同時設備對這些包 的回應,反過來又會

11、對網絡產生影響。在網絡中, 這樣的多播、廣播數據包是大量存在的,設備會給 網絡帶來的許多不可預知的問題,使得基于傳統的 Linux 協議棧構造的網絡安全設備平臺的兼容性受 到很大的影響。2 建立快速轉發機制2.1 實現原理及框架實際應用中,許多網絡安全設備并不都需要路 由和網橋的功能,只需將數據包從一個網口接收, 經審查處理后到另一網口轉發即可,其輸入接口與 輸出接口都已指定,沒有必要對數據包的流向進行 尋址。應用中,由于每個到達 Linux 協議棧的數據包 都需要通過路由或網橋模塊,都需要對數據包進行 路由或網橋處理,并且還伴隨大量路由表和網橋表 的更新工作,極大地降低了系統的性能。對這類應

12、 用中的路由及網橋模塊進行修改和裁減十分必要。 本文對傳統的 Linux 網絡協議棧進行了修改, 建 立了改進的網絡安全平臺協議棧。根據平臺需要, 在原橋模塊和路由模塊的基礎上,增加了一個面向 端口的快速轉發模塊,如圖 1所示。當數據包進入網絡協議棧時,首先判斷是否存 在該網卡進行快速轉發設置,若是,則進入快速轉 發模塊,進行快速轉發;否則,數據上傳,進入上 層協議棧,進行橋處理或路由處理,上層協議棧仍 然保持傳統 Linux 協議棧不變,以保持兼容性。 為了防止網絡安全設備與網絡的相互影響,本 文將網絡安全設備的數據轉發端口與設備管理端口 分開。對經由數據轉發端口通過網絡安全設備的數 據包,

13、 不送入網絡安全設備的上層協議 (應用層 進行 處理。因此,在設計轉發模塊時,不再提供 Input 和 Output 鏈入本機,防止了轉發的數據包對設備內部 參數設置的依賴,避免設備內部設置與網絡的相互 影響。管理安全設備所需數據包,統一通過管理接 口進行接收發送。當需要對網絡安全平臺進行管理 時,數據包從管理口進入本機時,首先判斷接口有第 6期 童 浩 等 : 改進及優化 Linux 網絡協議棧 1495無進行快速轉發的設置,由于本文的管理口沒有設 置為快速轉發接口,接口即將數據包轉入傳統網絡協議棧進行處理,不會影響平臺本身接收與發送網 絡數據。 圖 1 改進后的 Linux 網絡協議棧從理

14、論上講,在整個快速轉發的模塊中,對數 據包的安全審查處理,只需要建立一個鉤子 (hook點,在該鉤子點上注冊審查處理模塊就可以了。但 為與傳統 netfilter 框架結構保持一致,本文定制了三 個鉤子點,注冊在傳統 netfilter 框架結構中的模塊都 可以不加修改地移植在這三個鉤子點上。 2.2 具體實現方法在內核中建立快速轉發虛擬設備 fast_transfer (簡稱 FT 設備, FT 設備中定義了快速轉發的接口對, 將 FT 設備加入用于網絡設備管理的 net_device8隊 列,通過編寫 ioctl 命令對快速轉發虛擬設備對進行 初始化,確定快速轉發的輸入輸出接口對。當數據

15、包到達指定網口時,首先判斷快速轉發設備是否存 在, 該網卡是否加入了快速轉發的輸入輸出接口對, 是則進入快速轉發模塊,遍歷本文定制的 netfilter 鉤 子點, 然后通過 net_device數據結構取得將要轉發的 網卡接口,對數據包 skb_buff中相應的參數進行設 置,交由網卡進行發送,即實現數據包的快速轉 發 9,如圖 2所示。 圖 2 數據快速轉發流程圖電 子 科 技 大 學 學 報 第 36卷1496 3 性能測試本文對快速轉發協議棧與傳統協議棧的性能進 行對比測試。測試平臺為:雙路 Intel Xeon Processor 3.0 G、 Intel E7520 芯片組, In

16、tel 82571 EB, PCI-E 網絡控 制器。測試方式:Smartbits 6 000 吞吐量項目 10。從圖 3的測試結果中可以看到, 基于網絡接口的 快速轉發協議棧效率明顯高于其他兩種方式。 Avg % passed(快速 Avg % passed(網橋 Avg % passed(路由 Frame size/BP a s s e d R a t e /(%圖 3 吞吐量對比圖在實際上線測試中 (四川大學校園網 , 該設備實 現了設備的透明上線與轉發,不需要對設備周邊環 境的設置作任何改變。4 總 結本文對傳統 Linux 協議棧進行了改進, 實現對網 絡協議棧中基于端口的快速轉發,

17、使網絡數據包轉 發處理更加簡潔,提高了設備運行效率;將實現轉 發接口與管理接口分離,在轉發路徑上不再提供到 達本機的路徑。通過隔離,提高了網絡安全設備在 轉發數據時的透明性,隔離了轉發接口的廣播包對 設備本身的影響,消除了網絡安全設備對轉發數據 響應帶給網絡的不可預測的影響;同時在進行網絡安全功能設計時,只需考慮對網絡數據包中感興趣 的內容審查處理,不用再考慮網絡傳送的數據包對 本機的影響,更不用關注對網絡安全平臺中路由、 橋等相關協議參數的設置。在這樣的協議棧上設計 網絡安全設備,可以更專注于相關安全功能模塊的 設計,使整個模塊更加清晰、簡潔,提高了整個網 絡安全支持平臺的緊湊性和正交性。參

18、 考 文 獻1 李 燁 , 張紅旗 , 杜學繪 , 等 . 千兆防火墻技術分析和研 究 J. 微計算機信息 , 2006, 22(33: 103-105.2 孟 會,劉雪峰 . PCI Express總線技術分析 J. 計算機工 程 , 2006, 32(23: 253-255.3 SCHUYMER B D, FEDCHIK N. Ebtables/iptables inter- action on a Linux based bridgeEB/OL. http:/ebtables. 2003-11-10.7 PERLMAN D. 網 絡 互 :網 橋 . 路 由 器 . 交 換機 和 互 聯 協 議 M. 高傳善 , 譯 . 北京 : 機械工業出版社 , 2001.8 CORBET J, KROAH-HARTMAN G, RUBINI A . Linux d

溫馨提示

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

評論

0/150

提交評論