DNS отвечает NOERROR, но IP-адреса в ответе нет? Этот код сам по себе не подтверждает, что имя пригодно для открытия сайта. Возможен NODATA: запрошенной записи, например A, нет, хотя само имя существует.
Сначала проверьте полный ответ для A и AAAA, затем CNAME и источник данных. Исправлять нужно только подтверждённый разрыв: отсутствие A не требует вмешательства, если сервис намеренно работает только по IPv6, а отсутствие AAAA нормально для сайта только с IPv4.
Чем NODATA отличается от NXDOMAIN
По терминологии DNS в RFC 9499, NXDOMAIN сообщает об отсутствии имени, а NODATA — об отсутствии записи нужного типа. NODATA не является отдельным кодом в заголовке: его определяют по содержимому ответа с NOERROR.
Например, у www.example.com может быть AAAA, но не быть A. Тогда запрос IPv4-адреса получит NODATA, а запрос IPv6-адреса — положительный ответ. При NXDOMAIN нужно проверять существование имени; если есть цепочка CNAME, отрицательный результат может относиться к её конечной цели.
1. Сохраните полный ответ, а не пустую строку
Для проверки нужен dig из набора DNS-утилит. Команды ниже только читают DNS; замените пример точным именем сайта, без схемы HTTPS и пути страницы:
dig www.example.com. A
dig www.example.com. AAAA
Точка в конце обозначает полное доменное имя. Пока не используйте +short: пустой вывод скрывает различия между отсутствием данных и другими результатами. Формат команды и параметры описаны в документации BIND.
Читайте результат в таком порядке:
- В
QUESTION SECTIONсверьте имя и тип: A для IPv4, AAAA для IPv6. - В заголовке найдите
status: NOERROR, NXDOMAIN, SERVFAIL и REFUSED требуют разных действий. - В
ANSWER SECTIONищите нужный адрес или CNAME. - В
AUTHORITY SECTIONпосмотрите, есть ли SOA зоны либо только NS следующей зоны.
NOERROR без нужного адреса и с SOA в Authority — характерная картина NODATA. Пустой Answer с NS без SOA может быть направлением к другим серверам, то есть referral, а не окончательным ответом об отсутствии записи. Это различие описано в разделе 2.2 RFC 2308.
2. Проверьте, не заканчивается ли ответ на CNAME
Если вместо адреса получен CNAME, имя является псевдонимом. Запросите A и AAAA для цели, указанной справа от CNAME, и продолжайте до конечного имени.
Условный пример: www.example.com ведёт на edge.example.net. Наличие самого алиаса ещё не даёт браузеру IP: конечная цель тоже должна разрешаться в подходящий адрес. При NXDOMAIN у цели проверяют цель, а не добавляют случайную A-запись рядом с CNAME.
Если цель обслуживает CDN или хостинг, сверяйте её с настройками подключения у провайдера. Не подставляйте IP, найденный на другом сайте: адрес может относиться к чужому узлу или меняться по правилам сервиса.
3. Установите, где отсутствует запись
Рекурсивный резолвер получает ответы за клиента и кэширует их. Авторитетный сервер обслуживает саму DNS-зону. Чтобы решить, править ли запись или разбирать кэш, нужны ответы обоих уровней.
Уточните актуальные NS в делегировании домена и у DNS-провайдера. Если поддомен делегирован отдельно, спрашивать нужно серверы его зоны. Для первичного просмотра NS родительского домена:
dig example.com. NS
Затем опросите каждый авторитетный NS нужной зоны; в примере замените имя сервера:
dig @ns1.example.net www.example.com. A +norecurse
dig @ns1.example.net www.example.com. AAAA +norecurse
Флаг aa указывает на авторитетный ответ. Если вместо него пришло направление к другой зоне, продолжите проверку на её NS: отсутствие A у родительского сервера ещё ничего не доказывает.
Как выбрать следующий шаг
- Все авторитетные NS подтверждают NODATA для нужного типа. Сверьте схему сервиса. Если IPv4 предусмотрен, проверьте A в активной зоне: точное имя, значение и публикацию изменения. Аналогично проверяется AAAA, если нужен IPv6.
- Авторитетные NS отвечают по-разному. Разберите расхождение ответов DNS-серверов, прежде чем ждать клиентский кэш.
- На авторитетных NS адрес уже есть, у резолвера ещё NODATA. Проверьте отрицательный кэш. Его разбор вынесен в отдельное руководство; повторное удаление и создание записи не ускоряет обновление чужого кэша.
- Получен SERVFAIL, REFUSED или тайм-аут. Это другая ветка диагностики; не объявляйте запись отсутствующей по такому результату.
Когда исправление можно считать проверенным
После изменения повторите те же запросы ко всем авторитетным NS и к резолверу, на котором наблюдался сбой. Ожидаемый результат — адрес предусмотренного типа либо CNAME с разрешающейся конечной целью. Сохранившееся отсутствие ненужного типа записи не является дефектом.
Затем откройте исходный HTTPS-адрес: DNS-ответ не проверяет сертификат, виртуальный хост и приложение. Один успешный запрос также не подтверждает доступность из всех сетей. Web-Puls помогает регулярно контролировать публичный URL, но мониторинг не заменяет разбор конкретного DNS-ответа.
Если непонятно, какая зона отвечает за имя, или CNAME ведёт во внешний сервис, можно отправить заявку на диагностику. Укажите публичное имя, тип записи, время с часовым поясом, ожидаемую схему и обезличенные ответы DNS; специалист оценит задачу и предложит формат работ. Пароли, ключи и данные входа не нужны.