Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья5 мин чтенияПросмотры0

DNS-запись создана, но NXDOMAIN остался: проверяем отрицательный кэш

Сравниваем авторитетный ответ и ответ резолвера через dig, читаем SOA и считаем срок отрицательного кэша без изменения DNS.

Комментарии 0

Янтарная стеклянная перегородка перед открытым проходом с голубым светом — образ сохранённого отрицательного ответа.
В этой статье

Новый поддомен уже добавлен в DNS, но часть пользователей по-прежнему получает ответ «имя не существует». Повторное сохранение той же записи обычно не объясняет расхождение. Резолвер мог запомнить прежний отрицательный ответ — ещё до появления записи. Сначала нужно сравнить ответ авторитетного сервера с ответом резолвера, которым пользуется проблемная сторона.

Инструкция относится к установленной утилите dig из BIND 9.18; синтаксис сверён с документацией 9.18.41 на 27 сентября 2026 года. Нужен обычный доступ к командной строке Linux и разрешённые DNS-запросы к выбранным серверам. Права администратора для этих запросов не требуются. Стендового воспроизведения отрицательного кэша здесь не проводилось. Команды только запрашивают DNS; они не меняют зону и не очищают кэш.

Отделите отсутствие имени от других ошибок

Ответ со статусом NXDOMAIN означает, что запрошенного имени не существует в контексте полученного ответа. Успешный статус NOERROR без записи нужного типа — другая ситуация. Например, отсутствие AAAA ещё не говорит об отсутствии A. Ошибка SERVFAIL также не доказывает отрицательное кэширование отсутствующего имени: она требует отдельного разбора.

Для проверки понадобятся три значения. NAME — полное имя, заканчивающееся точкой; RESOLVER_IP — адрес резолвера проблемного клиента; AUTH_IP — адрес авторитетного сервера нужной зоны. Это заглушки: замените их своими значениями до запуска. Адрес авторитетного сервера уточните у администратора зоны. Не выбирайте произвольный публичный резолвер для внутренней корпоративной зоны.

Сохраните ответ проблемного резолвера

dig @RESOLVER_IP NAME A +noall +comments +answer +authority

Здесь A задаёт тип записи, +noall убирает выводимые по умолчанию секции, а следующие параметры возвращают комментарии с заголовком ответа, секцию ответа и секцию авторитетных данных. В заголовке найдите статус. В секции AUTHORITY отрицательного ответа ищите запись SOA. Сохраните весь результат, время с часовым поясом и адрес, который подставили в команду.

Запрос делает сетевое обращение и может обратиться к кэшу резолвера либо вызвать дальнейшее разрешение имени. Нескольких ручных запросов достаточно; непрерывный опрос не нужен. Тайм-аут не равен NXDOMAIN: если сервер не отвечает или доступ запрещён, остановитесь и уточните доступ штатным способом.

Сравните с авторитетным ответом

dig @AUTH_IP NAME A +norecurse +noall +comments +answer +authority

Параметр +norecurse снимает запрос рекурсии. Проверьте признак авторитетного ответа aa в заголовке: одного адреса сервера недостаточно, чтобы считать результат ответом нужной зоны. Если получена отсылка, отказ или ответ без нужного признака, сравнение пока не завершено. У зоны может быть несколько авторитетных серверов; расхождение между ними нужно выяснить отдельно.

Допустим, авторитетные серверы уже возвращают новую запись, а выбранный резолвер — NXDOMAIN с записью SOA. Это совместимо с сохранённым отрицательным ответом. Но сравнение имеет смысл только для одного имени, типа записи и одной области видимости DNS. Разные корпоративные представления зоны способны законно давать разные ответы.

Если авторитетный сервер сам возвращает NXDOMAIN, ожидание очистки кэша клиента не исправит отсутствующую запись в проверяемом представлении зоны. Передавайте администратору именно этот результат, а не просьбу «ускорить обновление DNS».

Посчитайте отрицательный TTL

У отрицательного ответа тоже есть срок хранения. Согласно RFC 2308, при формировании такого ответа берётся меньшее из двух значений: TTL записи SOA и её поля MINIMUM. В кэшированном ответе TTL уменьшается по мере хранения. Поэтому TTL новой положительной записи нельзя использовать как таймер ранее сохранённого отрицательного ответа.

Учебный расчёт: TTL записи SOA равен 900 секундам, поле MINIMUM — 300. Исходный срок отрицательного ответа составит 300 секунд. Если конкретный резолвер сохранил его 120 секунд назад, в простой модели без повторного получения ответа останется около 180 секунд. Запись, созданная минуту назад с TTL 60 секунд, сама по себе не уменьшит эти 180 секунд.

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

Завершите проверку на нужном клиенте

После ожидаемого истечения срока повторите запрос тем же способом. Появление записи у выбранного резолвера подтверждает изменение его ответа. Затем проверьте приложение: браузер с собственным DNS, корпоративный агент или контейнер могут использовать иной путь. Исправный ответ одной утилиты не доказывает доступность сайта, сертификата и приложения.

Для передачи проблемы достаточно точного имени и типа, адресов опрошенных серверов, времён, статусов и записи SOA из отрицательного ответа. Внутренние имена и адреса передавайте только по разрешённому каналу. Такой набор отличает задержку известного кэша от ошибки зоны и не требует начинать диагностику с очистки всего подряд.

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.