迭代 DNS 查询比递归查询更快,因为迭代 DNS 查询中缓存了更多条目

迭代 DNS 查询比递归查询更快,因为迭代 DNS 查询中缓存了更多条目

在迭代 DNS 查询中,本地 DNS 服务器向根、TLD 和权威服务器发出的请求可以缓存在本地 DNS 中。而在递归查询中,只有特定的主机名到 IP 地址可以缓存在本地 DNS 服务器中。这是否意味着迭代 DNS 查询速度更快,因为它包含更多缓存在本地 DNS 服务器中的条目?

如果不是这样,这两种方法之间会有什么区别吗?

答案1

递归DNS 查询,客户端只向第一个 DNS 服务器发送查询。如果服务器无法回答,它将向下一个服务器发送请求,依此类推,直到查询得到解决。此时 DNS 客户端要求 DNS 服务器响应查询,因此解析查询的负担落在了服务器上。

迭代DNS 查询,客户端负责将查询发送到后续服务器,直到查询通过命中授权域名的服务器得到解析(或直到出现错误或超时)。此时解析查询的负担落在了客户端身上。

我认为两者之间的速度没有太大差异,只是层次结构足够高的 DNS 服务器可能比客户端拥有更快的互联网连接。

对于迭代 DNS 查询,客户端最终会在其缓存中拥有连续的中间 DNS 服务器,但我不知道它如何利用这一点。

更详细地说,DNS 服务器可以提供以下四个最常见的答案:

  • 权威性- 向客户端返回肯定答复,并在响应中设置权威答复 (AA) 位。
  • 积极的- 包含与查询匹配的资源记录 (RR) 或 RR 列表的答复。
  • 推荐- 包含客户端可用于解析名称的备用服务器列表的答案。如果不支持递归,则给出此类答案。
  • 消极的- 此答案表明权威服务器报告该名称(或记录类型)在 DNS 名称空间中不存在。

在迭代查询中,客户端向服务器发送查询。如果递归被禁用,并且服务器无法回答查询,则服务器将以推荐答案进行响应。然后,客户端将使用该信息查询另一个 DNS 服务器。此过程将持续进行,直到服务器以权威或否定响应进行响应,或者直到客户端用尽时间。

相关内容