DNS-записи (A, AAAA, CNAME, MX, TXT)

Материал из llmdocs — справочник разработчика
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 для почтового сервера — письма попадают в спам.

См. также

Источники

  1. RFC 1035 — Domain Names: Implementation and Specification
  2. RFC 3596 — DNS Extensions to Support IP Version 6
  3. RFC 9460 — Service Binding and Parameter Specification via the DNS (SVCB and HTTPS)
  4. RFC 7208 — Sender Policy Framework (SPF)
  5. RFC 8659 — DNS Certification Authority Authorization (CAA)
  6. Cloudflare Learning — DNS records