Предположим, что 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.