IPv6地址

通信工程學科的術詞

IPv6的優勢就在於它大大地擴展了地址的可用空間,IPv6地址有128位長。如果地球表面(含陸地和水面)都覆蓋著計算機,那麼IPv6允許每平方米擁有7*10^23個IP地址;如果地址分配的速率是每微秒100萬個,那麼需要10^19年才能將所有的地址分配完畢。

簡介


表示

IPv6的128位地址通常寫成8組,每組為四個十六進位數的形式。比如:AD80:0000:0000:0000:ABAA:0000:00C2:0002 是一個合法的IPv6地址。這個地址比較長,看起來不方便也不易於書寫。零壓縮法可以用來縮減其長度。如果幾個連續段位的值都是0,那麼這些0就可以簡單的以::來表示,上述地址就可寫成AD80::ABAA:0000:00C2:0002。這裡要注意的是只能簡化連續的段位的0,其前後的0都要保留,比如AD80的最後的這個0,不能被簡化。還有這個只能用一次,在上例中的ABAA後面的0000就不能再次簡化。當然也可以在ABAA後面使用::,這樣的話前面的12個0就不能壓縮了。這個限制的目的是為了能準確還原被壓縮的0,不然就無法確定每個::代表了多少個0。例如,下面是一些合法的IPv6地址:
CDCD:910A:2222:5498:8475:1111:3900:2020
1030::C9B4:FF12:48AA:1A2B
2000:0:0:0:0:0:0:1
同時前導的零可以省略,因此2001:0DB8:02de::0e13等價於2001:DB8:2de::e13。
一個IPv6地址可以將一個IPv4地址內嵌進去,並且寫成IPv6形式和平常習慣的IPv4形式的混合體。IPv6有兩種內嵌IPv4的方式:IPv4映像地址和IPv4兼容地址。

IPv4映像地址

比如::ffff:192.168.89.9,是0000:0000:0000:0000:0000:ffff:c0a8:5909的簡化寫法。IPv4映像地址布局如下:| 80bits |16 | 32bits |等價於0000···0000 | FFFF | IPv4 address |。

IPv4兼容地址

比如::192.168.89.9是0000:0000:0000:0000:0000:0000:c0a8:5909的簡化寫法。IPv4兼容地址布局如下:| 80bits |16 | 32bits |等價於0000···0000 | 0000 | IPv4 address |。
需要注意的是,IPv4兼容地址已經被捨棄了,所以今後的設備和程序中可能不會支持這種地址格式。

定址模式


IPv6定址模式分為三種,即單播地址、組播地址和泛播地址。下面我們依次介紹這三種定址方式。

單播地址

單播地址又叫單目地址,就是傳統的點對點通信,單播表示一個單介面的標識符。IPv6單播地址的類型又分:全球單播地址、鏈路本地地址和站點本地地址。
全球單播地址相當於IPv4的公網地址,這類地址由供應商提供,或由交換局提供。地址的前3位格式前綴,用於區分其他地址類型,TLA ID表示頂級聚合體,NLA ID表示下級聚合體,這兩個都是運營商管理的路由,SLA ID表示節點級聚合體是本地站點管理的16位子網ID,8位的Res位元組段是以備將來TLA或NLA擴充之用的為保留位。64位介面ID是用於識別SLA網路中某個介面的唯一性。
13位 8位 24位 16位 64位
001 TLAID RES NLA ID SLAID INTERFACEID
可聚集全球單點傳送地址結構
鏈路本地單播地址是處於可聚集全球單播地址外的,只限於直連鏈路,是單網路鏈路上給的主機編號,作用是進行鏈路上主機的通信。當你配置一個單播IPv6地址的時候,介面上會自動配置一個鏈路本地單播地址。格式為:1111111010(前10 bit為這個定值,換成16進位為FE80)00000......00000(接著這54 bit為0),剩下的64 bit為介面地址。網路中路由器對具有鏈路本地地址的包是不處理的,即路由器不支持鏈路本地地址的通信。
10位 54位 64位
1111111010 0000000:0000000 INTERFACEID
鏈路本地單播地址結構
站點本地單播地址用於對特定範圍的通信也可說成是規定站點內的通信,不能與站點外地址通信,也不能直接連接到全球Internet。類似於IPv4的企業專用地址Intranet,站點本地單播地址格式為:1111111011(前10bit為這個定值,換成16進位為FEC0)00000......00000(接著這38 bit為0)后16bit為子網標識符,剩下的64bit為介面地址。
10位 38位 16位 64位
1111111011 0000000:0000000 子網標識符 INTERFACEID
站點本地單播地址結構

組播地址

又稱為多點傳送地址或者多播,即一組介面的標識符,只要存在合適的多點傳輸的路由拓撲就可將設有多播地址的包傳輸到這個地址識別的那組介面。
8位 4位 4位 112位
11111111 FALGS SCOPE GROUPID
IPv6多播地址格式
多播地址開始的前8位標識一般都是1111 1111。旗標Flags)由4位組成:前面3位為保留位,初始設置為0,后1位為T,當T=0,旗標指出的多播地址是Internet Assigned Numbers Authority(IANA)配置的永久分配(知名)的多播地址,當T=1旗標指出的多播地址是一個非永久分配(臨時)的多播地址。領域(Scope)位元組段為4位,是用來識別多播傳輸的IPv6網路範圍。
路由器根據多播傳輸領域來判斷多播數據包的轉發。例如,使用多播地址FF02::2的通訊具有鏈路本地作用域。IPv6路由器永遠不會將此通訊轉發到本地鏈路以外。多播地址的群組識別碼(Group ID)佔112位,它是用於識別多點傳輸群組,即最多可識別 個群組ID。不過因為傳統方法是從MAC地址產生,故只有組群識別碼中的最低32位可以使用。

泛播地址

又稱之為任意點傳送地址,它也是一個標識符可以識別多重介面的情況,只要有合適的路由拓撲,即可以將設有任意傳播地址的數據包傳給位址識別的最近的單一介面。最近的介面是指最短的路由距離。任意點傳送地址空間可以認為是從單點傳送地址空間中劃分出來的,它可以是表示單點傳送地址的任何形式。它與單點傳送地址間結構上是沒有差別的。任意點傳送地址僅分配給路由器。子網-路由任意點傳送地址是必須預先定義的,根據給定介面的子網前綴產生,要構建一個子網路由任意點地址必須固定子網前綴的位數,餘下位數必須設定為0。
N位 128-n位
SubnetFrefix 000···000
任意點傳送地址結構

分配策略

為了防止IP地址的浪費,IPv6的地址空間管理是按規定的等級結構在全球範圍內分配的,即按IANA-區域註冊機構RIR-國家註冊機構NIR-ISP/本地註冊機構LIR-最終用戶或ISP的層次結構進行地址分配。
IPv6地址分配有兩種策略:第一種是主機分配策略,在該策略下,上層註冊機構將地址劃分給下層註冊機構進行分配與管理;另一種是指派策略,在該策略下,註冊機構直接將地址分配給用戶使用。

本地鏈路地址


IPv6本地鏈路地址,類似於IPv4中APIPA(Automatic Private IP Addressing,自動專用IP定址)所定義的地址169.254.0.0/16。首先說明一下IPv4中APIPA(AutomaticPrivate IP Addressing,自動專用IP定址)地址會在什麼樣的情況下產生和使用。比如:在企業網路中配置了DHCP伺服器,為企業網路中的客戶機提供IP地址分配,如果某天DHCP伺服器故障,無法為企業網路中的客戶機提供IP地址分配,此時客戶主機會產生一個APIPA地址。該地址在一個子網內範圍內可以保證主機之間的通信,但是APIPA地址是不可以完成路由通信。而IPv6本地鏈路地址的作用在於發現鄰居節點和在無狀態自動配置中鏈路本地上節點之間的通信。並且只能在連接到同一本地鏈路的節點之間通訊,不能跨路由器進行通訊和路由轉發,具體如何理解IPv6的本地鏈路地址,首先要理解IPv6所定義的鏈路、站點、與全局的意義。IPv6的鏈路相當於企業網路中連接在一個二層交換機的主機鏈路,更明確的一種說法是鏈路處於同一個廣播域,如果從IPv4的角度來理解可以理解成IPv6的鏈路就是在同一子網內的主機。所以IPv6的本地鏈路地址,只能在IPv6的本地鏈路中使用,如鏈路A與鏈路B中的IPv6主機使用本地鏈路地址在各自的鏈路上通信,但是不可以使用本地鏈路地址完成鏈路A與鏈路B之間的通信,這與IPv4中的APIPA(Automatic Private IP Addressing,自動專用IP定址地址)類似。