这个递归 DNS 查询图表准确吗?

这个递归 DNS 查询图表准确吗?

我正在复习 DNS 概念,看到了这张图 在此处输入图片描述

我觉得这个 DNS 递归查询图不太准确。根据我对 DNS 的理解,根名称服务器、TLD 名称服务器和权威名称服务器不执行递归查询。

据我了解,递归解析器会从其缓存中返回 DNS 查询的响应,或者对根名称服务器、TLD 名称服务器和权威名称服务器进行一系列迭代查询,直到获得从域到 IP 的映射。

该图似乎表明解析器不执行这些迭代步骤,并且根名称服务器、TLD名称服务器也执行递归查询。

鉴于其他来源与该图表之间的矛盾,我想知道该图表是否不准确或者我对递归查询的理解是否有缺陷。

答案1

不,该图不准确。根服务器从不进行递归,TLD 服务器也不进行递归,对任何其他域具有权威性的服务器也不进行递归(一般而言)。如果向根服务器或 TLD 服务器查询其不具有权威性的域,则它只会返回“引荐”响应。

(因此,“递归查询”标签的位置也是错误的。您的 PC 或本地缓存/代理进行的查询是递归的,但 ISP 服务器进行的查询不是。)

您可以使用常见的 DNS 客户端工具对此进行测试 - 这些服务器均不限制谁可以访问它们(即它们不是“仅限 ISP”或类似的东西)。例如,如果您已dig安装,您可以执行以下操作:

dig superuser.com @a.root-servers.net

即使查询有“需要递归”位 (RD),服务器也只会回复引用 - 没有答案记录,只有指向其他地方的“权威”记录。

在 Windows 上,你可以使用以下命令执行大致相同的操作nslookup(可能带有-d选项或set debug查看完整的响应内容):

nslookup -d superuser.com a.root-servers.net

(您甚至可以在 Linux 上安装自己的 DNS 解析器,例如 BIND 或 Unbound,并在通过 Wireshark 观察它发送/接收的 DNS 数据包的同时对其进行查询。)


¹ 根服务器本身也只是“权威服务器”——.专门针对根域。同样,TLD 服务器只是针对顶级域的权威服务器。

相关内容