DNS 转发

转发器是网络上的 DNS 服务器,用于将外部 DNS 名称的 DNS 查询转发到该网络外部的 DNS 服务器。 还可以使用条件转发器根据特定域名转发查询。 本文介绍 DNS 转发,包括 Windows Server 中的委派、条件转发器和 Intranet 名称解析。

转发

网络中的 DNS 服务器被指定为转发器,即其他 DNS 服务器将无法在本地解析的查询转发给该服务器。 通过使用转发器,可以管理网络外部的名称(例如 Internet 上的名称)的名称解析,并提高网络中计算机的名称解析效率。

下图演示了如何使用转发器定向外部名称查询。

显示通过转发器将 DNS 查询从内部 DNS 服务器流向外部 DNS 服务器的流程的关系图。

如果未将特定 DNS 服务器设置为转发器,则 DNS 服务器使用根提示在网络外部发送查询。 此配置可以将内部 DNS 信息公开给 Internet,从而导致安全和隐私风险。 它还可以创建大量外部流量,对于 Internet 连接速度缓慢或 Internet 成本较高的公司来说,网络效率低下。

将 DNS 服务器指定为转发器时,使转发器负责处理外部流量,从而限制 DNS 服务器暴露给 Internet。 转发器会生成大量外部 DNS 信息缓存,因为网络中的所有外部 DNS 查询都通过它解析。 在短时间内,转发器使用缓存数据解析大多数外部 DNS 查询。 这意味着网络上的互联网流量减少,以及 DNS 客户端的响应时间缩短。

行为

配置为使用转发器的 DNS 服务器的行为不同于未配置为使用转发器的 DNS 服务器。 配置为使用转发器的 DNS 服务器的行为如下所示:

  1. 当 DNS 服务器收到查询时,它会尝试使用它托管的主区域和次要区域解析此查询及其缓存。

  2. 如果无法使用此本地数据解析查询,则将查询转发到指定为转发器的 DNS 服务器。

  3. DNS 服务器在尝试联系根提示中指定的 DNS 服务器之前,会短暂等待转发器提供的答案。

当 DNS 服务器将查询转发到转发器时,它会向转发器发送递归查询。 这种类型的查询不同于 DNS 服务器在标准名称解析期间发送到另一个 DNS 服务器的迭代查询。 表示不涉及转发器的名称解析。

转发顺序

DNS 服务器根据 DNS 服务器上列出 IP 地址的顺序使用转发器。 在 DNS 服务器使用第一个 IP 地址将查询转发到转发器后,它会根据 DNS 服务器的超时设置,短暂等待该转发器的答复,然后继续使用下一个 IP 地址进行转发操作。 它继续此过程,直到收到转发者的肯定答案。

DNS 服务器使用的转发器取决于服务器的配置。 默认情况下,动态转发器重新排序 是启用的, 如果保留默认设置,DNS服务器会使用以下转发器列表:

  1. DNS 服务器允许管理员按首选顺序创建转发器。

  2. 维护转发器的动态列表。 动态列表根据响应时间重新排序。 但是,该列表还会大约每 15 分钟重置为配置的顺序。

  3. 对于每个查询,转发器会根据它们在动态列表中的出现顺序被选取。

  4. 如果响应时间大于 1 秒,则被视为响应速度缓慢。 每个转发器允许两次连续响应缓慢,在第三次响应缓慢时,它将被移到动态列表的末尾。

  5. 如果列表中的所有服务器都未响应,则 DNS 无法知道服务器是否处于脱机状态或速度缓慢。 需要在系统外部监视每个 DNS 服务器的可用性。

小窍门

从 Windows Server 2022 开始,如果没有转发器从转发器列表中做出响应,则 DNS 服务器仅在 DNS 服务器服务重启之前仅使用动态列表中的第一个转发器。

转发器和委派

配置有转发器和托管父区域的 DNS 服务器在转发查询之前使用其委派信息。 如果查询中 DNS 名称不存在委派记录,则 DNS 服务器使用其转发器解析查询。

转发器和根服务器

为了使 DNS 服务器能够正确进行递归,它首先需要一些有关 DNS 域命名空间中其他 DNS 服务器的有用联系信息。 此信息以根提示的形式提供。 根提示是一个初步资源记录列表,DNS 服务使用它来定位那些对 DNS 域命名空间树根具有权威性的其他 DNS 服务器。 根服务器对于 DNS 域命名空间树中的域根域和顶级域具有权威性。

通过使用根提示查找根服务器,DNS 服务器能够完成递归的使用。 从理论上讲,此过程使任何 DNS 服务器能够查找命名空间树中任何级别使用的任何其他 DNS 域名的权威服务器。

根服务器无法配置为使用常规转发。 如果查询任何域名的根服务器,它将以以下两种方式之一进行响应。 它指的是可以回答问题(从其本地区域、缓存)的 DNS 服务器,或返回失败的响应。 失败相应将与 NXDOMAIN 回答一起显示。 无法将其配置为转发到特定服务器。 配置转发时常见的错误是在专用 DNS 命名空间的根服务器上尝试配置转发。

可以使用条件转发器配置根服务器。 条件转发可用于在单独的 DNS 命名空间中的根服务器之间转发查询,尽管命名空间中顶级域的 DNS 服务器更适合这种解析方法。

条件转发器

条件转发器是网络上的 DNS 服务器,用于根据查询中的 DNS 域名转发 DNS 查询。 例如,可以将 DNS 服务器配置为把它接收到的以north.contoso.com结尾的名称的所有查询转发到一个或多个 DNS 服务器的 IP 地址。

Intranet 名称解析

条件转发器可用于改进 Intranet 中域的名称解析。 通过在 DNS 服务器上为特定内部域名配置转发器,可以改进 Intranet 名称解析。 例如,可以将域中north.contoso.com的所有 DNS 服务器配置为将查询以south.contoso.com结尾的名称转发到权威 DNS 服务器south.contoso.com,删除查询根服务器.contoso.com的步骤,或者删除在north.contoso.com区域中用south.contoso.com次要区域配置 DNS 服务器的步骤。

Internet 名称解析

DNS 服务器可以使用条件转发器解析共享信息的公司的 DNS 域名之间的查询。 例如,两家公司 Contoso 和 Tailspin Toys 希望改进 Contoso 的 DNS 客户端如何解析 Tailspin Toys 服务器的名称。 Tailspin Toys 的管理员向 Contoso 的管理员告知 Tailspin Toys 网络中一组 DNS 服务器,Contoso 的管理员可以向这些服务器发送关于域 outdoor.tailspintoys.com 的查询。 Contoso 网络中的 DNS 服务器已配置为将所有以 outdoor.tailspintoys.com 结尾的名称查询转发到 Tailspin Toys 网络中指定的 DNS 服务器。 因此,Contoso 网络中的 DNS 服务器不需要查询其内部根服务器,也不需要 Internet 根服务器来解析以结尾 outdoor.tailspintoys.com的名称的查询。