DNS 转发器与 DNS 解析器

DNS 转发器与 DNS 解析器

我对 DNS 转发器和 DNS 解析器有点困惑。

在我看来,它们在某种程度上是相似的。收到查询后,两者都会检查缓存,看看是否可以立即回复客户端,然后再将查询转发到其他 DNS 服务器。

例如,我的 SOHO 路由器被视为转发器还是解析器?如果它是一个转发器,那么有没有办法知道我的路由器使用什么 DNS 解析器来转发查询?

希望得到最好的解释,因为我并不是一名真正的技术通。

谢谢!

答案1

DNS 转发器会将请求转发给另一个 DNS 解析器,如果得到结果,它会将其存储在缓存中,以便后续请求可以使用缓存的结果,直到 TTL(生存时间)到期。DNS 解析器存储一个它有权解析的记录数据库,这些记录可由管理员编辑。大多数 DNS 解析器还将充当转发器,因此如果它们无法解析记录,它们将转发到另一个 DNS 服务器进行解析。但是,您可能希望 DNS 解析器仅解析它有权解析的名称,在这种情况下,您可以将其配置为不转发到另一个 DNS 解析器。

家用路由器通常充当 DNS 转发器,只要结果有效(基于 TTL),就会将其缓存起来。但有些家用路由器还能够保存本地记录数据库 - 例如,它可能保存映射到本地 IP 地址的计算机名称记录 - 以启用本地名称解析。在这种情况下,路由器充当解析器和转发器。

答案2

您可能希望使用 IETF 中有关 DNS 术语的当前文档:https://www.rfc-editor.org/rfc/rfc8499

其中内容如下:

转发器:[RFC2308] 第 1 节将转发器描述为“用于解析查询的域名服务器,而不是直接使用权威域名服务器链”。[RFC2308] 进一步指出“转发器通常可以更好地访问互联网,或者维护更大的缓存,这些缓存可以在许多解析器之间共享。”该定义似乎表明转发器通常只查询权威服务器。然而,在目前的使用中,转发器通常介于存根解析器和递归服务器之间。[RFC2308] 没有说明转发器是仅迭代解析器还是可以成为全服务解析器。

解析器是一个过于通用的词,所以我认为你应该将其与“DNS递归服务器”进行比较。它的定义如下:

递归解析器:以递归模式运行的解析器。一般来说,递归解析器应该缓存收到的答案(这将使其成为全服务解析器),但有些递归解析器可能不会缓存。

“转发器”也有细微差别。有各种操作模式。例如,您可以让一个转发器只进行转发并将结果保存在缓存中,或者另一个转发器先尝试转发,如果失败,则自行转发。

例如,对于bind软件,请参阅§4.2.14.2。https://ftp.isc.org/isc/bind9/cur/9.17/doc/arm/html/reference.htmlforward指令定义如下:

仅当转发器列表不为空时,此选项才有意义。默认值为 first,服务器将首先查询转发器;如果此操作无法回答问题,则服务器将自行查找答案。如果指定 only,则服务器仅查询转发器。

还要注意,显示的功能是每个区域的,而不是全局的:

转发也可以基于每个域进行配置,从而允许以各种方式覆盖全局转发选项。可以将特定域设置为使用不同的转发器,或具有不同的仅转发/优先行为,或根本不转发;

相关内容