背景としては、物理マシンと仮想マシンのホームラボを有効にするために Macbook 上の Docker 経由で実行しているローカル DNS サーバーとして使用されている pihole で断続的に発生する障害に対処しているところです。
pihole Docker イメージの後のタグ付きリリース (v5.6 または v5.7 のいずれか) で、次の問題が発生しました。これが pihole のバージョンによるものかどうかはわかりませんが、以前にこのような nslookup を見た覚えはありません。「DNS 要求がタイムアウトしました」と表示されていますが、その後は成功したようです。これを試す直前に、pihole 管理で「192.168.50.211」を指すローカル DNS エントリ「gitlab.m44zv82q.com」を追加した後、Windows 10 デスクトップを再起動したと思います。この場合、DNS サーバーの名前はまだ追加していませんでした。なぜ「DNS 要求がタイムアウトしました」と表示され、その後は成功したようですか? 別の Windows 10 ラップトップで同様の問題が発生しました。ちなみに、「m44zv82q.com」を「192.168.50.1」にポイントしました。
C:\Users\iamuser>nslookup gitlab.m44zv82q.com
Server: 3400b21b6797
Address: 192.168.50.243
DNS request timed out.
timeout was 2 seconds.
Name: gitlab.m44zv82q.com
Address: 192.168.50.211
C:\Users\iamuser>
v5.5.1 に戻すと、pihole 管理でローカル DNS エントリを追加した直後にこれが発生します。
C:\Users\iamuser>nslookup gitlab.m44zv82q.com
Server: iamuser-Macbook-Pro.m44zv82q.com
Address: 192.168.50.243
Name: gitlab.m44zv82q.com
Address: 192.168.50.211
C:\Users\iamuser>
答え1
「DNS 要求がタイムアウトしました」と表示されるのに、その後成功したように見えるのはなぜですか?
なぜなら二DNS 要求 – 1 つはAAAA
レコード用、もう 1 つはA
レコード用 (それぞれ IPv6 アドレスと IPv4 アドレスを取得)。最初の要求はタイムアウトしましたが、2 番目の要求は 1 つの IP アドレスを返しました。
通常、Web サイトが IPv6 をサポートしておらず、DNS に AAAA レコードを公開していない場合でも、AAAA クエリは成功し、要求されたタイプのレコードが 0 個返されるだけです。
しかし、一部の「ネットワーク保護」ソフトウェアや一部のVPNソフトウェアには、次のような不適切な機能があります。完全にブロックするAAAA のクエリは、偽の SERVFAIL エラーを返すか、まったく応答を返さない (クライアントがタイムアウトまで待機するように強制する) ようになります。このようなものが有効になっていないことを確認してください。
または、Pi-Hole は dnsmasq を使用するため、ローカル DNS エントリを追加しても、そのエントリのすべてのレコード タイプが完全に上書きされなくなる可能性もあります。つまり、「0 AAAA レコード」を直接返すのではなく、AAAA クエリを上流 (ISP の DNS サーバー) に転送するなどすることになるのではないかと考えています。
Pi-Holeの最近のDNSクエリ何が起こっているかを確認するにはリストを参照してください。