IPv6在互聯(lián)網(wǎng)絡(luò)中的運(yùn)行方式
本文轉(zhuǎn)載自微信公眾號(hào)「思科CCIE俱樂(lè)部」,作者老楊。轉(zhuǎn)載本文請(qǐng)聯(lián)系思科CCIE俱樂(lè)部公眾號(hào)。
IPv6在互聯(lián)網(wǎng)絡(luò)中的運(yùn)行方式
現(xiàn)在該探討IPv6的細(xì)節(jié)了。首先,介紹如何給主機(jī)分配地址以及主機(jī)如何找到網(wǎng)絡(luò)中的其他主機(jī)和資源。
我們還會(huì)演示設(shè)備的自動(dòng)編址功能(無(wú)狀態(tài)自動(dòng)配置)以及另一種類(lèi)型的自動(dòng)配置(有狀態(tài)自動(dòng)配置)。請(qǐng)記住,有狀態(tài)自動(dòng)配置使用DHCP服務(wù)器,與IPv4中極其類(lèi)似。
自動(dòng)配置
自動(dòng)配置是一種很有用的解決方案,讓網(wǎng)絡(luò)中的設(shè)備能夠給自身分配鏈路本地單播地址和全局單播地址。它是這樣完成的:首先從路由器那里獲悉前級(jí)信息,再將設(shè)備自己的接口地址用作接口ID。
但接口ID是如何獲得的呢?大家都知道,以太網(wǎng)中的每臺(tái)設(shè)備都有-個(gè) MAC地址,該地址會(huì)被用作接口ID。然而,IPv6 地址中的接口ID長(zhǎng)64位,而MAC地址只有48位,多出來(lái)的16位是如何來(lái)的呢?在MAC地址中間插人額外的位,即FFFE。
例如,假設(shè)設(shè)備的MAC地址為0060:d673:1987,插人FFFE后,結(jié)果為0260:d6FF:FE73:1987。為何開(kāi)頭的00變成了02呢?向得好。插人時(shí)將采用改進(jìn)的eui-64 (擴(kuò)展唯一標(biāo)識(shí)符)格式,它使用第7位來(lái)標(biāo)識(shí)地址是本地唯一的還是全局唯一的。如果這一位為1,則表示地址是全局唯一的,如果為0,則表示地址是本地唯一的。在這個(gè)例子中,最終的地址是全局唯一的還是本地唯一的呢?
正確的答案是全局唯一的。自動(dòng)配置可節(jié)省編址時(shí)間,因?yàn)橹鳈C(jī)只需與路由器交流就可完成這項(xiàng)工作。
為完成自動(dòng)配置,主機(jī)執(zhí)行兩個(gè)步驟。
(1)首先,為配置接口,主機(jī)需要前綴信息(類(lèi)似于IPv4地址的網(wǎng)絡(luò)部分),因此它會(huì)發(fā)送一條路由器請(qǐng)求( Router Solicitation, RS )消息。該消息以組播方式發(fā)送給所有路由器。這實(shí)際上是一種ICMP消息,并用編號(hào)進(jìn)行標(biāo)識(shí)。RS消息的ICMP類(lèi)型為133。
(2)路由器使用一條路由器通告(RA)進(jìn)行應(yīng)答,其中包含請(qǐng)求的前級(jí)信息。RA消息也是組播分組,被發(fā)送到表示所有節(jié)點(diǎn)的組播地址,其ICMP類(lèi)型為134。RA消息是定期發(fā)送的,但主機(jī)發(fā)送RS消息后,可立即得到響應(yīng),因此無(wú)需等待下一條定期發(fā)送的RA消息,就能獲得所需的信息。
圖15-2說(shuō)明了這兩個(gè)步驟。
順便說(shuō)一句,這種類(lèi)型的自動(dòng)配置稱(chēng)為無(wú)狀態(tài)自動(dòng)配置,因?yàn)闊o(wú)需進(jìn)一步與其他設(shè)備聯(lián)系以獲悉額外的信息。稍后討論DHCPv6時(shí),將介紹有狀態(tài)自動(dòng)配置。
路由器配置IPv6
下面來(lái)看看如何給路由器配置IPv6。
要在路由器上啟用IPv6,必須使用全局配置命令ipv6 uni cast-routing:
- Corp( config)#ipv6 unicast-routing
默認(rèn)情況下,轉(zhuǎn)發(fā)IPv6數(shù)據(jù)流的功能被禁用,因此需要使用上述命令啟用它。另外,你可能猜到了,默認(rèn)不會(huì)在任何接口上啟用IPv6,因此必須進(jìn)入每個(gè)接口并啟用這項(xiàng)功能。
為此,可使用多種方式,但最簡(jiǎn)單的方式是,使用命令1pv6 address
下面是一個(gè)例子:
- Corp(config-if)#ipv6 address 2001 :db8: 3c4d:1:0260:d6FF .FE73:1987/64
可指定一個(gè)完整的128位IPv6全局地址(就像前面的例子那樣),也可使用eui-64 選項(xiàng)。eui-64格式允許設(shè)備對(duì)其MAC地址進(jìn)行轉(zhuǎn)換,以生成接口ID,如下所示:
- Corp(config-if)#ipv6 address 2001:db8:3c4d:1::/64 eui-64
為在路由器接口上啟用IPv6,也可不輸人IPv6地址,而讓其自動(dòng)使用鏈路本地地址。
注意:如果只有鏈路本地地址,則只能在本地子網(wǎng)中通信。
要配置路由器接口,使其只使用鏈路本地地址,可使用接口配置命令ipv6 enable:
- Corp(config-if)#ipv6 enable
下面配置DHCPv6服務(wù)器,以探討有狀態(tài)自動(dòng)配置。
DHCPv6
DHCPv6的工作原理與DHCPv4極其相似,但有一個(gè)明顯 的差別,那就是支持IPv6新增的編址方案。DHCP提供了一些自動(dòng)配置沒(méi)有的選項(xiàng),這可能令你感到驚訝。在自動(dòng)配置中,根本沒(méi)有涉及DNS服務(wù)器、域名以及DHCP提供的眾多其他選項(xiàng)。這是在大多數(shù)IPv6網(wǎng)絡(luò)中使用DHCP的重要原因。
在IPv4網(wǎng)絡(luò)中,客戶(hù)端啟動(dòng)時(shí)將發(fā)送一條DHCP發(fā)現(xiàn)消息,以查找可給它提供所需信息的服務(wù)器。但在IPv6中,首先發(fā)生的是RS和RA過(guò)程。如果網(wǎng)絡(luò)中有DHCPv6服務(wù)器,返回給客戶(hù)端的RA將指出DHCP是否可用。如果沒(méi)有找到路由器,客戶(hù)端將發(fā)送一條DHCP請(qǐng)求消息,這是一條組播消息,其目標(biāo)地址為f02:1:2,表示所有DHCP代理,包括服務(wù)器和中繼。
IOS提供了一定的DHCPv6支持,但僅限于無(wú)狀態(tài)DHCP服務(wù)器,這意味著它沒(méi)有提供地址池管理功能,且可配置的選項(xiàng)僅限于DNS、域名、默認(rèn)網(wǎng)關(guān)和SIP服務(wù)器。
這意味著必要時(shí)需要提供其他服務(wù)器,以提供所有必要的信息并管理地址分配。
ICMPv6
IPv4使用ICMP做很多事情,諸如目的地不可達(dá)等錯(cuò)誤消息以及ping和traceroute等診斷功能。
ICMPv6也提供了這些功能,但不同的是,它不是獨(dú)立的第3層協(xié)議。ICMPv6是IPv6不可分割的部分,其信息包含在基本IPv6報(bào)頭后面的擴(kuò)展報(bào)頭中。ICMPv6新增了一項(xiàng)功能:默認(rèn)情況下,可通過(guò)ICMPv6過(guò)程“路徑MTU發(fā)現(xiàn)”來(lái)避免IPv6對(duì)分組進(jìn)行分段。
路徑MTU發(fā)現(xiàn)過(guò)程的工作原理如下:源節(jié)點(diǎn)發(fā)送一個(gè)分組,其長(zhǎng)度為本地鏈路的MTU。在該分組前往目的地的過(guò)程中,如果鏈路的MTU小于該分組的長(zhǎng)度,中間路由器就會(huì)向源節(jié)點(diǎn)發(fā)送消息“分組太大”。這條消息向源節(jié)點(diǎn)指出了當(dāng)前鏈路支持的最大分組長(zhǎng)度,并要求源節(jié)點(diǎn)發(fā)送可穿越該鏈路的小分組。這個(gè)過(guò)程不斷持續(xù)下去,直到到達(dá)目的地,此時(shí)源節(jié)點(diǎn)便知道了該傳輸路徑的MTU。接下來(lái),傳輸其他數(shù)據(jù)分組時(shí),源節(jié)點(diǎn)將確保分組不會(huì)被分段。
ICMPv6接管了發(fā)現(xiàn)本地鏈路上其他設(shè)備的地址的任務(wù);在IPv4中,這項(xiàng)任務(wù)由地址解析協(xié)議負(fù)責(zé),但I(xiàn)CMPv6將這種協(xié)議重命名為鄰居發(fā)現(xiàn)。這個(gè)過(guò)程是使用被稱(chēng)為請(qǐng)求節(jié)點(diǎn)地址( solicited nodeaddress )的組播地址完成的,每臺(tái)主機(jī)連接到網(wǎng)絡(luò)時(shí)都會(huì)加入這個(gè)組播組。為生成請(qǐng)求節(jié)點(diǎn)地址,在FF02:0:0:0:0:1:FF/104末尾加上目標(biāo)主機(jī)的IPv6地址的最后24位。查詢(xún)請(qǐng)求節(jié)點(diǎn)地址時(shí),相應(yīng)的主機(jī)將返回其第2層地址。網(wǎng)絡(luò)設(shè)備也以類(lèi)似的方式發(fā)現(xiàn)和跟蹤相鄰設(shè)備。前面介紹RA和RS消息時(shí)說(shuō)過(guò),它們使用組播來(lái)請(qǐng)求和發(fā)送地址信息,這也是ICMPv6的鄰居發(fā)現(xiàn)功能。
在IPv4中,主機(jī)使用IGMP協(xié)議來(lái)告訴本地路由器,它要加入特定的組播組并接收發(fā)送給該組播組的數(shù)據(jù)流。這種IGMP功能已被ICMPv6 取代,并被重命名為組播偵聽(tīng)者發(fā)現(xiàn)( multicast listenerdiscovery )。