王相林,朱 晨
(杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院,浙江杭州310018)
隨著因特網(wǎng)的蓬勃發(fā)展,網(wǎng)絡(luò)應(yīng)用范圍的擴(kuò)大,IPv4越來越后繼乏力[1],IPv6取代IPv4是一種必然趨勢[2]。但是要將IPv4網(wǎng)絡(luò)過渡轉(zhuǎn)變成一個純IPv6網(wǎng)絡(luò)需要經(jīng)歷一個長期的過程[3],在這個過渡時期,產(chǎn)生了一系列相關(guān)的過渡策略[4],以保證IPv4與IPv6之間的互通性。IVI是一種基于無狀態(tài)地址映射的翻譯機(jī)制[5],可以真正地實(shí)現(xiàn)IPv4與IPv6的直接通信。在IVI網(wǎng)關(guān)中,內(nèi)核目標(biāo)模塊是最核心的模塊,該模塊中的ICMPv4/ICMPv6協(xié)議翻譯的設(shè)計(jì)十分重要。本文針對ICMPv4/ICMPv6協(xié)議翻譯進(jìn)行了研究與設(shè)計(jì),并通過實(shí)驗(yàn)設(shè)計(jì),測試和驗(yàn)證了ICMPv4/ICMPv6翻譯機(jī)制的可行性。
IPv6作為下一代網(wǎng)絡(luò)協(xié)議,擁有眾多IPv4所無可比擬的優(yōu)點(diǎn),但是要將IPv4網(wǎng)絡(luò)完全轉(zhuǎn)化成純IPv6網(wǎng)絡(luò)不是一蹴而就的。在這期間產(chǎn)生了多種過渡策略,主要有:雙棧技術(shù)[6]、隧道技術(shù)[7]、翻譯技術(shù)[8]。
不同于雙棧技術(shù)與隧道技術(shù),翻譯技術(shù)可以真正實(shí)現(xiàn)IPv4網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò)的直接通信,其核心是IPv4和IPv6之間的地址轉(zhuǎn)換和協(xié)議轉(zhuǎn)換。目前主要的翻譯技術(shù)包括:SIIT、NAT-PT和IVI翻譯技術(shù)[8]。
(1)SIIT是用于對IP報(bào)文與ICMP報(bào)文進(jìn)行協(xié)議轉(zhuǎn)換的技術(shù),這種轉(zhuǎn)換不記錄流的狀態(tài),是無狀態(tài)翻譯的,它只是根據(jù)單個報(bào)文將IPv6協(xié)議報(bào)文轉(zhuǎn)換成IPv4協(xié)議報(bào)文,或者將IPv4協(xié)議轉(zhuǎn)換成IPv6協(xié)議的報(bào)文。由于SIIT對于地址的轉(zhuǎn)換是靜態(tài)的,而且IPv4地址對應(yīng)IPv6地址的位置固定,使得網(wǎng)絡(luò)規(guī)模無法得到很大程度的擴(kuò)展,這是其致命的缺陷。
(2)NAT-PT機(jī)制是把SIIT協(xié)議轉(zhuǎn)化技術(shù)與IPv4網(wǎng)絡(luò)中的動態(tài)地址轉(zhuǎn)換技術(shù)NAT有機(jī)地結(jié)合在一起,在使用SIIT技術(shù)完成協(xié)議翻譯工作的同時又利用傳統(tǒng)的NAT技術(shù)來動態(tài)地給訪問IPv4節(jié)點(diǎn)的IPv6點(diǎn)分配一個對應(yīng)的IPv4地址。
(3)IVI翻譯機(jī)制是一種無狀態(tài)的完成N到N映射的NAT機(jī)制,主要用以完成IPv4協(xié)議和IPv6協(xié)議之間的相互翻譯。IVI機(jī)制的主要思路是在尚未被分配出去的全球IPv4中取出一部分與IPv6地址中特定的一部分(稱為IVI6地址)來進(jìn)行一一映射,在這個范圍內(nèi)的每一個IPv4地址都有一個對應(yīng)的IPv6地址,使用這部分地址的用戶既可以訪問IPv4資源又能訪問IPv6資源,具有很大的優(yōu)越性。
在ICMPv4/ICMPv6轉(zhuǎn)換時,ICMPv4和ICMPv6中,類型(type)和代碼(code)這兩個字段的值不同,所以需要對這兩種協(xié)議的類型和代碼字段要進(jìn)行翻譯轉(zhuǎn)換。
ICMPv4報(bào)文分為:目的不可達(dá)、超時、參數(shù)問題、源點(diǎn)抑制、改變路由、路由器通告和詢問、時間戳請求和回答、地址掩碼請求和回答、回送請求和回答。ICMPv4到ICMPv6報(bào)文的翻譯如表1所示。
表1 ICMPv4到ICMPv6報(bào)文的翻譯
根據(jù)表1可以得到:
(1)ICMPv4的目的不可達(dá)、超時、參數(shù)問題、回送請求和回答報(bào)文可以翻譯轉(zhuǎn)換成了相應(yīng)的ICMPv6報(bào)文;
(2)ICMPv6不需要源點(diǎn)抑制差錯報(bào)文,ICMPv4的源點(diǎn)抑制差錯報(bào)文直接丟棄;
(3)ICMPv6不包含路由器通告和詢問、時間戳請求和回答、地址掩碼請求和回答報(bào)文,所以,ICMPv4的這些報(bào)文直接丟棄。
ICMPv6報(bào)文分為:目的不可達(dá)、參數(shù)問題、分組太大、超時、回送請求和回答報(bào)文。ICMPv6到ICMPv4報(bào)文的翻譯如表2所示。
根據(jù)表2可以得到:
(1)ICMPv6的目的不可達(dá)、參數(shù)問題、超時、回送請求和回答報(bào)文可以翻譯轉(zhuǎn)換成相應(yīng)的ICMPv4報(bào)文;
(2)ICMPv4中沒有數(shù)據(jù)包太大差錯報(bào)文,ICMPv6數(shù)據(jù)包太大報(bào)文翻譯轉(zhuǎn)換為ICMPv4的終點(diǎn)不可達(dá)報(bào)文。
表2 ICMPv6到ICMPv4報(bào)文的翻譯
在本文實(shí)驗(yàn)設(shè)計(jì)部分,采用將202.115.8.0/24網(wǎng)段作為映射到IVI6網(wǎng)絡(luò)的IPv4地址段,同時將IVI6中的前綴規(guī)定為2001:250:6400::/40,即本實(shí)驗(yàn)環(huán)境中的IVI6網(wǎng)絡(luò)的地址段為:2001:250:64CA:7308::/64。ICMPv4/ICMPv6翻譯可行性測試的網(wǎng)絡(luò)拓?fù)淙鐖D1所示。
圖1 ICMPv4/ICMPv6翻譯可行性測試的網(wǎng)絡(luò)拓?fù)?/p>
其中各設(shè)備網(wǎng)絡(luò)接口配置的具體情況如表3所示。
表3 各設(shè)備網(wǎng)絡(luò)接口配置的具體情況
測試兩個網(wǎng)絡(luò)的連通性,IPv4用的測試命令為ping,IPv6用的測試命令為ping6。在ICMPv4向ICMPv6翻譯的可行性測試時,可通過在IPv4實(shí)驗(yàn)網(wǎng)絡(luò)的IVI4-PC1主機(jī)上使用ping命令來訪問IVI6-PC2的IPv4映射地址。
ICMPv4向ICMPv6翻譯的可行性測試結(jié)果如圖2所示,圖2中收到了ICMPv4回送回答(Echo Reply)報(bào)文,說明ICMPv4向ICMPv6的翻譯是可行的。
圖2 ICMPv4向ICMPv6翻譯的可行性測試
該部分測試可在IPv6實(shí)驗(yàn)網(wǎng)IVI6-PC2主機(jī)上,通過ping6命令來訪問IPv4實(shí)驗(yàn)網(wǎng)中的IVI4-PC1主機(jī)來完成。ICMPv6向ICMPv4翻譯的可行性測試結(jié)果如圖3所示,圖3中收到了ICMPv6回送回答報(bào)文,說明ICMPv6向ICMPv4的翻譯是可行的。
圖3 ICMPv6向ICMPv4翻譯的可行性測試
IVI是一種基于無狀態(tài)地址映射的翻譯機(jī)制,可以真正地實(shí)現(xiàn)IPv4與IPv6的直接通信。在IVI網(wǎng)關(guān)中,內(nèi)核目標(biāo)模塊是最核心的模塊,該模塊中的ICMP協(xié)議翻譯的設(shè)計(jì)十分重要。本文針對IVI網(wǎng)關(guān)的協(xié)議翻譯模塊,設(shè)計(jì)了ICMPv4報(bào)文和ICMPv6報(bào)文類型和代碼的翻譯算法。通過實(shí)驗(yàn)設(shè)計(jì)部分進(jìn)行了測試,結(jié)果表明所設(shè)計(jì)的ICMPv6/ICMPv4的翻譯機(jī)制可以實(shí)現(xiàn)ICMPv6與ICMPv4的正常轉(zhuǎn)換。
[1]王相林.IPv6技術(shù)——新一代網(wǎng)絡(luò)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2008:6-10.
[2]周遜.IPv6—下一代互聯(lián)網(wǎng)的核心[M].北京:電子工業(yè)出版社,2003:77-80.
[3]王相林.IPv6核心技術(shù)[M].北京:科學(xué)出版社,2009:361-365.
[4]楊國良,李陽春,伍佑明.IPv6技術(shù)、部署與業(yè)務(wù)應(yīng)用[M].北京:人民郵電出版社,2011:104-161.
[5]Li X,Bao C,Chen M,et al.The China Education and Research Network(CERNET)IVI Translation Design and Deployment for the IPv4/IPv6 Coexistence and Transition[S].RFC6219,2011.
[6]Bound J,Toutain L,Medina O,et al.Dual Stack Transition Mechanism(DSTM)[S].IETF Internet Draft,Jan 2002.
[7]邢寧.基于隧道技術(shù)的IPv6承載網(wǎng)過渡方案分析與測試[D].北京:北京郵電大學(xué),2010.
[8]Templin F,Gleeson T,Thaler D.Intra-Site Automatic Tunnel Addressing Protocol(ISATAP)[S].RFC5214,March 2008.
[9]熊忠陽,張逢貴,張玉芳.Linux下基于Netfilter個人內(nèi)核防火墻的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2009,29(6):95-97.