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


12

私はソフトウェア開発者であり、TechdaysでIPv6に関する無料の本を手に入れました。少し古い本(W2008)であるため、彼らはそれを放棄しました。したがって、他のOSや新しいOSでは状況が異なるかもしれませんが、Neighbor DiscoveryがMACアドレスを取得する必要性を理解していません。

本によると、すべてのノードは自動的にリンクローカルIPアドレスを取得します。リンクローカルIPアドレスFF-FEは、3番目と4番目のバイトの間に挿入してU / Lビットを反転することによりMACアドレスから構築されます。のMACアドレスを持つノードはに00-AA-00-3F-2A-1CなりFE80::2AA:FF:FE:3F:2A1Cます。

リンク層のMACアドレスを特定するために、近隣要請メッセージがリンクローカルIPアドレスに送信され、MACアドレスが含まれるメッセージで応答します。しかし、MACはリンクでエンコードされているため、ローカルIPアドレス。そのため、住所を尋ねるハガキを誰かに郵送するように聞こえます。

回答:


20

すべてのノードが自動的にリンクローカルアドレスを生成しますが、次のとおりです。

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

  • EUI-64インターフェースIDを持つように見えるアドレスは、管理者による明示的な構成のために、実際には示されたMACアドレスに対応しない場合があります。

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

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

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

書籍はすべて順調で優れていますが、古くなった書籍はそれほど有用ではないかもしれません。IPv6でさえ、過去10年間に大幅な改訂が行われました。最良の真実のソースは、関連するRFCです。元のRFCと、更新または廃止されたものとしてマークされたRFCの両方です。RFCは、準拠する実装を記述できるように十分詳細に指定されています。RFC 4861を読むことで、近隣探索の詳細をすべて学ぶことができます


修正してくれてありがとう。EUI-64形式を使用していない場合は、実際にMACを検出する必要があります。しかし、実際には、リンクローカルアドレスの範囲はリンクに限定されており、そのリンク上でMACアドレスは(そして)とにかく(Neighbor Solicitationによって)イーサネット通信で知られているので、悪意のために、MACアドレスはローカルリンク上の安定したプライバシーアドレスに沿って保存できますよね?
エドウィン

@ Edwin、SLAACはもともと、リンクローカルアドレスだけでなく、すべてのIPv6アドレッシングに使用されていたため、ホストを追跡できました。SLAACは、リンクローカルアドレスを割り当てる唯一の方法です。また、手動で割り当てることもできますが、リンクローカルアドレスのMACアドレスは提供されません。Link Localを含むすべてのアドレスを手動で割り当てたい人がいることを知っています。少しの利益のために多くの作業のように見えますが、それは彼らを幸せにし、インターフェース上のすべてのアドレスのすべてのIIDは、彼らが好む順序で同じです。
ロンモーピン

@Edwinそして、各ホストは実際に宛先キャッシュ(RFC 4861を参照)を維持します。これは、ホストが維持するIPv4 ARPテーブルに類似しています。
マイケルハンプトン

アドレスのサイズが2倍だった場合、CGAはよりシンプルで安全でした。仕様の半分は、理想的には約162ビットが必要なインターフェイス識別子に64ビットしか持たないための回避策です。128ビットが多すぎるという考えが浮かんだときは、必ず覚えておく必要があります。
カスペルド

そのMicrosoftドキュメントについて、非標準だと思われるものは何ですか?私には、リンク先のRFCを要約しただけのように見えます。
カスペルド

9

そのため、あなたはいくつかのことを誤解するか、誤解されました。

SLAACを使用すると、ホストはMACアドレスを使用して独自のIPv6アドレッシングを構築できますが、多くの人はこれが危険であり、情報を大量に提供し、特定のホストを追跡できると考えました。それに基づいて、プライバシー拡張機能とランダムアドレス指定が開発され、OSによってプライバシー/セキュリティを提供するために使用されます。つまり、ホストは、MACアドレスに基づいてではなく、独自のアドレス指定を作成できます。

ホストがIPv4でネイバーのMACアドレスを検出する必要がある場合、ARPを使用します。ARPは要求をブロードキャストしますが、IPv6にはブロードキャストがありません。代わりに、すべてのホストが要請ノードマルチキャストグループに参加する必要があります。このグループは、IPv6アドレスの最後の24ビットに基づいています。IPv6インターフェースは任意の数のIPv6アドレスを持つことができるため、ホストは複数の要請ノードマルチキャストグループに参加できます。別のホストのMACアドレスを探しているIPv6ホストは、ターゲットIPv6アドレスの送信請求ノードマルチキャストグループにマルチキャスト要求を送信します。

これは、IPv4 ARPよりも優れています。ARPは要求にブロードキャストを使用するため、レイヤー2ブロードキャストドメイン上のすべてのホストを中断します。要請ノードマルチキャストグループはターゲットIPv6アドレスの最後の24ビットを使用するため、NDマルチキャスト要求は、おそらくターゲットホスト、またはレイヤー2ブロードキャストドメインの他の1つまたは2つのホストのみを中断します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.