Назад | Перейти на главную страницу

Почему мой запрос DNS MX возвращает запись SOA?

Я использую PowerShell для получения массива записей MX. Мне интересно, почему следующая команда возвращает записи SOA, если я указал MX для параметра типа.

Resolve-DnsName $SomeDomainName -type MX -Server 8.8.8.8 -DnsOnly -ErrorAction Stop

То, что вы видите, почти наверняка просто отрицательный ответ.

Есть два типа ответов «не найдено»: NXDOMAIN и NODATA.

  • NXDOMAIN означает, что название запрошенный в запросе вообще не существует.
    Этот тип ответа имеет статус NXDOMAIN и соответствующие SOA запись в AUTHORITY раздел (ничего в ANSWER раздел).

  • NODATA означает, что название запрошенный в запросе существует, но нет записей запрошенного тип для этого имени. Этот тип ответа имеет статус NOERROR (не имеет собственного статуса) и имеет соответствующий SOA запись в AUTHORITY раздел (ничего в ANSWER раздел).

Я быстро взглянул на Resolve-DnsName и у меня сложилось впечатление, что его непоследовательное поведение никак не помогает вам понять, что происходит.
В случае NXDOMAIN ответ выдает ошибку, но в случае NODATA response он возвращает ответ, как если бы он был успешным. Это просто кажется странным, эти два типа ответов аналогичны режимам отказа, но по какой-то причине они трактуются совершенно по-разному. Resolve-DnsName.

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