IPv6: Neighbor Discovery


Neighbor Discovery は次の3種類のメッセージに分類できる。

名称 Type 説明
ホスト-> ルータへ送信される
Router Solicitation 133
  • 同一リンク上のルータを発見するために利用される。
  • IPv6ルータに対して、Prefixやその他の設定情報を含んだRouter Advertisement を要求するために送信する。
ルータ- > ホストへ送信される
Router Advertisement 134
  • Router Advertisement への応答に使用される。
  • ルータは定期的に以下の情報を含んだ Router Advertisement を送信する。
    • 保持しているリンクのprefix情報
    • 最大 Hop Limit 数
    • リンクMTU値
    • default gateway
Redirect 137
  • default gateway として稼動している IPv6 ルータが受信したパケットに対して、より良い Next Hop が存在することをホストに通知する。
IPv6ノード間で送受信される
Neighbor Solicitation 135
  • リンク層アドレスを解決する時に使用する(IPv4におけるARPに相当する)
  • Duplicate Address Detection に用いられる。Neighbor nodeに対してIP reachableであるか確認するために使用する。
Neighbor Advertisement 136
  • Neighbor Solicitation への応答に用いる。
  • リンク層アドレスが変更されたときに Neighbor nodeに通知する。

Solicitated Node Multicast Address

IPv6 ノードは、IPv6インターフェイスを有効にするときに、FF02::1 (All Node Multicast Group) および Solicatated Multicast Group に必ず参加する必要がある。

Solicatated Multicast Address はインターフェイスに設定されている ユニキャストアドレスやエニーキャストアドレスから自動的に設定される。 また、このアドレス用の Mac アドレスも生成できる。

[例] ユニキャストアドレス 2001:0db8:1122:3344:5566:7788:99aa:bbcc の場合
  マルチキャストを意味する"1:ff" の後ろに下位 24 bit をつけて "1:ffaa:bbcc" がインターフェイスID
  マルチキャストなのでアドレスPrefixは "ff02::" 
  以上よりsolicited node multicast address は "ff02::1:ffaa:bbcc/104" となる。

  L2用のMac アドレスは 33-33- の後ろに下位 32 bit をつけて "33-33-99-aa-bb-cc" となる。

リンク層アドレス解決

RFC