iart Asked: 2023-12-29 05:38:38 +0800 CST2023-12-29 05:38:38 +0800 CST 2023-12-29 05:38:38 +0800 CST 这张递归 DNS 查询图准确吗? 772 我正在复习 DNS 概念并看到了这张图 这张 DNS 递归查询图对我来说似乎不准确。根据我对 DNS 的理解,根名称服务器、TLD 名称服务器和权威名称服务器不执行递归查询。 根据我的理解,递归解析器从其缓存中返回 DNS 查询的响应,或者对根名称服务器、TLD 名称服务器和权威名称服务器进行一系列迭代查询,直到获得从域到 IP 的映射。 该图似乎表明解析器不执行这些迭代步骤,并且根名称服务器、TLD 名称服务器也执行递归查询。 鉴于其他来源与该图之间的矛盾,我想知道该图是否不准确,或者我对递归查询的理解是否有缺陷。 dns 1 个回答 Voted Best Answer u1686_grawity 2023-12-29T06:02:47+08:002023-12-29T06:02:47+08:00 不,该图不准确。根服务器从不执行递归,就此而言,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 数据包的同时进行查询。) 1 根服务器本身也只是“权威服务器”——.特别针对根域具有权威性。同样,TLD 服务器仅仅是顶级域的权威服务器。
不,该图不准确。根服务器从不执行递归,就此而言,TLD 服务器和任何其他域的权威服务器(通常)也不执行递归。如果向根服务器或 TLD 服务器查询其不具有权威性的域,则它只会返回“引用”响应。
(因此,“递归查询”标签也放错了位置。您的 PC 或本地缓存/代理发出的查询是递归的,但 ISP 服务器发出的查询则不是。)
您可以使用常见的 DNS 客户端工具对此进行测试 - 这些服务器都不会限制谁可以访问它们(即它们不是“仅限 ISP”或类似的东西)。例如,如果您已经
dig
安装,您可以执行以下操作:即使查询具有“需要递归”位(RD),服务器也只会回复引用——没有应答记录,只有指向其他地方的“权威”记录。
在 Windows 上,您可以使用大致相同的方法
nslookup
(也许可以使用选项-d
或set debug
查看完整的响应内容):(您甚至可以在 Linux 上安装自己的 DNS 解析器,例如 BIND 或 Unbound,并在观察它通过 Wireshark 发送/接收的 DNS 数据包的同时进行查询。)
1 根服务器本身也只是“权威服务器”——
.
特别针对根域具有权威性。同样,TLD 服务器仅仅是顶级域的权威服务器。