TXT-запись DNS: что хранит и как настроить | Глоссарий FREEHOSTING

TXT-запись

DNS TXT Record
TXT-запись — Тип DNS-ресурса для хранения произвольного текста в зоне домена. Используется для подтверждения владения, политик SPF, DKIM, DMARC и человекочитаемых заметок.

Определение простыми словами

TXT-запись — это строка текста, которую владелец домена кладёт в зону через панель регистратора. Любой запросивший её через DNS получит обратно те же символы. На таком простом контейнере держится половина почтовой защиты, верификация Google Search Console, привязка SaaS и валидация ACME-сертификатов.

Формат описан в RFC 1035 и расширен в RFC 7208 для SPF. Один TXT может хранить несколько строк по 255 символов, общий лимит — 65 535 байт. На практике резолверы UDP начинают рубить ответ длиннее 512 байт, поэтому крупные записи через EDNS0 переключаются на TCP.

Сравнение TXT, A, CNAME и MX

Параметр TXT A CNAME MX
Что хранит Произвольный текст IPv4-адрес Алиас домена Почтовый сервер
Машинная обработка Правила парсинга у клиента Прямое использование Развёртывание Приоритет + хост
Может быть несколько Да Да Нет на одно имя Да, с приоритетом
Типичный TTL 300–3600 с 300–3600 с 300–3600 с 3600 с

Кейсы использования

  • Подтверждение владения доменом для Google Workspace, Yandex 360, GitHub Pages — добавляется одна TXT с уникальным токеном.
  • Хранение DKIM-публичного ключа в селекторе default._domainkey.
  • SPF и DMARC-политики для защиты почты от спуфинга.
  • Валидация Let’s Encrypt по протоколу dns-01: TXT-запись _acme-challenge подтверждает контроль над доменом для wildcard-сертификатов.
  • Negative: длинные записи (DKIM 4096-bit) ломаются у части регистраторов — приходится дробить или переходить на 2048 бит.
  • Negative: TTL по умолчанию 86 400 секунд означает, что ошибка в TXT будет жить сутки. Перед изменениями уменьшайте TTL заранее.

Технические детали

# Прочитать все TXT домена
dig +short TXT example.com

# Конкретный селектор DKIM
dig +short TXT mail._domainkey.example.com

# Проверить ACME-челлендж перед заказом cert
dig +short TXT _acme-challenge.example.com

# Добавить TXT через BIND9 (зонник)
cat >> /etc/bind/db.example.com <<EOF
@   IN  TXT  "v=spf1 mx include:_spf.google.com ~all"
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@example.com"
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqh..."
EOF
rndc reload

Если ответ TXT превышает 512 байт — резолвер должен поддержать EDNS0. Старые серверы вернут truncated и попросят TCP-запрос; некоторые корпоративные firewall режут DNS-over-TCP, что ломает DKIM.

Частые вопросы

Сколько TXT-записей может быть на одно имя?

Стандарт не ограничивает. Но для SPF разрешена одна v=spf1, для DMARC — одна v=DMARC1, иначе валидаторы возвращают permerror.

Почему провайдер обрезает мою длинную TXT?

Стандарт делит TXT на чанки по 255 символов. Многие панели делают это автоматически, но некоторые требуют ручного разбиения через кавычки.

Как быстро применяются изменения?

Не быстрее текущего TTL. Уменьшите TTL до 300 секунд за сутки до правок и поднимите обратно после.