Windows DNS Server 2008 R2 ошибочно возвращает SERVFAIL

8

У меня есть контроллер домена 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

Точно так же, когда я запрашиваю свой DNS-сервер Windows с 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». Напротив, когда я запрашиваю, скажем, account.google.com, я вижу, как DNS-сервер выходит к своему серверу пересылки (например, 128.59.59.70). В этом случае я не видел пакетов, отправляемых с моего DNS-сервера, хотя bogus.он не находился в кеше (журнал отладки уже запущен, и я впервые запрашиваю этот сервер bogus.или любой TLD). Он только что возвратил SERVFAIL, не обращаясь ни к какому другому DNS-серверу, как в статье Microsoft KB, указанной выше.

Пасхальное солнце
источник
Поэтому включите ведение журнала отладки и выясните, что именно происходит на сервере для этих запросов. Затем скажите нам, что сервер записал в своем вопросе.
JdeBP

Ответы:

1

У нас была похожая проблема на DNS-серверах Microsoft без настроенных серверов пересылки. Похоже, это исправление связано: http://support.microsoft.com/kb/2508835 . Я бы не сказал, что использование экспедиторов сведет на нет применимость.

флойд
источник