目前,因特網(wǎng)所采用的協(xié)議族是TCP/IP協(xié)議族,IP則是TCP/IP協(xié)議族中網(wǎng)絡(luò)層的協(xié)議,是TCP/IP協(xié)議族的核心協(xié)議。當(dāng)前IP協(xié)議的版本號(hào)是4(簡稱為IPv4),發(fā)展至今已經(jīng)使用了30多年。由于IPv4的地址位數(shù)為32位,也就是最多有2的32次方的電腦可以聯(lián)到Internet上。近十年來由于互聯(lián)網(wǎng)的蓬勃發(fā)展,IP位址的需求量愈來愈大,使得IP位址的發(fā)放愈趨嚴(yán)格,各項(xiàng)資料顯示全球IPv4位址可能在2005至2008年間全部發(fā)完。
1995年12月,IETF工作組提出的RFC2460標(biāo)準(zhǔn)協(xié)議文檔,標(biāo)志著IPv6的誕生。到1998年,IPv6協(xié)議族得到了進(jìn)一步的更新和完善,基本上形成了一個(gè)完整的協(xié)議體系。IPv6從根本上解決了IPv4地址即將枯竭的致命缺陷,并且在地址分類、報(bào)頭格式、安全性、QoS、Plug&Play功能、移動(dòng)性、尋徑效率、ICMP等諸多方面進(jìn)行了協(xié)議優(yōu)化和更新,使之更加適應(yīng)未來網(wǎng)絡(luò)運(yùn)行的發(fā)展需要。同時(shí),也成為移動(dòng)通信的協(xié)議核心,而且,對(duì)信息家電的誕生和發(fā)展起到了主流推動(dòng)作用。
有專家預(yù)測(cè),IPv4到IPv6的過渡,將產(chǎn)生10,000億美元的商機(jī)。如何完成從IPv4到IPv6的轉(zhuǎn)換是IPv6發(fā)展需要解決的第一個(gè)問題。現(xiàn)有的幾乎每個(gè)網(wǎng)絡(luò)及其連接設(shè)備都支持IPv4,因此要想一夜間就完成從IPv4到IPv6的轉(zhuǎn)換是不切實(shí)際的。IPv6必須能夠支持和處理IPv4體系的遺留問題?梢灶A(yù)見,IPv4向IPv6的過渡需要相當(dāng)長的時(shí)間才能完成。
目前,IETF已經(jīng)成立了專門的工作組,研究IPv4到IPv6的轉(zhuǎn)換問題,并且已提出了很多方案,主要包括以下幾個(gè)類型:
(1)雙協(xié)議棧技術(shù):IPv6和IPv4是功能相近的網(wǎng)絡(luò)層協(xié)議,兩者都基于相同的物理平臺(tái),而且加載于其上的傳輸層協(xié)議TCP和UDP又沒有任何區(qū)別。如果一臺(tái)主機(jī)同時(shí)支持IPv6和IPv4兩種協(xié)議,那么該主機(jī)既能與支持IPv4協(xié)議的主機(jī)通信,又能與支持IPv6協(xié)議的主機(jī)通信,這就是雙協(xié)議棧技術(shù)的工作機(jī)理。
(2)隧道技術(shù):隨著IPv6網(wǎng)絡(luò)的發(fā)展,出現(xiàn)了許多局部的IPv6網(wǎng)絡(luò),但是這些IPv6網(wǎng)絡(luò)需要通過IPv4骨干網(wǎng)絡(luò)相連。將這些孤立的"IPv6島"相互聯(lián)通必須使用隧道技術(shù)。利用隧道技術(shù)可以通過現(xiàn)有的運(yùn)行IPv4協(xié)議的Internet骨干網(wǎng)絡(luò)(即隧道)將局部的IPv6網(wǎng)絡(luò)連接起來,因而是IPv4向IPv6過渡的初期最易于采用的技術(shù)。
(3)網(wǎng)絡(luò)地址轉(zhuǎn)換/協(xié)議轉(zhuǎn)換技術(shù):網(wǎng)絡(luò)地址轉(zhuǎn)換/協(xié)議轉(zhuǎn)換技術(shù)NAT-PT(Network Address Translation - Protocol Translation)通過與SIIT協(xié)議轉(zhuǎn)換和傳統(tǒng)的IPv4下的動(dòng)態(tài)地址翻譯(NAT)以及適當(dāng)?shù)膽?yīng)用層網(wǎng)關(guān)(ALG)相結(jié)合,實(shí)現(xiàn)了只安裝了IPv6的主機(jī)和只安裝了IPv4機(jī)器的大部分應(yīng)用的相互通信。
上述技術(shù)很大程度上依賴于從支持IPv4的互聯(lián)網(wǎng)到支持IPv6的互聯(lián)網(wǎng)的轉(zhuǎn)換。目前,6to4機(jī)制便是較為流行的實(shí)現(xiàn)手段之一。
1. 6to4工作原理
6to4采用特殊的IPv6地址使在IPv4海洋中的IPv6孤島能相互連接。此時(shí)IPv6的出口路由器與其他的IPv6域建立隧道連接。IPv4隧道的末端可從IPv6域的地址前綴中自動(dòng)提取,因?yàn)檎军c(diǎn)的IPv4地址包含在IPv6地址前綴中。6to4另一個(gè)讓人感興趣的特點(diǎn)是它可以自動(dòng)從IPv6 地址的前綴中提取一個(gè)IPv4地址。通過這個(gè)機(jī)制,站點(diǎn)能夠配置IPv6而不需要向注冊(cè)機(jī)構(gòu)申請(qǐng)IPv6地址空間。這同時(shí)也簡化了ISP提供商的管理工作。可以設(shè)想,在一個(gè)擁有很多部門的企業(yè)里,各部門內(nèi)部使用私有地址和NAT技術(shù),利用6to4策略可以建立一個(gè)虛擬IPv6外部網(wǎng)。它同樣可以重新建立起點(diǎn)到點(diǎn)的IP連接,且允許企業(yè)在不同地方的服務(wù)器使用IPsec協(xié)議,從而進(jìn)一步提高了網(wǎng)絡(luò)的安全性。此外,6to4機(jī)制還允許在采用6to4的IPv6站點(diǎn)和純IPv6站點(diǎn)之間通過中繼路由器 ( 6to4 Relay Router )進(jìn)行通信,這時(shí)不要求通信的兩個(gè)端點(diǎn)之間具有可用的IPv4連接,中繼路由器建議運(yùn)行BGP4+,適應(yīng)范圍更廣。
2. 6to4的基本使用方法
6to4機(jī)制的簡單運(yùn)用是在沒有本地IPv6的 ISP 服務(wù)時(shí), 幾個(gè)IPv4站點(diǎn)需使用IPv6進(jìn)行交互, 因而每一站點(diǎn)都需要確定一個(gè)路由來運(yùn)行雙層協(xié)議棧(即IPv4和IPv6兼容)和6to4隧道,以確保這個(gè)路由有全球范圍的路由地址(非專用IPv4地址空間)。
在運(yùn)行過程中,當(dāng)6to4站點(diǎn)內(nèi)的IPv6主機(jī)試圖通過域名訪問其他6to4站點(diǎn)內(nèi)的IPv6主機(jī)時(shí),均可通過IPv4或IPv6協(xié)議實(shí)現(xiàn)。訪問方主機(jī)選擇帶有6to4前綴的IPv6地址來發(fā)送一個(gè)信息包至距離最近的路由器,直至到達(dá)站點(diǎn)旁的路由器(假定該站點(diǎn)也提供6to4服務(wù))。
3.6to4路由器的發(fā)送接收規(guī)則
當(dāng)請(qǐng)求方站點(diǎn)的6to4路由器發(fā)送信息包到另一站點(diǎn)(不在一個(gè)子網(wǎng)或一個(gè)用戶網(wǎng)絡(luò)中),并且下一個(gè)目的地址的前綴包含特殊的6to4 TLA值2002::/16,需使用41類型的IPv4協(xié)議將IPv6信息包封裝于IPv4信息包內(nèi),如轉(zhuǎn)換機(jī)制RFC所定義的那樣。IPv4源地址包含于請(qǐng)求方站點(diǎn)的6to4前綴內(nèi)(即6to4路由器的網(wǎng)絡(luò)外部接口的IPv4地址,它包含于IPv6信息包的6to4前綴內(nèi)),同時(shí)接收方IPv4地址成為下一個(gè)IPv6發(fā)送包目的地址的6to4前綴。
當(dāng)接收站點(diǎn)的6to4路由器收到IPv4信息包,且識(shí)別出是41類型的IPv4協(xié)議時(shí),即進(jìn)行IPv4安全檢測(cè),去除文件頭,用IPv6源信息包進(jìn)行本地傳送。
以上的發(fā)送規(guī)則是對(duì)IPv6發(fā)送規(guī)則所作的惟一修正,因?yàn)榛镜腎Pv6轉(zhuǎn)換機(jī)制的接收規(guī)則早已確定。隨著DNS內(nèi)加載適當(dāng)個(gè)數(shù)的6to4前綴,任何站點(diǎn)均可脫離人工隧道配置而相互協(xié)作。
4.返回路徑和源地址的選擇
可以雙向傳送的信息包才是有效的。因此當(dāng)與具有6to4前綴的站點(diǎn)交互時(shí)必需在發(fā)送的信息包內(nèi)使用一個(gè)6to4前綴作為源地址; 換言之,源地址必須帶有6to4前綴。(這個(gè)簡單例子說明,雙方站點(diǎn)僅有IPv4連通性不再是通信障礙,它們可以通過6to4前綴來進(jìn)行通信)。DNS在搜尋主機(jī)名后僅可返回一個(gè)IPv6地址,且?guī)в?to4前綴,因此上述源地址的選擇不再是個(gè)問題。
5. 更為復(fù)雜的6to4使用方法
當(dāng)站點(diǎn)同時(shí)擁有6to4連通性和本地IPv6連通性時(shí),會(huì)有多種6to4的使用方法。最簡單的一種就是當(dāng)某個(gè)站點(diǎn)試圖訪問另一個(gè)僅有6to4連通性的站點(diǎn)時(shí),上文所提到的源地址的選擇算法可確保得到站點(diǎn)的6to4 IPv6地址。在此并不需要選擇目的地址,因?yàn)橹挥幸粋(gè)選擇:6to4。
同樣,當(dāng)僅擁有6to4連通性的站點(diǎn)試圖訪問同時(shí)擁有6to4和本地IPv6連通性的站點(diǎn)時(shí),在多個(gè)目的地址中主機(jī)的選擇規(guī)則決定了6to4地址的選擇,因?yàn)橹挥幸粋(gè)本地6to4 IPv6源地址是有效的。
另一特殊情況是當(dāng)某個(gè)擁有6to4和本地IPv6連通性的站點(diǎn)試圖訪問另一個(gè)僅有本地IPv6連通性的站點(diǎn)時(shí),制訂一個(gè)源地址的選擇算法可確保得到站點(diǎn)的本地IPv6地址。在此并不需要選擇目的地址,因?yàn)橹恍柽x擇本地IPv6地址即可。
6. 6to4轉(zhuǎn)播
最為復(fù)雜的6to4假設(shè)情況是僅有6to4連通性的站點(diǎn)和僅有IPV6連通性的站點(diǎn)進(jìn)行通信。這可通過同時(shí)支持6to4和IPv6連通性的6to4轉(zhuǎn)播來實(shí)現(xiàn)。事實(shí)上,6to4轉(zhuǎn)播就是一個(gè)IPv4/IPv6雙層棧路由器。
6to4轉(zhuǎn)播加載路線于IPv6底層組織所附帶的2002::/16結(jié)構(gòu)。IPv6網(wǎng)絡(luò)必須過濾、丟棄任何超過16位的6to4前綴。此外,6to4轉(zhuǎn)播必須加載本地IPv6路由策略允許的6to4連接,其中包括6to4路由器在只支持6to4連接的站點(diǎn)中選擇一個(gè)BGP4+點(diǎn)對(duì)點(diǎn)進(jìn)程,或是通過一個(gè)默認(rèn)路由到6to4轉(zhuǎn)播。
因此,當(dāng)一個(gè)只支持6to4轉(zhuǎn)播的站點(diǎn)發(fā)送信息包給另一個(gè)只支持IPv6的站點(diǎn)時(shí),它會(huì)發(fā)送一個(gè)封裝的IPv6信息包給6to4轉(zhuǎn)播,而6to4轉(zhuǎn)播會(huì)刪去 IPv4頭(解封裝)并把信息包傳給那個(gè)只支持IPv6的站點(diǎn)。
理論上,上述過程可能需要由多個(gè)6to4轉(zhuǎn)播來實(shí)現(xiàn),每一個(gè)轉(zhuǎn)播分離一個(gè)IPv6的路由域。在實(shí)際應(yīng)用中,所有的IPv6 ISP都被連在一起,即使是手動(dòng)配置的IPv6 ISP也是如此。
目前,IPv6的實(shí)驗(yàn)網(wǎng)6Bone已經(jīng)遍布全球,IP協(xié)議從IPv4過渡到IPv6已經(jīng)是歷史必然。