DNS-записи (A, AAAA, CNAME, MX, TXT)
| Базовая спецификация | RFC 1034, RFC 1035 (1987) |
|---|---|
| Формат записи | имя, TTL, класс, тип, данные |
| Адреса | A (IPv4), AAAA (IPv6, RFC 3596) |
| Почта | MX, а также TXT для SPF, DKIM, DMARC |
| Новые типы | CAA (RFC 8659), HTTPS и SVCB (RFC 9460, 2023) |
| Инструменты | dig, nslookup, host |
DNS-записи (ресурсные записи) — строки в зоне домена, которые хранят сведения о нём в системе доменных имён DNS: на какой IP-адрес указывает имя, куда доставлять почту, какие серверы обслуживают зону, какие центры сертификации могут выпускать сертификаты. Каждая запись имеет имя, тип, данные и TTL — время в секундах, в течение которого резолверы могут кэшировать ответ.[1]
Настройка записей — повседневная задача при запуске сайта, подключении почты, выпуске сертификатов и подтверждении владения доменом для внешних сервисов.
Формат
; имя TTL класс тип данные
example.com. 3600 IN A 93.184.215.14
example.com. 3600 IN AAAA 2606:2800:21f:cb07:6820:80da:af6b:8b2c
www.example.com. 3600 IN CNAME example.com.
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN TXT "v=spf1 include:_spf.google.com -all"
Символ @ в панелях управления обозначает сам домен (корень зоны, apex), точка в конце имени — полное имя, а класс почти всегда IN (интернет).
Основные типы
| Тип | Данные | Назначение |
|---|---|---|
| A | IPv4-адрес | имя → адрес IPv4 |
| AAAA | IPv6-адрес | имя → адрес IPv6[2] |
| CNAME | другое имя | псевдоним: «смотри туда» |
| MX | приоритет и имя почтового сервера | куда доставлять почту домена |
| TXT | произвольный текст | SPF, DKIM, DMARC, подтверждение владения |
| NS | имя DNS-сервера | какие серверы авторитетны для зоны |
| SOA | параметры зоны | основной сервер, контакт, серийный номер, таймеры |
| PTR | имя | обратная запись: адрес → имя |
| SRV | приоритет, вес, порт, хост | где находится служба (_sip._tcp) |
| CAA | центр сертификации | кому разрешено выпускать сертификаты |
| HTTPS, SVCB | параметры подключения | поддерживаемые протоколы (HTTP/3), альтернативные адреса, ключи ECH |
A и AAAA
Самые частые записи: связывают имя с адресом сервера. У одного имени может быть несколько записей A — клиенты выбирают из них, что даёт простейшую балансировку. Адресация описана в статье IP-адрес и подсети (CIDR).
CNAME
CNAME делает имя псевдонимом другого имени: www.example.com CNAME example.com, или shop.example.com CNAME shops.platform.net для внешнего сервиса. Ограничения: у имени с CNAME не может быть других записей, поэтому CNAME нельзя поставить на корень домена, где обязательно есть NS и SOA. Многие DNS-провайдеры обходят это псевдотипами ALIAS или ANAME («уплощение CNAME»), которые разрешают имя на своей стороне и отдают обычные A-записи.
MX
example.com. MX 10 mx1.mail.example.com.
example.com. MX 20 mx2.mail.example.com.
Меньшее число — выше приоритет; при недоступности первого сервера почта пойдёт на второй. MX должна указывать на имя с A/AAAA-записью, а не на CNAME или IP-адрес.
TXT
Универсальная запись для текстовых данных:
- SPF — какие серверы могут отправлять почту от имени домена:
v=spf1 include:_spf.google.com -all.[4] - DKIM — открытый ключ для проверки подписи писем, на имени вида
selector._domainkey.example.com. - DMARC — политика обработки писем, не прошедших проверку:
_dmarc.example.com TXT "v=DMARC1; p=quarantine". - Подтверждение владения доменом для Google, поисковых систем, облачных сервисов и выпуска сертификатов через DNS-проверку (Let's Encrypt и ACME).
CAA и HTTPS
Запись CAA ограничивает круг центров сертификации: example.com CAA 0 issue "letsencrypt.org" — остальным выпуск запрещён.[5] Записи HTTPS (RFC 9460) сообщают браузеру ещё до подключения, что сервер поддерживает HTTP/3, и могут нести ключи для шифрования ClientHello.[3]
TTL и распространение изменений
Изменение записи не видно мгновенно: резолверы хранят старый ответ до истечения TTL. Перед переездом сервера TTL заранее уменьшают (например, до 300 секунд), а после переключения снова увеличивают. Выражение «DNS распространяется до 48 часов» описывает именно кэширование; при разумном TTL изменения расходятся за минуты.
Проверка
dig example.com A +short # адрес IPv4
dig example.com AAAA +short
dig example.com MX
dig _dmarc.example.com TXT +short
dig example.com NS
dig @1.1.1.1 example.com # спросить конкретный резолвер
dig +trace example.com # пройти путь от корневых серверов
dig -x 93.184.215.14 +short # обратная запись (PTR)
Полезно сравнивать ответы разных резолверов и авторитетных серверов зоны, чтобы понять, обновилась ли запись и не мешает ли кэш. Обзор типов записей с примерами — в справочнике Cloudflare.[6]
Типичные ошибки
- CNAME на корне домена или рядом с другими записями того же имени.
- Несколько записей SPF вместо одной — проверка почты ломается.
- Забытая точка в конце полного имени в файлах зон:
mail.example.comпревращается вmail.example.com.example.com. - Высокий TTL перед запланированным переездом.
- Отсутствие обратной записи PTR для почтового сервера — письма попадают в спам.
См. также
Источники
- RFC 1035 — Domain Names: Implementation and Specification
- RFC 3596 — DNS Extensions to Support IP Version 6
- RFC 9460 — Service Binding and Parameter Specification via the DNS (SVCB and HTTPS)
- RFC 7208 — Sender Policy Framework (SPF)
- RFC 8659 — DNS Certification Authority Authorization (CAA)
- Cloudflare Learning — DNS records