所謂IPv6隧道其實都是為了讓IPv6的各個孤島能通過IPv4的海洋相互連接起來,或者說都是一個過渡技術(shù)(IPv4向IPv6過渡)。
在RFC 4213: Basic Transition Mechanisms for IPv6 Hosts and Routers中定義的一種隧道技術(shù): 在兩個支持雙棧(既支持IPv4也支持IPv6的設備,如路由器)的節(jié)點間靜態(tài)建立IPv6 over IPv4的隧道。IPv6報文經(jīng)過雙棧節(jié)點時,通過查詢路由(靜態(tài)IPv6路由配置),可知出接口為IPv6 over IPv4隧道接口,報文封裝IPv4頭(IPv4目的和源地址分別為隧道出入接口地址,協(xié)議號為41),報文經(jīng)過IPv4網(wǎng)絡后到達隧道出口,剝離IPv4隧道頭后,在出口節(jié)點查找IPv6路由或鄰居信息(同一子網(wǎng)時)將報文送達目的IPv4節(jié)點。
當IPv6終端需要與掛接在IPv4網(wǎng)絡中很多個IPv6信息島(不同IPv6子網(wǎng))通訊時,其出接口的雙棧路由器需要配置很多的隧道(同一個隧道起點,不同的隧道終點),自動隧道技術(shù)應運而生。
自動隧道中,用戶僅需要配置設備隧道的起點,隧道的終點由設備自動生成。為了使設備能夠自動產(chǎn)生終點,隧道接口的IPv6地址采用內(nèi)嵌IPv4地址的特殊IPv6地址形式。設備從IPv6報文中的目的IPv6地址中解析出IPv4地址,然后以這個IPv4地址代表的節(jié)點作為隧道的終點。
根據(jù)IPv6報文封裝的不同,自動隧道又可以分為IPv4兼容IPv6自動隧道、6to4隧道和ISATAP隧道三種。
IPv4兼容IPv6自動隧道,其承載的IPv6報文的目的地址(即自動隧道所使用的特殊地址)是IPv4兼容IPv6地址。IPv4兼容IPv6地址的前96位全部為0,后32位為IPv4地址。
其格式為:
#IPv4兼容IPv6地址格式
#IPv4兼容IPv6報文抓取
如下圖所示: 源IP為::10.1.1.1目的IP為::20.1.1.1的IPv6報文到達路由器R1后,R1查找其IPv6路由表,發(fā)現(xiàn)出接口為隧道接口,則對IPv6報文進行封裝(加一個IPv4頭),其源地址為隧道地址10.1.1.1, 目的地址則從IPv6報文的最后32位獲得(即20.1.1.1), 封裝后的報文經(jīng)過IPv4網(wǎng)絡送達R2后,解封(剝掉IPv4頭),根據(jù)IPv6路由表進行轉(zhuǎn)發(fā),回來的報文按照同樣的邏輯進行處理。
#IPv4兼容IPv6隧道的組網(wǎng)示意圖
注:如果IPv4兼容IPv6地址中的IPv4地址是廣播地址、組播地址、網(wǎng)絡廣播地址、出接口的子網(wǎng)廣播地址、全0地址、環(huán)回地址,則該IPv6報文被丟棄,不會進行隧道封裝處理。
由于IPv4兼容IPv6隧道要求每一個主機都要有一個合法的IP地址,而且通訊的主機要支持雙棧、支持IPv4兼容IPv6隧道,不適合大面積部署。目前該技術(shù)已經(jīng)被6to4隧道所代替。
6to4隧道也屬于一種自動隧道,隧道也是利用在IPv6地址中內(nèi)嵌IPv4地址方式來自動建立的。與IPv4兼容自動隧道不同,6to4自動隧道支持Router到Router、Host到Router、Router到Host、 Host到Host。這是因為6to4地址是用IPv4地址做為網(wǎng)絡標識,其地址格式如下所示:
#6to4隧道封裝地址格式
6to4地址可表示為2002:IPv4地址::/48, 如2004:101.0.0.65::/48, 6to4地址的網(wǎng)絡前綴長度為64bit,其中前48bit(2002: a.b.c.d)在分配路由器上的IPv4地址時就被定下來了(劃定了路由器下屬的一個IPv6大網(wǎng)),用戶不能改變,而后16位(SLA)可在路由器下掛網(wǎng)絡進一步細分(由該大網(wǎng)管理用戶自己定義)。如圖所示,20.2.2.200路由器下,有兩個IPv6子網(wǎng): 2002:20.2.2.200:1::/64和2002:20.2.2.200:2::/64。
# 6to4組網(wǎng)示意圖
ISATAP(Intra-Site Automatic Tunnel Addressing Protocol,站點內(nèi)自動隧道尋址協(xié)議)是另外一種自動隧道技術(shù)。ISATAP隧道同樣使用了內(nèi)嵌IPv4地址的特殊IPv6地址形式,只是和6to4不同的是,6to4是使用IPv4地址做為網(wǎng)絡前綴,而ISATAP用IPv4地址做為接口標識。其接口標識符格式如下圖所示:
#ISATAP地址格式
#ISATAP報文抓取
由于ISATAP是通過接口標識來表現(xiàn)的,所以,ISATAP地址有全局單播地址、鏈路本地地址、ULA(Local IPv6 Unicast Address)地址、組播地址等形式。ISATAP地址的前64位是通過向ISATAP路由器發(fā)送請求來得到的,它可以進行地址自動配置。在ISATAP隧道的兩端設備之間可以運行ND(鄰居發(fā)現(xiàn))協(xié)議。ISATAP隧道將IPv4網(wǎng)絡看作一個非廣播的點到多點的鏈路(NBMA)。
ISATAP過渡機制允許在現(xiàn)有的IPv4網(wǎng)絡內(nèi)部署IPv6,該技術(shù)簡單而且擴展性很好,可以用于本地站點的過渡。ISATAP支持IPv6站點本地路由和全局IPv6路由域,以及自動IPv6隧道。ISATAP同時還可以與NAT結(jié)合,從而可以使用站點內(nèi)部非全局唯一的IPv4地址。典型的ISATAP隧道應用是在站點內(nèi)部,所以,其內(nèi)嵌的IPv4地址不需要是全局唯一的。
#ISATAP 組網(wǎng)示意圖
如上圖所示,在IPv4網(wǎng)絡內(nèi)部有兩個雙棧主機B和C,它們分別有一個私網(wǎng)IPv4地址。要使其具有ISATAP功能,需要進行如下操作:
將IPv6報文封裝一個GRE頭部,然后再封裝IPv4頭部
#IPv6 over IPv4 GRE隧道
與前面的自動隧道通過在IPv4的數(shù)據(jù)報文中承載著IPv6數(shù)據(jù)報文(IPv6-in-IPv4)不同, Teredo隧道利用了UDP(端口3544)頭進行了封裝,以便于封裝后的報文透過NAT進行傳輸。路由器對TCP、UDP等傳輸層協(xié)議做NAT處理,而無法正確處理IPv6-in-IPv4這種報文,例如使用ISATAP隧道,IPv6雙棧節(jié)點與ISATAP路由器之前如果存在NAT,ISATAP建立隧道失??;6to4隧道也會遇到同樣的問題。
Teredo隧道是有微軟公司主導的一項隧道技術(shù),主要用于在NAT網(wǎng)絡架構(gòu)下建立穿越NAT的隧道。Teredo隧道的核心思路,是將IPv6的數(shù)據(jù)封裝成IPv4的UDP數(shù)據(jù)包,利用NAT對IPv4的UDP支持進行穿越NAT的傳輸,當UDP包到達隧道的另外一端后,再把IPv4的包頭、UDP包頭剝離,還原IPv6的數(shù)據(jù)包,再進行下一步的IPv6數(shù)據(jù)通信轉(zhuǎn)發(fā)。Teredo節(jié)點會分配一個以2001::/32的前綴,而且地址中還包含Teredo的服務器、標志位和客戶端外部映射模糊地址和端口號等信息。
Teredo的實現(xiàn)還會遇到NAT的類型不同而被限制的問題。NAT的類型有錐形NAT、受限制的NAT、對稱NAT幾種(見附錄1),Teredo只能在錐形NAT和受限制的NAT的環(huán)境下正常工作,而且在這兩種NAT需要處理的邏輯又是不一樣的。
如在win10下開啟teredo隧道
netsh interface teredo set state server=teredo.remlab.net
#win 10 teredo虛擬接口
#teredo隧道報文抓取
6RD是IPv6快速部署(IPv6 Rapid Deployment)的簡稱,其對應標準為RFC5569,6RD是在6to4基礎上發(fā)展起來的一種IPv6網(wǎng)絡過渡技術(shù)方案。通過在現(xiàn)有IPv4網(wǎng)絡中增加6RD-BR,向使用IPv6的用戶提供IPv6接入;在IPv6用戶的家庭網(wǎng)關(guān)和6RD網(wǎng)關(guān)之間建立6in4隧道,從而實現(xiàn)在IPv4網(wǎng)絡提供IPv6服務的能力。
6RD在向IPv6過渡的過程中已經(jīng)取得了部分成功,因為它容易實施,擴展性強而且可靠,同時它還是無狀態(tài)的。
6RD是6to4自動隧道的擴展技術(shù),部署更加靈活。它使得運行商通過已經(jīng)部署完畢的IPv4網(wǎng)絡提供IPv6服務,當然也是通過最常用的把IPv6封裝在IPv4中實現(xiàn)。
6RD和6to4自動隧道的區(qū)別:
#6rd組網(wǎng)示意圖
按照端口轉(zhuǎn)換的工作方式對NAT的類型進行劃分:
l 全錐形NAT
其特點為:一旦內(nèi)部主機端口對(私網(wǎng)IP:端口,目的IP: 端口)被NAT網(wǎng)關(guān)映射到公網(wǎng)端口對(公網(wǎng)IP:端口,目的IP:端口),所有后續(xù)的該端口對的報文都會被轉(zhuǎn)換為同一個公網(wǎng)端口對;任何一個外部主機發(fā)送到公網(wǎng)端口對的報文將會被轉(zhuǎn)換后發(fā)到內(nèi)部的主機端口對。
l 限制錐形NAT
其特點為:一旦內(nèi)部主機端口對(私網(wǎng)IP:端口,目的IP: 端口)被NAT網(wǎng)關(guān)映射到公網(wǎng)端口對(公網(wǎng)IP:端口,目的IP:端口),所有后續(xù)的該端口對的報文都會被轉(zhuǎn)換為同一個公網(wǎng)端口對;只有內(nèi)部主機端口對向特定的外部主機(目的IP)發(fā)送過數(shù)據(jù),外部主機(目的IP)從任意端口發(fā)送到(公網(wǎng)IP: 端口)的報文將會被轉(zhuǎn)發(fā)到內(nèi)部主機端口對。
l 端口限制錐形NAT
其特點為:一旦內(nèi)部主機端口對(私網(wǎng)IP:端口,目的IP: 端口)被NAT網(wǎng)關(guān)映射到公網(wǎng)端口對(公網(wǎng)IP:端口,目的IP:端口),所有后續(xù)的該端口對的報文都會被轉(zhuǎn)換為同一個公網(wǎng)端口對;只有內(nèi)部主機端口對向特定的外部主機(目的IP)發(fā)送過數(shù)據(jù),外部主機端口對(目的IP:端口)發(fā)送到(公網(wǎng)IP: 端口)的報文將會被轉(zhuǎn)發(fā)到內(nèi)部主機端口對。
l 對稱型NAT(大多數(shù)互聯(lián)網(wǎng)網(wǎng)關(guān)的NAT轉(zhuǎn)換模式)
其特點為:NAT網(wǎng)關(guān)會把內(nèi)部主機“地址端口對”和外部主機“地址端口對”完全相同的報文看作一個連接,在網(wǎng)關(guān)上創(chuàng)建一個公網(wǎng)“地址端口對”映射進行轉(zhuǎn)換,只有收到報文的外部主機從對應的端口對發(fā)送回應的報文,才能被轉(zhuǎn)換。即使內(nèi)部主機使用之前用過的地址端口對去連接不同外部主機(或端口)時,NAT網(wǎng)關(guān)也會建立新的映射關(guān)系。
聯(lián)系客服