天天看點

帶你讀《網際網路協定第六版 (IPv 6)》第二章IPv6 技術介紹2.2 IPv6 基本功能(一)

IPv6基本功能包括 IPv6鄰居發現協定(鄰居發現、路由器發現、無狀态位址自動配置、重定向)、IPv6路徑 MTU發現協定以及 IPv6域名解析。其中路由器發現和無狀态位址自動配置是IPv6新增的功能,鄰居發現功能類似于IPv4中的 ARP功能,但做了改進和增強。

2.2.1     IPv6 鄰居發現協定

IPv6鄰居發現協定使用 ICMPv6消息和被請求節點的多點傳播位址來得到同一網絡(本地鍊路)上某個鄰居的鍊路層位址,驗證鄰居的可達性,找到鄰居路由器。每個IPv6節點都必須加入和單點傳播與泛播位址對應的多點傳播組。IPv6鄰居發現協定主要包括鄰居發現、路由器發現、無狀态位址自動配置、重定向。

1.  鄰居發現

鄰居發現功能和IPv4中的ARP功能類似,通過鄰居請求和鄰居通告機制實作。                                                                                                                                                                                                                                                                                  

(1)  鄰居請求

當一個節點需要得到同一本地鍊路上另外一個節點的鍊路本地位址時,就會發送鄰居請求封包。此封包類似于IPv4中的 ARP請求封包,不過使用多點傳播位址而不使用廣播,隻有被請求節點的最後 24bit和此多點傳播相同的節點才會收到此封包,降低了廣播風暴的可能性。源節點使用目的節點的 IPv6位址的最右 24bit形成相應的多點傳播位址,然後在相應鍊路上發送ICMPv6類型為 135的封包。目的節點在響應封包中填充其鍊路位址。為了發送鄰居請求封包,源節點必須首先知道目的節點的IPv6位址。鄰居請求封包也用來在鄰居的鍊路層位址已知時驗證鄰居的可達性。

(2)  鄰居通告

IPv6鄰居通告封包是對 IPv6鄰居請求封包的響應。如圖2-11所示,收到鄰居請求封包後,目的節點通過在本地鍊路上發送ICMPv6類型為 136的鄰居通告封包進行響應。收到鄰居通告封包後,源節點和目的節點可以進行通信。當一個節點的本地鍊路上的鍊路層位址改變時也會主動發送鄰居通告封包。

帶你讀《網際網路協定第六版 (IPv 6)》第二章IPv6 技術介紹2.2 IPv6 基本功能(一)

圖2-11     IPv6鄰居發現示意

IPv6鄰居發現隻要一次封包互動就可以互相學習到對方的鍊路層位址,而IPv4的 ARP實作此功能需要兩次封包互動,是以 IPv6鄰居發現的效率比較高。另外,IPv6鄰居發現是在 IP層實作的,理論上可以支援各種傳輸媒介,這也是針對 IPv4中的 ARP改進的。

2.   路由器發現

路由器發現用來定位鄰居路由器,同時學習和位址自動配置有關的字首和配置參數。IPv6路由器發現通過下面兩種機制實作。

(1)  路由器請求

當主機沒有配置單點傳播位址(例如,系統剛啟動)時,就會發送路由器請求封包。路由器請求封包有助于主機迅速進行自動配置而不必等待IPv6路由器的周期性IPv6路由器通告封包。IPv6路由請求也是 ICMP封包,類型為 133。IPv6路由器請求封包中的源位址通常為未指定的IPv6位址(0::0)。如果主機已經配置了一個單點傳播位址,則此接口的單點傳播位址可在發送路由器請求封包時作為源位址填充。IPv6   路由器請求封包中的目的位址是所有路由器的多點傳播位址(FF02::2),作用域為本地鍊路。如果路由器通告是針對路由器請求發出的,則其目的位址為相應路由器請求封包的 源位址。

(2)  路由器通告

每個IPv6路由器的配置接口會周期性地發送路由器通告封包。在本地鍊路上收到 IPv6節點的路由器請求封包後,路由器也會發送路由器通告封包。IPv6路由器通告封包發送到所有節點的鍊路本地多點傳播位址(FF02::1)或發送到路由器請求封包節點的 IPv6單點傳播位址。路由器通告為 ICMP封包,類型為 134,包括是否使用位址自動配置、标記支援的自動配置類型(無狀态或有狀态自動配置)、一個或多個本    地鍊路字首——本地鍊路上的節點可以使用這些字首完成位址自動配置、通告的本 地鍊路字首的生存期、是否發送路由器通告的路由器可作為預設路由器,如果可以, 還包括此路由器作為預設路由器的時間(用秒表示)和與主機相關的其他資訊,如跳數限制,主機發起的封包可以使用的 MTU。本地鍊路上的IPv6節點接收路由器通告封包,并用其中的資訊得到更新的預設路由器、字首清單以及其他配置,如圖 2-12所示。

帶你讀《網際網路協定第六版 (IPv 6)》第二章IPv6 技術介紹2.2 IPv6 基本功能(一)

圖2-12     IPv6路由器通告示意

3.   無狀态位址自動配置

通過使用路由器通告封包(和針對每一字首的标記),路由器可以通知主機如何進行位址自動配置。例如,路由器可以指定主機是使用有狀态(DHCPv6)位址   自動配置還是無狀态位址自動配置。主機收到路由器通告封包後,使用其中的字首資訊和本地接口ID自動形成 IPv6位址,同時還可以根據其中的預設路由器資訊設定預設路由器。使用無狀态位址自動配置可以使IPv6節點很容易完成位址重新編址,降低了網絡重新部署的複雜性。進行重新編址時,路由器通告封包中既包括舊的字首也包括新的字首。舊的字首的生存期縮短,促使節點使用新的字首,同時保證現有連接配接可以繼續使用舊的字首。其間,節點同時具有新舊兩個單點傳播位址。當舊的字首不再使用時,路由器隻通告新的字首。

4.  重定向

和 IPv4類似,IPv6路由器發送重定向封包的目的僅限于把封包重新路由到更合适的路由器。收到重定向封包的節點随後會把後續封包發送到更合适的路由器。路由器隻針對單點傳播流發送重定向封包,重定向封包隻發給引起重定向的封包的發起節點(主機),并被處理。

繼續閱讀