IPv6的地址解析

1、概述

地址解析在網絡中報文的轉發起着至關重要的作用。當一個節點需要得到同一鏈路上另一個節點的鏈路層地址時,就需要進行地址解析。在IPv4中使用的是ARP協議,在IPv6中使用的是ND(Neighbor discover)協議中的NS和NA報文來實現的。

IPv6的地址解析包括兩個過程:一是解析目的IP對應的鏈路層地址,二是鄰居可達性狀態的維護過程。

相對於ARP,ND協議有以下幾個好處。

增加了地址解析協議與底層鏈路的獨立性。對每一種鏈路層系誒都是用相同的地址解析協議,無須再爲每一種鏈路層協議定義一個新的地址解析協議。

減小報文的傳播範圍。在IPv4中,ARP使用的是廣播地址,必須氾濫到二層網絡的每臺主機。IPv6的地址解析利用三層的組播尋址限制了地址的傳播範圍,通過將地址解析請求發送到特定解析地址所屬的被請求節點組播組(FF02::1:FF00:0/104+IPv6地址後24位組成),減小了報文的傳播範圍,節省了網絡的帶寬。


2、NS和NA報文介紹

在IPv6中,ND協議通過在節點之間交互NS和NA報文完成IPv6地址到鏈路層地址的解析,解析後用得到的鏈路層地址和IPv6地址等信息來建立相應的鄰居緩存表項。

下面先來介紹一下NS報文和NA報文。

NS報文的主要功能字段包括Target Address和Option字段。

TargetAddress包含待解析的IPv6地址。

NA報文的Option字段只使用鏈路層地址選項(Link layer Address Option)。鏈路層地址選項包括類型、長度和地址三個部分。

當類型爲1時,表示源鏈路層地址,在NS、RS、Redirect報文中使用;當類型爲2時,表明鏈路層地址爲目標鏈路層地址,在NA報文中使用。

NA報文的結構和NS報文類似,但多了三個標誌位,在此不做說明。


3、解析過程說明

假如網絡中有主機A和主機B。A的鏈路層地址爲MAC1,IPv6地址爲IP1;B的鏈路層地址爲MAC2,IPv6地址爲IP2(假設爲2001::1)。則A查詢B的鏈路層地址的過程如下:

1)節點A發送一個NS報文到鏈路上,目的IPv6地址爲B對應的被請去節點組播地址(FF02::1:FF00:1),目標地址爲IP2,選項字段中攜帶MAC1;

2)節點B接收到該DS報文後,根據NS報文中的源IPv6地址和源鏈路層地址選項更新自己的鄰居緩存表項,併發送一個NA報文來應答NS報文,報文Option字段中的鏈路層地址爲自己的鏈路層地址MAC2;

3)節點A收到NA報文後,根據報文中攜帶的節點B的鏈路層創建一個到目標節點B的鄰居緩存表項。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章