- IPv6
IPv6具有比IPv4大得多的地址空間。這是因?yàn)镮Pv6使用了128比特的地址,而IPv4只用32比特。因此新增的地址空間支持2128(約3.4 ×1038)個(gè)地址。這一擴(kuò)展提供了靈活的地址分配以及路由轉(zhuǎn)發(fā),并消除了對(duì)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)的依賴。NAT是獲得了廣泛部署的減緩IPv4地址耗盡的最有效的方式。
背景與目標(biāo)
促使IPv6形成的主要原因是網(wǎng)絡(luò)空間的匱乏。從1990年開始,網(wǎng)際網(wǎng)路工程任務(wù)小組(Internet Engineering Task Force,簡(jiǎn)稱IETF)開始規(guī)劃IPv4的下一代協(xié)定,除要解決即將遇到的IP位址短缺問題外,還要發(fā)展更多的擴(kuò)充功能,為此IETF小組創(chuàng)建IPng,以讓後續(xù)工作順利進(jìn)行。1994年,各IPng領(lǐng)域的代表們於多倫多舉辦的IETF會(huì)議中正式提議IPv6發(fā)展計(jì)劃,該提議直到同年的11月17日才被認(rèn)可,並於1998年8月10日成為IETF的草案標(biāo)準(zhǔn)。
IPv6的計(jì)劃是建立未來互聯(lián)網(wǎng)擴(kuò)充的基礎(chǔ),其目標(biāo)是取代IPv4,預(yù)計(jì)在2025年以前IPv4仍會(huì)被支持,以便給新協(xié)議的修正留下足夠的時(shí)間。
雖然IPv6在1994年就已被IETF指定作為IPv4的下一代標(biāo)準(zhǔn),然而在世界范圍內(nèi)使用IPv6部署的公眾網(wǎng)與IPv4相比還非常的少。
IPv6能解決的核心問題與互聯(lián)網(wǎng)目前所面臨的關(guān)鍵問題之間出現(xiàn)了明顯的偏差,難以給互聯(lián)網(wǎng)的發(fā)展帶來革命性的影響。與IPv4的各種地址復(fù)用解決方案相比,IPv6能夠降低複雜性和成本,然而目前卻只有製造商較能夠感受到這個(gè)優(yōu)勢(shì),用戶和運(yùn)營(yíng)商無法直接感受到,導(dǎo)致產(chǎn)業(yè)鏈缺乏推動(dòng)IPv6的動(dòng)力。
IPv6 編址
從IPv4到IPv6最顯著的變化就是網(wǎng)絡(luò)地址的長(zhǎng)度。RFC 2373 和RFC 2374定義的IPv6地址,就像下面章節(jié)所描述的,有128位長(zhǎng);IPv6地址的表達(dá)形式一般采用32個(gè)十六進(jìn)制數(shù)。
IPv6中可能的地址有2128 ≈ 3.4×1038個(gè)。也可以想象為1632個(gè)因?yàn)?2位地址每位可以取16個(gè)不同的值(參考組合數(shù)學(xué))。
在很多場(chǎng)合,IPv6地址由兩個(gè)邏輯部分組成:一個(gè)64位的網(wǎng)絡(luò)前綴和一個(gè)64位的主機(jī)地址,主機(jī)地址通常根據(jù)物理地址自動(dòng)生成,叫做EUI-64(或者64-位擴(kuò)展唯一標(biāo)識(shí))
IPv6位址表示
IPv6位址為128位元長(zhǎng)度,但通常寫做8組每組四個(gè)十六進(jìn)制的形式。例如:
2001:0db8:85a3:08d3:1319:8a2e:0370:7344
是一個(gè)合法的IPv6位址。
如果四個(gè)數(shù)字都是零,可以被省略。例如:
2001:0db8:85a3:0000:1319:8a2e:0370:7344
等同於
2001:0db8:85a3::1319:8a2e:0370:7344
遵從這些規(guī)則,如果因?yàn)槭÷远霈F(xiàn)了兩個(gè)以上的冒號(hào)的話,可以壓縮為一個(gè),但這種零壓縮在位址中只能出現(xiàn)一次。因此:
2001:0DB8:0000:0000:0000:0000:1428:57ab
2001:0DB8:0000:0000:0000::1428:57ab
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0:1428:57ab
2001:0DB8::1428:57ab
都是合法的地址,並且他們是等價(jià)的。但2001::25de::cade
是非法的。(因?yàn)檫@樣會(huì)使得搞不清楚每個(gè)壓縮中有幾個(gè)全零的分組)
同時(shí)前導(dǎo)的零可以省略,因此:
2001:0DB8:02de::0e13
等於
2001:DB8:2de::e13
如果這個(gè)位址實(shí)際上是IPv4的位址,後32位元可以用10進(jìn)制數(shù)表示;因此:
ffff:192.168.89.9 等價(jià)於::ffff:c0a8:5909,但不等價(jià)於::192.168.89.9 和::c0a8:5909。
ffff:1.2.3.4格式叫做IPv4映射位址,是不建議使用的。而::1.2.3.4格式叫做IPv4一致位址。
IPv4 位址可以很容易的轉(zhuǎn)化為IPv6格式。舉例來說,如果IPv4的一個(gè)位址為135.75.43.52(十六進(jìn)位為0x874B2B34),它可以被轉(zhuǎn)化為0000:0000:0000:0000:0000:0000:874B:2B34或者::874B:2B34。同時(shí),還可以使用混合符號(hào)(IPv4-compatible address),則位址可以為::135.75.43.52。
IPv6 位址的分類
IPv6 位址可分為三種:
單播(unicast)位址
單播位址標(biāo)示一個(gè)網(wǎng)路介面。協(xié)定會(huì)把送往位址的封包投送給其介面。 IPv6 的單播位址可以有一個(gè)代表特殊位址名字的範(fàn)疇,如 link-local 位址和唯一區(qū)域位址(ULA,unique local address)。
任播(anycast)位址
任播位址用於指定給一群介面,通常這些介面屬於不同的節(jié)點(diǎn)。若封包被送到一個(gè)任播位址時(shí),則會(huì)被轉(zhuǎn)送到成員中的其中之一。通常會(huì)根據(jù)路由協(xié)定,選擇 "最近" 的成員。任播位址通常無法輕易分別:它們擁有和正常單播位址一樣的結(jié)構(gòu),只是會(huì)在路由協(xié)定中將多個(gè)節(jié)點(diǎn)加入網(wǎng)路中。
多播(multicast)位址
多播位址也被指定到一群不同的介面,送到多播位址的封包會(huì)被傳送到所有的位址。多播位址由皆為一的位元組起始,亦即:它們的前置為 FF00::/8 。其第二個(gè)位元組的最後四個(gè)位元用以標(biāo)明 "範(fàn)疇" 。
一般有 node-local(0x1)、link-local(0x2)、site-local(0x5)、organization-local(0x8)和 global(0xE)。多播位址中的最低 112 位元會(huì)組成多播群組識(shí)別碼,不過因?yàn)閭鹘y(tǒng)方法是從MAC 位址產(chǎn)生,故只有群組識(shí)別碼中的最低 32 位元有使用。定義過的群組識(shí)別碼有用於所有節(jié)點(diǎn)的多播位址 0x1 和用於所有路由器的 0x2。
另一個(gè)多播群組的位址為 "solicited-node 多播位址",是由前置 FF02::1:FF00:0/104 和剩餘的群組識(shí)別碼(最低 24 位元)所組成。這些位址允許經(jīng)由鄰居發(fā)現(xiàn)協(xié)議(NDP,Neighbor Discovery Protocol)來解譯連結(jié)層位址,因而不用干擾到在區(qū)網(wǎng)內(nèi)的所有節(jié)點(diǎn)。
特殊位址
IANA 維護(hù)官方的(英文)IPv6 位址空間列表。全域的單播位址的指定可在 RIR''s 或 中找到(英文)GRH DFP pages。
IPv6 中有些位址是有特殊意涵的:
未指定位址
::/128 - 所有位元皆為零的位址稱作未指定位址。這個(gè)位址不可指定給某個(gè)網(wǎng)路介面,並且只有在主機(jī)尚未知道其來源 IP 時(shí),才會(huì)用於軟體中。路由器不可轉(zhuǎn)送包含未指定位址的封包。
Link local 位址
::1/128 - 是一種單播繞回位址。如果一個(gè)應(yīng)用程式將封包送到此位址, IPv6 堆疊會(huì)轉(zhuǎn)送這些封包繞回到同樣的虛擬介面(相當(dāng)於 IPv4 中的 127.0.0.1)。
fe80::/10 - 這些 link-local 位址指明,這些位址只在區(qū)域連線中是合法的,這有點(diǎn)類似於 IPv4 中的 169.254.0.0/16 。
唯一區(qū)域位域
fc00::/7 - 唯一區(qū)域位址(ULA,unique local address)只可在一群網(wǎng)站中遶送。這定義在 RFC 4193 中,是用來取代 site-local 位域。這位址包含一個(gè) 40 位元的偽隨機(jī)數(shù),以減少當(dāng)網(wǎng)站合併或封包誤傳到網(wǎng)路時(shí)碰撞的風(fēng)險(xiǎn)。這些位址除了只能用於區(qū)域外,還具備全域性的範(fàn)疇,這點(diǎn)違反了唯一區(qū)域位域所取代的 site-local 位址的定義。
多播位址
ff00::/8 -這個(gè)前置表明定義在 "IP Version 6 Addressing Architecture"(RFC 4291)中的多播位址[2]。其中,有些位址已用於指定特殊協(xié)議,如ff0X::101 將到達(dá)所有區(qū)域的 NTP 伺服器(RFC 2375)。
Solicited-node 多播位址
ff02::1:FFXX:XXXX - XX:XXXX 為相對(duì)應(yīng)的單播或任播位址中的三個(gè)最低的位元組。
IPv4 轉(zhuǎn)譯位址
::ffff:0:0/96 - 用於IPv4映射位址(參見以下的 Transition mechanisms)。
2001::/32 - 用於 Teredo tunneling 。
2002::/16 - 用於 6to4 。
ORCHID
2001:10::/28 - ORCHID (Overlay Routable Cryptographic Hash Identifiers) (RFC 4843)。這些是不可遶送的 IPv6 位址,用於加密雜湊識(shí)別。
文件
2001:db8::/32 - 這前置用於文件(RFC 3849)。這些位址應(yīng)用於 IPV6 位址的範(fàn)例中,或描述網(wǎng)路架構(gòu)。
遭捨棄或刪除的用法
::/96 - 這個(gè)前置曾用於IPv4 相容位址,現(xiàn)已刪除。
fec0::/10 - 這個(gè) site-local 前置指明這位址只在組織內(nèi)合法。它已在 2004 年九月的 RFC3879 中拾,並且新系統(tǒng)不應(yīng)該支援這類型的位址。
IPv6 封包
IPv6封包的架構(gòu)說明。IPv6封包由兩個(gè)主要部分組成:頭部和負(fù)載。
包頭是包的前40字節(jié)并且包含有源和目的地址,協(xié)議版本,通信類別(8位元,包優(yōu)先級(jí)),流標(biāo)記(20位元,QoS服務(wù)質(zhì)量控制),負(fù)載長(zhǎng)度(16位),下一個(gè)頭部(用于向后兼容性),和跳段數(shù)限制(8位元,生存時(shí)間,相當(dāng)于IPv4中的TTL)。后面是負(fù)載,至少1280字節(jié)長(zhǎng),或者在可變MTU(最大傳輸單元)大小環(huán)境中這個(gè)值為1500字節(jié)。負(fù)載在標(biāo)準(zhǔn)模式下最大可為65535字節(jié),或者在擴(kuò)展包頭的"jumbo payload"選項(xiàng)進(jìn)行設(shè)置。
IPv6曾有兩個(gè)有著細(xì)微差別的版本;在RFC 1883中定義的原始版本(現(xiàn)在廢棄)和RFC 2460中描述的現(xiàn)在提議的標(biāo)準(zhǔn)版本。兩者主要在通信類別這個(gè)選項(xiàng)上有所不同,它的位數(shù)由4位變?yōu)榱?位。其他的區(qū)別都是微不足道的。
分段(Fragmentation)只在IPv6的主機(jī)中被處理。在IPv6中,可選項(xiàng)都被從標(biāo)準(zhǔn)頭部中移出并在協(xié)議字段中指定,類似于IPv4的協(xié)議字段功能。
IPv6和域名系統(tǒng)
IPv6地址在域名系統(tǒng)中為執(zhí)行正向解析表示為AAAA記錄(所謂4A記錄)(類似的IPv4表示為A記錄A records);反向解析在ip6.arpa(原先ip6.int)下進(jìn)行,在這里地址空間為半字節(jié)16進(jìn)制數(shù)字格式。這種模式在RFC 3596給與了定義。
AAAA模式是IPv6結(jié)構(gòu)設(shè)計(jì)時(shí)的兩種提議之一。另外一種正向解析為A6記錄并且有一些其他的創(chuàng)新像二進(jìn)制串標(biāo)簽和DNAME記錄等。RFC 2874和它的一些引用中定義了這種模式。
AAAA模式只是IPv6域名系統(tǒng)的簡(jiǎn)單概括,A6模式使域名系統(tǒng)中檢查更全面,也因此更復(fù)雜:
A6記錄允許一個(gè)IPv6地址在分散于多個(gè)記錄中,或許在不同的區(qū)域;舉例來說,這就在原則上允許網(wǎng)絡(luò)的快速重編號(hào)。
使用域名系統(tǒng)記錄委派地址被DNAME記錄(類似于現(xiàn)有的CNAME,不過是重命名整棵樹)所取代。
一種新的叫做比特標(biāo)簽的類型被引入,主要用于反向解析。
2002年8月的RFC 3363中對(duì)AAAA模式給與了有效的標(biāo)準(zhǔn)化(在RFC 3364有著對(duì)于兩種模式優(yōu)缺點(diǎn)的更深入的討論)。
IPv6部署與應(yīng)用
2004年7月的ICANN聲稱互聯(lián)網(wǎng)的根域名服務(wù)器已經(jīng)經(jīng)過改進(jìn)同時(shí)支持IPv6和IPv4。
缺點(diǎn):
需要在整個(gè)互聯(lián)網(wǎng)和它所連接到的設(shè)備上建立對(duì)IPv6的支持
從IPv4訪問時(shí)的轉(zhuǎn)換過程中,在網(wǎng)關(guān)路由器(IPv6<-->IPv4)還是需要一個(gè)IPv4地址和一些NAT(=共享的IP地址),增加了它的復(fù)雜性,還意味著IPv6許諾的巨大的空間地址不能夠立刻被有效的使用。
遺留的結(jié)構(gòu)問題,例如在對(duì)IPv6 multihoming支持上一致性的匱乏。
工作:
6bone
ICMPv6
IPv6 multihoming
轉(zhuǎn)換機(jī)制
在 IPv6 完全取代 IPv4 前,需要一些轉(zhuǎn)換機(jī)制[3]使得只支援 IPv6 的主機(jī)可以連絡(luò) IPv4 服務(wù),並且允許孤立的 IPv6 主機(jī)及網(wǎng)路可以藉由 IPv4 設(shè)施連絡(luò) IPv6 網(wǎng)際網(wǎng)路。
在 IPv6 主機(jī)和路由器與 IPv4 系統(tǒng)共存的時(shí)期時(shí),RFC2893 和 RFC2185 定義了轉(zhuǎn)換機(jī)制。這些技術(shù),有時(shí)一起稱作簡(jiǎn)單網(wǎng)際網(wǎng)路轉(zhuǎn)換(SIT,Simple Internet Transition)。包含:
運(yùn)作於主機(jī)和路由器之間的雙堆疊 IP 實(shí)作
將 IPv4 嵌入 IPv6 位址
IPv6 立於 IPv4 之上的隧道機(jī)制
IPv4/IPv6 報(bào)頭轉(zhuǎn)換
雙堆疊
將 IPv6 視為一種 IPv4 的延伸,以共享程式碼的方式去實(shí)作網(wǎng)路堆疊,其可以同時(shí)支援 IPv4 和 IPv6 ,如此是相對(duì)較為容易的。如此的實(shí)作稱為雙堆疊,並且,一個(gè)實(shí)作雙堆疊的主機(jī)稱為雙堆疊主機(jī)。這步驟描述於 RFC 4213 。
目前大部分 IPv6 的實(shí)現(xiàn)使用雙堆疊。一些早期實(shí)驗(yàn)性實(shí)作使用獨(dú)立的 IPv4 和 IPv6 堆疊。
穿隧
為了連通 IPv6 網(wǎng)際網(wǎng)路,一個(gè)孤立主機(jī)或網(wǎng)路需要使用現(xiàn)存 IPv4 的基礎(chǔ)設(shè)施來攜帶 IPv6 封包。這可由將 IPv6 封包裝入 IPv4 封包的穿隧協(xié)議來完成,實(shí)際上就是將 IPv4 當(dāng)成 IPv6 的連結(jié)層。
IP 協(xié)議號(hào)碼的 41 號(hào)用來標(biāo)示將 IPv6 資料訊框直接裝入 IPv4 封包。IPv6 亦能將入 UDP 封包,如為了跨過一些會(huì)阻擋協(xié)議 41 交通的路由器或 NAT 設(shè)備。其它流行的封裝機(jī)制則有AYIYA和GRE。
自動(dòng)穿隧
自動(dòng)穿隧指路由設(shè)施自動(dòng)決定隧道端點(diǎn)的技術(shù)。RFC 3056 建議使用6to4穿隧技術(shù)來自動(dòng)穿隧,其會(huì)使用 41 協(xié)議來封裝。隧道端點(diǎn)是由遠(yuǎn)端知名的 IPv4 任播位址所決定,並在本地端嵌入 IPv4 位址資訊到 IPv6 中?,F(xiàn)今 6to4 是廣泛佈署的。
Teredo 是使用 UDP 封裝的穿隧技術(shù),據(jù)稱可跨越多個(gè) NAT 設(shè)備。Teredo 並非廣泛用於佈署的,但一個(gè)實(shí)驗(yàn)性版本的 Teredo 已安裝於 Windows XP SP2 IPv6 堆疊中。IPv6,包含 6to4 穿隧和 Teredo 穿隧,在 Windows Vista 中預(yù)設(shè)是啟動(dòng)的。許多 Unix 系統(tǒng)只支援原生的 6to4,但 Teredo 可由如 Miredoo 的第三方軟體來提供。
ISATAP藉由將 IPv4 位址對(duì)應(yīng)到 IPv6 的 link-local 位址,從而將 IPv4 網(wǎng)路視為一種虛擬的 IPv6 區(qū)域連線。不像 6to4 和 Teredo 是站點(diǎn)間的穿隧機(jī)制, ISATAP 是一種站點(diǎn)內(nèi)機(jī)制,意味著它是用來設(shè)計(jì)提供在一個(gè)組織內(nèi)節(jié)點(diǎn)之間的 IPv6 連接性。
組態(tài)穿隧 (6in4)
在組態(tài)穿隧中,如6in4穿隧,隧道端點(diǎn)是要明確組態(tài)過的,可以是藉由管理員手動(dòng)或作業(yè)系統(tǒng)的組態(tài)機(jī)制,或者藉由如 tunnel broker 等的自動(dòng)服務(wù)。組態(tài)穿隧通常比自動(dòng)穿隧更容易去除錯(cuò),故建議用於大型且良好管理的網(wǎng)路。
組態(tài)穿隧在 IPv4 隧道上,使用網(wǎng)際協(xié)議中號(hào)碼的 41 號(hào)。
用於只支援 IPv6 主機(jī)的代理和轉(zhuǎn)譯
在區(qū)域網(wǎng)際網(wǎng)路註冊(cè)管理機(jī)構(gòu)耗盡所有可使用的 IPv4 位址後,非常有可能新加入網(wǎng)際網(wǎng)路的主機(jī)只具有 IPv6 連接能力。對(duì)這些須要向後相容以能存取 IPv4 資源的客戶端,須要佈署合適的轉(zhuǎn)換機(jī)制。
一種轉(zhuǎn)換技術(shù)是使用雙堆疊的應(yīng)用層代理,如網(wǎng)頁代理伺服器。
一些對(duì)於應(yīng)用程式無法得知但在其低層使用類 NAT 轉(zhuǎn)換技術(shù)也曾被提出。但因?yàn)橐话銘?yīng)用層協(xié)議所要求的能力其應(yīng)用太廣,其中大部分都被認(rèn)定在實(shí)際上太不可靠,並且被認(rèn)為應(yīng)刪除。
主要的IPv6公告
在2003年,日本經(jīng)濟(jì)新聞(在2003年被CNET亞洲機(jī)構(gòu)引用)報(bào)告中說日本、中國(guó)和韓國(guó)聲稱已經(jīng)決定要在網(wǎng)絡(luò)技術(shù)中尋求領(lǐng)先,將部分參與IPv6的開發(fā)并在2005年開始全面采用IPv6。
ICANN在2004年7月20日發(fā)表聲明,稱DNS根服務(wù)器已經(jīng)建立了對(duì)應(yīng)日本(.jp)和韓國(guó)(.kr)的頂級(jí)域名服務(wù)器的AAAA記錄,序列號(hào)為2004072000。對(duì)應(yīng)法國(guó)的(.fr)IPv6記錄會(huì)再晚一點(diǎn)時(shí)間加入。這就開放了IPv6的運(yùn)作。
內(nèi)容來自百科網(wǎng)