Краткий ответ на ваш вопрос: RFC 1035 говорит,
NS-записи приводят как к обычной дополнительной обработке раздела, чтобы найти
запись типа А и, при использовании в реферале, специальный поиск
зона, в которой они находятся для получения клейкой информации.
... раздел дополнительных записей содержит RR
которые относятся к запросу, но не являются строго ответами на
вопрос.
... При составлении ответа RR, которые должны быть вставлены в
дополнительный раздел, но дубликаты RR в ответе или полномочии
разделы, могут быть опущены в дополнительном разделе.
Таким образом, суть в том, что, на мой взгляд, если ответ не содержит запись A, соответствующую записи NS, то есть некоторый раздел, что-то, вероятно, где-то неправильно настроено. Но, как гласит старая уловка, «будь либерален в том, что ты принимаешь»; если вы собираетесь делать запросы, вам нужно будет обрабатывать подобные ситуации. DNS наводнен такими проблемами.
Более длинный ответ требует вопроса: как вы получаете оригинальный DNS-сервер, на котором вы запускаете поиск MX?
То, что вы делаете, - это нерекурсивный запрос: если первый запрашиваемый сервер не знает ответа, он указывает вам на другой сервер, который «ближе» в иерархии DNS к домену, который вы ищете, и Вы должны сделать последующие запросы, чтобы найти запись MX. Если вы запускаете запрос на одном из корневых серверов, я думаю, что вам придется самостоятельно следовать указателям NS, как и вы.
Однако, если в вашем приложении сконфигурирован начальный DNS-сервер (т. Е. Элемент конфигурации вручную или через DHCP), вы сможете сделать рекурсивный запрос, используя флаг Recusion Desired, который отключит повторный поиск на настроенный DNS-сервер. В этом случае вы просто получите значение записи MX в своем первом ответе. С другой стороны, рекурсивные запросы являются необязательными, и ваш локальный DNS-сервер может их не поддерживать (что было бы странно, поскольку исторически многие клиентские библиотеки полагались на рекурсивные поиски).
В любом случае, лично я хотел бы поблагодарить вас за просмотр записей MX. Мне приходилось иметь дело с системами, которые хотели отправлять почту, но не могли выполнять поиск DNS, а количество и разнообразие странных и неприятных хаков, которые они использовали, оставили меня с эмоциональными шрамами.