私のコンピュータのping可能なIPv6アドレスをどのように取得しますか?

私のコンピュータのping可能なIPv6アドレスをどのように取得しますか?

すると、 $ ip -6 addr 次のような結果が表示されます。

inet6 fe80::d773:9cf0:b0fd:572d/64 scope link

コンピュータ自体でpingを試している場合:

$ ping6 fe80::d773:9cf0:b0fd:572d/64
unknown host

$ ping6 fe80::d773:9cf0:b0fd:572d
connect: Invalid argument

私は何が間違っていましたか?

ベストアンサー1

で始まるすべてのIPv6アドレスはfe80:IPv4169.254.*.*アドレスと同じです。つまり、リンクはローカルアドレスであり、そのネットワークセグメントに特別に接続されたNICを使用して直接接続されたネットワークセグメントからのみアクセスできます。ただし、IPv4とは異なり、NICがリンクローカルIPv6アドレスも持つことは完全に正常です。そして1つ以上のグローバルIPv6アドレスを同時に使用します。

IPv6アドレスはリンクローカルアドレスであるため、pingに使用するfe80:ネットワークインターフェイスを指定する必要があります。

例:

$ ping6 fe80::beae:c5ff:febe:a742
connect: Invalid argument

$ ping6 -I eth0 fe80::beae:c5ff:febe:a742
PING fe80::beae:c5ff:febe:a742(fe80::beae:c5ff:febe:a742) from fe80::beae:c5ff:febe:a742%eth0 eth0: 56 data bytes
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=1 ttl=64 time=0.182 ms
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=2 ttl=64 time=0.167 ms
...

%次の表記法を使用して、インターフェイスをアドレスの末尾に追加することもできますping6 fe80::beae:c5ff:febe:a742%eth0

この要件は、リンクローカルIPv6アドレスにのみ適用されます。インターフェイスを指定しなくても、グローバルにルーティング可能なIPv6アドレスをpingできます。

$ ping6 2a00:1450:400f:80a::200e  # that's ipv6.google.com
PING 2a00:1450:400f:80a::200e(2a00:1450:400f:80a::200e) 56 data bytes
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=1 ttl=55 time=17.6 ms
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=2 ttl=55 time=19.6 ms
...

おすすめ記事