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