我的目标是检查我的所有域名服务器是否使用 nslookup 中的以下命令序列工作(此处省略响应):
set type=soa
example.com
set type=a+aaaa
example.com ns1.name_server.com
example.com ns2.name_server.com
example.com ns3.name_server.com
example.com ns4.name_server.com
其中名称服务器 ns1、ns2、ns3 和 ns4 均取自 SOA 中提供的列表。
问题
** ns2.name_server.com can't find example.com: No response from server
仅在 Windows 中,在 Windows 10 Pro 计算机的情况下,某些(但不是全部)名称服务器特定的命令会一致返回 ,并且对于 Server 2008R2,它会给出以下内容:
DNS request timed out.
timeout was 2 seconds. [it times out 4 times like this]
** Request to ns2.name_server.com timed-out
使用在线工具、Mac 和 Linux VM(使用host
命令)进行测试时,所有名称服务器(ns1、ns2、ns3、ns4)均立即提供正确的 A 记录。因此,我认为所有 DNS 条目都是正确的,这是 Windows nslookup 问题。
解决方法我发现的方法是发出所有 nslookup 命令直接从命令提示符- 不在 nslookup 的提示内。所有这些都给出了正确的响应:
c:>nslookup example.com ns1.name_server.com
c:>nslookup example.com ns2.name_server.com
c:>nslookup example.com ns3.name_server.com
c:>nslookup example.com ns4.name_server.com
非常奇怪的是,失败的名称服务器(在 nslookup 提示内)是特定且可重复的,例如,我的 Win10 在 ns1 上成功,但在 ns2、ns3 和 ns4 上失败。在 2008R2 机器上,只有 ns2 失败,而 ns1、ns3 和 ns4 可以正常工作。
即使没有进行初始切换到 SOA 类型并返回,即发出example.com ns1.name_server.com
作为第一个命令,问题仍然会在提示中发生。
我怀疑问题可能出在初始默认服务器,因为 nslookup 会在您进入命令提示符时找到它。但我看到默认的 8.8.8.8 或低端家用路由器也出现了同样的情况。
我看到的唯一其他线索是,指定名称服务器的 IPv4 地址报告方式存在一些不一致和IPv6 地址。有时是 v4,有时两者兼而有之。但我无法辨别出一致的模式。
问题:我是否正确使用了 nslookup?这是一个错误吗?这里是否存在 IPv6 问题?
尝试示例:在 Windows 机器上的 nslookup 提示符中输入以下命令:
set type=soa
superuser.com [check the current name servers and revise below accordingly if needed]
set type=a+aaaa
superuser.com ns-1699.awsdns-20.co.uk
superuser.com ns-245.awsdns-30.com
superuser.com ns-cloud-d1.googledomains.com
superuser.com ns-cloud-d2.googledomains.com
答案1
我找到了答案这里来自大约 3 年前,其中部分内容如下:
... nslookup 在 Windows 上坏了..
...DNS 服务器是双栈的,这意味着它同时具有 IPv4 和 IPv6 地址。当通过将默认 DNS 服务器指定为命令行选项来执行查找时,nslookup 会正确循环遍历以 IPv6 开头并以 IPv4 结尾的 IP 地址。但是,当以交互方式使用 nslookup 时,nslookup 只会尝试解析器返回的第一个地址,该地址始终是 IPv6 地址。
解决此问题的方法是,在以交互方式使用 nslookup 时通过 IP 地址指定 DNS 服务器,或者通过在命令行上指定默认 DNS 服务器以非交互方式使用 nslookup。
请注意,这只会影响 Windows 上的 nslookup,现代版本的 Linux 和 OS X 使用固定版本的 nslookup。
因此 nslookup 已损坏,并且这是一个 IPv6 问题。