Что вы видите
Каждый запрос уходит к публичному рекурсивному резолверу, который либо отвечает из своего кэша (показанный TTL — это время, оставшееся в этом кэше), либо спрашивает авторитативные серверы зоны. Поэтому два резолвера могут расходиться после изменения: один ещё держит старую запись, пока не истечёт её TTL. Сравнение резолверов делает это видимым; когда оба согласны с тем, чего вы ожидаете, изменение распространилось настолько, насколько это важно для большей части Интернета. Полное распространение — это просто «все кэши истекли», поэтому снижение TTL за день до изменения — единственный способ сделать его быстрым.
Типы записей вкратце
| Тип | Содержит | Типичная проверка |
|---|---|---|
| A / AAAA | адрес IPv4 / IPv6 | указывает ли сайт на нужный сервер |
| CNAME | псевдоним другого имени | не может сосуществовать с другими записями на том же имени; никогда на вершине зоны |
| MX | почтовые серверы с приоритетом | наименьшее число пробуется первым; цель должна иметь A/AAAA, а не CNAME |
| TXT | произвольный текст: SPF, DMARC, DKIM, подтверждение владения сайтом | ровно одна запись SPF |
| NS | авторитативные серверы имён | должны совпадать с тем, что делегирует родительская зона |
| SOA | параметры зоны: serial, refresh, retry, expire, minimum | serial увеличивается при каждом изменении; minimum — TTL отрицательного кэширования |
| CAA | какие удостоверяющие центры могут выпускать сертификаты | Let’s Encrypt требует issue "letsencrypt.org" или отсутствия CAA вообще |
| SRV | расположение сервиса: приоритет, вес, порт, цель | _sip._tcp, _xmpp-client._tcp, _minecraft._tcp |
| DS / DNSKEY | цепочка доверия DNSSEC | DS в родительской зоне должен соответствовать KSK в зоне; флаг AD означает успешную проверку |
| HTTPS / SVCB | привязка сервиса: ALPN (h2, h3), ECH, подсказки IP | то, что Cloudflare публикует для HTTP/3 и Encrypted Client Hello |
| TLSA | закрепление сертификатов DANE | в основном для SMTP между почтовыми серверами |
SPF и лимит в 10 запросов
Запись SPF перечисляет, кто может отправлять почту от имени домена. Каждый термин include:, a, mx, ptr, exists и redirect= стоит принимающему серверу одного DNS-запроса, и RFC 7208 ограничивает их общее число десятью, считая через все вложенные include. Превысьте его — и получатели возвращают permerror, который DMARC считает провалом, так что почта домена со слишком большим числом include начинает попадать в спам в тот день, когда провайдер добавит ещё один include в свою запись. Представление цепочки разрешает каждый include и показывает нарастающий итог; обычное решение — заменить include: диапазонами ip4: провайдера или убрать отправителей, которыми вы больше не пользуетесь. Include, которые не разрешаются ни в какую запись SPF, считаются «пустыми запросами» (void lookups), их допускается не более двух.
DMARC и DKIM
DMARC находится по адресу _dmarc.домен и говорит, что делать, когда ни SPF, ни DKIM не согласуются с адресом From: p=none — наблюдать, p=quarantine — в папку спама, p=reject — отклонить. Публичные ключи DKIM находятся по адресу селектор._domainkey.домен; селектор указан в теге s= заголовка DKIM-Signature любого отправленного вами письма, так что ищите его там, если не знаете. Распространённые селекторы: google (Google Workspace), selector1/selector2 (Microsoft 365), k1 (Mailchimp), default, mail, dkim.
Вопросы
Почему Cloudflare и Google дают разные ответы?
Кэширование. Один резолвер получил запись до вашего изменения и держит её, пока не истечёт TTL; другой получил её после. Дождитесь истечения старого TTL или снизьте TTL перед следующим изменением. Если после этого они всё ещё расходятся, ваши авторитативные серверы имён могут быть рассинхронизированы между собой (сравните serial SOA на каждом).
Почему записи нет, хотя я знаю, что она существует?
Проверьте точное имя: www.example.com и example.com — разные имена. CNAME на имени скрывает другие типы. Если статус NXDOMAIN, имени не существует вообще; NOERROR без ответов означает, что имя существует, но записи этого типа у него нет.
Что означает флаг DNSSEC (AD)?
Резолвер проверил ответ по цепочке доверия DNSSEC, и проверка прошла. Если зона подписана, а флага нет у обоих резолверов, запись DS в родительской зоне может не соответствовать ключу зоны (классика после переезда к другому DNS-провайдеру), и тогда домен недоступен для проверяющих резолверов.
Это то же самое, что dig или nslookup?
Почти. dig +dnssec example.com MX @1.1.1.1 задаёт тому же резолверу тот же вопрос. Эта страница использует DNS-over-HTTPS-эндпоинты резолверов, чтобы работать в браузере; она не может напрямую опросить ваши собственные серверы имён, поэтому для проверки авторитативных ответов используйте dig @ns1.yourdns.com.
Почему число запросов SPF отличается от другого инструмента?
Инструменты по-разному решают, считать ли модификатор redirect=, вложенные include и термины a/mx с явными аргументами. Эта страница следует RFC 7208, раздел 4.6.4: include, a, mx, ptr, exists и redirect считаются все, на каждом уровне вложенности; ip4, ip6 и all бесплатны.