(Переписываю большую часть этого вопроса, так как многие мои оригинальные тесты не имеют значения в свете новой информации)
У меня проблемы с 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 моего контроллера домена, и есть - на контроллере домена была настроена пересылка.
Теперь, я уверен, что я пробовал с форвардерами и без в моих начальных тестах, но я пробовал это только с dig
Linux-машины. Я получаю немного другие результаты с настройками пересылки и без нее (пробовал с 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-серверы этого не делают?