更改域控制器上的DNS服务器超时修复了外部DNSparsing失败 – 为什么?

本周,我在主要网站遇到了一个令人困惑的问题,我想了解根本原因。 从stream程上看,我的故障排除已经解决,一个令人困惑的configuration更改解决了我的问题。

对不起,文本的墙壁,但如果有人可以帮助我,我认为更好的细节越多。

TL; DR:从域计算机和我们的域控制器,我们的外部DNS查找失败,直到我将DNS转发器parsing超时从默认的3秒调整到10为止。即使手动指定外部服务器,查找在NSLookup中也失败。 下面的细节。

星期五,我将两个新的域控制器/ DNS / DHCP服务器的地址换成了两个旧的DNS / DHCP / AD控制器的地址。 旧的服务器是Windows 2008 R2,新的2012 R2 SP1,完全修补到最新的Windows更新。 我还备份并将DHCP设置(使用Windows Powershell)恢复到新的DHCP服务器,并与新的Windows DHCP负载平衡build立故障转移关系。

我重新启动,运行dcdiag / fix,并validationDHCP和DNS查找。 一切似乎工作正常。 我查了几天,确保DHCP服务器传输正常工作,机器获得了合适的租约。 我不完全记得,如果我尝试的DNS查找包括外部网站,但我想我已经尝试了nslookup www.google.com,并在改变后的星期五工作。

星期天用户首先报告访问networking的问题。 星期一,这是一个普遍的问题。 用户无法访问互联网,或者可能间歇性地访问互联网。 同样,我们的IP电话也很麻烦,与我们之前看到的拥堵严重相似。 VoIP电话位于单独的VLAN上,不能连接到我们的DNS服务器或防火墙,除了查找用户目录条目。 除了电话症状,这个问题似乎只是与DNS有关。 我们运行了一台裂脑DNS服务器,因此我们拥有本地DNS条目的外部托pipe网站运行良好,并且可以快速加载。 我也可以SSH到外部服务器。 在本地任何服务器之间没有数据包丢失,我们到远程站点的VPN通道工作正常。 通过VPN到我们的远程站点,我可以很好地访问Internet – 远程站点上的DNS服务器也是运行2012 R2的域控制器。

在工作站和DC上使用DNS查找,我尝试了各种查找。 内部查找很好,外部查找失败。 在这两个新的DNS服务器上,外部DNS转发器都被设置为我们的ISP和Google公共DNS。 DNS根提示也被启用。 我通过打开NSLookup指定了外部DNS服务器,input服务器8.8.8.8,然后尝试几个网站–www.google.com,www.microsoft.com。 他们失败了,报告了4个DNS服务器超时。 我也尝试手动设置DNS服务器到我已知的工作DC,在远程站点,没有成功。

我用新的IP地址对旧的DC进行了类似的testing,没有任何改变。 我确认本地DC上的DNS服务器被设置为与主要不同的DC,如Microsoft Technet中的build议。 最后,为了缩小问题,我closures了旧的区议会。

我第一次怀疑是防火墙。 我们有一个防火墙规则,允许端口53上的DNS UDP和TCP从任何/到任何。 IPS为此规则打开。 我确实看到来自一个DC的UDP洪水警报,以及来自域控制器的阻塞的BootP数据包。 我closures了这个规则的IPS,并且警报消失了,没有修复症状。 但是,在过去我已经看到我们的防火墙在打开很长一段时间时出现了一些奇怪的行为,所以我尝试重新启动它,而没有改变行为。 我也将电缆从防火墙交换到交换机,并将调制解调器重新启动到我们的主要ISP。

研究导致我注意到EDNS导致一些防火墙的问题 。 我通过键入来closures两个新DC上的EDNS

dnscmd /config /EnableEDNSProbes 0 

在两个域控制器上并重新启动DNS服务器服务。 行为没有变化。

我尝试添加和更改两个域控制器上的DNS转发器的顺序,而不会改变行为。

我试图改变我使用的ISP – 我们有2个独立的ISP。 在防火墙,我改变了优先顺序,并validation了一个tracert,我连接到正确的ISP。 我尝试了相同的nslookups,手动指定DNS服务器为8.8.8.8,并在我的本地工作站和域控制器上都得到相同的故障。 间歇性地,我在域控制器上进行了成功的查找,但并不一致。

在防火墙上的数据包捕获显示查询到防火墙,但我没有看到来自外部DNS服务器的响应。

我也尝试了dcdiag / testdns,并且报告说所有的转发服务器都失败了,并且所有的根提示都失败了。

最后,作为最后的努力,没有想到它会有所帮助,我通过转到域控制器属性|将DNS转发器查找超时从两个域控制器上的默认3秒增加到10秒。 货运代理| 编辑并更新“转发查询超时前的秒数”为10.立即开始工作。 唯一另外一个相当近期的变化 – 我刚刚几分钟就回到了旧的区议会。

  1. 为什么改变这个超时修复了什么? 可以吗?
  2. 为什么使用nslookup NOT手动指定服务器实际上似乎是testing到外部服务器的连接? 为什么域控制器上的DNS转发查询超时与我的Windows桌面客户端有什么关系? 我是否误解了Windows 7和Server 2012 R2版本的nslookup中的这个选项?
  3. 这真的解决了这个问题,还是巧合? 这是一个即时的解决scheme,所以我不愿意相信这不是修复。 我打开了一个浏览器,并刷新它 – 只要我做了configuration更改,它的工作。
  4. 我应该在别的地方寻找失败的东西,比如在我的交换机上吗? 是否有可能从已存储的DNS查询中填充一些表格? 交换机是电话/互联网之间的共同因素,但是由于DNS查找失败以及内部networking访问方面的细微问题,使得我对此进行了折扣。

还有一个细节:当我现在打开DNS服务器属性,在转发器下,它再次显示超时设置为“3秒”,虽然我从来没有改变它。

这一切都让我怀疑我今后诊断这类问题的能力。 我知道要检查DNS服务器,因为最近的变化,但我真的不明白为什么我手动指定的DNS服务器的NSLookup失败是超时 – 它导致我错了故障排除path,如果这真的是真正的修复。 我希望当我的nslookup查询手动指定的服务器失败时,它必须是防火墙问题,而不是域控制器上的configuration问题。