Neighbor Discovery
IPv6 Neighbor Discovery (ND)
為一些
messages
的集合
,
其功用主要是用來決定在同一個
link
上相鄰的
node.
ND
取代了在
IPv4
中的
ARP, ICMP, Router Discovery,
和
ICMP Redirect,
並且提供了一些額外的功能
.
Neighbor Discovery Message Format
ND
訊息採用
ICMPv6
訊息結構
,
和
ICMPv6 type 133
到
137. ND
訊息包含一個
ND
訊息標頭
,
包含一個
ICMPv6
標頭和
ND
訊息資料
,
以及零個或多個
ND options.
如下圖
.
the
format of a Neighbor Discovery message
此外
ND messages
包含五個不同的功能
Ø
Router Solicitation
Ø
Router Advertisement
Ø
Neighbor Solicitation
Ø
Neighbor Advertisement
Ø
Redirect
ND messages options
提供一些額外的資訊
,
包含
MAC address,
在此
link
上的
prefix and MTU
資訊
,
以及
redirection data.
此外所有的
ND messages are sent with a hop limit of 255.
當一個
ND message
被接受到時
,
在
IPv6
封包欄位中的
hop limit
欄位會先被檢查
,
若此值不是
255
時則丟棄
. (
但為何設為
255,
並不是很清楚),
以下便針對此五種
messages
分別做說明
Neighbor Solicitation
此訊息是被用來發現在相同
link
上的
IPv6 node
的
link-layer address.
它包含了發送者的
link-layer address. Typical
Neighbor Solicitation are multicast for address resolution and unicast when the reachability of a neighboring node is being
Verified
舉例說明
,
當此
link
為
ethernet
, in the Ethernet header of the Neighbor Solicitation message
Ø
在來源位址欄位為發送者的網路卡的
MAC address
Ø
對於
multicast Neighbor Solicitation
而言
,
目的位址欄位為
Etherner
MAC address that corresponds to the solicited
-node Multicast address of the target.
對於
unicast
Neighbor Solicitation
而言
,
目地位址為香玲
node
的
MAC address
In the IPv6 header of the Neighbor Solicitation message
Ø
來源位址為發送者的
IPv6 address
Ø
對於
multicast Neighbor Solicitation
而言
,
目的位址欄位為
solicited-node Multicast address of the target.
對於
unicast
Neighbor Solicitation
而言
,
目地位址欄位為
unicast
or anycast address of target
Ø
Hop limit field is set to 255
the format of the Neighbor Solicitation message
Checksum --
此欄位為
ICMPv6
的
checksum
Reserved --
此欄位為
32bit,
保留給未來使用且設為
0
Target Address – 128bit,
指
IP address of the target
Source Link-Layer Address option –
包含發送者的
link-layer address
Neighbor Advertisement
此種訊息為
IPv6 node
當接收到
Neighbor Solicitation message
時所做的回應
.
一個
IPv6 node
也會發送
unsolicited Neighbor
Advertisements
告知鄰近的
node
其
link-layer address
已改變
舉例說明
,
假設
local link
為
ethernet
, in the Ethernet header of the Neighbor Advertisement message
Ø
來源位址欄位為發送這網路介面的
MAC address
Ø
對
solicited Neighbor Advertisement
而言其目地位址為一開始發送
Neighbor Solicitation message
的
node
的
unicast
MAC address
對
an unsolicited Neighbor Advertisement
而言其目地位址為
33-33-00-00-00-01, the Ethernet MAC address
corresponding
to the link-Local scope all-nodes multicast address
In the IPv6 header of the Neighbor Advertisement message
Ø
來源位址為發送者介面的
link-local address
Ø
對
solicited Neighbor Advertisement
而言其目地位址為一開始發送
Neighbor Solicitation message
的
node
的
unicast
IP
address
對
an unsolicited Neighbor Advertisement
而言其目地位址為
link-local scope all-nodes multicast address (FF02::1)
Ø
Hop limit field is set to 255
Address Resolution
The address resolution process for IPv6 nodes consists of an exchange of Neighbor Solicitation and Neighbor Advertisement
messages
to resolve the link-layer address of the on-link next-hop address for a given destination. The sending host sends a
multicast
Neighbor Solicitation message on the appropriate interface. The multicast address of the Neighbor Solicitation message
is
the solicited-node multicast
address derived from the target IP address. The Neighbor Solicitation message includes the link-layer
address
of the sending host in the Source
Link-Layer Address option. For information on how a host determines the next-hop
address
for a destination, see “Host Sending Algorithm.
When the target host receives the Neighbor Solicitation message, it updates its own neighbor cache based on the source address
of
the
Neighbor Solicitation message and the link-layer address in the Source Link-Layer Address option. Next, the target node sends
a
unicast
Neighbor Advertisement to the Neighbor Solicitation sender. The Neighbor Advertisement includes the Target Link-Layer
Address
option.
After receiving the Neighbor Advertisement from the target, the sending host updates its neighbor cache with an entry
for
the target
based upon the information in the Target Link-Layer Address option. At this point, unicast IPv6 traffic between the sending
host
and the target of the Neighbor
Solicitation can be sent.
Address Resolution Example :
Host A has an Ethernet MAC address of 00-AA-00-11-11-11 and a corresponding link-local address of FE80::2AA:FF:FE11:1111.
Host B has an Ethernet MAC address of 00-AA-00-22-22-22 and a corresponding link-local address of FE80::2AA:FF:FE22:2222. To
send
a packet to Host B, Host A must use address resolution to resolve Host B’s link-layer address.Based on Host B’s IP address,
Host A sends a solicited
-node multicast Neighbor Solicitation to the address of FF02::1:FF22:2222
.
Host B, having registered the solicited-node multicast address of 33-33-FF-22-22-22 with its Ethernet adapter, receives and processes
the
Neighbor
Solicitation. Host B responds with a unicast Neighbor Advertisement message
.
转载于:https://blog.51cto.com/yanwang/589314