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. 如下圖 .

 

     p_w_picpath002.jpg  
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

 

 

       p_w_picpath003.jpg    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 .

 

p_w_picpath005.jpg

 

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 .

 

p_w_picpath006.jpg