IPv6地址格式
1.說明
IPv6是網際網路協議的第六版,
現有IPv4只支援大概40億個網路地址,
而IPv6支援3.4e38個網路地址。
IPv4的地址長度是32位(bit),
IPv6的地址長度是128位。
儘管大部分IPv4計算機每個介面只有一個IP地址,
但是IPv6計算機通常會有兩個IP地址:
一個本地鏈路地址和一個全球單播地址。

2.首選格式(冒分十六進位制表示法)
一個128位二進位制數的IPv6地址如下:
一般二進位制數不好閱讀和記憶,
所以推薦使用十六進位制數作為首選格式,
這128位的地址按每16位劃分為一組,
每組轉換成4個十六進位制數,
每組之間用冒號隔開,
稱為冒分十六進位制表示法。
一個典型的IPv6地址為8組4個十六進位制數,如下:
2001:0000:0000:0000:085b:3c51:f5ff:ffdb
3.壓縮格式
基於使用冒分十六進位制表示法的首選格式,
IPv6地址還可以進一步壓縮為兩種短格式。
3.1.省略前導零
可以省去任意組的前導零來壓縮IPv6地址,
085b可以化簡為 85b ,
全0塊 0000 可以化簡為 0 ,
下面的IP地址與前一個IP地址完全相同:
2001:0:0:0:85b:3c51:f5ff:ffdb
3.2.雙冒號::
對於多個連續地址塊為0的情況時,
可以使用雙冒號 :: 壓縮。
下面的IP地址省略了3組全 0 ,
只使用剩下的5組十六進位制數,
實際與前一個IP地址完全相同:
2001::85b:3c51:f5ff:ffdb
為保證地址解析的唯一性,
地址中雙冒號 :: 只能出現一次,
因為IPv6地址始終會有8組4個十六進位制數,
所以可以確定有多少全0組被省略。
如果出現多個連續全0塊時,
雙冒號 :: 要化簡最長的一段,
沒有最長的使用就近原則,
壓縮最靠近左邊的第一段,
雙冒號 :: 可以出現在地址開頭或結尾。
4.內嵌IPv4地址的格式
為了實現IPv4-IPv6互通,
IPv4地址會嵌入IPv6地址中,
此時地址常表示為:
X:X:X:X:X:X:d.d.d.d
地址前96位採用冒分十六進位制表示法,
地址後32位則使用IPv4的點分十進位制表示法,
下面兩個地址是典型的內嵌IPv4地址:
::192.168.0.1 ::FFFF:192.168.0.1
注意在地址前96位中,壓縮格式仍然適用。
4.1.通過IPv4對映的IPv6地址
此型別的地址用於將IPv4節點表示為IPv6地址。
它允許IPv6應用程式直接與IPv4應用程式通訊。
例如:
0:0:0:0:0:ffff:192.1.56.10 ::ffff:192.1.56.10/96
4.2.相容IPv4的IPv6地址
此型別的地址用於隧道傳送。
它允許IPv6節點通過IPv4基礎結構通訊。
例如:
0:0:0:0:0:0:192.1.56.10 ::192.1.56.10/96
5.地址型別
IPv6協議主要定義了三種地址型別:
- 單播地址(Unicast Address)
- 任播地址(Anycast Address)
- 組播地址(Multicast Address)
5.1.單播地址
一個單播地址對應一個介面,
發往單播地址的資料包會被送到對應的介面。
5.1.1 全球單播地址
字首2000::/3,相當於IPv4的公網地址。
這種地址在全球的路由器間可以路由。
5.1.2 鏈路本地地址
字首FE80::/10,
此類地址用於同一鏈路上的節點間的通訊,
主要用於自動配置地址和鄰居節點發現過程。
Windows和Linux支援或開啟IPv6後,
預設會給網絡卡介面自動配置一個鏈路本地地址。
Linux下檢視鏈路本地地址:

Windows下檢視鏈路本地地址:

每個介面必須至少有一個鏈路本地地址,
每個介面可以配置1個以上的單播地址,
例如一個介面可以配置一個鏈路本地地址,
同時也可以配置一個全球單播地址。
5.1.3 唯一本地地址
字首FC00::/7,
相當於IPv4的私網地址(10.0.0.0、172.16.0.0、192.168.0.0),
在RFC4193中新定義的一種解決私網需求的單播地址型別,
用來代替廢棄使用的站點本地地址。
由於預設情況下私網內節點與外界通訊的發起是單向的,
網路訪問僅僅能從私網內發起,
外部發起的請求會被統一閘道器或者防火牆阻隔掉,
這樣的網路架構很好的保護了私網內的節點安全性和私密性。
因此,在安全性和私密性要求下,
IPv6中同樣需要支援私網,並且也需要支援NAT。
5.1.4 站點本地地址
字首FEC9::/48,以前是用來部署私網的,
但RFC3879中已經不建議使用這類地址,
實際上這種地址已經不再使用,
建議使用唯一本地地址。
5.1.5 特殊地址:迴環地址
0:0:0:0:0:0:0:1或::1,
等同於IPv4的127.0.0.1。
5.1.6過渡地址:內嵌IPv4地址的IPv6地址
參考上面的第4章節,
這類地址主要用於IPv6/IPv4的過渡技術中。
5.2.任播地址
一個任播地址對應一組介面,
發往任播地址的資料包會被送到這組介面中最近的一個介面,
最近的一個被標識介面由具體的路由協議確定。
5.3.組播地址
一個組播地址對應一組介面,
發往組播地址的資料包會被送到這組的所有介面。
IPv6中沒有廣播地址,其功能被組播地址取代。