私はソフトウェア開発者であり、TechdaysでIPv6に関する無料の本をちょうど手に入れました。少し古い本(W2008)であるために譲り渡したため、他のOSと新しいOSでは状況が異なる可能性がありますが、Neighbor DiscoveryがMACアドレスを取得する必要性については理解できません。
本によると、すべてのノードは自動的にリンクローカルIPアドレスを取得します。これは、3番目と4番目のバイトの間にFF-FE
を挿入し、U/Lビットを反転することにより、MACアドレスから構築されます。 -00-AA-00-3F-2A-1C
のMACアドレスを持つノードのローカルIPはFE80::2AA:FF:FE:3F:2A1C
になります。
リンク層のMACアドレスを特定するために、近隣要請メッセージがリンクローカルIPアドレスに送信され、そのMACアドレスを含むメッセージで応答します...しかし、MACはリンクでエンコードされているため、送信者はすでにそれを知っています。ローカルIPアドレス。つまり、住所を尋ねる誰かにハガキを郵送するようなものです。
すべてのノードはリンクローカルアドレスを自動的に生成しますが、
そのアドレスは RFC 2464 で指定されたEUI-64形式では生成されない可能性があります。 IPv6アドレスは、暗号で生成されたアドレス( RFC 3972 )、一時的なプライバシーアドレス( RFC 4941 )、または最新のオペレーティングシステムでは、安定したプライバシーアドレス( RFC 7217 )。
EUI-64インターフェイスIDを持っているように見えるアドレスは、管理者による明示的な設定が原因で、実際には指定されたMACアドレスに対応しない場合があります。
単に「アドレスを変換して戻す」ことはできないため、MACアドレスを決定するために近隣要請を送信する必要があります。
近隣要請が必要な理由は他にもあります。これらのいくつかは:
本はすべて順調で良いですが、非常に古くなった本はそれほど役に立ちません。 IPv6でさえ、過去10年間に大幅な改訂が行われました。真実の最良の情報源は関連するRFCです。元のRFCと、更新または廃止されたとマークされているものの両方です。 RFCは、準拠する実装を作成できるように十分詳細に指定されています。 RFC 4861 を読むと、近隣探索の詳細をすべて知ることができます。
ですから、あなたは誤解している、またはいくつかのことについて誤解されていました。
SLAACを使用すると、ホストはMACアドレスを使用して独自のIPv6アドレッシングを構築できますが、多くの人がこれは危険であり、情報が多すぎて特定のホストを追跡できると考えていました。これに基づいて、プライバシー拡張とランダムアドレッシングが開発され、それらはOSによってプライバシー/セキュリティを提供するために使用されます。つまり、ホストはMACアドレスに基づいてではなく、独自のアドレス指定を作成できます。
ホストがIPv4でネイバーのMACアドレスを検出する必要がある場合、ホストはARPを使用します。 ARPは要求をブロードキャストしますが、IPv6にはブロードキャストがありません。代わりに、すべてのホストは要請されたNodeマルチキャストグループに参加する必要があります。このグループはIPv6アドレスの最後の24ビットに基づいています。IPv6インターフェースは任意の数のIPv6アドレスを持つことができるため、ホストは参加できます。複数の要請Nodeマルチキャストグループ。別のホストのMACアドレスを探しているIPv6ホストは、要請されたIPv6のマルチキャストグループを要請Nodeマルチキャストグループに送信します。住所。
これは、IPv4 ARPよりも優れています。 ARPは要求にブロードキャストを使用するため、レイヤー2ブロードキャストドメイン上のすべてのホストに割り込みます。要請されたNodeマルチキャストグループはターゲットIPv6アドレスの最後の24ビットを使用するため、NDマルチキャスト要求はおそらくターゲットホストのみ、またはレイヤー2上の他の1つまたは2つのホストにのみ割り込みますブロードキャストドメイン。