Debian 10を実行している私のホームサーバーは、Wireguardを介してMulvad VPNに接続するとインターネット接続が失われる可能性があります。
することができますが、ping 8.8.8.8
戻ってくるときping google.com -4
:ping 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.com
IPv4に戻る
;; 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.
ping
IPv4よりも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つのバージョンを試して成功した最初のバージョンを使用)。しかし、他のプログラムはあまり賢くないかもしれません。