Что такое TXT-запись?
TXT (Text) — тип записи DNS, хранящий произвольные текстовые строки, связанные с доменом. Изначально TXT-записи предназначались для заметок, читаемых человеком, но теперь необходимы для машиночитаемых данных: политик аутентификации почты, проверки владения доменом и настроек отдельных сервисов.
Распространённые применения TXT-записей
Аутентификация почты
SPF (Sender Policy Framework):example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
Указывает, какие серверы могут отправлять почту от имени домена.
DKIM (DomainKeys Identified Mail):google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0..."
Содержит открытый ключ для проверки подписи электронной почты.
DMARC (Domain-based Message Authentication, аутентификация домена и электронной почты):_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:[email protected]"
Определяет политику аутентификации почты и отчётности.
Проверка домена
Google Search Console:example.com. IN TXT "google-site-verification=abc123..."
Microsoft 365:
example.com. IN TXT "MS=ms12345678"
Проверка сертификата SSL:
_dnsauth.example.com. IN TXT "validation-token-from-ca"
Другие применения
Проверка домена Facebook:example.com. IN TXT "facebook-domain-verification=xyz789"
Идентичность Keybase:
_keybase.example.com. IN TXT "keybase-site-verification=..."
Данные пользовательского приложения:
_app.example.com. IN TXT "config=value123"
Формат TXT-записи
Базовый синтаксис
name IN TXT "text content here"
Несколько TXT-записей
У домена может быть несколько TXT-записей:
example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
example.com. IN TXT "google-site-verification=abc123"
example.com. IN TXT "facebook-domain-verification=xyz789"
Длинные TXT-записи
Строка TXT ограничена 255 символами, но несколько строк можно объединить:
selector._domainkey.example.com. IN TXT (
"v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
"...long key continues..."
)
DNS-клиенты автоматически объединяют эти строки.
Проверка TXT-записей
С помощью dig:dig example.com TXT
; ANSWER SECTION:
example.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all"
Проверка TXT конкретного поддомена:
dig _dmarc.example.com TXT
dig selector._domainkey.example.com TXT
С помощью DomScan:
curl "https://domscan.net/v1/health?domain=example.com"
# Returns hasTXT and email authentication status
Лучшие практики для TXT-записей
Для аутентификации почты
1. Всегда настраивайте SPF, DKIM и DMARC вместе
2. Используйте одну SPF-запись: несколько SPF-записей вызывают проблемы
3. Ограничивайте число SPF-запросов десятью: превышение лимита приводит к сбоям
4. Тестируйте до внедрения: используйте онлайн-проверки
Для проверки домена
1. Не удаляйте проверочные TXT-записи: сервисы могут повторно запрашивать проверку
2. Документируйте назначение каждой TXT-записи: записи могут накапливаться
3. Удаляйте неиспользуемые записи: очищайте записи отключённых сервисов
Для пользовательских приложений
1. Используйте префиксы с подчёркиванием (_app.example.com), чтобы избежать конфликтов
2. Документируйте формат: со временем его легко забыть
3. Учитывайте TTL: для часто меняющихся настроек используйте меньшие TTL
Вопросы безопасности
Раскрытие информации
TXT-записи общедоступны. Не храните в них секретные данные:
# Bad - exposes internal info
example.com. TXT "internal-api-key=secret123"
Уязвимости SPF
Слишком разрешающие SPF-записи могут позволить подделывать почту:
# Bad - allows anyone to send
example.com. TXT "v=spf1 +all"
# Good - restrictive
example.com. TXT "v=spf1 include:_spf.google.com -all"
Устранение проблем с TXT-записями
Несколько SPF-записей: допустима только одна SPF-запись на домен. Объедините политики в одну запись. Обрезанные записи: если TXT-запись выглядит неполной, проверьте кавычки и объединение строк. Задержки распространения: изменения TXT распространяются с учётом TTL. Перед изменением записей проверки уменьшите TTL.TXT-записи — универсальный инструмент DNS, но при расширении их применения ими нужно управлять особенно внимательно.