web-dev-qa-db-ja.com

ipv6はプレフィックス内のすべてのホストを検索します

Ping6コマンドを使用すると、次を使用してインターフェイスからipv6ホストのリンクローカルアドレスを見つけることができます。

 ping6 -I eth0 ff02::1

これにより、サブネット内のすべてにpingが送信されるため、そこに何があるかを確認できます。これはndpで表示できます。

ホストのグローバルスコープのユニキャストアドレスを判別できるように、プレフィックス内のすべてにpingを実行することは可能ですか?これは、ipv6アドレスがradから自動構成されるのではなく、静的に割り当てられることを前提としていることに注意してください。したがって、Macアドレスからそれを計算することはできません。

Ipv4の用語では、これは機能的にping -b 192.168.1.0/24と同等です。

プレフィックスが2001:470:1f09:131::/64であるとしましょう。次のようなことを行う方法を探しています:

ping6 -b 2001:470:1f09:131::/64

-bがバッファサイズであることはわかっています。これは説明のみを目的としています)

これは、-IのIPアドレスをサポートしないOpenBSDであることに注意してください。

 -I interface
         Source packets with the given interface address.  This flag ap-
         plies if the ping destination is a multicast address, or link-lo-
         cal/site-local unicast address.
6
Paul

Celadaの回答とBortのコメントの一部を組み合わせると、望ましい結果が得られます。-Iオプションと-Sオプションの両方が必要です。

したがって、IPv6アドレスvr0のネットワークインターフェイス2001:1418:153:0:2e0:c5ff:fe3f:caefを想定すると、ブロードキャストpingを実行するには次のコマンドが必要になります。

ping6 -I vr0 -S 2001:1418:153:0:2e0:c5ff:fe3f:caef ff02::1

-Sを削除すると、リンクローカルアドレスからのみエコー応答が返されます。-Iを削除すると、応答がまったく得られなくなります。)

5

-I引数には、IPアドレスとインターフェイス名を指定できます。インターフェイス名を指定すると、そのインターフェイスのリンクローカルアドレスが送信元アドレスとして使用されるように見えます。グローバルスコープアドレスからのホストから応答を取得する秘訣は、独自のグローバルスコープアドレスからpingを送信することです。

ping6 -I 2001:db8:xxxx::your:own:ip:address ff02::1
2
Celada

試してみてください:

ping6 ff02::1%yournic0

どこ yournic0は、問題のリンクに面しているインターフェイス名です。

0
Glen Neff
ping6 -c4 ff02::1%$(ip r|grep default|head -n1|awk '{print $NF}')

-c4それが永遠に続くことがないように
ff02 :: 1ブロードキャストアドレス
%(インターフェースに-Iを使用できます)
ip r | grep default | awk '{print $ NF}'#デフォルトのインターフェースを検索します

0
Alexx Roche