bitlvl
RU

Разбор DNS-записей

Вставьте одну запись или целую секцию ответа. Каждая строка разбивается на поля с объяснением их значения и всего, что выглядит неправильно, например записи SPF со слишком большим числом запросов.

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

Как читать запись

У каждой DNS-записи одна и та же форма: имя TTL класс тип данные. TTL (в секундах) говорит, как долго резолверы могут её кэшировать; класс почти всегда IN; тип определяет, как читать данные. dig печатает ровно этот формат в своей ANSWER SECTION, так что его можно вставить сюда как есть.

Почтовая тройка

SPF (запись TXT на домене) перечисляет, какие серверы могут отправлять почту от имени домена. Она вычисляется слева направо; первый совпавший механизм решает, а квалификатор перед ним (- fail, ~ softfail, ? neutral, + pass) является результатом. Всего допускается только десять механизмов, вызывающих DNS-запросы (include, a, mx, ptr, exists, redirect), с учётом вложенных include; превышение даёт постоянную ошибку, которая делает запись бесполезной. Заканчивайте на -all или ~all; +all разрешает отправку всему Интернету.

DKIM публикует открытый ключ по адресу selector._domainkey.domain; отправляющий сервер подписывает каждое письмо закрытым ключом. Ключи должны быть RSA 2048 бит или Ed25519; многие получатели уже отклоняют 1024-битные.

DMARC (_dmarc.domain) сообщает получателям, что делать, когда ни SPF, ни DKIM не согласуются с доменом From (p=none, quarantine, reject), и куда отправлять сводные отчёты (rua=). Начните с p=none и отчётов, исправьте источники, которые не проходят проверку, затем переходите к reject.

Другие записи, которые стоит знать

  • CAA: какие удостоверяющие центры могут выпускать сертификаты для имени. 0 issue "letsencrypt.org" блокирует все остальные УЦ; отсутствие записи CAA разрешает всем.
  • SRV: приоритет, вес, порт и цель для сервиса вроде _sip._tcp или _xmpp-client._tcp. Побеждает меньший приоритет; вес распределяет нагрузку между равными.
  • SOA: serial зоны (увеличивайте при каждом изменении, чтобы вторичные серверы его заметили), таймеры refresh/retry/expire для вторичных серверов и TTL отрицательного кэширования для ответов NXDOMAIN.
  • HTTPS: сообщает браузерам, что сайт поддерживает HTTP/3 (alpn="h3,h2"), и несёт ключи Encrypted ClientHello.

Вопросы

Как получить записи моего домена?

dig example.com ANY уже почти не работает; запрашивайте каждый тип отдельно: dig example.com MX, dig TXT example.com, dig _dmarc.example.com TXT, dig +short example.com A. Вставьте строки ответа сюда.

Почему SPF сообщает «слишком много DNS-запросов»?

Считается каждый include:, a, mx, ptr, exists и redirect, в том числе внутри включаемых записей. Один только Google Workspace использует несколько. Разверните редко используемые include в диапазоны ip4/ip6 или уберите неиспользуемые сервисы.

Почему мой CNAME не работает на корневом домене?

CNAME не может сосуществовать с другими записями на том же имени, а на вершине зоны всегда есть записи SOA и NS. Используйте функцию ALIAS/ANAME/flattening вашего провайдера или записи A/AAAA.

Какой TTL использовать?

3600 (один час) — нормальное значение по умолчанию. Снизьте его до 300 за день до планируемого изменения записи, затем снова поднимите. Очень низкие TTL увеличивают нагрузку на авторитативные серверы и немного замедляют разрешение имён.