web-dev-qa-db-ja.com

MACアドレスを取得するためにIPv6近隣要請が必要なのはなぜですか?

私はソフトウェア開発者であり、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アドレス。つまり、住所を尋ねる誰かにハガキを郵送するようなものです。

12
Edwin

すべてのノードはリンクローカルアドレスを自動的に生成しますが、

  • そのアドレスは RFC 2464 で指定されたEUI-64形式では生成されない可能性があります。 IPv6アドレスは、暗号で生成されたアドレス( RFC 3972 )、一時的なプライバシーアドレス( RFC 4941 )、または最新のオペレーティングシステムでは、安定したプライバシーアドレス( RFC 7217 )。

  • EUI-64インターフェイスIDを持っているように見えるアドレスは、管理者による明示的な設定が原因で、実際には指定されたMACアドレスに対応しない場合があります。

単に「アドレスを変換して戻す」ことはできないため、MACアドレスを決定するために近隣要請を送信する必要があります。

近隣要請が必要な理由は他にもあります。これらのいくつかは:

  • 重複アドレス検出( RFC 4862 )。他の一部のホストが、ホストが使用したいアドレスを(正しくまたは誤って)主張している可能性があります。
  • ネイバー到達不能検出。近傍要請への応答がないことは、近傍が到達不能であることを示す1つの指標です。

本はすべて順調で良いですが、非常に古くなった本はそれほど役に立ちません。 IPv6でさえ、過去10年間に大幅な改訂が行われました。真実の最良の情報源は関連するRFCです。元のRFCと、更新または廃止されたとマークされているものの両方です。 RFCは、準拠する実装を作成できるように十分詳細に指定されています。 RFC 4861 を読むと、近隣探索の詳細をすべて知ることができます。

20
Michael Hampton

ですから、あなたは誤解している、またはいくつかのことについて誤解されていました。

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つのホストにのみ割り込みますブロードキャストドメイン。

9
Ron Maupin