我有一个仅支持 AAAA 的 DNS 名称:superdns.cyberfusion.cloud
。nslookup
在 Debian 9 上使用不带选项,我得到No answer
。nslookup
在 Ubuntu 上使用不带选项,我得到正确答案(AAAA 记录)。但我无法在 Debian 10 上重现此行为...
Ubuntu 18.04:
$ nslookup superdns.cyberfusion.cloud
Server: 2a0c:eb00:0:f7:185:233:175:142
Address: 2a0c:eb00:0:f7:185:233:175:142#53
Non-authoritative answer:
Name: superdns.cyberfusion.cloud
Address: 2a0c:eb00:0:f7:185:233:175:211
我的网络中的 Debian 9:
$ nslookup superdns.cyberfusion.cloud
Server: 2a0c:eb00:0:f7:185:233:175:142
Address: 2a0c:eb00:0:f7:185:233:175:142#53
Non-authoritative answer:
*** Can't find superdns.cyberfusion.cloud: No answer
我的网络中的 Debian 10:
$ nslookup superdns.cyberfusion.cloud
Server: 185.233.175.142
Address: 185.233.175.142#53
Non-authoritative answer:
Name: superdns.cyberfusion.cloud
Address: 2a0c:eb00:0:f7:185:233:175:211
Debian 9外部我的网络使用 Cloudflare DNS:
$ nslookup superdns.cyberfusion.cloud
Server: 1.1.1.1
Address: 1.1.1.1#53
Non-authoritative answer:
*** Can't find superdns.cyberfusion.cloud: No answer
因此,我开始研究这三台机器之间的差异,但没有发现任何与查找相关的重大配置错误:
gai.conf
所有机器上都相同:
label ::1/128 0
label ::/0 1
label 2002::/16 2
label ::/96 3
label ::ffff:0:0/96 4
label fec0::/10 5
label fc00::/7 6
systemd-resolved
所有机器上均无:
$ systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/systemd-resolved.service.d
└─resolvconf.conf
Active: inactive (dead)
而且,如前所述,我已经在两台使用不同解析器的 Debian 9 机器上进行了测试。
我发现的唯一共同特征是,行为“错误”的机器运行 Debian 9,而行为“正确”的机器运行 Ubuntu 或 Debian 10。我在 Debian 10 更新日志中搜索了与 IPv6 相关的更改,但找不到太多。
此行为并非特定于nslookup
。我使用了一些 Ruby DNS 库,它在找不到我的 AAAA 记录的机器上找不到 AAAA 记录nslookup
,但在找到我的 AAAA 记录的机器上找到了 AAAA 记录nslookup
,因此这一定是系统范围的设置。
问题:除此之外/etc/gai.conf
,哪种机制控制是否查找 AAAA 记录?
答案1
如果您参考 dnsutils 包中包含的 nslookup:
- Debian 9:9.10.3
- Debian 10:9.11.5
- Ubuntu 18.04:9.11.3
我相信您在 Debian 9(9.10.3)中缺少的功能是通过此提交引入的:
4420. [func] nslookup 现在默认查找 AAAA 以及 A。
随后它作为测试版和候选版发布,这两个版本后来都成为 bind 及其实用程序的稳定版本 9.11.0。
为了获得 Debian 9 的更高版本,您可以查看 stretch-backports 存储库,它将使您能够在 Debian 9 上以干净的方式安装 9.11.5。