我有一个
Windows 2008 R2域控制器,它也是一个DNS服务器.在解决某些TLD时,它会返回一个SERVFAIL:
$dig bogus. ; <<>> DiG 9.8.1 <<>> bogus. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY,status: SERVFAIL,id: 31919 ;; flags: qr rd ra; QUERY: 1,ANSWER: 0,AUTHORITY: 0,ADDITIONAL: 0 ;; QUESTION SECTION: ;bogus. IN A
对于像com这样的真实TLD,我得到了相同的结果.如上所示查询DC时.与正在按预期工作的BIND服务器相比:
$dig bogus. @128.59.59.70 ; <<>> DiG 9.8.1 <<>> bogus. @128.59.59.70 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY,status: NXDOMAIN,id: 30141 ;; flags: qr rd ra; QUERY: 1,AUTHORITY: 1,ADDITIONAL: 0 ;; QUESTION SECTION: ;bogus. IN A ;; AUTHORITY SECTION: . 10800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2012012501 1800 900 604800 86400 ;; Query time: 18 msec ;; SERVER: 128.59.59.70#53(128.59.59.70) ;; WHEN: Wed Jan 25 14:09:14 2012 ;; MSG SIZE rcvd: 98
同样,当我用dig查询我的Windows DNS服务器时.任何,我得到一个SERVFAIL但BIND服务器按预期返回根区域.
这听起来类似于http://support.microsoft.com/kb/968372中描述的问题,除了我使用两个转发器(从上面128.59.59.70以及128.59.62.10)并回退到根提示,因此暴露问题的先决条件是不一样的.不过,我还按照描述应用了MaxCacheTTL注册表修复程序,并重新启动了DNS和整个服务器,但问题仍然存在.该域中的所有域控制器都会出现此问题,并且自半年前就已发生,即使服务器正在获取自动Windows更新.
编辑
这是一个调试日志.客户端是160.39.114.110,这是我的工作站.
1/25/2012 2:16:01 PM 0E08 PACKET 000000001EA6BFD0 UDP Rcv 160.39.114.110 2e94 Q [0001 D NOERROR] A (5)bogus(0) UDP question info at 000000001EA6BFD0 Socket = 508 Remote addr 160.39.114.110,port 49710 Time Query=1077016,Queued=0,Expire=0 Buf length = 0x0fa0 (4000) Msg length = 0x0017 (23) Message: XID 0x2e94 Flags 0x0100 QR 0 (QUESTION) OPCODE 0 (QUERY) AA 0 TC 0 RD 1 RA 0 Z 0 CD 0 AD 0 RCODE 0 (NOERROR) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 0 QUESTION SECTION: Offset = 0x000c,RR count = 0 Name "(5)bogus(0)" QTYPE A (1) QCLASS 1 ANSWER SECTION: empty AUTHORITY SECTION: empty ADDITIONAL SECTION: empty 1/25/2012 2:16:01 PM 0E08 PACKET 000000001EA6BFD0 UDP Snd 160.39.114.110 2e94 R Q [8281 DR SERVFAIL] A (5)bogus(0) UDP response info at 000000001EA6BFD0 Socket = 508 Remote addr 160.39.114.110,Expire=0 Buf length = 0x0fa0 (4000) Msg length = 0x0017 (23) Message: XID 0x2e94 Flags 0x8182 QR 1 (RESPONSE) OPCODE 0 (QUERY) AA 0 TC 0 RD 1 RA 1 Z 0 CD 0 AD 0 RCODE 2 (SERVFAIL) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 0 QUESTION SECTION: Offset = 0x000c,RR count = 0 Name "(5)bogus(0)" QTYPE A (1) QCLASS 1 ANSWER SECTION: empty AUTHORITY SECTION: empty ADDITIONAL SECTION: empty
检查调试日志框中的每个选项,“按IP过滤”除外.相比之下,当我查询accounts.google.com时,我可以看到DNS服务器转到它的转发器(例如128.59.59.70).在这种情况下,即使虚假,我也没有看到任何从我的DNS服务器发出的数据包.不在缓存中(调试日志已经运行,这是我第一次查询此服务器是因为虚假或任何TLD).它刚刚返回SERVFAIL而未咨询任何其他DNS服务器,如上面链接的Microsoft知识库文章中所述.
我们在Microsoft DNS服务器上遇到了类似的问题,没有配置转发器.看起来这个修补程序是相关的:
http://support.microsoft.com/kb/2508835.我不会说使用转发器会否定适用性.