Обычный TTL принадлежит существующему набору записей. Отрицательный ответ имеет срок, связанный с SOA; эти таймеры не обновляют друг друга автоматически.
Отрицательное кэширование DNS
Определение
Отрицательное кэширование DNS — это хранение резолвером доказанного отсутствия: самого имени (NXDOMAIN) или только запрошенного типа у существующего имени (NODATA). Срок хранения берётся из SOA отрицательного ответа и не связан с TTL записи, которую добавят позже.
Также ищут: negative cache DNS · кэширование NXDOMAIN · Negative DNS caching
Зачем это знать
Новая запись может уже существовать в зоне, но оставаться невидимой клиенту из-за прежнего отрицательного ответа. Отличать такой исход от ошибки связи нужно до очистки кэшей и изменения DNSSEC.
Карта понятия
Что подтверждено
NXDOMAIN означает отсутствие имени, а NODATA — отсутствие запрошенного типа у существующего имени. Обычный ответ NODATA имеет код NOERROR без нужного типа в ответе; его отличают от делегирования и других исходов по полному сообщению.
Граница применимости: Классификация отрицательных ответов RFC 2308; одна пустая секция без разбора вопроса и авторитетных сведений не устанавливает NODATA.
Временная ошибка разрешения или проверки — не доказанный NXDOMAIN либо NODATA; она кэшируется по отдельным коротким ограничениям.
Граница применимости: Ошибки разрешения DNS и авторитетные отрицательные ответы.
В обычном авторитетном отрицательном ответе срок отрицательного кэширования берётся как минимум TTL записи SOA и поля SOA.MINIMUM. Это не TTL будущей записи, которую добавят позже.
Граница применимости: Получение отрицательного TTL для NXDOMAIN и NODATA по RFC 2308; получатель использует оставшийся срок.
NXDOMAIN кэшируется для имени и класса, а NODATA — для имени, типа и класса. Отсутствие AAAA поэтому само по себе не означает отсутствие A у того же имени.
Граница применимости: Базовые ключи отрицательного кэша RFC 2308; расширенное использование отрицательных доказательств за пределами этой модели здесь не описывается.
Отрицательный ответ без SOA не следует сохранять как обычный отрицательный ответ по правилам RFC 2308: нет предусмотренного основания для его срока. Отдельное кэширование ошибок имеет другой контракт.
Граница применимости: Рекомендация RFC 2308, §5; это не запрет на кэширование сбоев по RFC 9520.
В подписанной зоне отсутствие имени или типа может сопровождаться проверяемым доказательством DNSSEC. Сам текст NXDOMAIN или NODATA не заменяет проверку соответствующих подписанных данных.
Граница применимости: Базовые доказательства отсутствия с NSEC по RFC 4034 и RFC 4035; другие форматы доказательств рассматриваются отдельно.
Проверка ещё не созданного имени может заполнить отрицательный кэш. При вводе новой службы предлагаем отдельно проверить её авторитетные данные и срок ранее полученного отрицательного ответа.
Граница применимости: Редакторский сценарий эксплуатации, выведенный из алгоритма разрешения и отрицательного кэширования; не утверждает, что любой запрос обязательно попадёт в любой кэш.
Не путать
Установленное отсутствие данных и ошибка проверки DNSSEC — разные исходы. Сохранённый сбой проверки не является доказательством NXDOMAIN даже при одинаковой жалобе приложения.
Что проверить
- Различите NXDOMAIN, NODATA, SERVFAIL, отказ и тайм-аут.
- Сохраните точное имя, тип записи и используемый резолвер.
- Проверьте SOA отрицательного ответа и оставшийся отрицательный TTL.
- Сопоставьте SOA.MINIMUM с TTL самой SOA, не подставляя TTL будущего A.
- Убедитесь, что отсутствие одного типа не выдано за отсутствие всего имени.
- Для подписанной зоны проверьте отрицательное доказательство, а ошибки — отдельно.
- После создания записи сравните авторитетный ответ с сохранённым исходом рабочего резолвера.
Первоисточники
- Negative Caching of DNS Resolution Failures
Ограничивает caching transient resolution failures и DNSSEC validation failures.
- Resource Records for the DNS Security Extensions
Определяет DNSKEY, RRSIG, NSEC и DS resource records и canonical form для signatures.
Утверждения: 06
- Protocol Modifications for the DNS Security Extensions
Определяет signing, authoritative serving и resolver validation behavior DNSSEC.
Утверждения: 06
- Domain Names — Concepts and Facilities
Определяет иерархию DNS, zones, authoritative data, referrals и resolver algorithm.
Утверждения: 07
- Clarifications to the DNS Specification
Уточняет RRset, TTL, authoritative ranking и canonical-name semantics.