朱壯普
(山西職業(yè)技術學院,山西 太原 030006)
雖然從IPv4遷移到IPv6已不存在技術障礙,但目前網絡的部署絕大多數是IPv4,存在著數十億臺基于IPv4的網絡設備和終端設備,遷移工作成本巨大,不可能一蹴而就,而是一個漸進的過程[1]。因此在過渡階段,IPv6和IPv4將長期共存,并且在部署IPv6的時候要考慮平滑過渡[2],保證網絡服務、業(yè)務系統(tǒng)的不中斷運行。
IPv6的部署進程大致可以分為三個階段:初級階段、共存階段和主導階段。
初級階段的網絡形態(tài)以IPv4網絡為主導,IPv6作為網絡信息孤島,在局部范圍內部署。這是目前全球IPv6發(fā)展所處的階段。
當ISP在骨干網開始逐步部署IPv6業(yè)務平臺,快速推進了IPv6的實施,使IPv6網絡形成較大的規(guī)模。
IPv6取代IPv4是必然趨勢。在此階段下,網絡以IPv6占統(tǒng)治地位,ISP骨干網絡將全部升級為IPv6,IPv6網絡被大眾接受使用,而IPv4網絡則以信息孤島的方式存在,直至退出歷史舞臺。
IPv6的推進是一個緩慢的過程,在將來很長一段時間,IPv6與IPv4將共存,在此過程中要經歷技術設備的變革、政策的推進以及用戶操作習慣的改變。IPv6的部署進程如圖1所示。
在IPv6向IPv4遷移的漫長過程中,為實現IPv6網絡間的互通,以及IPv6與IPv4網絡間的互通,需要采用一些過渡技術來支持,大致可以分為三類:雙棧協(xié)議技術、隧道技術和協(xié)議轉化技術。
雙棧協(xié)議技術是最早的一種過渡技術,它基于設備對IPv6協(xié)議的支持,是指在設備上同時開啟IPv4和IPv6 協(xié)議棧,使該設備既能與IPv4網絡通信,也能與IPv6網絡通信。
隧道技術主要是實現IPv6網絡間的數據通信。它的思想是在IPv6網絡之間搭建一個能夠穿越IPv4網絡的數據傳輸通道如圖2所示。在隧道入口處將IPv6協(xié)議報文封裝在IPv4報文中,該報文的源和目的地址分別為隧道入口和出口的IPv4地址,然后基于IPv4協(xié)議進行轉發(fā)傳輸,報文到達隧道出口處進行解封裝,取出IPv6報文,再轉發(fā)給目的站點。
隧道技術需要隧道的出入口設備支持雙棧協(xié)議和隧道技術,而對于中間設備則沒有要求。
圖1 IPv6的部署進程
圖2 隧道技術示意圖
協(xié)議轉化技術用于實現IPv6網絡和IPv4網絡間的通信。連接IPv6和IPv4網絡的設備稱為協(xié)議轉換器如圖3所示。通過修改報文頭部信息實現協(xié)議轉化,從而使IPv6和IPv4網絡能夠互聯(lián)。
圖3 協(xié)議轉化示意圖
基于目前IPv6網絡依然呈孤島狀態(tài),IPv6網絡的部署實施主要涉及兩個方面,一是IPv6網絡穿越IPv4網絡進行互通,二是IPv6和IPv4網絡間的互通。IPv6網絡間的互通主要使用隧道技術實現,針對不同的網絡環(huán)境和應用需求,隧道技術也有多種分類。
GRE隧道實現的是點到點的單獨隧道。隧道兩端的設備需創(chuàng)建隧道接口,并配置IPv6地址,用于和兩端IPv6網絡的對接,以實現IPv6網絡層面的通信。隧道接口需指定源和目的地址,分別對應隧道的出口和入口IPv4地址,并作為IPv4報文封裝的源和目的地址,實現IPv6協(xié)議數據報文在IPv4網絡中的傳遞。GRE作為承載協(xié)議,IPv6作為乘客協(xié)議封裝在GRE報文中,GRE報文作為IPv4封裝的有效數據。
手動隧道與GRE隧道類似,都是基于隧道入口封裝、IPv4網絡傳輸、隧道出口解封裝的步驟實現,只是在數據封裝上有所區(qū)別,手動隧道將IPv6報文作為凈載荷直接封裝在IPv4報文中。
自動隧道是隨報文通信自動建立的,它只需指定隧道的源點,而隧道的終點自動生成。并且一個隧道源點只需一個隧道接口就可以與多個隧道終點建立隧道。但是自動隧道在應用上有很大的局限性,它只能實現隧道兩端節(jié)點設備的通信,對于隧道后端的網絡不能通信。自動隧道需要在隧道接口配置特殊的IPv6地址,該IPv6地址前綴是0:0:0:0:0:0,后32位嵌入隧道兩端設備實際接口的IPv4地址。在通信的時候依據目標IPv6地址的后32位確認隧道的目的地址。
6to4隧道與自動隧道一樣都是自動建立隧道的,6to4隧道解決了自動隧道只能兩個隧道節(jié)點間通信的局限性。6to4隧道也采用特殊的IPv6地址,其前48位為“2002: IPv4地址”,其中2002為規(guī)定使用的6to4隧道地址標識,IPv4地址為隧道實際出口的IPv4地址,也用來確認隧道的其它終點。用戶可以自定義地址中的后80位,因而隧道設備后端就可以連接不同前綴的IPv6網絡。
6to4隧道規(guī)定隧道接口及隧道設備后端的IPv6網絡必須使用2002:IPv4的地址前綴,但實際環(huán)境中可能要連接到非6to4地址格式的IPv6網絡,這就需要采用6to4中繼來實現。6to4中繼設備跨接6to4網絡和非6to4網絡,基本原理是在6to4中繼設備上將2002開頭的IPv6網絡通告給非6to4的IPv6網絡,通過在6to4邊緣設備上配置指向6to4中繼設備的默認路由實現。
ISATAP隧道也是自動隧道,采用特殊的IPv6地址,其格式為“::0:5EFE:IPv4”,其中0:5EFE是規(guī)定的格式,IPv4地址為內嵌的隧道實際出口的IPv4地址,用來確認隧道的其它終點。ISATAP隧道將IPv4網絡作為非廣播點到多點的底層鏈路,隧道兩端設備都需要運行ND協(xié)議,IPv6主機可以通過ND協(xié)議向ISATAP設備獲取IPv6地址前綴,實現地址的自動配置。
6PE是ISP為IPv6用戶提供的一種IPv6網絡接入技術,用戶端只需要支持IPv6協(xié)議棧即可。用戶端稱之為CE,ISP端稱之為PE。ISP通過已建立的IPv4 MPLS網絡對CE的IPv6路由信息進行標記,并通過IPv4路由傳遞給其它的PE。ISP在轉發(fā)CE的IPv6報文時,6PE設備先對其報文打上標簽,再通過隧道轉發(fā)給對端的6PE設備,對端的6PE拆掉標簽將IPv6報文傳遞給目的CE,從而實現用戶IPv6網絡間的互聯(lián)。
3.7.16over4
6over4技術要求設備之間的IPv4網絡環(huán)境必須支持組播。其主要思路是將IPv6的組播地址映射成IPv4的組播地址,使得ND協(xié)議能夠在IPv4組播網絡上運行。
3.7.2Teredo
Teredo隧道主要解決IPv6 in IPv4數據報文的NAT穿越問題[3]。其主要思想是將IPv6數據報文封裝在UDP載荷中來實現對傳統(tǒng)NAT設備的穿越。Teredo地址結構繁瑣,與IPv6路由的分級理念相沖突,在應用上有一定的局限性。
3.7.3隧道代理
慢慢地,楊紫就形成衣品思維:今天要干什么,天氣如何,穿薄還是厚,先確定上衣,再思考穿裙子還是褲子,襪子和鞋子如何搭配,飾品選擇哪種,最后確定妝容特色……
隧道代理相當于虛擬的IPv6 ISP代理,主要作用是簡化隧道配置的過程。IPv6用戶通過向Tunnel Broker注冊,并獲取IPv6配置參數,在本端的IPv6設備上進行配置,就可以與Tunnel Server進行隧道的建立,實現與其它IPv6網絡的互聯(lián)。
因各種隧道技術都有特定的應用環(huán)境,在實際部署過程中要根據實際情況合理制定過渡策略。表1總結了各類隧道技術的特點及缺點。
表1 隧道技術總結比較
IPv6和IPv4網絡間的通信需要借助協(xié)議轉換器實現,協(xié)議轉換的目的是使IPv6節(jié)點和IPv4節(jié)點能夠互相識別。具體地說,就是在IPv4網絡中用IPv4地址來標識IPv6主機,反之亦然。針對具體的應用環(huán)境,協(xié)議轉換技術也有多種類型。
SIIT稱為無狀態(tài)IP/ICMP轉換技術,它是通過特定的IPv4地址空間來完成IPv6與IPv4地址的轉換。在SIIT網絡中,IPv6節(jié)點采用規(guī)定的地址格式“::FFFF:0:IPv4地址”,其中IPv4地址是SIIT設備定義的地址空間,用來給IPv6節(jié)點分配IPv4地址。如IPv4主機A訪問IPv6主機B時,目的地址為主機B映射的IPv4地址,數據報文通過SIIT設備時,將源地址轉換成“::FFFF:0:主機A-IPv4地址”格式的IPv6地址。SIIT地址空間的大小決定了IPv6節(jié)點的數量,因此SIIT不能應用于大規(guī)模的IPv6網絡中。
NAT-PT技術基于SIIT的工作機制,并結合IPv4的NAT技術來實現IPv6到IPv4地址的轉換。但在端到端的通信過程中,地址信息發(fā)生了變化,安全性很難保障。NAT-PT技術有三種類型。
4.2.1靜態(tài)NAT-PT
靜態(tài)NAT-PT的工作機制與SIIT基本相同,是在NAT-PT設備上將IPv6和IPv4地址的映射關系進行記錄,但在映射過程中的IPv4地址不能復用,只能實現一對一的轉換。如果IPv6主機數量多的情況下,會導致配置繁瑣,且不易維護。因此,靜態(tài)NAT-PT一般用于特定的IPv6和IPv4地址的轉換。
動態(tài)NAT-PT技術有效地解決了靜態(tài)NAT-PT的弊端。在NAT-PT設備上創(chuàng)建IPv4地址池,用于IPv6地址的轉換,同時采用上層協(xié)議映射的方法,實現IPv4地址和IPv6地址一對多的映射關系,這和IPv4網絡中的端口映射原理一樣。動態(tài)NAT-PT技術最大的問題在于只能完成由IPv6主機向IPv4主機發(fā)起的通信,IPv6主機發(fā)起連接后,在NAT-PT設備上生成轉換記錄臨時存放在轉換表中,IPv4主機的回應報文可以依據臨時轉換記錄進行轉發(fā)。但由IPv4主機主動發(fā)起連接時,并不清楚目標IPv6主機的IPv4映射地址,因為無法完成通信。
4.2.3結合DNS ALG的動態(tài)NAT-PT
動態(tài)NAT-PT結合DNS ALG后,便可實現IPv6和IPv4網絡的雙向通信。但需要在IPv6網絡中部署DNS服務器,用于對IPv6主機名及其地址的解析,并且ALG可以對報文中的載荷進行轉換,因而可以實現如DNS、FTP等應用服務的通信。
4.3.1應用層協(xié)議轉換技術(SOCKS-based IPv6/IPv4Gateway)
該技術是在應用層實現的IPv4和IPv6中繼方法。在客戶機的應用層和Socket層之間增加SOCKS Lib功能模塊,負責對Socket API和域名解析API進行轉換;在雙棧主機增加Gateway模塊,負責客戶機與目的主機任意協(xié)議的中繼。SOCKS Lib和Gateway之間基于SOCKSv5協(xié)議進行通信,Gateway與目的主機的正常連接,且目的主機的應用程序認為通信的對端是Gateway,并不知道客戶機的存在。
4.3.2傳輸層中繼(TRT)
傳輸層中繼位于純IPv4網絡和IPv6網絡之間,實現基于傳輸層協(xié)議TCP/UDP通信數據的互譯[4]。TRT系統(tǒng)作為中繼轉換器,需要維護TCP/IPv4和TCP/IPv6兩條連接。
4.3.3BIS
BIS技術是在IPv4主機協(xié)議棧中添加了三個模塊,分別為報頭翻譯模塊(Translator)、地址映射模塊(Address mapper)和域名解析模塊(Extension name resolver)。當IPv4主機和IPv6主機通信時,通過域名解析模塊獲取IPv6主機名對應的IPv6地址,并通過地址映射模塊為該IPv6地址分配一個IPv4地址,最后通過報頭翻譯模塊進行報頭的轉換。
4.3.4BIA
BIA技術在雙棧主機的TCP/IP模塊和Socket API模塊之間添加一個API翻譯器。API翻譯器包含三個模塊,分別為函數映射模塊(Function mapper)、地址映射模塊(Address mapper)和域名解析模塊(Name resolver)。BIA通過API翻譯器實現IPv6和IPv4的Socket API函數的互譯,當雙棧主機的IPv4 API與IPv6主機通信時,API翻譯器對IPv4 API函數進行檢測,通過域名解析模塊進行IPv6地址解析,再通過地址映射模塊為IPv6地址分配IPv4地址,最后通過函數映射模塊調用相應的IPv6 API函數實現IPv6主機的通信,其技術原理與BIS相似。
IPv6和IPv4網絡間的互通需要使用協(xié)議轉換器,協(xié)議轉換過程可以發(fā)生在網絡層、傳輸層和應用層。各類協(xié)議轉換技術都有相應的應用環(huán)境,表2總結了各類協(xié)議轉換技術的特點及缺點。
表2 協(xié)議轉換技術總結比較
IPv4向IPv6過渡是IT技術發(fā)展的必然趨勢,IPv6能從根本上解決了IPv4地址緊缺的局面,并且IPv6具備更先進的設計理念,在安全、通信性能上具有更大的優(yōu)勢。近年來所生產的網絡設備和通信終端幾乎都支持IPv6協(xié)議棧,為IPv6的部署實施提供了物理基礎。
當前IPv6的各類過渡技術在應用上都存在著一定的局限性,在實施過渡的時候,要依據具體網絡環(huán)境和需求,選擇合適的或者是多種過渡技術組合的過渡方案。在滿足過渡要求的基礎上,要兼顧安全、性能及管理性。