一、IPv6簡介
1、IPv6 早期被稱為 IPng (next generation)目前是 IP 協議的最新版本
IP 協議是一種網絡層協議,采用 IP協議構建的數據通信網絡可提供高效的數據、語音和圖像的傳輸服務。目前,在 Internet 上廣泛采用的 IP協議是 IPv4 版。隨著 Internet 的迅猛發展,在充分享用了 IPv4 協議的簡單高效的同時,人們也就意識到了IPv4 的 32 位地址空間是不夠的;因此,必須建立新的 IP 標準。
2、海量 IPv6 地址空間
IPv6 最根本的改變是提供了未來對全球范圍內可確定的地址空間的需求。基于移動設備的應用,如:個人數字設備(PDAs), 移動電話,汽車, 家庭網絡和其他的移動數據通信設備都需要全球范圍內可確定的地址。IPv6 將網絡地址位數從 32 位擴展到 128 位, 這代表著可以為地球上的任何需要聯網的設備提供唯一確定的地址。正是因為有了全球范圍內可確定的地址,IPv6 提供了全球范圍內的地址可達,端到端的安全通信,以及對所有對地址有要求的應用和服務的支持。 除此之外,豐富的 IPv6 地址空間消除了網絡中的NAT(Network Address Translation)瓶頸,提高了網絡效率。
二、IPv6地址
由于 IPv6 的地址有 128 位長,比 32 位的 IPv4 地址表示起來復雜的多。目前,IPv6 的地址由一串 16 進制的數字表示,每 16 位之間用分號(:)隔開,格式如下: x:x:x:x:x:x:x:x.下面是兩個 IPv6 地址例子:
2001:0DB8:7654:3210:FEDC:BA98:7654:3210
1080:0:0:0:8:800:200C:417A
通常情況下 IPv6 地址會包含連續的 0。為避免 IPv6 地址表示的復雜性,連續的 0 可縮寫為兩個冒號表示(::)。 Table1 lists IPv6 地址的縮寫格式。 兩個冒號可以用在 IPv6 地址的一部分。你可以在一個接口上配置多個地址,但只能一個 link-local 地址。注意兩個冒號(::) 只能在 IPv6 地址中出現一次,只能代表最長的連續的 0。IPv6 地址中的十六進制數的表示是大小寫不敏感的。
loopback 地址可以是一個網絡節點送一個 IPv6 的數據包給自己。 這個 loopback地址功能與 IPv4 的 loopback 地址 (127.0.0.1)一樣。注意 IPv6 的 loopback 地址不能配置在物理接口。 一個不管是原地址還是目的地址是 IPv6loopback 地址的數據包必須停留在產生他的網絡節點內,不能出現在網絡鏈路上。IPv6 路由器不能轉發代有 IPv6 loopback 地址的數據包,不管是原地址還是目的地址。
三、單播 Unicast 地址
一個 IPv6 單播地址是用來標示一個網絡節點的一個接口。一個數據包的目的地址是一個單播地址時,他將被送到以這個地址標示的網絡接口。一個 IPv6 的路由器應支持下列單播地址類型:
Global aggregatable address:可匯聚的全球化地址。
Site-local address:區域內的地址 (proposal to remove by IETF)
Link-local address: 鏈路接口地址
IPv4-compatible IPv6 address: 兼容 IPv4 的地址
四、可匯聚的全球地址
一個可匯聚的全球地址是一個帶有全球化的可匯聚的 IPv6 前綴的地址。 這種結構化的全球化的單播地址可以進行嚴格的路由前綴的匯聚,這樣就可以大大減少整個路由表的路由條數,減少路由的復雜度。 可匯聚的全球 地址用來標示鏈路地址,可以進行多級的路由匯聚,一直到頂級的 Internet服務提供商(ISPs)。全球化的可匯聚的 IPv6 地址被定義為全球化的路由前綴, 子網絡號,和接口地址。除了以二進制 000 開始的地址, 所有的全球化的 IPv6 單播地址都帶有 64 位的接口地址。目前, 全球化的單播地址的分配范圍從以二進制的 001 (2000::/3)開始。 下圖表示了全球化的可匯聚的單播地的格式 。
帶有前綴從 2000::/3 (001) 到 E000::/3 (111)的地址需要帶有從(EUI)-64 格式的 64 位接口地址。
IANA (Internet Assigned Numbers Authority)將 2000::/16 IPv6 地址空間下發到各個區域的地址注冊機構分發,如 APNIC 等。在通常情況下,全球化的可匯聚的 IPv6 地址包含一個 48 位的全球路由前綴和 16 位的子網絡號或稱為區域級的可匯聚前綴(Site-Level Aggregator-- SLA)。在 IPv6 的全球化的可匯聚單播地址格式文件(RFC 2374)中指出, 全球化的路由前綴包括兩層的層次化結構:頂層匯聚(Top-Level Aggregator--TLA) 和第二層匯聚(Next-Level Aggregator -- NLA)。現在,IETF 決定從 RFCs 把 TLS 和 NLA 的區域規定刪除,這樣可以使路由匯聚有更多的靈活性。在一些已經采用了 RFC 2374 中的匯聚方式的網絡可繼續沿用原有的方式。
一個 16 位的子網絡標示被稱作子網號,他可以被不同的組織機構用來區分自己內部的地址分配。一個子網號與 IPv4 的子網非常類似, 知識他可以有多達 65,535 個子網。一個接口地址用來標示鏈路的接口。接口地址在一個鏈路上必須是唯一的 ,他們可以是 64 位接口地址中的任何一個,只要確保是唯一的。在多數情況下,接口地址可以是從鏈路層的地址中衍生而來。
在全球化的可匯聚的 IPv6 地址中,接口地址必須是 64 位長,并且采用修改的 EUI-64 的格式。修改的 EUI-64 的格式的接口地址可從下列的產生方法之一產生:所有的 IEEE 802 的接口類型(如:以太網,FDDI 等), 前三個八進制數(24bits)從 MAC 地址中的 OUI(Organizationally Unique Identifier)復制;第四和第五個八進制數為 FFFE, 最后的三個八進制數(24bits)復制 MAC 地址中的后 24 位。 最后,在構成的 64 位接口地址的第一個八進制數的第七位(U/L) bit 表示該接口地址是本地化的還是本地的:0 表示本地地址,1 表示全球唯一的接口地址。
對其他的接口類型(如:串行接口, loopback, ATM, Frame Relay, 和 tunnel 接口—除 IPv6 overlaytunnel 的接口), 接口地址的構成采用 IEEE 802 接口類型相似的方法:MAC 地址來自于設備的 MAC 地址池中的第一個 MAC 地址。 當接口類型是 IPv6 overlay tunnels 時, 接口地址是低 32 位的 IPv4 地址加上高位的全 0。注意當接口類型是 PPP 時, 兩端的不同接口可能具有相同的 MAC 地址;這時,兩端設備需要重新協商,重新選擇接口地址,直到他們是唯一的。網絡設備的第一個 MAC 地址用來構建 PPP 接口地址。
當網絡設備不具有 IEEE802 類型接口, link-local 的 IPv6 地址按以下方式產生:
路由器請求 MAC 地址 (從路由器本身的 MAC 地址池)。
如果沒有 MAC 地址可用, 路由器的序列號可用做 link-local 地址。
如果序列號不可用,路由器將采用 MD5 算法結合自己的名字創建 MAC 地址。
五、Site-Local地址
一個 site-local 地址是一個帶著前綴 FEC0::/10 和 16 位子網號加上 64 位的 EUI-64 格式的 IPv6 單播地址。Site-local 地址非常像 IPv4 中的私有地址空間 10.0.0.0/8;可以在一個區域內部進行路由的查找,而不需要全球化的唯一的地址前綴。 Site-local 地址可以被認為是私有地址,因為他只能在一個嚴格限制的區域內使用。 下圖表示了 site-local 地址。IPv6 路由器不可以將帶有 site-local 的源地址或目的地址的數據包轉發到區域之外。
六、Link-Local 地址
一個 link-local 地址是一個帶有 link-local 前綴 FE80::/10(1111 1110 10)的 IPv6 單播地址,他采用修改
的 EUI-64 地址格式自動產生。 Link-local 地址可用于鄰居發現協議(neighbor discovery protocol)和無狀態自動配置進程。 在同一個鏈路上的節點可使用 link-local 地址來通信; 不需要 site-local 地址或全球化的單播地址。 下圖表示 link-local 地址的結構。
IPv6 路由器不能將帶有 link-local 的源地址或目的地址的數據包轉發到其他網絡或鏈路。
七、IPv4 兼容的 IPv6 地址
一個 IPv4 兼容的 IPv6 地址是一個高 96 位全 0 的,低 32 位為 IPv4 地址的 IPv6 單播地址。這種 IPv4兼容的 IPv6 地址可表示為 0:0:0:0:0:0:A.B.C.D 或::A.B.C.D. 整個 128 位的 IPv4 兼容的 IPv6 地址是將網絡節點的 IPv4 地址直接植入 IPv6 地址的低 32 位。IPv4 兼容的 IPv6 地址用來在運行 IPv4 和 IPv6 雙棧時使用自動的隧道技術(tunnels)。 下圖表示了 IPv4 兼容的 IPv6 地址 格式。
八、Anycast地址
一個 anycast 地址是一個屬于多個網絡節點的接口的 IPv6 的地址。一個以 anycast 地址為目的地址的數據包將被轉發到最近的網絡接口;接口的遠近由路由的計算結果來確定。Anycast 地址從地址的結構上來說同單播地址是不可分的,因為 anycast 地址存在于單播地址的地址空間。但一個單播地址可以被超過一個網絡接口接收時,他就是一個 anycast 地址。Anycast 地址需要在網絡節點上明確定義:這個地址是一個 anycast 地址。
九、Multicast組播地址
一個前綴 FF00::/8(1111 1111)的 IPv6 地址就代表它是一個 IPv6 組播地址。一個數據包的目的地址為組播地址時,他將被復制轉發到多個網絡的接收者。組播地址前綴的第二個八進制數代表組播地址的范圍。這個八進制數被分為兩部分:前四位為 0000 代表是一個永久性的組播地址,前四位為 0001代表是暫時的組播 地址;后四位代表組播范圍,目前定義了 1, 2, 5, 8, or E,分別代表不同的組播范圍。
IPv6 的設備(主機和路由器)必須加入下列組播組(必須接收的相應的組播數據包):
All-nodes 所有節點的組播組
FF02:0:0:0:0:0:0:1 (link-local 范圍)
Solicited-node 節點請求組播組
FF02:0:0:0:0:1:FF00:0000/104 用來對應單播地址和 anycast 地址 。
IPv6 路由器必須加入所有路由器組播組
FF02:0:0:0:0:0:0:2 (link-local 范圍).
評論
查看更多