我在实验室环境中拥有一台 DNS 服务器和一台主机。当我的主机查询某个网址的 IP 时,例如 www.[somewedishwebsite].se(瑞典域名),它首先使用 IPv4 和 IPv6 请求查询我的 DNS 服务器(其中不包含网站的 IP 地址或主机名)。然后,它会查询根 DNS 服务器(非权威地通过 DNS 服务器查询),“l.root-rootservers.net 等”。
根据 Wireshark,提供查询 IP 地址的权威名称服务器就是根服务器,但为什么会这样呢?根服务器肯定不包含 www.[someswedishwebsite].se 的记录吧?在这种情况下,根服务器实际上在做什么?
下面的图片可以说明我所说的内容
答案1
这很有道理。
当您的机器向其 DNS 服务器询问“www.website.se”在哪里时,您的 DNS 服务器会将请求转发到任何可以获得响应的地方。
由于您的 DNS 服务器没有相关区域或记录,因此它将首先查看其转发器和条件转发器。如果没有为相关区域或域设置转发记录,DNS 将开始查看其“根提示”以寻求答复。
根服务器可能没有直接的答案,但根服务器可能有“SE”的区域记录,该区域有“网站”的区域记录,而该区域又有“www”的记录。由于根提示代表您提出请求,因此 DNS 服务器将向它们提供带有适当记录的答复,然后它们会将该记录转发给您。这是中国耳语的例子。
答案2
根服务器未提供该响应。您的本地名称服务器提供了该响应 (2001:db8:acad:1::6)。
从该数据包转储中唯一可以确定的是答案先前已被缓存并在本地返回。
列为权威的根服务器是一个转移注意力的幌子......它依赖于正在运行的 DNS 软件、它的配置(几乎肯定是其他地方的全局转发,比如上游 ISP DNS 服务器)以及捕获查询完成时的缓存状态。
如果你想了解 DNS 解析的工作原理,请参阅dig +trace 实际上如何工作?