私のpingがデフォルトでIPv6に設定されているのはなぜですか?

私のpingがデフォルトでIPv6に設定されているのはなぜですか?

Debian 10を実行している私のホームサーバーは、Wireguardを介してMulvad VPNに接続するとインターネット接続が失われる可能性があります。

することができますが、ping 8.8.8.8戻ってくるときping google.com -4ping google.com

PING google.com(fra16s42-in-x0e.1e100.net (2a00:1450:4001:809::200e)) 56 data bytes
ping: sendmsg: Operation not permitted
From dynamic-2a01-0c23-60be-c200-12c3-7bff-fe9e-4379.c23.pool.telefonica.de (2a01:c23:60be:c200:12c3:7bff:fe9e:4379): icmp_seq=1 Destination unreachable: Port unreachable

以前は、IPv6をデフォルトに設定したことがなく、これがいくつかの問題の根本原因である可能性があると思います。

dig google.comIPv4に戻る

;; ANSWER SECTION:
google.com.     222 IN  A   172.217.18.110

通常、Mullvads DNSサーバーはIPv6のみを返すため、pingはIPv6を使用していると仮定しますが、digではこれを表示する必要があります。そうですか?なぜこれが起こるのですか?

ベストアンサー1

デフォルトでは (IPv4 アドレス) レコードのみがdig照会Aされます。AAAAコマンドに(IPv6アドレスレコードタイプ)を追加してみてください。

$ dig google.com AAAA
[...]
;; ANSWER SECTION:
google.com.     106 IN  AAAA    2607:f8b0:400a:806::200e
[...]

または、次を使用してhost両方(およびMXレコード)を照会します。

$ host google.com
google.com has address 142.251.33.110
google.com has IPv6 address 2607:f8b0:400a:80b::200e
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.

pingIPv4よりもIPv6が優先される理由は次のとおりです。iputilsバージョンのpingのソースコードgetaddrinfo()、返された最初の関連アドレスを選択しているようです。 ~によるとマニュアルページgetaddrinfo():

複数のリンクリストがある理由はいくつかあります。addrinfo以下を含む構造:ネットワークホストはマルチホームであり、複数のプロトコル(およびAF_INET)を介してアクセスできます。あるいは、AF_INET6複数のソケットタイプ(たとえば、1つのアドレスと異なるアドレス)からSOCK_STREAM同じサービスを取得できます。SOCK_DGRAM通常、アプリケーションは返された順序でアドレスを使用しようとする必要があります。使用される順序付け機能はgetaddrinfo()RFC 3484で定義されており、編集により特定のシステムに合わせて順序を調整できます。/etc/gai.conf(glibc 2.5から利用可能)。

RFC 3484次に置き換えられました。RFC 6724/etc/gai.confしかし、それらのどれか(またはポリシーをオーバーライドするために使用できるファイル)についてはわかりません。

IPv6接続に問題がある場合は、他のプログラムpingもコマンドに従い、getaddrinfo()IPv6を使用しようとすると問題が発生する可能性があります。一部のプログラム(特にブラウザ)は以下を実装しています。「幸せな目玉」アプローチ(基本的に2つのバージョンを試して成功した最初のバージョンを使用)。しかし、他のプログラムはあまり賢くないかもしれません。

おすすめ記事