服务器中转发器干啥用,转发器解析超时 - Windows Server | Microsoft Docs

NET:DNS:转发器和条件转发器解析超时

10/14/2020

本文内容

本文介绍在 DNS 服务器上将一个或多个 DNS 服务器 IP 配置为转发器或条件转发器时存在的回退和超时行为。

适用于:  Windows Server 2012R2

原始 KB 编号:   2834250

摘要

Check NET: DNS: DNS client resolution timeouts for more information about DNS client resolution timeouts.

与 DNS 客户端类似,配置具有多个转发器或条件转发器 DNS 服务器会为 DNS 基础结构增加额外的容错能力。 通过将多个 DNS 服务器添加为转发器或条件转发器,可以在唯一配置的服务器、基础网络链接或支持网络基础结构出现故障时继续解析 DNS 名称。

但是,在服务器上添加容错功能更加关键,因为可能存在一个可传递操作,即某些服务器代表多个客户端执行现在挂起的操作。 然后,资源的使用时间会逐步延长。

如果要使用三个或多个转发器/条件转发器,请确保正确调整参数,因为默认设置可能不会针对此大量服务器进行优化。

当两台以上 DNS 服务器配置为转发器时,DNS 服务器的默认行为是什么

为了了解工作原理,关键变量是:

RecursionTimeout - 域名系统 (DNS) 在终止搜索之前等待远程服务器响应递归客户端查询的时间。

它保存在注册表中的 下, HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\**RecursionTimeout 并且可配置 via dnscmd /config /RecursionTimeout 。

默认值为:

在 Windows Server 2003 上为 15 秒

在 Windows Server 2008、2008 R2 和 2012 上为 8 秒

RecursionTimeout 在 DNS 服务器级别定义,独立于查询的特定区域。

ForwardingTimeout - 域名系统 (DNS) 等待转发器列表中的每台服务器响应查询的时间。

它保存在注册表的 下, HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\**ForwardingTimeout 并且可通过 进行配置 dnscmd /config /ForwardingTimeout 。

默认值为:

在 Windows Server 2003 上为 5 秒

在 Windows Server 2008、2008R2 和 2012 上为 3 秒

ForwardingTimeout 在 DNS 服务器级别定义,独立于查询的特定区域。

当 DNS 服务器收到对区域中没有权威性的记录的查询,并且需要使用转发器时,默认行为如下:

从 (开始开始的时间)

操作

0

客户端查询 DNS 服务器。 DNS 服务器立即将查询转发到其第一个转发器

在秒后,如果第一个转发器未回复,DNS 服务器将查询第二个转发器。

2 * +1

在 +1 秒后,如果第二个转发器未回复,DNS 服务器将查询第三个转发器。

...

...

N * + (N-1)

在 + 1 秒后,如果第 N 个转发器未回复,DNS 服务器将查询第 1 个转发 (N+1) 。

备注

除了配置的延迟之外,由于系统开销,还可以增加半秒延迟。

当经过的时间超过 RecursionTimeout 值时,算法将停止

如果 RecursionTimeout 过期,DNS 服务器将返回客户端,但出现服务器故障。

备注

我们不会在 RecursionTimeout 过期后立即发送服务器故障,而是仅在尝试下一个转发器时发送。

如果服务器在 RecursionTimeout 过期之前联系所有转发器而不获得答案,它将尝试使用名称解析 (默认设置的根提示,除非在服务器级别) 禁用了递归。

这意味着,使用默认设置,2008R2 服务器最多能够查询 3 个转发器。 将没有足够的时间到达使用第四个转发器。 事实上,对于 2008R2 上的默认设置,服务器将:

在 0 秒后查询第一个转发器

3.5 秒后查询第二个转发器

在 3.5 + 4 = 7.5 秒后查询第三个转发器

在第八秒 ,RecursionTimeout 过期,因此我们不会到达查询第四个转发器 (该点在 3.5 + 4 + 4 = 11.5 秒之后) 。

我们将在 11.5 秒后发送服务器故障响应。

示例:

IP 地址为 192.168.0.1 的 DNS 服务器配置有五个转发器 (10.0.0.1-10.0.0.5) 。

客户端的 IP 地址为 10.0.0.31 且正在查询 Microsoft.com

在网络捕获上,我们将看到以下网络监视器输出 (注意 10.0.0.4 和 10.0.0.5 从不) :

时间时间偏移时间Delta 源目标详细信息

6:33:51.7507293 0.2731738 0.0000000 10.0.0.31 192.168.0.1 DNS:QueryId = 0xF03,QUERY (Standard query) ,Query for microsoft.com of type Host Addr on class Internet

6:33:51.7510021 0.2734466 0.0002728 192.168.0.1 10.0.0.1 DNS:QueryId = 0xBD57, QUERY (Standard query) , Query for microsoft.com of type Host Addr on class Internet

6:33:55.2997074 3.8221519 3.5487053 192.168.0.1 10.0.0.2 DNS:QueryId = 0xBD57,QUERY (Standard query) , Query for microsoft.com of type Host Addr on class Internet

6:33:59.2931644 7.8156089 3.9934570 192.168.0.1 10.0.0.3 DNS:QueryId = 0xBD57,QUERY (Standard query) ,Query for microsoft.com of type Host Addr on class Internet

6:34:03.3112753 11.8337198 4.0181109 192.168.0.1 10.0.0.31 DNS:QueryId = 0xF03,QUERY (Standard 查询) ,响应 - 服务器故障

当两台以上 DNS 服务器配置为条件转发器时,DNS 服务器的默认行为是什么

与转发器类似,条件转发器有两个关键变量。 我们仍有 RecursionTimeout (在服务器级别运行) 但在此方案中,我们使用 ForwarderTimeout 而不是 ForwardingTimeout。 特别需要注意的是 ,ForwarderTimeout 以区域为基础运行,并且具有不同的默认值:

RecursionTimeout - 域名系统 (DNS) 在终止搜索之前等待远程服务器响应递归客户端查询的时间。

它保存在注册表中 HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\RecursionTimeout

可通过 进行配置 dnscmd /config /RecursionTimeout 。

默认值为:

在 Windows Server 2003 上为 15 秒

在 Windows Server 2008 和 2008R2 上为 8 秒

RecursionTimeout 在 DNS 服务器级别定义,独立于查询的特定区域

ForwarderTimeout - 域名系统 (DNS) 等待条件转发器列表中的每台服务器响应查询的时间。

由于为特定区域配置了条件转发器,因此 ForwarderTimeout 也依赖于区域。

它保存在注册表中的 下 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\ \ForwarderTimeout 。

对于 Windows Server 2003、2008、2008R2 和 2012,默认值为 5 秒。

这也是您可以在条件转发器 GUI 中看到的设置。

当 DNS 服务器接收对区域中非权威记录的查询,并配置为对记录使用条件转发器时,默认行为如下:

从 (开始开始的时间)

操作

0

客户端查询 DNS 服务器。 DNS 服务器立即将查询转发到其第一个条件转发器

在秒后,如果第一个条件转发器未回复,DNS 服务器将查询第二个条件转发器

2 * +1

在 +1 秒后,如果第二个条件转发器未回复,DNS 服务器将查询第三个条件转发器

...

...

N * + (N-1)

在 +1 秒后,如果第 N 个条件转发器未回复,DNS 服务器将查询第三个 (N+1) N+1

备注

除了配置的延迟之外,由于系统开销,还可以增加半秒延迟

当经过的时间超过 RecursionTimeout 值时,算法将停止

如果 RecursionTimeout 过期,DNS 服务器将返回客户端,但出现服务器故障。

备注

我们不会在 RecursionTimeout 过期后立即发送服务器故障,而是仅在尝试下一个条件转发器时发送。

这意味着,使用默认设置,2008 R2 服务器最多能够查询 2 个条件转发器。 将没有足够的时间到达以使用第三个条件转发器。 事实上,对于 2008R2 上的默认设置,服务器将:

在 0 秒后查询第一个转发器

5.5 秒后查询第二个转发器

在第八秒 ,RecursionTimeout 过期,因此我们不会到达查询第三个条件转发器 (在 5.5 + 6 = 11.5 秒之后) 。

我们将在 11.5 秒后发送服务器故障响应。

示例:

IP 地址为 192.168.0.1 的 DNS 服务器配置有五个条件转发器 (10.0.0.1-10.0.0.5) 区域 Microsoft.com 。

客户端的 IP 地址为 10.0.0.31,并且正在查询 Microsoft.com 。

在网络捕获上,我们将看到以下网络监视器输出 (注意 10.0.0.3、10.0.0.4 和 10.0.0.5 从不) :

时间时间偏移时间Delta 源目标详细信息

6:50:32.5481816 0.4306857 0.0000000 10.0.0.33 192.168.0.1 DNS:QueryId = 0x245A, QUERY (Standard query) , Query for microsoft.com of type Host Addr on class Internet

6:50:32.5484341 0.4309382 0.0002525 192.168.0.1 10.0.0.1 DNS:QueryId = 0x252B, QUERY (Standard query) , Query for microsoft.com of type Host Addr on class Internet

6:50:38.1695163 6.0520204 5.6210822 192.168.0.1 10.0.0.2 DNS:QueryId = 0x252B,QUERY (Standard query) , Query for microsoft.com of type Host Addr on class Internet

6:50:44.1856567 12.0681608 6.0161404 192.168.0.1 10.0.0.33 DNS:QueryId = 0x245A,QUERY (Standard query) , Response - Server failure

参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值