ipv6學習

爲了解決因IPv4地址極爲有限而對互聯網發展的限制問題,早在上個世紀90年代就提出了IPv6的設想, 新的IPv6地址長度爲128位,是IPv4地址長度的4倍,可產生2^128次方個地址,號稱可以爲全世界的每一粒沙都確定一個地址。

IPv6的表示方法

冒分十六進制表示法

格式爲X:X:X:X:X:X:X:X,其中每個X表示地址中的16b,以十六進制表示,例如:
  ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  這種表示法中,每個X的前導0是可以省略的,例如:
  2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A

二、0位壓縮表示法
  在某些情況下,一個IPv6地址中問可能包含很長的一段0,可以把連續的一段0壓縮爲“::”。但爲保證地址解析的唯一性,地址中”::”只能出現一次,例如:
  FF01:0:0:0:0:0:0:1101 → FF01::1101
  0:0:0:0:0:0:0:1 → ::1
  0:0:0:0:0:0:0:0 → ::
三、內嵌IPv4地址表示法
  爲了實現IPv4-IPv6互通,IPv4地址會嵌入IPv6地址中,此時地址常表示爲:X:X:X:X:X:X:d.d.d.d,前96b採用冒分十六進制表示,而最後32b地址則使用IPv4的點分十進制表示,例如::192.168.0.1與::FFFF:192.168.0.1就是兩個典型的例子,注意在前96b中,壓縮0位的方法依舊適用。

ipv6報文

IPv6報文的整體結構分爲IPv6報頭、擴展報頭和上層協議數據3部分。IPv6報頭是必選報文頭部,長度固定爲40B,包含該報文的基本信息;擴展報頭是可選報頭,可能存在0個、1個或多個,IPv6協議通過擴展報頭實現各種豐富的功能;上層協議數據是該IPv6報文攜帶的上層數據,可能是ICMPv6報文、TCP報文、UDP報文或其他可能報文。
IPv6的報文頭部結構如圖:
ipv6學習
ipv6學習
地址類型*
IPv6協議主要定義了三種地址類型:單播地址(Unicast Address)、組播地址(Multicast Address)和任播地址(Anycast Address)。與原來在IPv4地址相比,新增了“任播地址”類型,取消了原來IPv4地址中的廣播地址,因爲在IPv6中的廣播功能是通過組播來完成的。
單播地址:用來唯一標識一個接口,類似於IPv4中的單播地址。發送到單播地址的數據報文將被傳送給此地址所標識的一個接口。
組播地址:用來標識一組接口(通常這組接口屬於不同的節點),類似於IPv4中的組播地址。發送到組播地址的數據報文被傳送給此地址所標識的所有接口。
任播地址:用來標識一組接口(通常這組接口屬於不同的節點)。發送到任播地址的數據報文被傳送給此地址所標識的一組接口中距離源節點最近(根據使用的路由協議進行度量)的一個接口。
IPv6地址類型是由地址前綴部分來確定,主要地址類型與地址前綴的對應關係如下:
ipv6學習

單播地址

IPv6單播地址與IPv4單播地址一樣,都只標識了一個接口。爲了適應負載平衡系統,RFC3513允許多個接口使用同一個地址,只要這些接口作爲主機上實現的IPv6的單個接口出現。單播地址包括五個類型:全局單播地址、鏈路本地地址、站點本地地址、兼容性地址、特殊地址。
一、全局單播地址:等同於IPv4中的公網地址,可以在IPv6 Internet上進行全局路由和訪問。這種地址類型允許路由前綴的聚合,從而限制了全球路由表項的數量。
鏈路本地地址和站點本地地址都屬於本地單播地址,在IPv6中,本地單播地址就是指本地網絡使用的單播地址,也就是IPV4地址中局域網專用地址。每個接口上至少要有一個鏈路本地單播地址,另外還可分配任何類型(單播、任播和組播)或範圍的IPv6地址。
二、鏈路本地地址:僅用於單個鏈路(這裏的“鏈路”相當於IPv4中的子網),不能在不同子網中路由。結點使用鏈路本地地址與同一個鏈路上的相鄰結點進行通信。例如,在沒有路由器的單鏈路IPv6網絡上,主機使用鏈路本地地址與該鏈路上的其他主機進行通信。
三、站點本地地址:相當於IPv4中的局域網專用地址,僅可在本地局域網中使用。例如,沒有與IPv6 Internet的直接路由連接的專用intranet可以使用不會與全局地址衝突的站點本地地址。站點本地地址可以與全局單播地址配合使用,也就是在一個接口上可以同時配置站點本地地址和全局單播地址。但使用站點本地地址作爲源或目的地址的數據報文不會被轉發到本站(相當於一個私有網絡)外的其他站點。
四、兼容性地址:在IPv6的轉換機制中還包括了一種通過IPv4路由接口以隧道方式動態傳遞IPv6包的技術。這樣的IPv6結點會被分配一個在低32位中帶有全球IPv4單播地址的IPv6全局單播地址。另有一種嵌入IPv4的IPv6地址,用於局域網內部,這類地址用於把IPv4結點當作IPv6結點。此外,還有一種稱爲“6to4”的IPv6地址,用於在兩個通過Internet同時運行IPv4和IPv6的結點之間進行通信。
五、特殊地址:包括未指定地址和環回地址。未指定地址(0:0:0:0:0:0:0:0或::)僅用於表示某個地址不存在。它等價於IPv4未指定地址0.0.0.0。未指定地址通常被用做嘗試驗證暫定地址唯一性數據包的源地址,並且永遠不會指派給某個接口或被用做目標地址。環回地址(0:0:0:0:0:0:0:1或::1)用於標識環回接口,允許節點將數據包發送給自己。它等價於IPv4環回地址127.0.0.1。發送到環回地址的數據包永遠不會發送給某個鏈接,也永遠不會通過IPv6路由器轉發[6] 。

組播地址

IPv6組播地址可識別多個接口,對應於一組接口的地址(通常分屬不同節點)。發送到組播地址的數據包被送到由該地址標識的每個接口。使用適當的組播路由拓撲,將向組播地址發送的數據包發送給該地址識別的所有接口。任意位置的IPv6節點可以偵聽任意IPv6組播地址上的組播通信。IPv6節點可以同時偵聽多個組播地址,也可以隨時加入或離開組播組。
IPv6組播地址的最明顯特徵就是最高的8位固定爲1111 1111。IPv6地址很容易區分組播地址,因爲它總是以FF開始的。
ipv6學習

任播地址

一個IPv6任播地址與組播地址一樣也可以識別多個接口,對應一組接口的地址。大多數情況下,這些接口屬於不同的節點。但是,與組播地址不同的是,發送到任播地址的數據包被送到由該地址標識的其中一個接口。
通過合適的路由拓撲,目的地址爲任播地址的數據包將被髮送到單個接口(該地址識別的最近接口,最近接口定義的根據是因爲路由距離最近),而組播地址用於一對多通信,發送到多個接口。一個任播地址必須不能用作IPv6數據包的源地址;也不能分配給IPv6主機,僅可以分配給IPv6路由器 [10] 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章