我们有大量分支机构通过 VPN 连接,但没有任何类型的服务器基础设施。每个办事处的客户端计算机从 ASA 5505 获取其网络配置,该设备也用于 VPN 连接。
Windows XP 客户端计算机配置为使用我们公司的 DNS 服务器之一作为主服务器,使用 ISP 的 DNS 服务器作为辅助服务器。这样做的目的是,如果 VPN 连接因任何原因失败,办公室员工仍然可以访问互联网,并访问我们的网络邮件和家庭访问门户。在大多数情况下,这种方法都行得通。
然而,对于位于南美的办事处,我们发现客户端机器上的 DNS 解析经常针对 ISP DNS 服务器进行 - 这导致办公室员工实际上无法使用我们的公司资源。
客户端计算机能够正常 ping 公司 DNS 服务器。在对公司主机名进行 nslookup 时,我得到了回复。
我认为发生了下列情况之一(或多种情况的组合):
- 我们的公司 DNS 服务器并不总是及时回复请求(虽然我不知道为什么这只会影响一个地理区域的客户端)
- 来自拉丁美洲的 DNS 查询不知何故出现延迟,导致客户端将其视为失败(尽管我们的办公室位于速度慢得多的 VSAT 连接末端,因此不存在此问题)
- 单一故障导致 Windows 中的 DNS 缓存条目以某种方式导致后续尝试无法进行查找
还有人遇到过这个问题吗?有什么解决办法吗?
答案1
视窗按此顺序查询 DNS:
- hosts 文件
- 本地 DNS 缓存
- 首选 DNS 服务器
- 其他 DNS 服务器
MS 也有一篇文章描述如何获取 DNS 服务器列表:
DNS 客户端服务使用按偏好排序的服务器搜索列表。此列表包括为系统上每个活动网络连接配置的所有首选和备用 DNS 服务器。
该名单根据以下标准排列:
- 首选 DNS 服务器具有最高优先级。
- 如果没有可用的首选 DNS 服务器,则使用备用 DNS 服务器。
- 没有响应的服务器将被暂时从这些列表中删除。
Windows 有一个DNS 请求超时升级:
Value Default value Attempt
1st limit 1 second Query the preferred DNS server on a preferred connection.
2nd limit 2 seconds Query the preferred DNS server on all connections.
3rd limit 2 seconds Query all DNS servers on all connections (1st attempt).
4th limit 4 seconds Query all DNS servers on all connections (2nd attempt).
5th limit 8 seconds Query all DNS servers on all connections (3rd attempt).
6th value (Must be 0.)
我无法就这一点找到明确的答案,但听起来如果它在 1 秒或 2 秒内(分别是第一次或第二次尝试)没有从主 DNS 获得响应,那么该服务器将在 15 分钟内从 DNS 服务器查找列表中删除,因此它将使用辅助 DNS 服务器。由于这些服务器的超时时间最长为 8 秒,因此它们更有可能做出响应。(我不清楚如果已经失败,它是否会在第三次以上尝试期间继续查询首选 DNS 服务器)。
我还怀疑您确实在这个地理区域存在 WAN 延迟问题,因为这可以解释为什么超时有效。
一种解决方案是更改 DNS 查询超时,使用DNS查询超时注册表参数。另请参阅http://drewthaler.blogspot.com/2005/09/changing-dns-query-timeout-in-windows.html
另一个解决方案是在网络上放置本地缓存 DNS 服务器,并让客户端使用该服务器。您可以使用路由器内置的 DNS 服务器,或者安装类似域名系统。
答案2
据 Technet 报道http://blogs.technet.com/b/stdqry/archive/2011/12/15/dns-clients-and-timeouts-part-2.aspx后续查询将并行对多个 DNS 服务器进行。
而且大多数人只有一个网络连接和一个快速的宽带连接,通常应该在 1 秒内得到 DNS 响应。
因此,我将 DNSQueryTimeouts 设置为 1 1 1 10 10 0,以便它能够尽快向所有 DNS 服务器发出并行查询。然后,我将 ISP 的 DNS 服务器放在列表的首位(因为它们在物理上距离最近,并且最不可能受到网络数据包丢失的影响,后面还有几台公共 DNS 服务器),然后让 Windows 完成其工作。
我的网页浏览速度大大加快了!!!
显然,当您想要在内部解析内部主机名时,不要在公司环境中给予 ISP DNS 服务器优先权!