DNS и разрешение имён

Отрицательное кэширование DNS

Определение

Отрицательное кэширование DNS — это хранение резолвером доказанного отсутствия: самого имени (NXDOMAIN) или только запрошенного типа у существующего имени (NODATA). Срок хранения берётся из SOA отрицательного ответа и не связан с TTL записи, которую добавят позже.

Также ищут: negative cache DNS · кэширование NXDOMAIN · Negative DNS caching

Зачем это знать

Новая запись может уже существовать в зоне, но оставаться невидимой клиенту из-за прежнего отрицательного ответа. Отличать такой исход от ошибки связи нужно до очистки кэшей и изменения DNSSEC.

Связи из словаря

Карта понятия

Отрицательное кэширование DNS
Доказательная часть

Что подтверждено

  1. NXDOMAIN означает отсутствие имени, а NODATA — отсутствие запрошенного типа у существующего имени. Обычный ответ NODATA имеет код NOERROR без нужного типа в ответе; его отличают от делегирования и других исходов по полному сообщению.

    Граница применимости: Классификация отрицательных ответов RFC 2308; одна пустая секция без разбора вопроса и авторитетных сведений не устанавливает NODATA.

  2. Временная ошибка разрешения или проверки — не доказанный NXDOMAIN либо NODATA; она кэшируется по отдельным коротким ограничениям.

    Граница применимости: Ошибки разрешения DNS и авторитетные отрицательные ответы.

  3. В обычном авторитетном отрицательном ответе срок отрицательного кэширования берётся как минимум TTL записи SOA и поля SOA.MINIMUM. Это не TTL будущей записи, которую добавят позже.

    Граница применимости: Получение отрицательного TTL для NXDOMAIN и NODATA по RFC 2308; получатель использует оставшийся срок.

  4. NXDOMAIN кэшируется для имени и класса, а NODATA — для имени, типа и класса. Отсутствие AAAA поэтому само по себе не означает отсутствие A у того же имени.

    Граница применимости: Базовые ключи отрицательного кэша RFC 2308; расширенное использование отрицательных доказательств за пределами этой модели здесь не описывается.

  5. Отрицательный ответ без SOA не следует сохранять как обычный отрицательный ответ по правилам RFC 2308: нет предусмотренного основания для его срока. Отдельное кэширование ошибок имеет другой контракт.

    Граница применимости: Рекомендация RFC 2308, §5; это не запрет на кэширование сбоев по RFC 9520.

  6. В подписанной зоне отсутствие имени или типа может сопровождаться проверяемым доказательством DNSSEC. Сам текст NXDOMAIN или NODATA не заменяет проверку соответствующих подписанных данных.

    Граница применимости: Базовые доказательства отсутствия с NSEC по RFC 4034 и RFC 4035; другие форматы доказательств рассматриваются отдельно.

  7. Проверка ещё не созданного имени может заполнить отрицательный кэш. При вводе новой службы предлагаем отдельно проверить её авторитетные данные и срок ранее полученного отрицательного ответа.

    Граница применимости: Редакторский сценарий эксплуатации, выведенный из алгоритма разрешения и отрицательного кэширования; не утверждает, что любой запрос обязательно попадёт в любой кэш.

Граница терминов

Не путать

Отрицательное кэширование DNS Срок кэширования DNS — TTL

Обычный TTL принадлежит существующему набору записей. Отрицательный ответ имеет срок, связанный с SOA; эти таймеры не обновляют друг друга автоматически.

Отрицательное кэширование DNS Проверка DNSSEC

Установленное отсутствие данных и ошибка проверки DNSSEC — разные исходы. Сохранённый сбой проверки не является доказательством NXDOMAIN даже при одинаковой жалобе приложения.

Перед спецификацией

Что проверить

  1. Различите NXDOMAIN, NODATA, SERVFAIL, отказ и тайм-аут.
  2. Сохраните точное имя, тип записи и используемый резолвер.
  3. Проверьте SOA отрицательного ответа и оставшийся отрицательный TTL.
  4. Сопоставьте SOA.MINIMUM с TTL самой SOA, не подставляя TTL будущего A.
  5. Убедитесь, что отсутствие одного типа не выдано за отсутствие всего имени.
  6. Для подписанной зоны проверьте отрицательное доказательство, а ошибки — отдельно.
  7. После создания записи сравните авторитетный ответ с сохранённым исходом рабочего резолвера.
Открытые основания

Первоисточники

  • Стандарт6
  • Первичная спецификация
    Negative Caching of DNS Queries Internet Engineering Task Force · RFC 2308, March 1998 · проверено

    Определяет cacheable NXDOMAIN и NODATA responses и получение negative TTL из SOA.

    Утверждения: 01 · 02 · 03 · 04 · 05 · 07

  • Первичная спецификация
    Negative Caching of DNS Resolution Failures Internet Engineering Task Force · RFC 9520, December 2023 · проверено

    Ограничивает caching transient resolution failures и DNSSEC validation failures.

    Утверждения: 02 · 05

  • Первичная спецификация
    Resource Records for the DNS Security Extensions Internet Engineering Task Force · RFC 4034, March 2005 · проверено

    Определяет DNSKEY, RRSIG, NSEC и DS resource records и canonical form для signatures.

    Утверждения: 06

  • Первичная спецификация
    Protocol Modifications for the DNS Security Extensions Internet Engineering Task Force · RFC 4035, March 2005 · проверено

    Определяет signing, authoritative serving и resolver validation behavior DNSSEC.

    Утверждения: 06

  • Первичная спецификация
    Domain Names — Concepts and Facilities Internet Engineering Task Force · RFC 1034, November 1987 · проверено

    Определяет иерархию DNS, zones, authoritative data, referrals и resolver algorithm.

    Утверждения: 07

  • Первичная спецификация
    Clarifications to the DNS Specification Internet Engineering Task Force · RFC 2181, July 1997 · проверено

    Уточняет RRset, TTL, authoritative ranking и canonical-name semantics.

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие