IPv6 NDP鄰居發現協議 2
阿新 • • 發佈:2019-02-13
1、引言
隨著IP網路規模和業務的迅速發展,IP網路的使用者數急劇增加,正因為如此,IP網路也暴露出越來越多的問題,如地址空間不足、QoS、安全問題等。為了解決Internet的這些問題,尤其是解決地址空間不足的問題,IETF於1992年在IPv4的基礎上定義了下一代的Internet協議,被稱之為“Ipng”或“IPv6”。 IPv6解決的最大問題是擴大了地址空間,另外,它與IPv4相比在其它許多方面都具有優勢,例如安全性、服務質量、移動性等。IPv6的一個顯著特點就是它具有“即插即用”功能。即插即用使節點直接連線到網路後,不需要經過任何人工配置就能夠使用,即插即用使網路的管理和控制變得更加簡單;其次,節點只需要知道自己的鏈路層地址及本地網路的子網字首,就能夠通過IPv6的無狀態或者全狀態自動配置得到惟一的IPv6地址,從而成為網路的一部分;另外,IPv6還實現了更好的對節點移動性的支援。這些功能都是通過鄰居發現協議來實現的,同一個子網內的所有主機和路由器之間的互動也都是通過鄰居發現協議來實現的。2 、工作原理
鄰居發現協議是IPv6協議的一個基本的組成部分,它實現了在IPv4中的地址解析協議(ARP)、控制報文協議(ICMP)中的路由器發現部分、重定向協議的所有功能,並具有鄰居不可達檢測機制。 鄰居發現協議實現了路由器和字首發現、地址解析、下一跳地址確定、重定向、鄰居不可達檢測、重複地址檢測等功能,可選實現鏈路層地址變化、輸入負載均衡、泛播地址和代理通告等功能。 鄰居發現協議採用5種類型的IPv6控制資訊報文(ICMPv6)來實現鄰居發現協議的各種功能。這5種類型訊息如下。 (1)路由器請求(Router Solicitation):當介面工作時,主機發送路由器請求訊息,要求路由器立即產生路由器通告訊息,而不必等待下一個預定時間。 (2)3 、主機的資料結構
IPv6的一個設計要求是:即使在一個有限的網路內,主機也必須正確工作,而不像路由器不能儲存路由表,不能有永久的配置,因此主機必須能自動配置,必須能學到交換資料的有關目的地的最小資訊。這些資訊儲存的儲存器叫做快取,這些資料結構是一系列記錄的排列,稱作表項。每個表項儲存的資訊有一定的有效期,需要週期性地清除快取中的表項,以保證快取的空間大小。 主機需要為每一介面維護以下資訊:·鄰居快取:一組有關單個鄰居的表項,這些鄰居接收到了最新的資料流。表項是連線單播地址的關鍵,它包括的資訊有:其鏈路層地址、指示鄰居是路由器還是主機的標誌、指向任何排隊等待完成地址解析資料包的指標等。鄰居快取表項還包括由鄰居不達檢測演算法所使用的資訊,如可達狀態、探測無應答的次數以及下一次鄰居不達檢測發生的時間。
·目的地快取:一組有關最近收到資料流的目的地節點表項。目的地快取包括“在連線(on-link)”和“非連線(off-link)”目的地,並在其中提供一定程度的間接定址。目的地快取能把目的地IP地址對映成下一跳鄰居的IP地址,該快取通過重定向訊息進行資訊更新。如果在目的地快取表項中儲存與鄰居發現沒有直接關係的附加資訊,例如路徑MTU(PMTU)以及由傳輸協議設定的往返時間,則執行時會更加方便。
·字首列表:規定一組“在連線(on-link)”地址的字首組成的列表。字首列表表項產生於路由器通告接收到的資訊。每一個表項都有一個相關的失效計時器值(由通告資訊確定),它用於在字首失效時廢棄這些字首。除非在後續通告中收到了一個新的(有限)值,否則特殊的“無限”計時器值規定字首永久有效。本地鏈路(1ink-local)字首位於帶有無限失效計時器的字首列表,而不管路由器是否正在向其通告字首。接收的路由器通告不應該修改本地鏈路字首的失效計時器。
·預設路由器列表:接收資料包的路由器列表。路由器列表的表項指向鄰居快取中的相應的表項。預設路由器的選擇演算法是:選擇那些已知可達的路由器,而不選擇可達性還不確定的路由器。每一個表項還有一個相關的失效計時器值(從路由器通告資訊中得到),它的作用是刪除不再通告的表項。
上述資料結構可以用不同的方法實現。其中一種實現方法是對所有資料結構使用單個最長匹配路由表。不管採用哪種特定的實現方法,為了防止重複性的鄰居不可達檢測,路由器的鄰居快取表項可以由使用該路由器的所有目的地快取表項共享。
鄰居快取包含有鄰居不可達檢測演算法維護的資訊。鄰居可達性狀態是最關鍵的資訊,它的取值是下列的5個值之一。
·不完整性(INCOMPLETE):正在進行地址解析,鄰居的鏈路層地址還沒確定。 ·可達性(REACHABLE):鄰居在最近處於可達狀態(在小於10s以前)。 ·失效性(STALE):在資料流傳送給該鄰居以前鄰居是不可達的,並無法驗證其可達性。 ·延遲(DELAY):鄰居不再是可達的,同時資料流在最近已經發送給鄰居,但不立即對該鄰居進行探測,而在一個短時延後傳送探測資訊,這樣就可以為上層協議提供可達性確認。 ·探測(PROBE):鄰居不再是可達的,同時傳送單播鄰居請求探測以驗證可達性。