DNS-сервер Server 2012R2, возвращающий SERVFAIL для некоторых запросов AAAA

17

(Переписываю большую часть этого вопроса, так как многие мои оригинальные тесты не имеют значения в свете новой информации)

У меня проблемы с DNS-серверами Server 2012R2. Самым большим побочным эффектом этих проблем является то, что письма Exchange не проходят. Обменивайтесь запросами на записи AAAA, прежде чем пытаться использовать записи A. Когда он видит SERVFAIL для записи AAAA, он даже не пробует записи A, он просто сдается.

Для некоторых доменов при запросе к DNS-серверам моей активной директории я получаю SERVFAIL вместо NOERROR без результатов.

Я пробовал это с нескольких разных контроллеров домена Server 2012R2, на которых работает DNS. Один из них - это совершенно отдельный домен, находящийся в другой сети за другим брандмауэром и подключением к Интернету.

Два адреса, которые я знаю, вызывают эту проблему smtpgw1.gov.on.caиmxmta.owm.bell.net

Я использовал digдля тестирования Linux-машины (192.168.5.5 - мой контроллер домена):

grant@linuxbox:~$ dig @192.168.5.5 smtpgw1.gov.on.ca -t AAAA

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @192.168.5.5 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 56328
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;smtpgw1.gov.on.ca.             IN      AAAA

;; Query time: 90 msec
;; SERVER: 192.168.5.5#53(192.168.5.5)
;; WHEN: Wed Oct 21 14:09:10 EDT 2015
;; MSG SIZE  rcvd: 46

Но запросы к контроллеру публичного домена работают как положено:

grant@home-ssh:~$ dig @4.2.2.1 smtpgw1.gov.on.ca -t AAAA

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @4.2.2.1 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 269
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 8192
;; QUESTION SECTION:
;smtpgw1.gov.on.ca.             IN      AAAA

;; Query time: 136 msec
;; SERVER: 4.2.2.1#53(4.2.2.1)
;; WHEN: Wed Oct 21 14:11:19 EDT 2015
;; MSG SIZE  rcvd: 46

Как я уже сказал, я пробовал это в двух разных сетях и доменах. Один из них - это совершенно новый домен, который определенно имеет все настройки по умолчанию для DNS. Другой был перенесен на Server 2012, поэтому некоторые старые настройки 2003/2008 года могли быть перенесены. Я получаю одинаковые результаты на них обоих.

Отключение EDNS с dmscnd /config /enableednsprobes 0исправлениями. Я вижу много результатов поиска о том, что EDNS является проблемой в Server 2003, но не так много, что соответствует тому, что я вижу в Server 2012. Ни у одного брандмауэра нет проблем с EDNS. Отключение EDNS должно быть временным обходным решением - оно предотвращает использование DNSSEC и может вызвать другие проблемы.

Я также видел некоторые сообщения о проблемах с Server 2008R2 и EDNS, но в тех же сообщениях говорится, что все исправлено в Server 2012, поэтому он должен работать должным образом.

Я также попытался включить журнал отладки для DNS. Я вижу ожидаемые пакеты, но это не дает мне большого понимания того, почему возвращается SERVFAIL. Вот соответствующие части журнала отладки DNS-сервера:

Первый пакет - запрос от клиента к моему DNS-серверу

16.10.2015 9:42:29 0974 ПАКЕТ 000000EFF1BF01A0 UDP Rcv 172.16.0.254 a61e Q [2001 D NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
Информация о UDP-вопросе в 000000EFF1BF01A0
  Розетка = 508
  Удаленный адрес 172.16.0.254, порт 50764
  Time Query = 4556080, в очереди = 0, Expire = 0
  Длина буфера = 0x0fa0 (4000)
  Длина сообщения = 0x002e (46)
  Сообщение:
    XID 0xa61e
    Флаги 0x0120
      QR 0 (ВОПРОС)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      РД 1
      РА 0
      Z 0
      CD 0
      AD 1
      RCODE 0 (NOERROR)
    QCOUNT 1
    СЧЕТ 0
    NSCOUNT 0
    АРКОУНТ ​​1
    РАЗДЕЛ ВОПРОСА:
    Смещение = 0x000c, RR count = 0
    Имя "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    ОТВЕТ РАЗДЕЛ:
      опорожнить
    РАЗДЕЛ ВЛАСТИ:
      опорожнить
    ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ:
    Смещение = 0x0023, RR count = 0
    Имя "(0)"
      ТИП ОПТ (41)
      КЛАСС 4096
      TTL 0
      ДЛЕН 0
      ДАННЫЕ   
        Размер буфера = 4096
        Rcode Ext = 0
        Rcode Full = 0
        Версия = 0
        Флаги = 0

Второй пакет - запрос от моего DNS-сервера к их DNS-серверу

16.10.2015 9:42:29 0974 ПАКЕТ 000000EFF0A22160 UDP Snd 204.41.8.237 3e6c Q [0000 NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
Информация о UDP-вопросе на 000000EFF0A22160
  Socket = 9812
  Удаленный адрес 204.41.8.237, порт 53
  Время запроса = 0, в очереди = 0, срок действия = 0
  Длина буфера = 0x0fa0 (4000)
  Длина сообщения = 0x0023 (35)
  Сообщение:
    XID 0x3e6c
    Флаги 0x0000
      QR 0 (ВОПРОС)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      РД 0
      РА 0
      Z 0
      CD 0
      Н.э. 0
      RCODE 0 (NOERROR)
    QCOUNT 1
    СЧЕТ 0
    NSCOUNT 0
    АРКОУНТ ​​0
    РАЗДЕЛ ВОПРОСА:
    Смещение = 0x000c, RR count = 0
    Имя "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    ОТВЕТ РАЗДЕЛ:
      опорожнить
    РАЗДЕЛ ВЛАСТИ:
      опорожнить
    ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ:
      опорожнить

Третий пакет - ответ от их DNS-сервера (NOERROR)

16.10.2015 9:42:29 0974 ПАКЕТ 000000EFF2188100 UDP Rcv 204.41.8.237 3e6c RQ [0084 A NERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
Информация об ответе UDP на 000000EFF2188100
  Socket = 9812
  Удаленный адрес 204.41.8.237, порт 53
  Time Query = 4556080, в очереди = 0, Expire = 0
  Длина буфера = 0x0fa0 (4000)
  Длина сообщения = 0x0023 (35)
  Сообщение:
    XID 0x3e6c
    Флаги 0x8400
      QR 1 (ОТВЕТ)
      OPCODE 0 (QUERY)
      AA 1
      TC 0
      РД 0
      РА 0
      Z 0
      CD 0
      Н.э. 0
      RCODE 0 (NOERROR)
    QCOUNT 1
    СЧЕТ 0
    NSCOUNT 0
    АРКОУНТ ​​0
    РАЗДЕЛ ВОПРОСА:
    Смещение = 0x000c, RR count = 0
    Имя "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    ОТВЕТ РАЗДЕЛ:
      опорожнить
    РАЗДЕЛ ВЛАСТИ:
      опорожнить
    ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ:
      опорожнить

Четвертый пакет - ответ от моего DNS-сервера клиенту (SERVFAIL)

16.10.2015 9:42:29 0974 ПАКЕТ 000000EFF1BF01A0 UDP Snd 172.16.0.254 a61e RQ [8281 DR SERVFAIL] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
Информация об ответе UDP на 000000EFF1BF01A0
  Розетка = 508
  Удаленный адрес 172.16.0.254, порт 50764
  Время запроса = 4556080, в очереди = 4556080, срок действия = 4556083
  Длина буфера = 0x0fa0 (4000)
  Длина сообщения = 0x002e (46)
  Сообщение:
    XID 0xa61e
    Флаги 0x8182
      QR 1 (ОТВЕТ)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      РД 1
      РА 1
      Z 0
      CD 0
      Н.э. 0
      RCODE 2 (SERVFAIL)
    QCOUNT 1
    СЧЕТ 0
    NSCOUNT 0
    АРКОУНТ ​​1
    РАЗДЕЛ ВОПРОСА:
    Смещение = 0x000c, RR count = 0
    Имя "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    ОТВЕТ РАЗДЕЛ:
      опорожнить
    РАЗДЕЛ ВЛАСТИ:
      опорожнить
    ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ:
    Смещение = 0x0023, RR count = 0
    Имя "(0)"
      ТИП ОПТ (41)
      КЛАСС 4000
      TTL 0
      ДЛЕН 0
      ДАННЫЕ   
        Размер буфера = 4000
        Rcode Ext = 0
        Rcode Full = 2
        Версия = 0
        Флаги = 0

Другие примечания:

  • Одна из сетей имеет собственный доступ к Интернету по протоколу IPv6, а другая - нет (но стек IPv6 включен на серверах с настройками по умолчанию). Кажется, не проблема с сетью IPv6
  • Это не влияет на все домены. Например, dig @192.168.5.5 -t AAAA serverfault.comвозвращает NOERROR, а результатов нет. То же самое для google.comправильного возврата IPv6-адресов Google.
  • Пробовал устанавливать исправления от KB3014171 , без разницы.
  • Обновление от KB3004539 уже установлено.

Редактировать 7 ноября 2015 г.

Я установил еще один компьютер, не подключенный к домену Server 2012R2, установил роль DNS-сервера и протестировал его с помощью команды nslookup -type=aaaa smtpgw1.gov.on.ca localhost. У него НЕ те же проблемы.

Обе виртуальные машины находятся на одном и том же хосте и в одной сети, что исключает любые проблемы с сетью / брандмауэром. Теперь все зависит от уровня исправления или от того, что вы являетесь членом домена / контроллером домена.

Редактировать 8 ноября 2015 г.

Применены все обновления, без разницы. Прошел двойную проверку, не было ли каких-либо различий в конфигурации между моим новым тестовым сервером и настройками DNS моего контроллера домена, и есть - на контроллере домена была настроена пересылка.

Теперь, я уверен, что я пробовал с форвардерами и без в моих начальных тестах, но я пробовал это только с digLinux-машины. Я получаю немного другие результаты с настройками пересылки и без нее (пробовал с Google, OpenDNS, 4.2.2.1 и моими DNS-серверами провайдера), когда я использую nslookup на машине с Windows.

С комплектом форвардера я получаю Server failed.

Без форвардера (поэтому он использует корневые DNS-серверы) я получаю No IPv6 address (AAAA) records available for smtpgw1.gov.on.ca.

Но это не то же самое, что я получаю для других доменов, у которых нет записей IPv6 - nslookup на окнах просто не возвращает результатов для других доменов.

С или без серверов пересылки, по- digпрежнему отображается SERVFAILдля этого имени при запросе моего сервера Windows DNS.

Существует небольшая разница между проблемным доменом и другим, который кажется актуальным, даже если я не использую свой DNS-сервер Windows:

dig -t aaaa @8.8.8.8 smtpgw1.gov.on.ca не имеет ответов и не имеет раздела полномочий.

dig -t aaaa @8.8.8.8 serverfault.comне возвращает ответов, но имеет раздел полномочий. Как и большинство других доменов, которые я пробую, независимо от того, какой резолвер я использую.

Так почему же отсутствует этот раздел полномочий, и почему DNS-сервер Windows рассматривает его как сбой, а другие DNS-серверы этого не делают?

Грант
источник
Вы выполняете эти тесты с сервера Exchange? Если нет, я бы предложил сделать это, чтобы вы могли видеть это с точки зрения Exchange. Возможно, вы захотите попробовать запустить SMTPDiag с сервера Exchange. Я бы посоветовал запустить его при выполнении захвата сети на сервере Exchange, чтобы вы могли просмотреть подробную информацию о работе сети / DNS. SMTPDiag - это старый инструмент, но это инструмент командной строки, который не требует установки, поэтому я думаю, что он должен работать на всех версиях Exchange. - microsoft.com/en-us/download/details.aspx?id=11393
joeqwerty
Некоторые сетевые устройства не распознают и будут отклонять пакеты EDNS. Ваша сетевая команда недавно представила новое устройство / настройки? Чтобы исключить эту возможность, попробуйте разрешить запись AAAA на google.com, которая должна возвращать адрес IPv6.
сильная линия
Пакеты @strongline EDNS проходят нормально. AAAA запись для Google работает, как и пара других сайтов, которые я знаю, работает IPv6. Единственный шанс, который произошел недавно, - избавиться от нашего последнего сервера DC / DNS Server 2008R2 и заменить его на 2012R2.
Грант
IPv6 каким-либо образом отключен в вашей среде?
Джим Б.
@JimB на самом деле ни включен, ни отключен ... На серверах работает стек IPv6, потому что он включен по умолчанию, с любой конфигурацией по умолчанию. Шлюз и интернет не имеют никакого IPv6 вообще.
Грант

Ответы:

3

Я еще немного заглянул в сеть и немного почитал. Запрос на запись AAAA, если он не существует, возвращает SOA. Оказывается, SOA для другого домена, который запрашивается. Я подозреваю, что именно поэтому Windows отклоняет ответ. Запросите AAAA для mx.atomwide.com. Ответ SOA для lgfl.org.uk. Я посмотрю, сможем ли мы добиться прогресса в этой информации. РЕДАКТИРОВАТЬ: только для дальнейшего использования, временно отключив «Безопасный кэш от загрязнения» позволит запросу успешно. Не идеально, но доказывает, что проблема в хитрой записи DNS. RFC4074 также хорошая ссылка - Введение и Раздел.

Шрути Чавла
источник
Я собираюсь попытаться проверить это сегодня в моей среде, но я думаю, что вы можете быть на что-то!
Грант
Также я отредактировал вашу ссылку - здесь не разрешены подписи и ссылки не по теме, и я не хочу, чтобы ваш отличный ответ был удален за это.
Грант
0

Согласно KB832223

причина

Эта проблема возникает из-за функциональности расширенных механизмов для DNS (EDNS0), которая поддерживается в Windows Server DNS.

EDNS0 допускает большие размеры пакетов протокола пользовательских дейтаграмм (UDP). Однако некоторые программы брандмауэра могут не разрешать пакеты UDP размером более 512 байт. Поэтому эти DNS-пакеты могут быть заблокированы брандмауэром.

Microsoft имеет следующее разрешение:

разрешение

Чтобы решить эту проблему, обновите программу брандмауэра, чтобы распознавать и разрешать пакеты UDP, размер которых превышает 512 байт. Для получения дополнительной информации о том, как это сделать, обратитесь к производителю вашей программы брандмауэра.

Microsoft предлагает следующее решение этой проблемы:

Временное решение

Чтобы обойти эту проблему, отключите функцию EDNS0 на DNS-серверах под управлением Windows. Для этого выполните следующие действия:

В командной строке введите следующую команду и нажмите клавишу ВВОД:

dnscmd /config /enableednsprobes 0

Примечание Введите 0 (ноль), а не букву «O» после «enableednsprobes» в этой команде.

Тим Пеннер
источник
Я видел эту статью - межсетевые экраны, которые я тестировал с обоими пропущенными большими пакетами dns, без проблем, о чем свидетельствует, что он отлично работал на Linux. Отключение edns предотвращает использование DNSSEC, поэтому, хотя оно решает проблему, это не является хорошим решением.
Грант
извините, я не осознавал, что руководство Microsoft будет распространяться и на Linux. Из любопытства, у вас есть какая - либо операционная система Microsoft, которая работает через брандмауэр?
Тим Пеннер