IPv6鄰居發現,地址重復檢測,及路由器發現機制,一分鐘了解下
一、IPv6基礎
IPv6(Internet Protocol Version 6,互聯網協議版本 6)是網絡層協議的第二代標準協議,也被稱為 IPng(IP Next Generation,下一代互聯網協議),它是 IETF(Internet Engineering Task Force,互聯網工程任務組)設計的一套規范,是 IPv4 的升級版本。IPv6 和 IPv4 之間最顯著的區別為:IP地址的長度從 32 比特增加到 128 比特。
二、IPv6報文和IPv4報文對比
IPv6報文更加簡潔
三、IPv6 鄰居發現協議介紹
IPv6 鄰居發現(Neighbor Discovery,ND)協議使用五種類型的 ICMPv6 消息,實現下面一些功能:地址解析、驗證鄰居是否可達、重復地址檢測、路由器發現/前綴發現、地址自動配置和重定向等功能。
1. 地址解析
獲取同一鏈路上鄰居節點的鏈路層地址(與IPv4 的ARP功能相同),通過鄰居請求消息NS和鄰居通告消息NA實現。
- 節點 A 以組播方式發送 NS 消息。NS 消息的源地址是節點 A 的接口 IPv6 地址,目的地址是節點 B 的請求節點組播地址,消息內容中包含了節點 A 的鏈路層地址和請求的目標地址。
- 節點 B 收到 NS 消息后,判斷報文的目標地址是否為自己的 IPv6 地址。如果是,則節點 B 可以學習到節點 A 的鏈路層地址,并以單播方式返回 NA 消息,其中包含了自己的鏈路層地址。
- 節點 A 從收到的 NA 消息中就可獲取到節點 B 的鏈路層地址。
2. 驗證鄰居是否可達
在獲取到鄰居節點的鏈路層地址后,通過鄰居請求消息 NS 和鄰居通告消息 NA 可以驗證鄰居節點是否可達。
- 節點發送 NS 消息,其中目的地址是鄰居節點的 IPv6 地址。
- 如果收到鄰居節點的確認報文,則認為鄰居可達;否則,認為鄰居不可達。
3. 重復地址檢測
當節點獲取到一個IPv6 地址后,需要使用重復地址檢測功能確定該地址是否已被其他節點使用(與IPv4 的免費ARP功能相似)。
- 節點 A 發送 NS 消息,NS 消息的源地址是未指定地址::,目的地址是待檢測的 IPv6 地址對應的被請求節點組播地址,消息內容中包含了待檢測的 IPv6 地址。
- 如果節點 B 已經使用這個 IPv6 地址,則會返回 NA 消息。其中包含了自己的 IPv6 地址。
- 節點 A 收到節點 B 發來的 NA 消息,就知道該 IPv6 地址已被使用。反之,則說明該地址未被使用,節點 A 就可使用此 IPv6 地址。
4. 路由器發現/前綴發現及地址無狀態自動配置
路由器發現/前綴發現是指節點從收到的 RA 消息中獲取鄰居路由器及所在網絡的前綴,以及其他配置參數。
地址無狀態自動配置是指節點根據路由器發現/前綴發現所獲取的信息,自動配置 IPv6 地址。
路由器發現/前綴發現通過路由器請求消息 RS 和路由器通告消息 RA 來實現,具體過程如下:
- 節點啟動時,通過 RS 消息向路由器發出請求,請求前綴和其他配置信息,以便用于節點的配置。
- 路由器返回 RA 消息,其中包括前綴信息選項(路由器也會周期性地發布 RA 消息)。
- 節點利用路由器返回的 RA 消息中的地址前綴及其他配置參數,自動配置接口的 IPv6 地址及其他信息。
前綴信息選項中不僅包括地址前綴的信息,還包括該地址前綴的首選生命期(preferred lifetime)和有效生命期(valid lifetime)。節點收到周期性發送的 RA 消息后,會根據該消息更新前綴的首選生命期和有效生命期。
- 有效生命期:表示前綴有效期。在有效生命期內,通過該前綴自動生成的地址可以正常使用;有效生命期過期后,通過該前綴自動生成的地址變為無效,將被刪除。
- 首選生命期:表示首選通過該前綴無狀態自動配置地址的時間。首選生命期過期后,節點通過該前綴自動配置的地址將被廢止。節點不能使用被廢止的地址建立新的連接,但是仍可以接收目的地址為被廢止地址的報文。首選生命期必須小于或等于有效生命期。
5. 重定向功能
當主機啟動時,它的路由表中可能只有一條到缺省網關的缺省路由。當滿足一定的條件時,缺省網關會向源主機發送 ICMPv6 重定向消息,通知主機選擇更好的下一跳進行后續報文的發送(與 IPv4的 ICMP 重定向消息的功能相同)。
同時滿足下列條件時,設備會發送 ICMPv6 重定向報文:
- 接收和轉發數據報文的接口是同一接口;
- 被選擇的路由本身沒有被 ICMPv6 重定向報文創建或修改過;
- 被選擇的路由不是設備的缺省路由;
- 被轉發的 IPv6 數據報文中不包含路由擴展頭。