改進(jìn)及優(yōu)化Linux網(wǎng)絡(luò)協(xié)議棧_第1頁
改進(jìn)及優(yōu)化Linux網(wǎng)絡(luò)協(xié)議棧_第2頁
改進(jìn)及優(yōu)化Linux網(wǎng)絡(luò)協(xié)議棧_第3頁
改進(jìn)及優(yōu)化Linux網(wǎng)絡(luò)協(xié)議棧_第4頁
改進(jìn)及優(yōu)化Linux網(wǎng)絡(luò)協(xié)議棧_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

2、 于網(wǎng)絡(luò)硬件端口轉(zhuǎn)發(fā)、轉(zhuǎn)發(fā)端口與管理端口分離,與原有 Linux 網(wǎng)絡(luò)協(xié)議棧兼容的新的網(wǎng)絡(luò)協(xié)議棧。通過測試,利用該協(xié)議棧 實(shí)現(xiàn)的網(wǎng)絡(luò)安全平臺(tái)比基于傳統(tǒng) Linux 協(xié)議棧實(shí)現(xiàn)的網(wǎng)絡(luò)安全平臺(tái)性能有較大輻度的提升, 并可使網(wǎng)絡(luò)安全產(chǎn)品的設(shè)計(jì)更具緊 湊性與正交性。關(guān) 鍵 詞 Linux; 網(wǎng)絡(luò) ; 端口 ; 協(xié)議棧中圖分類號 TN918; O332 文獻(xiàn)標(biāo)識碼 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基金項(xiàng)目:國家 242信息安全計(jì)劃項(xiàng)目 (2005C47; 2006電子發(fā)展基金 (信部運(yùn) 634號 ;四川省科技攻關(guān)項(xiàng)目 (06GG0618作者簡介:童 浩 (1971 ,男,碩士生,主要從事信息安全、計(jì)算機(jī)網(wǎng)絡(luò)方面的研究;陳興蜀 (1968 ,女,博士,副教授,主要從事信息安全 方面的研究;嚴(yán) 宏 (1984 ,男,碩士

6、,主要從事信息安全、計(jì)算機(jī)網(wǎng)絡(luò)方面的研究 .目前國內(nèi)廣泛使用 X86+Linux 作為網(wǎng)絡(luò)防火墻 或其他類似安全設(shè)備的開發(fā)平臺(tái)。 X86架構(gòu)采用了 通用 CPU 和 PCI 總線接口, 具有很高的靈活性和可擴(kuò) 展性; Linux 作為開放源代碼的操作系統(tǒng),開發(fā)者具有良好的開發(fā)環(huán)境和系統(tǒng)源碼支持?;谠撈脚_(tái)的產(chǎn)品功能主要由軟件實(shí)現(xiàn),可以根據(jù)用戶的需求靈活調(diào)整功能模塊,因此它一直作為網(wǎng)絡(luò)安全設(shè)備開發(fā)的主要平臺(tái)。X86+Linux 架構(gòu)的缺點(diǎn):X86通用的計(jì)算平臺(tái)結(jié)構(gòu)層次較多,不易優(yōu)化; Linux 作為通用的操作系 統(tǒng),更多考慮的是系統(tǒng)的通用性,沒有對應(yīng)用作進(jìn) 一步的性能優(yōu)化。該平臺(tái)往往作為防火墻

7、低端產(chǎn)品 的開發(fā)平臺(tái) 1。隨著 CPU 性能的不斷提升,總線結(jié)構(gòu)的不斷發(fā) 展 2, X86+Linux 平臺(tái)上的網(wǎng)絡(luò)安全產(chǎn)品逐步向高 端發(fā)展。為與硬件平臺(tái)發(fā)展相適應(yīng),本文針對 Linux 操作系統(tǒng), 特別是對 Linux 網(wǎng)絡(luò)協(xié)議棧進(jìn)行了優(yōu)化與 改進(jìn),提高了系統(tǒng)的處理能力,使之能適應(yīng)網(wǎng)絡(luò)安 全發(fā)展的需求。 1 網(wǎng)絡(luò)安全設(shè)備實(shí)現(xiàn)及存在的問題許多網(wǎng)絡(luò)安全設(shè)備通常會(huì)采用 Linux 網(wǎng)絡(luò)協(xié)議 棧中的 netfilter 框架 3來實(shí)現(xiàn)。它將一個(gè)網(wǎng)卡作為內(nèi) 網(wǎng)口,另一個(gè)網(wǎng)卡作為外網(wǎng)口,當(dāng)數(shù)據(jù)從網(wǎng)口進(jìn)入 協(xié)議棧后,通過橋方式或路由方式實(shí)現(xiàn)數(shù)據(jù)包的轉(zhuǎn) 發(fā)。在數(shù)據(jù)包的轉(zhuǎn)發(fā)路徑上,通過 netfilter 框

8、架上的 鉤子點(diǎn) (PreRouting、 Forward 、 PostRouting 實(shí)現(xiàn)對數(shù) 據(jù)包的審查與處理 4。網(wǎng)絡(luò)安全平臺(tái)的功能模塊可分類為兩大部分:網(wǎng)絡(luò)數(shù)據(jù)的審查處理模塊與網(wǎng)絡(luò)數(shù)據(jù)的尋址路由模 塊。審查處理模塊可通過在 netfilter 框架中注冊鉤子 函數(shù),以實(shí)現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)包的審查處理 5;尋址路電 子 科 技 大 學(xué) 學(xué) 報(bào) 第 36卷 1494由模塊由協(xié)議棧中路由判決模塊和橋判決模塊 6來 實(shí)現(xiàn),用戶根據(jù)設(shè)備工作的不同環(huán)境配置確定設(shè)備 是路由模式還是橋模式。路由模式和橋模式都是解決數(shù)據(jù)包從哪個(gè)接口 進(jìn)入設(shè)備,又應(yīng)由哪個(gè)接口輸出的問題。這些工作 與網(wǎng)絡(luò)安全設(shè)備所關(guān)注的數(shù)據(jù)包的安

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

10、想的網(wǎng)絡(luò)安全設(shè)備的工作模式應(yīng)該是:數(shù)據(jù)包進(jìn) 入數(shù)據(jù)包審查處理數(shù)據(jù)包送出,并不希望協(xié)議 棧中除了網(wǎng)絡(luò)安全功能以外的其他部分對轉(zhuǎn)發(fā)的數(shù) 據(jù)包進(jìn)行處理及響應(yīng)。但在 Linux 協(xié)議棧中,只要目 標(biāo)地址是本機(jī)或者是與本機(jī)相關(guān)的多播、廣播包, 相應(yīng)的模塊就會(huì)作出響應(yīng)。 這是因?yàn)榈?Linux 協(xié)議棧 中的所有與本機(jī)相關(guān)的數(shù)據(jù)包都會(huì)通過棧中的 Input 、 Output 鏈接到達(dá)本機(jī)中的相應(yīng)模塊。本來只 想通過設(shè)備進(jìn)行轉(zhuǎn)發(fā)的數(shù)據(jù)包中的一些多播、廣播 包也會(huì)通過協(xié)議棧到達(dá)網(wǎng)絡(luò)安全設(shè)備本機(jī)。而對這 些數(shù)據(jù)包,特別是多播、廣播包處理響應(yīng)往往會(huì)影 響到網(wǎng)絡(luò)安全設(shè)備的正常運(yùn)行;同時(shí)設(shè)備對這些包 的回應(yīng),反過來又會(huì)

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

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

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

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

15、包到達(dá)指定網(wǎng)口時(shí),首先判斷快速轉(zhuǎn)發(fā)設(shè)備是否存 在, 該網(wǎng)卡是否加入了快速轉(zhuǎn)發(fā)的輸入輸出接口對, 是則進(jìn)入快速轉(zhuǎn)發(fā)模塊,遍歷本文定制的 netfilter 鉤 子點(diǎn), 然后通過 net_device數(shù)據(jù)結(jié)構(gòu)取得將要轉(zhuǎn)發(fā)的 網(wǎng)卡接口,對數(shù)據(jù)包 skb_buff中相應(yīng)的參數(shù)進(jìn)行設(shè) 置,交由網(wǎng)卡進(jìn)行發(fā)送,即實(shí)現(xiàn)數(shù)據(jù)包的快速轉(zhuǎn) 發(fā) 9,如圖 2所示。 圖 2 數(shù)據(jù)快速轉(zhuǎn)發(fā)流程圖電 子 科 技 大 學(xué) 學(xué) 報(bào) 第 36卷1496 3 性能測試本文對快速轉(zhuǎn)發(fā)協(xié)議棧與傳統(tǒng)協(xié)議棧的性能進(jìn) 行對比測試。測試平臺(tái)為:雙路 Intel Xeon Processor 3.0 G、 Intel E7520 芯片組, In

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

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

18、 考 文 獻(xiàn)1 李 燁 , 張紅旗 , 杜學(xué)繪 , 等 . 千兆防火墻技術(shù)分析和研 究 J. 微計(jì)算機(jī)信息 , 2006, 22(33: 103-105.2 孟 會(huì),劉雪峰 . PCI Express總線技術(shù)分析 J. 計(jì)算機(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. 網(wǎng) 絡(luò) 互 :網(wǎng) 橋 . 路 由 器 . 交 換機(jī) 和 互 聯(lián) 協(xié) 議 M. 高傳善 , 譯 . 北京 : 機(jī)械工業(yè)出版社 , 2001.8 CORBET J, KROAH-HARTMAN G, RUBINI A . Linux d

溫馨提示

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

最新文檔

評論

0/150

提交評論