1

RFC2464では、イーサネット IPv6 マルチキャスト アドレスのプレフィックスは と定義されて33:33いますが、Wireshark でいくつかのパケットをキャプチャしたところ、このプレフィックスは実際には として実装されていることがわかりました33:33:ff

たとえば、ICMPv6 Neighbor Solicitation パケットを送信する場合、キャプチャした宛先 MAC アドレスは33:33:ff:f8:67:0dで、宛先 IP アドレスの最後のビットは です...:d3f5:31f8:670d。RFC2464 として、MAC アドレスは33:33:31:f8:67:0d.

では、この RFC は非推奨ですか? プログラムにどのように実装すればよいですか?

4

1 に答える 1

1

要請されたノードのマルチキャスト アドレスを見ています。ノードの IPv6 ユニキャスト アドレスからイーサネット MAC アドレスに直接変換しようとしていますが、その間のステップがありません。マルチキャスト MAC アドレスを取得するには、まずノードのユニキャスト IPv6 アドレスを、 RFC2373 のセクション 2.7.1 で説明されているように、請求ノードのマルチキャスト IPv6 アドレスに変換します。次に、RFC2464 のセクション 7 で説明されているように、その IPv6 マルチキャスト アドレスに対応するマルチキャスト MAC アドレスを取得します。

例: IPv6 アドレスから始めましょう2001:db8::d3f5:31f8:670d。対応する請求ノードの IPv6 マルチキャスト アドレスはff02:0:0:0:0:1:fff8:670dです。次に、アルゴリズムを適用して のマルチキャスト MAC アドレスを取得します33:33:ff:f8:67:0d

ただし、アプリケーションでは、近隣探索について心配する必要はありません。それはオペレーティングシステムの仕事です。アプリケーションでマルチキャストを使用する場合、IPv6 マルチキャスト アドレスにバインド/サブスクライブするだけで、オペレーティング システムはそのマルチキャスト アドレス宛てのすべてのパケットをアプリケーションに配信します。異なる LAN でマルチキャストを実行している場合、ホストとマルチキャスト ルーター間のMLDv2 (Multicast Listener Discovery version 2) などの他のプロトコルと、マルチキャスト ルーター間のPIM-SM (Protocol Independent Multicast - Sparse Mode) などのマルチキャスト ルーティング プロトコルが関係します。

于 2013-04-18T09:44:23.997 に答える