2017-11-15 19 views
0

ローカルネットワーク内のすべてのIPを発見(学習)する必要があります。IPv6では、ローカルリンク上のすべてのIPv6アドレスを検出する方法は?

IPv4では、すべてのARPブロードキャスト要求/応答を受信するマシンを1台持つことができ、すべてのマシンのIP/MACテーブルを構築できます。

ただし、IPv6では、ARPはICMPv6近隣要請メッセージに置き換えられ、ブロードキャストメッセージではありません。あるマシンは他の2台のマシン間でNeighbor Solicitation/Advertisementメッセージを聞くことができません。はい、ICMPv6のようなデザインは、放送オーバーヘッドを削減しますが、IPアドレスを事前に知らなければ、私の隣人のすべてを知ることもできません。

回避策の1つは、ff02 :: 1に対してpingを実行することです。しかし、私はLinuxがそのような要求に応答することを発見しましたが、Windowsはそうではありません。

多くのヒントがありましたら幸いです!

+0

この種のネットワークプロトコルは作成されていません。あなたが提案しているのは、レイヤー2のブロードキャストネットワークでのみ機能します。イーサネットですが、ブロードキャスト(またはマルチキャスト)をサポートしない多くのレイヤ2ネットワークプロトコルがあります。あなたはすべてのホストインターフェイス上の複数のIPv6アドレスを知る必要がありますか?多くのホストはIPv6プライバシー拡張とランダムアドレス指定を使用しているため、IPv6アドレスは定期的に変更できますが、リンクローカルアドレスは同じままです。ところで、ARP応答はブロードキャストされず、ARP要求だけがブロードキャストされます。 –

答えて

0

ほとんどのスイッチはLAN上のマルチキャストパケットをフィルタリングしないため、レイヤ2でブロードキャストされます。ネットワークカードのMACアドレスフィルタをディセーブルにしてプロミスキャスモードにすると、トラフィック。

+0

サンダーさんに感謝します。はい、無差別モードが動作します。私が探しているのは無差別モードのない方法です。このモードをオンにすると、マシンのパフォーマンスがいくらか低下します。 Windowsがping ff02 :: 1コマンドに返信できるのであれば(Linuxの場合と同じように)、うまくいくでしょう。残念ながらそれはしません。 – netbee

+0

ff02 :: 1にpingを実行すると、各ホストから1つのアドレスだけが取得され、IPv6ではすべてのホストが複数のアドレスを持ちます。 '33:33:ff:'で始まるMACアドレスを持つすべてのパケットをキャプチャすることができれば、すべてをキャプチャせずに必要なものを得ることができます。 –

+0

既存のツールを探しているなら、 'ndpmon'を見てください –

関連する問題