0引言
由于IPv6與IPv4的地址結構是不兼容的,這就需要某種機制來實現網絡的過渡,并解決網絡共存期間的互訪問題。出于種種原因,服務器是IPv4的,但是人們希望它可以給IPV6主機提供服務;又或者主機是IPv4的,但是人們希望它可以訪問IPv6服務器的資源。
IVI就是解決上述網絡互通場景的一種方案。
IVI是一種無狀態的,基于特定網絡前綴的翻譯機制。IVI主要提供IPv4和IPv6之間的地址翻譯,協議翻譯,分片處理和ALG等功能。
IVI網關是一個雙棧路由器,它的一個接口連接IPv4網絡,一個接口連接IPv6網絡。
圖1是單個IVI網關配置的例子。
1 IVI過渡技術支持的應用場景
IPv4與IPv6之間的翻譯場景共有8種,分別為:
Scenario 1:
an IPv6network to the IPv4InternetScenario 2:
the IPv4Internet to an IPv6networkScenario 3:
the IPv6Internet to an IPv4networkScenario 4:
an IPv4network to the IPv6InternetScenario 5:
an IPv6network to an IPv4networkScenario 6:
an IPv4network to an IPv6networkScenario 7:
the IPv6Internet to the IPv4InternetScenario 8:
the IPv4Internet to the IPv6InternetIVI支持上述8種場景中的場景1,場景2,場景5和場景6.下面分別對這4種場景作簡要分析。
場景1:一個IPv6網絡到IPv4因特網。
由于IPv4地址的缺乏或者由于其他技術或經濟上的考慮,網絡是IPv6-ONLY的,但是網絡中的主機需要和全球的IPv4因特網通信。
場景2:
IPv4因特網到一個IPv6網絡。
當企業網絡或者ISP網絡采用場景1的模式,IPv6-ONLY用戶不僅想訪問IPv4因特網上的服務器,同時也想在IPv6網絡中安裝他們自己的服務器,以便被IPv4因特網的用戶訪問。
場景5:一個IPv6網絡到一個IPv4網絡。
在這種場景中,IPv4網絡和IPv6網絡屬于同一個組織機構,使用的IPV4地址和IPV6地址要么是公網地址,要么是內網地址。
場景6:一個IPv4網絡到一個IPv6網絡。
場景6同場景5.
2 IVI過渡技術的具體實現
IVI的具體實現包括地址翻譯,協議翻譯,分片處理和ALG.下面分別進行具體分析。
(1)地址翻譯:IVI的地址翻譯是基于特定網絡前綴的,這個特定前綴有可能是某個組織機構或網絡運營商分配的,也有可能是一個Well-known前綴,該前綴的值為64:ff9b::/96.IVI的地址翻譯是把IPv4地址"植入"IPv6地址當中,如表1所示。
IPv6地址前綴的長度只能是以下長度中的一種:32,40,48,56,64和96.地址中的第64到71比特位是保留位,這些比特位必須置為0.當使用一個96位前綴時,管理員必須確保64到71比特位設置為0."植入的"IPv6地址由前綴+IPv4地址+后綴組成,后綴通常置為0.例如當前綴長度是32比特時,IPv4地址編碼位置為32到63比特位;當前綴長度是40比特時,IPv4地址的前24比特的編碼位置為40到63比特位,剩余的后8比特的編碼位置為72到79比特位,其他類推。如果前綴長度是96位的話,那么就沒有后綴了。
從"植入的"IPv6地址中提取出IPv4地址的算法如下所述:如果前綴長度是96比特,那么提取IPV6地址的最后32位比特;如果是其他前綴長度,移除"u"字節后得到一個120比特的序列,然后提取緊挨著前綴的32位比特。
(2)協議翻譯:IVI的協議翻譯包括IP首部翻譯,TCP/UDP首部翻譯以及ICMPv4/ICMPv6首部翻譯。
下面分別進行具體說明。
①IP首部翻譯:是指將IPv4首部翻譯為IPv6首部或者反之。IPv4首部的格式見表2,IPv6基本首部的格式見表3,首部翻譯的各個域的設置如表4所示。
②TCP/UDP首部翻譯:主要是更新首部中的校驗和域。
③ICMPv4/ICMPv6首部翻譯:主要是翻譯類型值和代碼值以及校驗和域,ICMP首部的格式如表5所示。
(3)分片處理:無論是在IPv4方向,還是在IPv6方向,IVI對于分片的處理都是先將分片進行重裝,重裝后再進行翻譯。
(4)ALG:對于在高層數據中帶有地址信息的應用,必須實現ALG功能。典型的此類應用有FTP,在FTP ALG中,必須對FTP數據中的地址也進行相應的翻譯,否則會導致FTP功能無法正常使用。
3 IVI過渡技術的應用
舉例下面以一個簡單的網絡拓撲來說明IVI的具體配置和翻譯流程,網絡拓撲如圖2所示。在圖2的三層交換機接口上開啟IVI功能,PC端是IPv4主機,服務器端是IPv6服務器。PC端配置:配置IPv4地址為198.51.100.2服務器端配置:配置IPv6地址為2001:db8:1c0:2:21::,該IPv6地址對應的IPv4地址為192.0.2.33,配置一條靜態路由ipv6route 2001:db8:1c6:3364:2::"本地連接"2001:db8:1c0:2:21::.
三層交換機接口配置:在連接PC的接口和連接服務器的接口上分別使能IVI功能。下面以telnet應用為例,來說明IVI的翻譯流程,如圖3所示。
PC要訪問服務器,首先通過DNS46獲取服務器對應的IPv4地址,即192.0.2.33,PC發送目的地址為192.0.2.33的TCP報文,該報文到達IVI網關的IPv4接口后,被翻譯為IPv6報文,從IPv6接口發送出去,到達服務 器;服 務 器 回 應 的IPv6報文的目的地址為2001:db8:1c6:3364:2::,該地址對應PC的地址,即198.51.100.2,該報文到達IVI網關的IPv6接口后,被翻譯為IPv4報文,從IPv4接口發送出去,到達PC,后續TCP流以此類推。
4結論
在IPv4網絡和IPv6網絡共存期間,網絡互訪是一個必須要解決的問題,IVI提供了一種了基于翻譯技術的過渡方式。
IVI過渡技術需要進行地址翻譯,協議翻譯,分片處理和ALG處理,在網絡過渡的初期,IVI是一種經濟合理的過渡方案。
參考文獻:
[1]王相林,朱晨.基于IVI的ICMP協議翻譯的設計與實現[J].杭州電子科技大學學報,2012,(06).
[2]陳杰.IPv6過渡的NAT技術[D].南京:南京郵電大學,2013.
[3]陳國峰.Intranet中IPv6過渡策略的研究與應用[D].杭州:杭州電子科技大學,2011.