天天看點

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的鄰居緩存表項。

繼續閱讀