Windows DNS Server 2008 R2 错误地返回 SERVFAIL

Windows DNS Server 2008 R2 错误地返回 SERVFAIL

我有一台 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

对于真实 TLD,我得到了与com.查询 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, ANSWER: 0, 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

类似地,当我使用 查询我的 Windows DNS 服务器时dig . any,我得到一个 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, port 49710
  Time Query=1077016, Queued=0, 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 服务器发出,即使它bogus.不在缓存中(调试日志已在运行,这是我第一次查询此服务器bogus.或任何 TLD)。它只是返回 SERVFAIL,而没有咨询任何其他 DNS 服务器,如上面链接的 Microsoft KB 文章中所述。

答案1

我们在未配置转发器的 Microsoft DNS 服务器上也遇到过类似问题。看起来此修补程序与之相关:http://support.microsoft.com/kb/2508835。我不会说使用转发器会否定适用性。

相关内容