如果我使用 nslookup 查询 DNS 服务器,并且 DNS 服务器将请求转发到另一台服务器,我总是看到来自原始 DNS 服务器的回复。我如何知道哪个服务器真正回答了请求?
答案1
它转发的原因是递归。如果您的 DNS 服务器不是您所查询域的权威服务器(即负责服务器),它将从根级域服务器开始递归查询,直到找到负责该域的 DNS 服务器。如果/当它找到一个服务器时,该服务器将发回答案。如果您想查看整个内容,请在set debug
nslookup 中输入。
也就是说,dig 现在确实是比 nslookup 更好的工具。
答案2
使用带有 +trace 选项的 DIG 实用程序来查看哪个服务器应答了请求。
或者,您可以使用DNS 变得简单站点 - 然后选择“DNS Transversal”链接来检查链中所有 DNS 服务器的响应。
答案3
如果答案来自原始 DNS 服务器,则意味着原始服务器执行了递归并代表客户端回答了查询(无论您是否使用转发器)。
使用递归时,DNS 服务器会为客户端执行所有工作并将答案返回给客户端。使用迭代时,服务器不会执行工作,而是告诉客户端自己执行工作。因此,使用递归时,DNS 服务器将始终是回答问题的服务器,而使用迭代时,DNS 服务器将始终是回答客户端的被查询 DNS 区域的权威服务器。
答案4
是的,我认为 DNS 没有跟踪路由这一概念。也许可以归咎于“70 年代设计的 TCPIP 未考虑安全性”。