IPv6地址組成
IPv6地址由被劃分為8個(gè)16位塊的128位組成。 然后將每個(gè)塊轉(zhuǎn)換為由冒號(hào)符號(hào)分隔的4位十六進(jìn)制數(shù)字,如:
2001:0000:3238:00E1:0063:0000:0000:FEFB
每一塊多個(gè)前導(dǎo)的0可以省略,一個(gè)塊全為0可以簡(jiǎn)寫(xiě)為一個(gè)0,,多個(gè)塊為連續(xù)0的話可以簡(jiǎn)寫(xiě)為:: (地址表示中僅能有一個(gè)::)。2001:0:3238:E1:0063::FEFB
URL中IPv6地址必須加[]
IPv6地址由單播、組播、任意播地址組成:
#IPv6地址組成
#IPv6 vs. IPv4
單播地址
在單播尋址模式下,IPv6接口(host)在網(wǎng)段中唯一標(biāo)識(shí)。 IPv6報(bào)文包含源IP地址和目標(biāo)IP地址。 主機(jī)接口配備有在該網(wǎng)絡(luò)段中唯一的IP地址。當(dāng)網(wǎng)絡(luò)交換機(jī)或路由器接收到注定到單個(gè)主機(jī)的單播IP分組時(shí),它發(fā)出其連接到該特定主機(jī)的輸出接口。
地址的后半部分(最后64位)始終用于接口ID。 系統(tǒng)的MAC地址由48位組成并以十六進(jìn)制表示。 MAC地址被認(rèn)為是在世界范圍內(nèi)唯一分配的。 接口ID利用MAC地址的這種唯一性。 主機(jī)可以使用IEEE的擴(kuò)展唯一標(biāo)識(shí)符(EUI-64)格式自動(dòng)配置其接口ID。 首先,主機(jī)將其自己的MAC地址劃分為兩個(gè)24位的半部分。 然后16位十六進(jìn)制值0xFFFE被夾在這兩個(gè)MAC地址的兩半之間,產(chǎn)生EUI-64接口ID。
# MAC映射到IPv6地址
從左數(shù)起的第7位,是U位,使用EUI-64格式的地址IPv6地址,U/L位為1,則地址是全球唯一的,如果為0,則為本地唯一。
#IPv6報(bào)文
IPv6有三種不同類型的單播地址方案:
1. 可聚合全球單播(Global Unicast)
一般從運(yùn)營(yíng)商處申請(qǐng)到的IPv6地址空間為/48,三個(gè)最高有效位始終設(shè)置為001,再由自己根據(jù)需要進(jìn)一步規(guī)劃:
#IPv6地址構(gòu)成
2. 唯一本地地址 Unique Local Address
ULA,唯一本地地址,概念上相當(dāng)于私有IP,僅能夠在本地網(wǎng)絡(luò)使用,在IPv6 Internet上不可被路由, 用于以滿足本地環(huán)境中私有IPv6地址的使用。
在RFC4193中標(biāo)準(zhǔn)化了一種用來(lái)在本地通信中取代站點(diǎn)本地單播地址的類型。ULA擁有固定前綴FC00::/7,分為兩塊:FC00::/8暫未定義,F(xiàn)D00::/8定義如下:
#IPv6私有地址構(gòu)成
附注: IPv6中的NAT
IPv6私網(wǎng)地址與公網(wǎng)地址的映射不像IPv4的NAT一樣,需要多個(gè)地址映射到一個(gè)地址,IPv6地址持有將近128位可隨意調(diào)配的位,鑒于地址空間的龐大,一般的企業(yè)或單位都會(huì)被分配到一個(gè)擁有很大量地址的網(wǎng)段,此網(wǎng)段擁有足夠多的地址來(lái)和內(nèi)網(wǎng)主機(jī)進(jìn)行一一映射,也就是說(shuō)可用于映射的IP地址pool容量巨大無(wú)比,關(guān)鍵是這個(gè)一一映射如何來(lái)保持,既然不想再使用非IP層的信息來(lái)保持信息,那就要用純IP層的信息了,這樣對(duì)上層影響最小。對(duì)于IPv4,經(jīng)典NAT使用了五元組來(lái)保持流標(biāo)識(shí)信息,而對(duì)于IPv6,則更加絕妙,它利用(而不是使用)了checksum的算法,絲毫不管這個(gè)checksum是誰(shuí)的checksum,因?yàn)樗揪筒桓淖償?shù)據(jù)包的checksum.
如,Linux下配置來(lái)回的兩條映射規(guī)則:
正向規(guī)則:
ip6tables -t mangle -A POSTROUTING -s fdca:ffee:babe::/64 -o eth2 -j MAP66--src-to 2008:db8:1::/64
反向規(guī)則:ip6tables -t mangle -A PREROUTING -d 2008:db8:1::/64 -i eth2 -j MAP66 --dst-to fdca:ffee:babe::/64
3. 鏈路本地IPv6 單播地址
類似于windows系統(tǒng)中IPv4的169.254.0.0/16地址(link-local IPv4 address)
它的有效范圍僅僅在所處鏈路上。以FE80::/10為前綴,11-64位為0,外加一個(gè)64bits的接口標(biāo)識(shí)(一般是EUI-64)。
#IPv6本地鏈路地址構(gòu)成
特殊地址
組播(Multicast)
IPv6 多播(組播)地址是一組接口的標(biāo)識(shí)符(典型在不同節(jié)點(diǎn)上)。一個(gè)接口可以屬于任何數(shù)目的多播組。
組播地址最高位前8位固定為全1,也就是“FFXX::/8”
#IPv6組播地址構(gòu)成
IPv6通信的核心大量的使用了組播(鄰居發(fā)現(xiàn)協(xié)議NDP),IPv6不再使用廣播。IPv6的任何節(jié)點(diǎn)都能夠成為一個(gè)組播成員,源節(jié)點(diǎn)可以發(fā)送數(shù)據(jù)包到組播組,任何一個(gè)組播成員都能收到來(lái)自這個(gè)組播組的數(shù)據(jù)包。
常用組播地址
節(jié)點(diǎn)請(qǐng)求
在IPv4環(huán)境中,ARP地址解析協(xié)議利用廣播將MAC請(qǐng)求消息發(fā)送給整個(gè)以太網(wǎng)鏈路上的所有主機(jī),目的主機(jī)回應(yīng)ARP Reply從而使發(fā)送源獲得目的主機(jī)的MAC地址。
節(jié)點(diǎn)請(qǐng)求則以一種“點(diǎn)對(duì)點(diǎn)”的形式將MAC地址請(qǐng)求消息發(fā)送到目標(biāo)主機(jī)(因?yàn)橹鳈C(jī)的請(qǐng)求節(jié)點(diǎn)組播地址如FF02::1:FFAA:4C3E在整個(gè)鏈路上是唯一的),所以源主機(jī)可以直接將節(jié)點(diǎn)請(qǐng)求信息發(fā)到目標(biāo)主機(jī)節(jié)點(diǎn)請(qǐng)求組播地址上,節(jié)點(diǎn)請(qǐng)求組播地址是提高M(jìn)AC地址解析的核心技術(shù),那么這個(gè)目標(biāo)主機(jī)的節(jié)點(diǎn)請(qǐng)求組播是如何生成的?
節(jié)點(diǎn)請(qǐng)求組播的構(gòu)成如下: 該組播地址是將一個(gè)單播IPv6地址(可以是本地鏈路地址也可以是全球單播地址)的后24位填充到一個(gè)請(qǐng)求節(jié)點(diǎn)組播地址的124位的固定前綴FF02::1:FF中,生成一個(gè)唯一的節(jié)點(diǎn)請(qǐng)求組播地址。
#請(qǐng)求節(jié)點(diǎn)IPv4組播地址的構(gòu)成
如一臺(tái)IPv6主機(jī)的本地鏈路地址為
FECO:0000:0000:0000:0230:18FF:FEAA:4C3E,現(xiàn)在通過(guò)對(duì)這個(gè)地址的實(shí)踐分析,來(lái)理解該地址所對(duì)應(yīng)的節(jié)點(diǎn)請(qǐng)求組播地址的構(gòu)成原理,如下圖所示。首先是還原節(jié)點(diǎn)請(qǐng)求組播地址的124位固定前綴的標(biāo)準(zhǔn)格式:“
FF02:0000:0000:0000:0000:0001:FF”然后取出IPv6主機(jī)的本地鏈路地址
FECO:0000:0000:0000:0230:18FF:FEAA:4C3E中的最后24位,填充到“
FF02:0000:0000:0000:0000:0001:FF”前綴中,IPv6使用十六進(jìn)制表達(dá),那么一個(gè)十六進(jìn)制字符是4個(gè)二進(jìn)制位,所以需要將IPv6單播地址中的最后6個(gè)字符(二進(jìn)制為24位)取下填充到124位固定前綴中形成最后的地址:
FF02:0000:0000:0000:0000:0001:FFAA:4C3E,最后使用“零壓縮”法表示成為:FF02::1:FFAA:4C3E。
#請(qǐng)求節(jié)點(diǎn)組播地址構(gòu)成實(shí)例
IPV6的組播地址與MAC地址的映射關(guān)系
IPv6的節(jié)點(diǎn)請(qǐng)求多播地址去替代了ARP地址解析協(xié)議的目標(biāo)廣播地址255.255.255.255,這只能表示IPv6的節(jié)點(diǎn)請(qǐng)求從網(wǎng)絡(luò)層上的優(yōu)化與改進(jìn),在數(shù)據(jù)鏈路層優(yōu)化則是:
在IPv4的ARP地址解析協(xié)議中的請(qǐng)求消息報(bào)文的目標(biāo)鏈路層地址為FFFF.FFFF.FFFF,那么在IPv6中節(jié)點(diǎn)請(qǐng)求消息報(bào)文的目標(biāo)鏈路層地址是什么?在IPv4中組播的IP地址是可以映射成為數(shù)據(jù)鏈路層的MAC地址,在IPv6中這個(gè)概念仍然生效,IPv6的節(jié)點(diǎn)請(qǐng)求組播地址也可以映射成數(shù)據(jù)鏈路層地址,具體方法如下圖所示組播的MAC地址是通地IPv6的組播IP地址映射而來(lái),映射的原則是:將IPv6組播地址的后32位取出,填充到固定前綴是3333的MAC地址中來(lái)生成數(shù)據(jù)鏈路層地址。
#MAC映射
在IPv4中的ARP表項(xiàng)也變成了IPv4中的鄰居表項(xiàng),如在Win10系統(tǒng)中通過(guò)netsh interface ipv6 show neighbors可查看設(shè)備各個(gè)接口下的鄰居建立情況:
#IPv6鄰居查看
任播(Anycast)
任播技術(shù)是一種新的網(wǎng)絡(luò)應(yīng)用方式,但是目前IPv6中它的很多定義是模糊的,并且在控制路由方面尚無(wú)一致的協(xié)議標(biāo)準(zhǔn),因此節(jié)點(diǎn)間任播通訊仍然無(wú)法實(shí)現(xiàn)。
RFC 2723將IPv6地址結(jié)構(gòu)中的任播地址定義為系列網(wǎng)絡(luò)接口標(biāo)識(shí),即屬于多個(gè)節(jié)點(diǎn)的多個(gè)接口的共同網(wǎng)絡(luò)標(biāo)識(shí)(IPv6地址), 其特點(diǎn)是:發(fā)往一個(gè)任播地址的分組(報(bào)文)將被轉(zhuǎn)發(fā)到該地址標(biāo)識(shí)“最近”的一個(gè)網(wǎng)絡(luò)接口(“最近”的定義是基于路由協(xié)議中的距離度量--cost)。
單播地址是每個(gè)網(wǎng)絡(luò)接口唯一的標(biāo)識(shí)符,多個(gè)接口不能分配相同的單播地址,帶有同樣目的地址的數(shù)據(jù)包被發(fā)往同一個(gè)節(jié)點(diǎn);另一方面,組播地址被分配給一組節(jié)點(diǎn),組中所有成員擁有同樣的組播地址,而帶有同樣地址的數(shù)據(jù)包同時(shí)發(fā)給所有成員;類似于組播地址,單一的任播地址被分配給多個(gè)節(jié)點(diǎn)(任播成員),但和多播機(jī)制不同的是:每次僅有一個(gè)分配任播地址的成員(“最近”的成員)與發(fā)送端通信。若任播地址相關(guān)的有三個(gè)節(jié)點(diǎn),當(dāng)源節(jié)點(diǎn)發(fā)送一個(gè)目的地址為任播地址的數(shù)據(jù)包時(shí),數(shù)據(jù)包被發(fā)送給三個(gè)節(jié)點(diǎn)中的一個(gè),而不是所有的主機(jī)。任播機(jī)制的優(yōu)勢(shì)在于源節(jié)點(diǎn)不需要了解服務(wù)節(jié)點(diǎn)或目前網(wǎng)絡(luò)的情況,而可以接收特定服務(wù),當(dāng)一個(gè)節(jié)點(diǎn)無(wú)法工作時(shí),帶有任播地址的數(shù)據(jù)包又會(huì)在剩余節(jié)點(diǎn)中挑選“最近”的節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)(取決于任播路由協(xié)議)。
任播技術(shù)的初衷是徹底簡(jiǎn)化在互聯(lián)網(wǎng)中尋找合適服務(wù)器的任務(wù)(類似負(fù)載均衡、VRRP等技術(shù), Failover),從物理主機(jī)中分離出邏輯服務(wù)標(biāo)識(shí)符,任播地址可根據(jù)服務(wù)類型進(jìn)行分配,使得網(wǎng)絡(luò)服務(wù)擔(dān)當(dāng)一個(gè)邏輯主機(jī)的角色
任播與組播的區(qū)別: 任播是將報(bào)文轉(zhuǎn)發(fā)到一組節(jié)點(diǎn)中的一個(gè)(僅是一個(gè)),而組播卻是將 報(bào)文轉(zhuǎn)發(fā)給一組節(jié)點(diǎn)中的所有成員。
任播地址定義:
使用部分已存單播地址空間(非正式)
如示例所示,Server A, B, C均申明適用任播地址2001:AD02::1, 路由器根據(jù)路由協(xié)議決定將目的為2001:AD02::1的報(bào)文發(fā)給三者中的一個(gè)(如:Cost最小的Server C)
為任意播定義一類特殊的地址
如定義AA00::/8或者FA00::/8作為任播地址
聯(lián)系客服