如何解释 Windows 10 使用 pihole 作为本地 DNS 时出现的 nslookup 错误?

如何解释 Windows 10 使用 pihole 作为本地 DNS 时出现的 nslookup 错误?

背景是,我正在解决用作本地 DNS 服务器的 pihole 中的间歇性故障,我通过 Macbook 上的 Docker 运行它,以启用我的物理和虚拟机家庭实验室。

我在 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 请求 – 一个用于AAAA记录,另一个用于A记录(分别用于检索 IPv6 和 IPv4 地址)。第一个超时,但第二个返回一个 IP 地址。

通常,如果网站不支持 IPv6 并且未在 DNS 中发布任何 AAAA 记录,则 AAAA 查询仍然会成功,只是返回请求类型的零条记录。

然而,一些“网络保护”软件以及一些VPN软件具有不明智的功能完全阻挡查询 AAAA,这样它们要么返回虚假的 SERVFAIL 错误,要么根本不返回任何响应(强制客户端等待直到超时)。确保没有启用任何类似功能。

或者,由于 Pi-Hole 使用 dnsmasq,因此添加本地 DNS 条目可能不再完全覆盖该条目的所有记录类型 - 也就是说,我怀疑它不是直接返回“0 AAAA 记录”,而是最终将 AAAA 查询转发到上游(到您的 ISP 的 DNS 服务器)或类似的东西。

看看 Pi-Hole 的最近的 DNS 查询列表来查看发生了什么。

相关内容