■
隨著全球最后一部分IPv4地址的分配完成,IPv6技術(shù)進行大規(guī)模部署應用是必然趨勢。但任何技術(shù)的發(fā)展及更新不是一朝一夕就能完成的,全球大部分網(wǎng)絡(luò)仍然在相當一段時間內(nèi)都還會使用IPv4,所以IPv6到IPv4的過渡必定是漸進的過程,會同時出現(xiàn)IPv4和IPv6網(wǎng)絡(luò)共存,也會遇到IPv4和IPv6網(wǎng)絡(luò)的互聯(lián)通信,這時就可以使用IPv6隧道技術(shù)使得IPv4網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò)相通。本文主要介紹IPv6中的6to4自動隧道技術(shù),利用這個技術(shù),可以達到IPv4和IPv6網(wǎng)絡(luò)的無縫對接,保證網(wǎng)絡(luò)互連。
在IPv6技術(shù)成為主流協(xié)議之前,使用IPv6協(xié)議棧的網(wǎng)絡(luò)希望能與當前仍然普遍使用的IPv4網(wǎng)絡(luò)進行正常通信,保證現(xiàn)有的大量網(wǎng)絡(luò)應用可以使用。因此必須使用相關(guān)技術(shù)保證IPv4能夠平穩(wěn)過渡到IPv6,對信息傳遞做到高效無縫。目前已經(jīng)出現(xiàn)了多種過渡技術(shù),這些技術(shù)各有特點,用于解決不同過渡時期、不同環(huán)境的通信問題。目前解決過渡問題的基本技術(shù)主要有雙協(xié)議棧、隧道、NAT-PT和6PE四種技術(shù)。
IPv6隧道技術(shù)是一種封裝技術(shù),即一種網(wǎng)絡(luò)協(xié)議將其他網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)報文封裝在自己的報文中,然后在網(wǎng)絡(luò)中傳輸。封裝后的數(shù)據(jù)報文在網(wǎng)絡(luò)中傳輸?shù)穆窂?,稱為隧道。隧道是一條虛擬的點對點連接,隧道的兩端需要對數(shù)據(jù)報文進行封裝及解封裝。IPv6/IPv4隧道技術(shù)的目的是利用現(xiàn)有的IPv4設(shè)施來為IPv6網(wǎng)絡(luò)服務(wù),使得各個分散的IPv6“孤島”可以跨越IPv4網(wǎng)絡(luò)相互通信。在IPv6封包通過IPv4網(wǎng)絡(luò)時,無論哪種隧道機制都是使用了一個“封包到拆包”的過程,即處于發(fā)送端的隧道端點將該IPv6封包封裝在IPv4包中,將此IPv6包視為IPv4的負載數(shù)據(jù),并將該IPv4包頭的協(xié)議字段設(shè)置為41,以說明該IPv4封包的負載是一個IPV6封裝包,然后在IPv4網(wǎng)絡(luò)上傳送該封裝包。當協(xié)議字段標為41的IPv4封裝包到達處于接收端的Tunnel端點時,該端點拆掉封裝包的IPv4包頭,取出IPv6封裝包繼續(xù)處理。在對IPv6包進行IPv4封裝時如何確定該IPv4包的源和目的地址是封裝的關(guān)鍵問題,現(xiàn)存的IPv6/IPv4隧道機制的主要區(qū)別就在于如何確定IPv4封包的地址。
目前主要的隧道包括GRE隧道、手工隧道、IPv4兼容IPv6自動隧道、6to4隧道、ISATAP隧道等。
手工隧道是一種端到端的機制,需要隧道兩端的管理員協(xié)同工作來完成隧道的建立。管理員對隧道兩端進行配置時,首先應為隧道接口指定兩端的IPv4地址,對在此隧道上傳遞的所有IPv6包進行IPv4封裝時,都要從這一配置信息中提取源和目的IPv4地址。其次管理員要設(shè)置必要的路由信息,用以決定哪些IPv6包要經(jīng)過隧道傳遞。但手工隧道配置的缺點是,隧道兩端IPv6地址和IPv4地址都需要事先經(jīng)過協(xié)商和設(shè)定,才能完成兩端的隧道配置,這給接入網(wǎng)技術(shù)管理人員帶來了極大的負擔。而且手工配置的人工工作量大,很可能有大量隧道需要配置,導致效率低下,并且容易出現(xiàn)差錯。
自動隧道需要靜態(tài)建立雙向的隧道,配置隧道的一方不需要與其他方協(xié)同。系統(tǒng)建立隧道的接口或者在IPv6地址中包含IPv4地址信息,這樣在隧道對IPv6包進行封裝時可以從IPv6地址中提取IPv4地址,并填寫IPv4包頭;或者提供一種IPv4尋址方式,利用尋址技術(shù)得到對端的IPv4地址。目前常用的自動隧道技術(shù)有以下幾種:
1.利用IPv4兼容地址的自動隧道技術(shù):自動隧道能夠完成點到多點的連接,這是它的特點。而手工隧道僅僅是點到點的連接。IPv4兼容IPv6自動隧道這種技術(shù)能夠使隧道自動生成。一個隧道必須需要有一個起點和一個終點,起點和終點確定了以后,那么隧道也就可以確定了。在IPv4兼容IPv6自動隧道中,我們僅僅需要告訴設(shè)備隧道的起點,隧道的終點由設(shè)備自動生成。為了實現(xiàn)設(shè)備自動產(chǎn)生終點的要求,IPv4兼容IPv6自動隧道需要使用一種特殊的地址,即IPv4兼容IPv6地址。
2.6over4技術(shù):利用IPv4組播機制實現(xiàn)虛擬鏈路,自動建立隧道的機制。使用這種機制的接口利用ND(Neighbor Discovery)協(xié)議進行尋址,當需要對一個IPv6包進行封裝時,IPv6層發(fā)送ND請求報文對目的IPv6地址進行尋址,6over4接口將ND請求報文封裝一個IGMP頭后發(fā)送到IPv4組播域,在該組播域中如果有另一個6over4接口擁有被請求的IPv6地址,則該接口以同樣的方式發(fā)出包含其IPv4地址的ND應答報文,查詢接口收到該ND應答后就可以從中得到目的接口的IPv4地址。
4.ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)技 術(shù) :它是一種站內(nèi)自動隧道協(xié)議。利用ISATAP服務(wù)器分配ISATAP前綴。域內(nèi)主機利用ISATAP接口獲得該前綴,ISATAP隧道的地址也有固定的格式,它的接口ID必須 是::0:5EFE:w.x.y.z,w.x.y.z是單播IPv4地址,它嵌入到IPv6地址的最后32位。
目前常見的6to4隧道技術(shù)是IPv6自動隧道技術(shù)中的一種,它允許將被孤立的IPv6網(wǎng)絡(luò)透過IPv4網(wǎng)絡(luò)互聯(lián)。它和手工配置隧道的主要區(qū)別是手工配置隧道是點對點的隧道,而6to4隧道是點對多點的隧道。6to4隧道將IPv4網(wǎng)絡(luò)視為NBMA鏈路,因此6to4的設(shè)備不需要成對的配置,封裝在IPv6地址的IPv4地址將用來尋找自動隧道的另一端,可以把6to4隧道可以看做是點到多點的隧道。6to4自動隧道可以被配置在一個被孤立的IPv6網(wǎng)絡(luò)的邊界路由器上,對于每個報文它將自動建立隧道到達另一個IPv6網(wǎng)絡(luò)的邊界路由器。隧道的目的地址就是另一端的IPv6網(wǎng)絡(luò)的邊界路由器的IPv4地址,該IPv4地址將從該報文的目的IPv6地址中提取,6to4隧道中規(guī)定IPv6地址以前綴2002::/16開頭的。
6to4地址中內(nèi)嵌的IPv4地址通常是站點邊界路由器出口的全局IPv4地址(6to4地址內(nèi)嵌的IPv4地址不能為私有的IPv4地址),在自動隧道建立時將使用該地址封裝進隧道報文中。6ot4隧道兩端的設(shè)備同樣必須都支持IPv6和IPv4雙協(xié)議棧。6to4隧道通常是配置在邊界路由器之間,如:6to4站點邊界路由器出口的全局IPv4地址是211.1.1.1(16進制為 D301:0101),站點內(nèi)的子網(wǎng)號為1,接口標識符為 2e:aaff:febb:cc(由 EUI-64規(guī)范轉(zhuǎn)換),那么其對應的6to4地址可以按照上述格式表示為:2002: D301:0101:1:2e:aaff:febb:cc。
圖1 配置過程
如圖1所示,兩個純IPv6網(wǎng)絡(luò)通過網(wǎng)絡(luò)邊緣6to4路由器(RA和RB)與IPv4網(wǎng)絡(luò)相連。通過在RA和RB(圖中RA和RB路由器型號均為H3C 30-20)之間建立6to4隧道,實現(xiàn)主機Host A和Host B之間的互通,配置主要過程如圖1。
(1) 配置RA路由器
(2) 配置RB路由器
最后,分別在主機PCA和PCB上配置上相應的IPv6地址和網(wǎng)關(guān),進行測試,PCA和PCB之間可以互相Ping通對方的IPv6主機地址。