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.
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
を削除すると、応答がまったく得られなくなります。)
-I
引数には、IPアドレスとインターフェイス名を指定できます。インターフェイス名を指定すると、そのインターフェイスのリンクローカルアドレスが送信元アドレスとして使用されるように見えます。グローバルスコープアドレスからのホストから応答を取得する秘訣は、独自のグローバルスコープアドレスからpingを送信することです。
ping6 -I 2001:db8:xxxx::your:own:ip:address ff02::1
試してみてください:
ping6 ff02::1%yournic0
どこ yournic0
は、問題のリンクに面しているインターフェイス名です。
ping6 -c4 ff02::1%$(ip r|grep default|head -n1|awk '{print $NF}')
-c4それが永遠に続くことがないように
ff02 :: 1ブロードキャストアドレス
%(インターフェースに-Iを使用できます)
ip r | grep default | awk '{print $ NF}'#デフォルトのインターフェースを検索します