Как проверить наличие глубоких поддоменов, даже если промежуточные не существуют?

Как проверить наличие глубоких поддоменов, даже если промежуточные не существуют?

Предположим, что test.example.comне существует и выдает NXDOMAINпри запуске digна нем, но я знаю, что subdomain.test.example.comсуществует и выдает NOERRORпри выполнении того же самого, есть ли способ проверить, что глубокий поддомен существует, даже если промежуточный поддомен может не обязательно там быть. В частности, я ищу подсказки при зондировании или запросе, subdomain.test.example.comкоторые указывают на существование глубокого поддомена?

решение1

Предположим, что test.example.com не существует и возвращает NXDOMAIN при запуске dig на нем, но я знаю, что subdomain.test.example.com существует.

Это невозможно, согласно спецификациям DNS. Или, говоря по-другому: это означает, что авторитетный сервер имен для этой зоны сломан.

ВидетьRFC 8020: NXDOMAIN: на самом деле под ним ничего нет

Когда итеративный кэширующий DNS-резолвер получает ответ NXDOMAIN, он ДОЛЖЕН сохранить его в своем кэше, а затем все имена и наборы записей ресурсов (RRsets) на этом узле или ниже ДОЛЖНЫ считаться недостижимыми. Последующие запросы на такие имена ДОЛЖНЫ вызывать ответ NXDOMAIN.

решение2

Я согласен с Патриком, но хотел бы внести больше ясности в то, каковы на самом деле ожидания:

Если у вас есть записи в , subdomain.test.example.comно нет ни одной в test.example.com, это не значит, что test.example.com«не существует», термин для этого пустого типа узла —пустой нетерминал(иногда ЛОР).

Когда вы запрашиваете какое-либо имя, которое является пустым нетерминалом, правильным типом ответа являетсянет NXDOMAIN(что означало бы «такого имени нет»), а скорее NODATA(что означает «нет записей для запрошенного типа», в случае ENT, независимо от того, какой тип вы запрашиваете).

Для ясности NODATAтип ответа: код ответа NOERROR, SOAв AUTHORITYразделе.

Указание на то, что естьмогсуществуют дополнительные поддомены, заключается в том, что полученный вами ответ не был NXDOMAIN. Если вы также определили, что записей по этому имени нет (т. е. это пустой нетерминал), должен быть какой-то поддомен (на один или несколько уровней ниже), где на самом деле что-то есть.

Другой аспект, который подразумевает вопрос и о котором рассказал Патрик, заключается в том, что некоторые реализации серверов имен глючат и отправляют NXDOMAINдаже в ситуациях, когда это не является соответствующим ответом.
Этот тип недостатка реализации приводит к обслуживанию несогласованных данных, когда то, что должно быть древовидной структурой, на самом деле разбито на части, которые не связаны. Такое поведение особенно несостоятельно с точки зрения любого резолвера, который полагается на ранее наблюдаемые NXDOMAINответы, которые на самом деле что-то означают, а также не могут быть представлены в DNSSEC.

Связанный контент