999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

IVI翻譯機制在Netfilter框架中的設計與實現*

2012-10-08 01:59:04王相林沈清姿陳國峰
電信科學 2012年11期
關鍵詞:用戶

王相林,朱 晨,沈清姿,陳國峰

(杭州電子科技大學計算機學院 杭州 310018)

1 引言

隨著人們對網絡應用及其服務性能要求的提高,IPv4(internet protocol version 4)[1]顯現出許多難以克服的不足,IPv4向下一代網絡協議 IPv6(internet protocol version 6)[2~4]的過渡刻不容緩。由于IPv4向IPv6的過渡得經歷一段相當長的時間,所以在短時間內Intranet不可能實現將所有資源轉移至IPv6,如何選取一種IPv6過渡策略,實現IPv4向IPv6的平滑過渡成為目前所必須面對的重要問題。2008年12月,李星教授團隊提出了“基于無狀態地址映射的IPv4與IPv6網絡互連技術——IVI”[5~7],IVI翻譯機制可以實現純IPv6節點與純IPv4節點之間的相互通信,且具有高效的翻譯性能。本文的設計思路是基于Netfilter框架以擴展模塊形式配合使用Xtables-addons插件,在Linux內核中實現了IVI翻譯機制,并對其匹配模塊、目標模塊兩大模塊的具體實現進行詳細分析,并將其應用于真實網絡中進行測試,為Intranet設計實現了一種相對平滑的IPv6過渡方案。

2 IPv4向IPv6過渡技術的研究現狀及進展

在IPv4網絡向IPv6網絡過渡的時期,改變整個網絡硬件基礎架構顯得很困難,而通過軟件形式來更新則顯得相對容易且更加實際。在這期間產生了多種過渡策略,IVI過渡策略就是其中重要的一種。

2.1 主要的過渡技術

(1)雙協議棧技術

雙協議棧(dual stack)技術[8]是主機在同一網絡接口上同時啟用IPv4與IPv6協議棧,并分別配置IPv4地址與IPv6地址,然后通過這兩套協議棧來各自訪問IPv4網絡和IPv6網絡。當數據分組屬于IPv4網絡時,就走IPv4協議棧流程,而當數據分組是IPv6網絡時,則通過IPv6協議棧,兩種協議同時存在,互不影響[9,10]。

(2)隧道技術

隧道技術[11]是一種利用現有IPv4網絡來傳遞IPv6數據分組的技術[12~14],它通過將IPv6數據分組封裝在IPv4數據分組中,配合雙棧技術穿越IPv4網絡實現IPv6接入;同樣,IPv4數據分組也可以封裝在IPv6數據分組中,然后穿越IPv6網絡完成IPv4接入。

(3)翻譯技術

翻譯技術不同于雙棧技術與隧道技術,其可以實現IPv4與IPv6的直接通信。目前主要的翻譯技術包括:SIIT(無狀態IP/ICMP翻譯技術)、NAT-PT(網絡地址翻譯與協議翻譯技術)和IVI翻譯技術。

2.2 IVI翻譯機制的研究現狀及進展

IVI翻譯機制是在對SIIT技術與NAT技術進行改進優化后產生的方案,它是一種無狀態地完成N到N映射的NAT機制(這里的N為特定IPv4子網與IPv6子網的規模),主要用于完成IPv4和IPv6之間的相互翻譯。

IVI機制的主要思路是在尚未被分配出去的全球IPv4中取出一部分與IPv6地址中特定的一部分 (稱為IVI6地址)進行一一映射,在這個范圍內的每一個IPv4地址都有一個對應的IPv6地址,使用這部分地址的用戶既可以訪問IPv4資源又能訪問IPv6資源,具有很大的優越性。隨著IPv6資源的不斷補充與豐富,必將吸引更多的用戶放棄原來已占有的IPv4地址而加入到IVI6地址的隊伍中去,被釋放出的這部分IPv4地址又經過IVI算法映射被吸引到IVI6地址中,隨著IVI6地址的不斷擴大,當IVI6地址達到全球IPv4的規模時,就完成過渡。

IVI機制的出現源自于我國的CERNET(China education and research network)。起初,這只是一個單純的想法,主要目的是希望能提供出一種新的網絡地址轉換算法用來代替已被廢棄的NAT-PT(network address translation-protocol translation)技術,這種新的網絡地址轉換算法必須是無狀態的,這可以用于克服網絡規模無法擴大的問題,同時還要求必須能完成端到端的透明通信。

IVI的命名來源于羅馬字符,是字符4(Ⅳ)和字符6(Ⅵ)的一個結合體。CERNET在定義IVI策略時,制定了一系列其需要遵守的原則,具體如下:

·必須同時支持由IPv6側或IPv4側發起的通信;

·必須沿用目前已存在的IPv4以及IPv6的路由系統,無需增加全球路由表的規模;

·必須能滿足大規模部署的需求;

·由于IPv4地址非常緊缺,所以它必須有效地使用IPv4地址;

·必須是無狀態的,以適應網絡的不斷升級;

·翻譯網關必須與DNS功能相分離。

IVI地址由 40位 LIR(local internet registry,本地互聯網注冊處)前綴、32位IPv4嵌入地址以及全零3部分構成,IVI地址構成如圖1所示。

IVI機制必須置于Linux系統內核中才能得以實現,每一臺裝載并啟用IVI機制的Linux主機即成為一個IVI網關。IVI機制在內核中的系統結構如圖2所示。

3 基于Netfilter框架IVI擴展模塊的設計與實現

本文的設計思路是通過向Netfilter框架添加IVI擴展模塊的形式實現IVI網關,添加方法采用了Xtables-addons插件技術。IVI擴展模塊主要包括以下幾個部分:IVI匹配模塊、IVI目標模塊以及這兩個模塊的頭文件等。其中IVI匹配模塊細分為IVI用戶空間匹配模塊(模塊文件命名為libxt_ivimt.c)和IVI內核空間匹配模塊(模塊文件命名為xt_ivimt.c)。IVI目標模塊則類似地分為IVI用戶空間目標模塊 (模塊文件命名為libxt_ivitg.c)和IVI內核空間目標模塊(模塊文件命名為xt_ivitg.c)。其中兩個用戶空間模塊主要作為用戶接口實現內核與用戶的交互,用于提取用戶輸入的參數、選項等數據,對其進行檢測,然后以合理的形式傳給相應的內核空間模塊去處理,而兩個內核空間模塊用于接收來自用戶空間模塊傳入的信息,然后在內核中調用相應的功能函數對數據分組進行匹配與目標處理。IVI擴展模塊整體框架如圖3所示。

3.1 Netfilter擴展模塊機制

新一代Linux內核防火墻Netflter/IPtables的開放框架給了開發者在內核中添加擴展模塊的可能性[15~18]。要完成所需添加的擴展模塊,首先必須寫出一個內核模塊然后注冊到這個框架中去。同時根據新特性的不同類別,還要寫出一個IPtables用戶空間模塊。通過擴展模塊的功能實現,可以對一個特定的數據分組進行匹配、丟棄、追蹤或接收,也可以對一系列相關的數據流進行整合。

原先對Netfilter進行模塊擴展時最常用的方法是patch-o-matic[19],這種方法是將內核擴展模塊以打補丁形式置于內核,然后對內核進行重新編譯來完成擴展模塊的添加,由于操作費時繁瑣,且極易出錯,目前這種方法已經過時。最新的方法則是采用Xtables-addons這一強大的插件來完成,使用這種方法主要有兩個優點。

(1)操作簡單高效

由于該插件是置于內核外編譯的,用戶只需將編寫好的擴展模塊文件置于該框架中,并在配置文件中添加幾行配置信息,然后對其進行重新編譯安裝,整個過程中無需重啟電腦或者進行內核模塊加載就可以完成對擴展模塊的編譯與安裝。

(2)通用性強

Xtables-addons提供了一組可以與內核相融的代碼,相融代碼其實就是一大串定義集,它們可以將在原開發平臺使用的功能函數進行修改并使其映射到當前正在使用的內核中。例如,當前內核版本為2.6.24,開發者使用了內核版本為2.6.18的功能函數,通過融合代碼就可以實現將老版本的功能函數映射到新版本內核中正常使用,這樣就屏蔽了底層內核平臺的差異。

陰離子聚合被廣泛用在聚合物的合成過程,一般用強堿(KOH或n-BuONa)作為引發劑.一般情況下,大位阻基團取代的環氧化合物通過聚合得到的聚合物其分子量低,主要是由于剛性大位阻基團阻礙了鏈增長.對于環氧化合物而言,陰離子引發是很好的聚合方式,適當改變條件可以得到較高聚合度的聚醚.

3.2 IVI用戶空間匹配模塊的設計與實現

IVI用戶空間匹配模塊主要接收從用戶空間傳入的關于匹配信息的選項及參數,該模塊工作流程如圖4(a)所示,主要實現的結構體包括以下幾部分。

·struct xtables_match:匹配模塊的主體結構體,里面注冊了多個功能函數。

·ivimt_mt4(6)_opts:用于對該模塊中匹配區域的選項進行可選項設置。

·ivimt_mt4(6)_parse函數:檢測輸入參數的正確性,并且寫入將共享給內核空間程序的信息。

3.3 IVI內核空間匹配模塊的設計與實現

當用戶空間匹配模塊從命令行中獲得用戶輸入的選項及參數,然后復制到與內核空間擴展匹配模塊共享的數據區后,用戶空間匹配模塊的使命也就完成了,接下去的工作由內核空間擴展匹配模塊來完成。內核空間擴展匹配模塊主要完成的工作包括:

·接收每一個IP數據分組,然后察看匹配模塊相關的表;

·通知Netfilter匹配模塊是否匹配上了這個IP數據分組。

3.4 IVI用戶空間目標模塊的設計與實現

IVI用戶空間目標模塊與IVI用戶空間匹配模塊極為相似,不同的是,這一模塊接收的是用戶空間在目標區域輸入的選項與參數,該模塊工作流程如圖5(a)所示。主要實現的結構體包括以下幾部分。

圖5 IVI目標模塊工作流程

·struct xtables_target:目標模塊的主體結構體,里面注冊了多個目標功能執行函數。

·ivitg_tg4(6)_opts:用于對該模塊中目標區域的選項進行可選項設置。

·ivitg_tg4(6)_parse函數:檢測命令行中目標區域輸入參數的正確性,并且寫入將共享給內核空間程序的信息。

3.5 IVI內核空間目標模塊的設計與實現

IVI內核空間目標模塊是整個擴展模塊中真正完成不同協議之間翻譯目標動作的模塊,也是最核心的模塊,它從用戶空間獲得用戶輸入的目標動作信息,執行用戶的翻譯工作,包括地址翻譯和協議翻譯。內核空間目標模塊主要完成的工作如下。

(1)對已經匹配上的 skb(sk_buff,網絡報文的控制結構)數據分組進行合理性檢測,同時取出其網絡層首部。

(2)生成一個新的skb數據結構,根據翻譯算法,將原skb里的字段值轉化成相應的值,然后存放于新的skb結構體中,翻譯工作主要在這一步完成。

(3)當所有字段及數據轉化拷貝結束以后,丟棄原有的skb結構體進行,釋放內存,同時讓新的skb數據結構進入正常的協議棧,進行再發送。

該模塊工作流程如圖5(b)所示。主要實現的功能函數包括:target函數(在網絡內核中實現地址轉換及協議翻譯功能);check函數 (對用戶空間輸入信息進行合法性檢查);destroy函數(釋放動態分配的資源)。

4 IVI網關實驗測試

本文實驗采用將202.115.8.0/24網段作為映射到IVI6網絡的IPv4地址段,同時將IVI6中的前綴規定為2001:250:6400::/40,IVI網關實驗網絡拓撲如圖6所示。系統測試環境的搭建后,就可以進行實驗測試工作,包括ICMP測試、DNS測試、HTTP測試等。

4.1 ICMP測試

(1)IPv6主機到IPv4主機的可達性測試

ICMP分為ICMPv4版本和ICMPv6版本,其中ping命令采用了ICMPv4協議,而ping6命令則采用ICMPv6協議。該部分測試可在IPv6實驗網IVI6-PC2主機上,通過ping6命令來訪問IPv4實驗網中的IVI4-PC1主機來完成,結果如圖 7(a)所示。

圖中收到了 I CMPv6回送回答(echo reply)報文說明IVI網關對IPv4數據分組和IPv6數據分組可以進行正常轉換,實現IPv6主機對IPv4主機的訪問。

(2)IPv4主機到IPv6主機的可達性測試

在測試IPv4主機到IPv6主機的可達性時,可通過在IPv4實驗網絡IVI4-PC1主機上,使用ping命令來訪問IVI6-PC2的IPv4映射地址,結果如圖7(b)所示。

圖中收到了ICMPv4回送回答報文說明通過IVI網關可以實現IPv4主機對IPv6主機的訪問。

(3)測試結果對比

圖 7(a)與圖 7(b)是在 IPv4 主 機 IVI4-PC1 和 IPv6 主機IVI6-PC2之間兩個方向上的測試,即IPv4 ping IPv6與IPv6 ping6 IPv4,測試結果對比見表1。

表1 使用ping命令的網絡時延對比

由IPv4主機ping IPv6主機的平均網絡時延是0.187 ms,而由IPv6主機ping6 IPv4主機的平均網絡時延是0.189 ms。從測試的數據結果可以看出,兩者網絡時延非常接近,幾乎相等,這是由于IVI策略對地址的翻譯是無狀態一一映射的,所以IVI網關在兩個方向上的翻譯性能是相同的。

4.2 DNS測試

這部分測試主要是為了驗證IVI-DNS對DNS報文轉換是否正常。測試方式為:在IPv6實驗網絡的IVI6-PC2主機上訪問IPv4實驗網絡的IVI4-PC1主機域名host4a.edu.cn,結果如圖8所示。

圖8是IPv6網絡主機通過域名ping IPv4網絡主機IVI4-PC1的過程。由于是通過域名進行訪問的,所以首先就需要域名解析。主機IVI6-PC2首先利用ICMPv6去ping6 IPv4的域名,由于該域名表示的是一臺IPv4主機,IPv6 DNS服務器本地解析失敗,所以DNS查詢報文通過IVI-DNS代理轉發到 IPv4 DNS,IPv4 DNS對 host4a.edu.cn進行域名解析后返回DNS應答報文,被IVI-DNS截獲后將DNS查詢報文中的A資源記錄(IPv4地址形式的)翻譯成AAAA資源記錄 (IPv6地址形式的),同時將解析得到的IPv4地址修改為添加指定IVI前綴后的IPv6地址,最后將修改過的DNS應答報文返回給IVI6-PC2,這樣IVI6-PC2就知道了域名host4a.edu.cn在IPv6網絡中的IVI映射地址。在主機IVI6-PC2看來,IVI4-PC1就好像是IPv6網絡中的一臺主機,然后兩者就實現了透明通信。該過程驗證了IVI-DNS對DNS報文的翻譯功能,實驗表明IVI-DNS能夠對DNS A類型與DNS AAAA類型以及IPv4地址與IPv6地址實現正常轉換。

4.3 HTTP測試

首先在IVI4-PC1主機上搭建支持IPv6訪問的Web服務器,然后在IVI6-PC2主機上使用瀏覽器訪問IPv4網絡主機上的IPv4網站,在瀏覽器地址欄中輸入:http://host4a.edu.cn,測試結果如圖9所示。

5 結束語

在添加IVI擴展模塊上采用了最新的Xtables-addons插件方法來取代過時的patch-o-matic方法,為以后進行擴展模塊開發提供了良好的借鑒;同時,擴展了ICMP的回送請求和回答報文類型的翻譯,實現了對ping命令的支持,通過ping命令實驗驗證了ICMP回送請求和回答報文翻譯的可行性;針對TCP和UDP校驗和字段的計算需要考慮偽首部的問題,提出了一種校驗和更新算法,實驗驗證該更新算法是合理可行的。

IVI翻譯機制可以有效地解決在IPv4與IPv6網絡共存時期IPv4主機與IPv6主機相互通信的問題,由于IVI網關是無狀態翻譯的,具有良好的翻譯性能。同時IVI擴展模塊在內核調用時是作為一個可加載的模塊使用,可以十分方便地集成于現有內核中,具有很大的靈活性。本文所研究的IVI網關適合于在中大規模Intranet中使用,為廣泛部署Intranet過渡網絡提供實際應用參考。

1 Postel J.Internet Protocol.RFC791,September 1981

2 周遜.IPv6—下一代互聯網的核心(第一版).北京:電子工業出版社,2003

3 Silvia Hagen.IPv6精髓.北京:清華大學出版社,2004

4 http://www.nav6tf.org/

5 Li X,Bao C,Chen M,et al.The CERNET IVI Translation Design and Deployment for the IPv4/IPv6 Coexistence and Transition.RFC6219,May 2011

6 Carpenter B,Moore K.Connection of IPv6 Domains via IPv4 Clouds.RFC3056,February 2001

7 Toutain B J,Medina L,Dupont O,et al.Dual Stack Transition Mechanism(DSTM).IETF Internet Draft,Jan 2002

8 邢寧.基于隧道技術的IPv6承載網過渡方案分析與測試.北京郵電大學碩士學位論文,2010

9 Nordmark E.Stateless IP/ICMP Translation Algorithm (SIIT).RFC2765,February 2000

10 Zhu Yuncheng,Chen Maoke,Zhang Hong,et al.Stateless mapping and multiplexing of IPv4 addresses in migration to IPv6 internet.Proceedings of Global Telecommunications Conference,New Orleans,USA,2008:1~5

11 Gilligan R,Nordmark E.Transition Mechanisms for IPv6 Hosts and Routers.RFC1993,August 1996

12 Templin F,Gleeson T,Thaler D.Intra-Site Automatic Tunnel Addressing Protocol(ISATAP).RFC5214,March 2008

13 Narten T,Nordmark E,Simpson W.Neighbor Discovery for IP Version 6(IPv6).RFC2461,December 1998

14 Carpenter B,Jung C.Transmission of IPv6 over IPv4 Domains Without Explicit Tunnels.RFC2529,March 1999

15 楊剛,陳蜀宇.Linux中基于Netfilter/Iptables的防火墻研究.計算機工程與設計,2007(17)

16 周珂,高仲合.Linux下Netfilter/Iptables防火墻的研究與實現.網絡安全技術與應用,2007(12)

17 周增國,李忠明.Linux平臺下Netfilter/Iptables包過濾防火墻的研究與應用.網絡安全技術與應用,2008(1)

18 熊忠陽,張逢貴,張玉芳.Linux下基于Netfilter個人內核防火墻的設計與實現.計算機應用,2009(s1)

19 孫有越.IPv6網絡部署中若干關鍵問題的研究.北京郵電大學博士學位論文,2004

猜你喜歡
用戶
雅閣國內用戶交付突破300萬輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請稍后再哭
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網新媒體用戶之間有何差別
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應用
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 国内精品视频| AV无码无在线观看免费| 亚洲熟女中文字幕男人总站| 欧美一级在线播放| 尤物国产在线| 欧美日本在线观看| 亚洲精品成人7777在线观看| 免费在线成人网| 亚洲中文字幕精品| www.91在线播放| 99在线免费播放| 40岁成熟女人牲交片免费| 国产欧美日韩va另类在线播放| 久久99精品久久久久久不卡| julia中文字幕久久亚洲| 久久99精品久久久大学生| 欧美在线精品怡红院| 永久免费精品视频| 91免费片| 国产区精品高清在线观看| 波多野结衣第一页| 91在线丝袜| 免费观看三级毛片| 国产精品 欧美激情 在线播放 | 尤物国产在线| 久久久久人妻精品一区三寸蜜桃| 亚洲国产精品日韩欧美一区| 青青青视频蜜桃一区二区| 伊人网址在线| 国产精品美女网站| 久久国产av麻豆| 人人爱天天做夜夜爽| 国产不卡网| 亚洲人成网站18禁动漫无码| 香蕉久久永久视频| 毛片免费高清免费| 亚洲男人天堂2020| 欧美在线视频不卡| 国产网友愉拍精品| 日本少妇又色又爽又高潮| 77777亚洲午夜久久多人| 亚洲区视频在线观看| 日日碰狠狠添天天爽| 免费观看三级毛片| 亚洲第一福利视频导航| 被公侵犯人妻少妇一区二区三区| 国产美女主播一级成人毛片| 国产一级小视频| 国产h视频在线观看视频| 激情综合图区| 久久青草热| 亚洲午夜18| 中文无码毛片又爽又刺激| 免费xxxxx在线观看网站| 久久夜色撩人精品国产| 亚洲bt欧美bt精品| 无码精油按摩潮喷在线播放 | 日韩精品久久久久久久电影蜜臀| 久久99国产综合精品1| 青青热久免费精品视频6| 无遮挡一级毛片呦女视频| 2021国产精品自拍| 色悠久久综合| 国产中文在线亚洲精品官网| 国产新AV天堂| 中文字幕在线观看日本| 香蕉综合在线视频91| 国产电话自拍伊人| 国产99视频在线| 亚洲精品无码AⅤ片青青在线观看| 亚洲最大看欧美片网站地址| 国产午夜福利亚洲第一| 久久国产毛片| 天天综合网站| 播五月综合| 久久人搡人人玩人妻精品 | 精品国产aⅴ一区二区三区| 国产精品久久久久久搜索| 一区二区午夜| 欧美日韩亚洲综合在线观看| 九九九久久国产精品| 97国产成人无码精品久久久|