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

下載本文檔

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

文檔簡介

1、第36卷第6期電子科技大學(xué)學(xué)報V 01.36 No.62007 年 12 月 Journalof Un iversity of Electro nic Scie nee and Tech no logy of Chi na Dec. 2007改 進及優(yōu) 化Lin ux網(wǎng)絡(luò)協(xié)議棧童浩,陳興蜀嚴宏(四川大學(xué)計算機學(xué)院成都610064【摘要】針對X86通用硬件平臺,分析了 Linux網(wǎng)絡(luò)協(xié)議棧工作原理及網(wǎng)絡(luò) 安全功能實現(xiàn)的機理,及基于Linux協(xié)議棧設(shè) 計與配置網(wǎng)絡(luò)安全平臺中存在的問題 對原有Lin ux網(wǎng)絡(luò)協(xié)議棧進行了改進及優(yōu)化,實現(xiàn)了一種適應(yīng)網(wǎng)絡(luò)安全平臺要求 的、基于網(wǎng)絡(luò)硬件端口轉(zhuǎn)發(fā)、轉(zhuǎn)發(fā)端口與

2、管理端口分離,與原有Linux網(wǎng)絡(luò)協(xié)議棧 兼容的新的網(wǎng)絡(luò)協(xié)議棧。通過測試,利用該協(xié)議棧 實現(xiàn)的網(wǎng)絡(luò)安全平臺比基于傳統(tǒng) Lin ux協(xié)議棧實現(xiàn)的網(wǎng)絡(luò)安全平臺性能有較大輻度的提升,并可使網(wǎng)絡(luò)安全產(chǎn)品的 設(shè)計更具緊湊性與正交性。關(guān)鍵詞Linux;網(wǎng)絡(luò);端口 ;協(xié)議棧中圖分類號TN918; O332文獻標識碼AImproved Network Protocol Stack of Li nux NetworkTONG Hao, CHEN Xin g-shu, YAN Hong(College of Computer Scie nee, Sichuan Un iversity Che ndu 610064

3、Abstract Focus ing on the X86 platform, this paper an alyzes the theory of Li nux n etwork protocol stack andthe mechanism of firewall under this architecture, The problems of designing theLinux protocol stack and con figuri ng secure n etwork platform are poin ted out. Then we in troduce a new Linu

4、x n etwork protocol stack which is based on the n etwork hardware port tran smissi on and the separati on of tran smissi on port and man agerial port. By test ing and compari ng to traditi onal Linux protocol stack, this tech no logy can greatly improve the performa nee of secure n etwork platform a

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

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

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

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

9、ac地址表的更新工作需花費大量的機器處理時間。對于大多數(shù)網(wǎng)絡(luò)安全設(shè)備而言,網(wǎng)絡(luò)安全平臺設(shè)備的 數(shù)據(jù)從一個端口流入,另一個端口流出,其流入端口和流出 端口是固定的,并不需要尋址和路由。對 于這類具有固定的流入流出端口的網(wǎng)絡(luò)安全平臺而 言,路由模塊和橋模塊完全是冗余的。如果能裁剪掉這部分不必要的尋址操作,將大大提高系統(tǒng)運行的效率。此外,網(wǎng)絡(luò)安全設(shè)備在路由模式下往往需要對工作的環(huán)境進行相應(yīng)的設(shè)置,而橋 模式雖然稱之為 透明模式”但其透明性只是相對于用戶而言,在設(shè)備內(nèi)部仍然需 要對多種協(xié)議進行配置,而這些配 置對用戶是不可見的,往往會給用戶帶來困惑。如 對網(wǎng)橋生成樹STP協(xié)議的處理7,當用戶設(shè)置STP

10、協(xié)議配置時,往往都沒有考慮到 工作在橋模式的網(wǎng)絡(luò) 安全設(shè)備也是一個橋設(shè)備,沒有考慮到網(wǎng)絡(luò)安全設(shè) 備內(nèi)部橋模 式的生成樹協(xié)議的設(shè)置狀態(tài)也會對網(wǎng)絡(luò) 系統(tǒng)產(chǎn)生影響。 又如IGMP多播包的設(shè)置, 平臺內(nèi)對 于IGMP多播報文的配置設(shè)置甚至?xí)绊懙秸麄€網(wǎng)絡(luò)的正常運行。這些設(shè)置都是在網(wǎng)絡(luò)安全設(shè)備廠商 構(gòu)建時配置確定的,對用戶不可見,用戶也不能對 這些 參數(shù)進行修改。這樣的網(wǎng)絡(luò)安全設(shè)備運行中往往會給網(wǎng)絡(luò)帶來各種奇怪的影響,而用戶卻根本不知道狀況發(fā)生的原因。同時,由于這樣的系統(tǒng)構(gòu)建十分復(fù)雜,容易給系 統(tǒng)設(shè)計帶來一些Bug。如在以前的版本中,支持構(gòu)建Vian網(wǎng)橋,但構(gòu) 建的Vlan橋中的STP生成樹協(xié)議不能通過

11、 Vlan橋廣播到其他的網(wǎng)絡(luò)端口,會給需 要Vlan及STP協(xié)議支持的網(wǎng)絡(luò)造成混亂。分析產(chǎn)生這些問題根源,是由于Linux通用的網(wǎng) 絡(luò)協(xié)議棧造成的。由于Linux 是一個通用的網(wǎng)絡(luò)系 統(tǒng),沒有考慮到網(wǎng)絡(luò)安全設(shè)備轉(zhuǎn)發(fā)數(shù)據(jù)的特殊需求。理想的網(wǎng)絡(luò)安全設(shè)備的工作模式應(yīng)該是:數(shù)據(jù)包進入一數(shù)據(jù)包審查處理一數(shù)據(jù)包送出,并不希 望協(xié)議 棧中除了網(wǎng)絡(luò)安全功能以外的其他部分對轉(zhuǎn)發(fā)的數(shù)據(jù)包進行處理及響應(yīng)。但在Linux協(xié)議棧中,只要目標地址是本機或者是與本機相關(guān)的多播、廣播包,相應(yīng) 的模塊就會作出響應(yīng)。這是因為到Linux協(xié)議棧中的所有與本機相關(guān)的數(shù)據(jù)包都 會通過棧中的In put、Output鏈接到達本機中的相應(yīng)

12、模塊。本來只 想通過設(shè)備進 行轉(zhuǎn)發(fā)的數(shù)據(jù)包中的一些多播、廣播包也會通過協(xié)議棧到達網(wǎng)絡(luò)安全設(shè)備本機。 而對這 些數(shù)據(jù)包,特別是多播、廣播包處理響應(yīng)往往會影響到網(wǎng)絡(luò)安全設(shè)備的正常運行;同時設(shè)備對這些包 的回應(yīng),反過來又會對網(wǎng)絡(luò)產(chǎn)生影響。在網(wǎng)絡(luò)中,這樣的多 播、廣播數(shù)據(jù)包是大量存在的,設(shè)備會給網(wǎng)絡(luò)帶來的許多不可預(yù)知的問題,使得基于 傳統(tǒng)的Lin ux協(xié)議棧構(gòu)造的網(wǎng)絡(luò)安全設(shè)備平臺的兼容性受到很大的影響。2建立快速轉(zhuǎn)發(fā)機制2.1實現(xiàn)原理及框架實際應(yīng)用中,許多網(wǎng)絡(luò)安全設(shè)備并不都需要路由和網(wǎng)橋的功能,只需將數(shù)據(jù)包從 一個網(wǎng)口接收,經(jīng)審查處理后到另一網(wǎng)口轉(zhuǎn)發(fā)即可,其輸入接口與 輸出接口都已指定 沒有必要對數(shù)據(jù)

13、包的流向進行 尋址。應(yīng)用中,由于每個到達Linux協(xié)議棧的數(shù)據(jù)包 都需要通過路由或網(wǎng)橋模塊,都需要對數(shù)據(jù)包進行 路由或網(wǎng)橋處理,并且還伴隨大量 路由表和網(wǎng)橋表 的更新工作,極大地降低了系統(tǒng)的性能。對這類應(yīng) 用中的路由及網(wǎng) 橋模塊進行修改和裁減十分必要。本文對傳統(tǒng)的Linux網(wǎng)絡(luò)協(xié)議棧進行了修改,建立了改進的網(wǎng)絡(luò)安全平臺協(xié)議棧。根據(jù)平臺需要,在原橋模塊和路由模塊的基礎(chǔ)上 增加了一個面向 端口的快速轉(zhuǎn)發(fā)模塊,如圖1所示。當數(shù)據(jù)包進入網(wǎng)絡(luò)協(xié)議棧時,首先判斷是否存在該網(wǎng)卡進行快速轉(zhuǎn)發(fā)設(shè)置,若是 則進入快速轉(zhuǎn) 發(fā)模塊,進行快速轉(zhuǎn)發(fā);否則,數(shù)據(jù)上傳,進入上層協(xié)議棧,進行橋處理或 路由處理,上層協(xié)議棧仍然保

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

15、沒有設(shè) 置為快速轉(zhuǎn)發(fā)接口,接口即將數(shù)據(jù)包轉(zhuǎn)入傳統(tǒng)網(wǎng)絡(luò)協(xié)議棧進行處理,不會影響平臺本身接收與發(fā)送網(wǎng)絡(luò)數(shù)據(jù)Oulput2 Pi-eRjoutLng:Font aidtUiilinLixt-JlXlk1>IJ處円怏此淪U N: rRfRnutu%SL 網(wǎng)洛圍k網(wǎng)吠rklrut/和'|LJ圖1改進后的Lin ux網(wǎng)絡(luò)協(xié)議棧從理論上講,在整個快速轉(zhuǎn)發(fā)的模塊中,對數(shù)據(jù)包的安全審查處理,只需要建立一 個鉤子(hook點,在該鉤子點上注冊審查處理模塊就可以了。但為與傳統(tǒng)n etfilter框架結(jié)構(gòu)保持一致,本文定制了三 個鉤子點,注冊在傳統(tǒng)netfilter框架結(jié)構(gòu)中的模塊都 可以不加修改地移植

16、在這三個鉤子點上。2.2具體實現(xiàn)方法在內(nèi)核中建立快速轉(zhuǎn)發(fā)虛擬設(shè)備fast_tra nsfer簡稱FT設(shè)備,FT設(shè)備中定義了快速轉(zhuǎn)發(fā)的接口對,將FT設(shè)備加入用于網(wǎng)絡(luò)設(shè)備管理的net_device8隊列,通過編寫ioctl命令對快速轉(zhuǎn)發(fā)虛擬設(shè)備對進行 初始化,確定快速 轉(zhuǎn)發(fā)的輸入輸出接口對。當數(shù)據(jù) 包到達指定網(wǎng)口時,首先判斷快速轉(zhuǎn)發(fā)設(shè)備是否存 在,該網(wǎng)卡是否加入了快速轉(zhuǎn)發(fā)的輸入輸出接口對,是則進入快速轉(zhuǎn)發(fā)模塊,遍歷本 文定制的netfilter鉤子點,然后通過net_device數(shù)據(jù)結(jié)構(gòu)取得將要轉(zhuǎn)發(fā)的 網(wǎng)卡接口, 對數(shù)據(jù)包skb_buff中相應(yīng)的參數(shù)進行設(shè) 置,交由網(wǎng)卡進行發(fā)送,即實現(xiàn)數(shù)據(jù)包的快速

17、 轉(zhuǎn)發(fā)9,如圖2所示。=?V-/恤理處理Output11FomaidOutputFcmTatdPreHnute ; ; j' > >執(zhí)和tiihVHT4r僅與處理屜滋快理轉(zhuǎn)發(fā)時零譏士kb *delilN對應(yīng)網(wǎng)bFonrainll V :|執(zhí)仃相隔的審件PrutRoute ':勺"'J:執(zhí)打扌I應(yīng)附審件與處理PRcutii略圖2數(shù)據(jù)快速轉(zhuǎn)發(fā)流程圖電子科技大學(xué)學(xué)報第36卷1496 3性能測試本文對快速轉(zhuǎn)發(fā)協(xié)議棧與傳統(tǒng)協(xié)議棧的性能進行對比測試。測試平臺為:雙路 In tel Xeon Processor 3.0 G In tel E7520 芯片組,In

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

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

20、1 李燁,張紅旗,杜學(xué)繪,等千兆防火墻技術(shù)分析和研 究J.微計算機信息, 2006, 22(33: 103-105.2 孟會,劉雪峰.PCI Express總線技術(shù)分析J.計算機工 程,2006, 32(23: 253255.3 SCHUYMER B D, FEDCHIK N. Ebtables/iptables in ter- action on a Linuxbased bridgeEB/OL. . sourceforge. net/br_fw_ia/br_fw_ia.pdf, 2003-1110.4 趙蔚.netfilter: Lin ux防火墻在內(nèi)核中的實現(xiàn)EB/OL. n/linu x/network/ l-netip, 2002-12-01. 5 RUSELL R, WELTE H. Linux netfilter hacking howto EB/O

溫馨提示

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

評論

0/150

提交評論