例如,当我跟踪 google.com 的 DNS 查找时,dig 仅显示对根服务器的请求,然后直接转到二级域服务器,跳过顶级域。换句话说,它从 a.root-servers.net 转到 ns1.google.com。 正如你在图片中看到的那样 那么应该位于中间的 [ah].gtld-servers.net TLD 服务器呢?为什么它没有显示在结果中?其他主机名也发生了同样的事情。例如 gaia.cs.umass.edu。 图片 它从根服务器到 ns[1-3].umass.edu。所有 .edu TLD 服务器(如 a.edu-servers.net)在哪里?
答案1
这些结果让我怀疑您的网络中是否存在一些奇怪的事情,而不是怀疑dig
正在做一些奇怪的事情。
您是否正在使用某种形式的透明“代理”?即,对199.7.91.13
(如您的某个示例中所示,根服务器之一)的查询实际上是发送到该地址还是重定向到其他地方(可能是某个本地递归器)?
一个假设是,所有 DNS 流量都被发送到一个递归器,它将显示在完整输出中(您不会得到权威回应……即,没有aa
标志)。
要继续跟踪想法,您可以运行例如:
dig +trace +all example.com
这将包含每个步骤的完整输出。查看响应的详细信息,来自根服务器的响应(如SERVER: ...
每个响应的底部所示)是否确实是权威响应?
此类查询还有助于发现是否发生了奇怪的事情。与真实的 `199.7.91.13` 响应的内容进行比较(请注意,它不是单个服务器,因此响应不一定一致,但它可以让您很好地了解预期的内容),如从已知良好的 Internet 连接中观察到的那样:
dig @199.7.91.13 version.bind CH TXT +norec
(可能会以软件+版本字符串作为响应)
dig @199.7.91.13 hostname.bind CH TXT +norec
(可能会以主机名响应)
dig @199.7.91.13 id.server CH TXT +norec
(可能会使用服务器标识符进行响应)