在前面兩個部分(《IPv6技術之發展現狀和技術原理》《IPv6技術之移動連接特性簡述》)中主要講解了IPv6自身的一些原理和特點,但是由于現存的網絡體系多為IPv4結構,因此,在今后較長的一段時間里都將是兩者相互并存,這就勢必造成兩者之間相互通信的問題,幸好,IPv6的設計者們已經為這個問題準備好了解決方法。
一、背景現狀
盡管IPv6已被認為是下一代互聯網絡協議核心標準之一。但是,新生事物從誕生到廣泛應用需要一個過程,尤其是對于現時IPv4仍然很好的支撐著的Internet。在IPv6的網絡流行于全球之前,總是有一些網絡首先使用IPv6協議棧并希望能夠與當前的Internet正常通信。為達到這一目的,研究者們必須開發出IPv4/IPv6互通技術以保證IPv4能夠平穩過渡到IPv6,除此之外,互通技術應該對普通用戶做到“無縫”,使用起來沒有感到不便,對信息傳遞做到高效。
在過渡時期,要解決相互通信的問題無非兩類:第一類就是IPv6之間互相通信的問題;第二類就是解決IPv6與IPv4之間的通信問題。
針對這兩類問題已經提出了很多方案,有一些已經相當成熟并形成了RFC(RequestForCommnets),有一些還只是作為Internetdraft,有待進一步完善。
二、過渡技術
目前解決過渡問題基本技術主要有三種:雙協議棧(RFC2893obsoleteRFC1933)、隧道技術(RFC2893)、NAT-PT(RFC2766)。
(1)雙協議棧(DualStack)
采用該技術的節點上同時運行IPv4和IPv6兩套協議棧。這是使IPv6節點保持與純IPv4節點兼容最直接的方式,針對的對象是通信端節點(包括主機、路由器)。這種方式對IPv4和IPv6提供了完全的兼容,但是對于IP地址耗盡的問題卻沒有任何幫助。由于需要雙路由基礎設施,這種方式反而增加了網絡的復雜度。
(2)隧道技術(Tunnel)
隧道技術提供了一種以現有IPv4路由體系來傳遞IPv6數據的方法:將IPv6的分組作為無結構意義的數據,封裝在IPv4數據報中,被IPv4網絡傳輸。根據建立方式的不同,隧道可以分成兩類:(手工)配置的隧道和自動配置的隧道。隧道技術巧妙地利用了現有的IPv4網絡,它的意義在于提供了一種使IPv6的節點之間能夠在過渡期間通信的方法,但它并不能解決IPv6節點與IPv4節點之間相互通信的問題。
(3)網關轉換(NAT-PT)
轉換網關除了要進行IPv4地址和IPv6地址轉換,還要包括協議并翻譯。轉換網關作為通信的中間設備,可在IPv4和IPv6網絡之間轉換IP報頭的地址,同時根據協議不同對分組做相應的語義翻譯,從而使純IPv4和純IPv6站點之間能夠透明通信。
三、IPv6通信
它是指v6與v6之間的通信,主要方法有以下幾種:
(1)手工配置隧道(ConfiguredTunnel)
這種隧道的建立是手工配置的,需要隧道兩個端點所在網絡的管理員協作完成。隧道的端點地址由配置來決定,不需要為站點分配特殊的IPv6地址,適用于經常通信的IPv6站點之間。每一個隧道的封裝節點必須保存隧道終點的地址,當一個IPv6包在隧道上傳輸時終點地址會作為IPv4包的目的地址進行封裝。通常封裝節點要根據路由信息決定一個包是否要通過隧道轉發。
采用手工配置隧道進行通信的站點之間必須有可用的IPv4連接,并且至少要具有一個全球唯一的IPv4地址。站點中每個主機都至少需要支持IPv6,路由器需要支持雙棧。在隧道要經過NAT設施的情況下這種機制不可用。
手工配置隧道的主要缺點是網絡管理員的負擔很重,因為他要為每一條隧道做詳細的配置。
(2)自動配置的隧道(Auto-configuredTunnel)
這種隧道的建立和拆除是動態的,它的端點根據分組的目的地址確定,適用于單獨的主機之間或不經常通信的站點之間。自動配置的隧道需要站點采用IPv4兼容的IPv6地址,這些站點之間必須有可用的IPv4連接,每個采用這種機制的主機都需要有一個全球唯一的IPv4地址。
采用這種機制不能解決IPv4地址空間耗盡的問題(采用手工配置隧道的站點就不需要IPv4地址)。兩外還有一種危險就是如果把Internet上全部IPv4路由表包括到IPv6網絡中,那么會加劇路由表膨脹的問題。這種隧道的兩個端點都必須支持雙協議棧(手工配置就不需要)。在隧道要經過NAT設施的情況下這種機制不可用。
(3)隧道中介(TunnelBroker)
TunnelBroker不是一種隧道機制,而是一種方便構造隧道的機制??梢院喕淼赖呐渲眠^程,適用于單個主機獲取IPv6連接的情況。TunnelBroker也可用于站點之間,但這時可能會在IPv6的路由表中引入很多條目,導致IPv6的路由表過于龐大,違背了IPv6設計的初衷。用戶可以通過TunnelBroker從支持IPv6的ISP處獲得持久的IPv6地址和域名。TunnelBroker要求隧道的雙方都支持雙棧并有可用的IPv4連接,在隧道要經過NAT設施的情況下這種機制不可用。采用TB方法,可以使IPv6的ISP可以很容易對用戶執行接入控制,按照策略對網絡資源進行分配。
TB轉換機制包括TunnelServer(TS)和TunnelBroker(TB)。server和boker位于不同的計算機上,對于隧道的控制通常是web形式的。
(4)6over4
6over4是一種點到點、點到路由和路由到點的自動隧道技術,它被用作通過Ipv4內部網的Ipv6節點之間的單點或多點連接。這種隧道端點的IPv4地址采用鄰居發現的方法確定。與手工配置隧道不同的是,它不需要任何地址配置;與自動隧道不同的是它不要求使用V4兼容的V6地址。但是采用這種機制的前提就是IPv4網絡基礎設施支持IPv4多播。這里的IPv4多播域可以是采用全球唯一的IPv4地址的網絡,或是一個私有的IPv4網絡的一部分。這種機制適用于IPv6路由器沒有直接連接的物理鏈路上的孤立的IPv6主機,使得它們能夠將IPv4廣播域作為它們的虛擬鏈路,成為功能完全的IPv6站點?;驹砣缦聢D示。
5)6to4
6to4也是一種將v4轉換成v6的自動構造隧道機制,這種機制要求站點采用特殊的IPv6地址,這種地址是自動從站點的IPv4地址派生出來的。所以每個采用6to4機制的節點至少必須具有一個全球唯一的IPv4地址,(這種地址分配方法,可以使得其它域的邊界路由器自動地區分隧道接收端點是否在本域內)。由于這種機制下隧道端點的IPv4地址可以從IPv6地址中提取,所以隧道的建立是自動的。6to4不會在IPv4的路由表中引入新的條目,在IPv6的路由表中只增加一條表項。采用6to4機制的IPv6ISP只需要做很少的管理工作,這種機制很適用于運行IPv6的站點之間的通信。6to4要求隧道中至少有兩臺路由器支持雙棧和6to4,主機要求至少支持IPv6協議棧。
這種機制把廣域的IPv4網絡作為一個單播的點到點鏈路層。這種機制適合作為V4/V6共存的初始階段的轉換工具,它可以與防火墻、NAT共存,但是NATbox必須具有全球唯一的IPv4地址,并且應有6to4機制和完備的路由功能。在windows2003中的原理如下圖。
四、IPv6/IPv4通信
(1)DualStackModel(雙棧模型)
在這種模型下,任意節點都是完全雙棧的。這時不存在IPv4與IPv6之間的相互通信問題,但是這種機制要給每一個IPv6的站點分配一個IPv4地址。這種方法不能解決IPv4地址資源不足的問題,而且隨著IPv6站點的增加會很難得到滿足,因此這種方法只能用在早期的變遷過程。
(2)LimitedDualStackModel(限制型雙棧模型)
在這種模型下,服務器和路由器仍然是雙棧的,而非服務器的主機只需要支持IPv6。這種機制可以節省大量的IPv4地址,但是在純IPv6和純IPv4節點之間的通信將會出現問題,為了解決這種問題,必須與其它技術結合使用。
(3)SIIT(StatelessIP/ICMPTranslation,無狀態IP/ICMP轉換)
SIIT定義了在IPv4和IPv6的分組報頭之間進行翻譯的方法,這種翻譯是無狀態的,因此對于每一個分組都要進行翻譯。這種機制可以和其它的機制(如NAT-PT)結合,用于純IPv6站點同純IPv4站點之間的通信,但是在采用網絡層加密和數據完整性保護的環境下這種技術不可用。純IPv6節點和純IPv4節點通過一個SIIT轉換器通信,IPv6節點看到的對方一個IPv4mapped地址的主機,同時它自己則使用一個IPv4translated的地址。如果IPv6主機發出的IP分組中的目的地址是一個IPv4mapped地址,那么SIIT轉換器就知道這個IP分組需要進行協議轉換。
(4)NAT-PT(NetworkAddressTranslation-ProtocolTranslation,網絡地址—協議轉換)
NAT-PT就是在做IPv4/IPv6地址轉換(NAT)的同時在IPv4分組和IPv6分組之間進行報頭和語義的翻譯(PT)。適用于純IPv4站點和純IPv6站點之間的通信。對于一些內嵌地址信息的高層協議(如FTP),NAT-PT需要和應用層的網關協作來完成翻譯。在NAT-PT的基礎上利用端口信息,就可以實現NAPT-PT,這點同目前IPv4下的NAT-PT沒有本質區別。
該機制適用于過渡的初始階段,使得基于雙協議棧的主機,能夠運行IPv4應用程序與IPv6應用互相通信。這種技術允許不支持IPv6的應用程序透明地訪問純IPv6站點。該機制要求主機必須是雙棧的,同時要在協議棧中插入三個特殊的擴展模塊:域名解析器、地址映射器和翻譯器,相當于在主機的協議棧中使用了NAT-PT。
(5)BIA(Bump-In-the-API,InternetDraft)
這種技術同BIS類似,只是在API層而不是在協議棧的層次上進行分組的翻譯,所以它的實現比BIS要簡單一些,因為不需要對IP包頭進行翻譯。BIS與BIA的主要區別是:BIS用在沒有IPv6協議棧的系統上,BIA用在有IPv6協議棧的系統上。
當雙棧主機上的IPv4應用與其它IPv6主機通信時,API翻譯器檢測到從IPv4應用發出的基于socketAPI的函數,就調用IPv6socketAPI函數與IPv6主機通信。
除了上述7種通信方式,IPv6與IPv4之間還可以通過TRT、DSTM、ALG等方式進行通信。因為篇幅的關系,不再予以介紹。
五、過渡機制
從已有的過渡機制可以看出,目前所有的方案都是針對某一種問題而提出的。這些過渡機制都不是普遍適用的,每一種機制都適用于某種或幾種特定的網絡情況,而且常常需要和其它的技術組合使用。在實際應用時需要綜合考慮各種實際情況來制定合適的過渡策略。對于某一類互連問題,設計者們可以找出新的方式,并隨著網絡技術和發展不斷的改進和更新這種方式。
為選擇一個合適的機制,首先要明確應用的類型、范圍和系統的類型,然后選擇合適的轉換機制進行設計和實施。