bitlvl
RU

DNS-запросы и проверка почты

Введите домен. Страница запрашивает Cloudflare (1.1.1.1) и Google (8.8.8.8) по DNS-over-HTTPS прямо из вашего браузера, показывает каждую запись с её TTL, а для почтовых доменов проходит всю цепочку include SPF и читает DMARC и DKIM. Через наш сервер ничего не проходит.

 

Запросы идут напрямую из вашего браузера к cloudflare-dns.com и dns.google; имена, которые вы ищете, видны этим резолверам, как при любом DNS-запросе, и никому больше.

Результаты и сообщения этого инструмента выводятся на английском языке.

Что вы видите

Каждый запрос уходит к публичному рекурсивному резолверу, который либо отвечает из своего кэша (показанный TTL — это время, оставшееся в этом кэше), либо спрашивает авторитативные серверы зоны. Поэтому два резолвера могут расходиться после изменения: один ещё держит старую запись, пока не истечёт её TTL. Сравнение резолверов делает это видимым; когда оба согласны с тем, чего вы ожидаете, изменение распространилось настолько, насколько это важно для большей части Интернета. Полное распространение — это просто «все кэши истекли», поэтому снижение TTL за день до изменения — единственный способ сделать его быстрым.

Типы записей вкратце

ТипСодержитТипичная проверка
A / AAAAадрес IPv4 / IPv6указывает ли сайт на нужный сервер
CNAMEпсевдоним другого именине может сосуществовать с другими записями на том же имени; никогда на вершине зоны
MXпочтовые серверы с приоритетомнаименьшее число пробуется первым; цель должна иметь A/AAAA, а не CNAME
TXTпроизвольный текст: SPF, DMARC, DKIM, подтверждение владения сайтомровно одна запись SPF
NSавторитативные серверы имёндолжны совпадать с тем, что делегирует родительская зона
SOAпараметры зоны: serial, refresh, retry, expire, minimumserial увеличивается при каждом изменении; minimum — TTL отрицательного кэширования
CAAкакие удостоверяющие центры могут выпускать сертификатыLet’s Encrypt требует issue "letsencrypt.org" или отсутствия CAA вообще
SRVрасположение сервиса: приоритет, вес, порт, цель_sip._tcp, _xmpp-client._tcp, _minecraft._tcp
DS / DNSKEYцепочка доверия DNSSECDS в родительской зоне должен соответствовать 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 бесплатны.