昨天,我们将 SP1 应用于运行 Windows Server 2008 R2 的 DNS 服务器。
更新后 DNS 出现故障。事件日志中没有故障代码;它表示服务已启动,并且无论从哪方面看,它都像在正常运行。
但是,当我转到 DNS 属性、“监控”选项卡并单击“立即测试”时,它显示简单查询和递归查询都失败了。
事件日志设置为记录所有事件。
由于某种原因,它今天早些时候工作了几分钟;但后来又停止了。
关于我可以检查什么,您有什么想法吗?
注意:我重新启动了 DNS 服务,它恢复了在线状态;但只持续了一会儿。然后又消失了。
编辑:(2011 年 4 月 5 日)2 个月后,问题依旧。DNS 现在运行了一段时间,然后就停止运行了。但是,运行的时候绝对不会出现错误。
答案1
最近,我们从方程中去掉了一个特定的路由器,到目前为止,这种情况还没有再次发生。
我认为这有两种可能。要么是路由器不稳定,发送请求导致 DNS 服务器崩溃;要么是 MS 修复了这个问题。
无论怎样,都结束。
更新
就像生活中所有的事情一样,事情不止于此。较新的路由器坏了,我们用 Linksys RV082 替换了它,这个问题又开始出现了。
经过进一步研究,我发现这是一系列问题。首先,Windows Server 2008 R2 默认使用名为EDNS0。但是,如果发生 DNS 故障,它不会在没有该扩展的情况下再次发送请求......就像它应该的那样。
有些路由器显然会完全丢弃或至少截断超过 512 字节的 UDP 数据包。普通 DNS 小于这个值,但 EDNS0 扩展可以轻松超越这个值。我说的有些是指我们试过的几台思科路由器。是的,第一台路由器也是思科的(不同型号)。第二台路由器是其他品牌的。
不幸的是,这些特定的路由器不给我们允许更大的 UDP 数据包的选项;或者,如果有的话,它是隐藏的,而且我无法找到正确的开关。
通常情况下,这不是什么大问题但MS DNS 服务器似乎存在一个错误,导致它在发生一定数量的故障时完全停止解析 DNS 查询。这需要重新启动 DNS 服务,以便它能运行一段时间。
解决方法很简单关闭 EDNS0 支持。
该命令如下:dnscmd /config /EnableEDNSProbes 0
答案2
尝试使用 dcdiag 工具,它可能会帮助您识别问题。此外,在您的 DNS 服务器上,您是否在适配器上选择了 DNS 自动注册?