關(guān)于IPv6地址定義的補(bǔ)充內(nèi)容
前文我們講述了不少IPv6地址的相關(guān)內(nèi)容,了解了它與傳統(tǒng)版本IP地址的不同之處和一些新內(nèi)容的含義,現(xiàn)在我們來(lái)對(duì)這部分內(nèi)容在進(jìn)行一些內(nèi)容上的擴(kuò)充。現(xiàn)在我們將要講述的是:多播地址和字段以及一些定義。
IPv6多播地址識(shí)別多個(gè)接口。使用適當(dāng)?shù)亩嗖ヂ酚赏負(fù)?,將向多播地址發(fā)送的數(shù)據(jù)包發(fā)送給該地址識(shí)別的所有接口。
IPv6多播地址有 1111 1111 的格式前綴 (FP)。IPv6地址很容易區(qū)分為多播地址,因?yàn)樗偸且?FF 開始。多播地址不能被用作源地址。
除了 FP 以外,多播地址還包括其他結(jié)構(gòu),以便標(biāo)識(shí)它們的標(biāo)志、作用域和多播組,如下圖所示。
多播地址中的字段如下所示:
標(biāo)志:“標(biāo)志”字段表示在IPv6多播地址上設(shè)置的標(biāo)志。該字段的大小為 4 位。從 RFC 2373 起,定義的唯一標(biāo)志是 Transient (T) 標(biāo)志。T 標(biāo)志使用“標(biāo)志”字段的低位比特。當(dāng)設(shè)置為 0 時(shí),T 標(biāo)志表示該多播地址是由 Internet 號(hào)碼指派機(jī)構(gòu) (IANA) ***指派的(著名)多播地址。當(dāng)設(shè)置為 1 時(shí),T 標(biāo)志表示該多播地址是瞬態(tài)(非***指派)多播地址。
范圍:作用域字段表示進(jìn)行多播通訊的 IPv6網(wǎng)絡(luò)的作用域。該字段的大小為 4 位。除了多播路由協(xié)議提供的信息之外,路由器使用多播作用域來(lái)確定是否可以轉(zhuǎn)發(fā)多播通訊。
以下作用域在 RFC 2373 中定義:
作用域字段值范圍:1 節(jié)點(diǎn)本地,2 鏈路本地,5 站點(diǎn)本地,8 組織本地,E 全局
例如,使用多播地址 FF02::2 的通訊具有鏈路本地作用域。IPv6路由器永遠(yuǎn)不會(huì)將此通訊轉(zhuǎn)發(fā)到本地鏈路以外。
組ID:“組ID”字段標(biāo)識(shí)多播組,并且在作用域中是唯一的。該字段的大小為 112 位。***指派的組 ID 獨(dú)立于作用域。瞬態(tài)組 ID 僅與特定的作用域有關(guān)。從 FF01::到 FF0F::的多播地址是保留的已知地址。
為了識(shí)別用于節(jié)點(diǎn)本地和鏈路本地作用域的所有節(jié)點(diǎn),定義下列IPv6地址的多播地址:
FF01::1(節(jié)點(diǎn)本地作用域所有節(jié)點(diǎn)地址)
FF02::1(鏈路本地作用域所有節(jié)點(diǎn)地址)
為了識(shí)別用于節(jié)點(diǎn)本地、鏈路本地和站點(diǎn)本地作用域的所有路由器,定義下列多播地址:
FF01::2(節(jié)點(diǎn)本地作用域所有路由器地址)
FF02::2(鏈路本地作用域所有路由器地址)
FF05::2(站點(diǎn)本地作用域所有路由器地址)
在“組ID”中使用 112 位,就可能有 2 的 112 次方個(gè)組ID。但是,因?yàn)?IPv6多播地址被映射到以太網(wǎng)多播 MAC 地址,所以 RFC 2373 建議從 IPv6多播地址的低位 32 位指派“組 ID”,并將剩余的原始組 ID 位設(shè)置為 0。通過(guò)在組 ID 中只使用低位 32 位,每個(gè)組 ID 映射到唯一的以太網(wǎng)多播 MAC 地址。
請(qǐng)求節(jié)點(diǎn)地址:請(qǐng)求節(jié)點(diǎn)地址有利于在地址解析過(guò)程中實(shí)現(xiàn)有效的網(wǎng)絡(luò)節(jié)點(diǎn)查詢。在 IPv4中,ARP 請(qǐng)求幀被發(fā)送到 MAC 層次的廣播,擾亂了網(wǎng)絡(luò)段上的所有節(jié)點(diǎn),包括不運(yùn)行 IPv4的節(jié)點(diǎn)。IPv6使用“鄰居請(qǐng)求”消息執(zhí)行地址解析。但是,沒(méi)有使用本地鏈路作用域所有節(jié)點(diǎn)地址作為“鄰居請(qǐng)求”消息目標(biāo),因?yàn)檫@樣可能擾亂本地鏈路上的所有 IPv6節(jié)點(diǎn),而是使用請(qǐng)求節(jié)點(diǎn)多播地址。請(qǐng)求節(jié)點(diǎn)多播地址由前綴 FF02::1:FF00:0/104 和被解析的 IPv6地址的*** 24 位地址組成。
例如,對(duì)于使用 FE80::2AA:FF:FE28:9C*** 鏈路本地 IPv6地址的節(jié)點(diǎn),相應(yīng)的請(qǐng)求節(jié)點(diǎn)地址是 FF02::1:FF28:9C***。要將 FE80::2AA:FF:FE28:9C*** 地址解析為它的鏈路層地址,節(jié)點(diǎn)將發(fā)送“鄰居請(qǐng)求”消息給 FF02::1:FF28:9C*** 請(qǐng)求節(jié)點(diǎn)地址。使用 FE80::2AA:FF:FE28:9C*** 地址的節(jié)點(diǎn),將偵聽(tīng)請(qǐng)求節(jié)點(diǎn)地址的多播通訊,因?yàn)閷?duì)應(yīng)于某一物理網(wǎng)絡(luò)適配器的接口,已經(jīng)和網(wǎng)絡(luò)適配器一起注冊(cè)了相應(yīng)的多播地址。
使用請(qǐng)求節(jié)點(diǎn)多播地址的結(jié)果是,地址解析(通常發(fā)生在鏈路上)不需要使用擾亂所有網(wǎng)絡(luò)節(jié)點(diǎn)的機(jī)制。事實(shí)上,在地址解析過(guò)程中很少有節(jié)點(diǎn)被擾亂。在實(shí)踐中,因?yàn)橐蕴W(wǎng) MAC 地址、IPv6接口 ID 和請(qǐng)求節(jié)點(diǎn)地址之間的關(guān)系,所以請(qǐng)求節(jié)點(diǎn)地址扮演偽單播地址的角色,以便實(shí)現(xiàn)非常有效的地址解析。