Типы DNS-записей: A, AAAA, CNAME, MX, TXT и NS
Основы4 минРедакция Innovialabs
Коротко
DNS-записи говорят интернету, куда вести запросы к домену: A и AAAA указывают на IP-адрес сервера, CNAME — на другое имя, MX — на почтовый сервер, TXT хранит проверки и политики почты, а NS определяет, кто управляет зоной.
Коротко: что такое DNS-запись
DNS — это справочник, который переводит имя домена в адрес, понятный компьютерам. DNS-запись — одна строка в этом справочнике: имя, тип, значение и TTL (сколько секунд её можно держать в кэше).
Все записи домена хранятся в DNS-зоне у вашего DNS-провайдера: это может быть регистратор, хостинг или отдельный сервис вроде Cloudflare. Типов записей много, но для обычного бизнеса хватает шести.
Шесть основных типов
| Тип | Что делает | Пример значения |
|---|---|---|
| A | Указывает имя на IPv4-адрес | 203.0.113.10 |
| AAAA | Указывает имя на IPv6-адрес | 2001:db8::10 |
| CNAME | Делает имя псевдонимом другого имени | myapp.hosting-provider.com |
| MX | Указывает, какой сервер принимает почту | 10 mx.mail-provider.com |
| TXT | Хранит произвольный текст: проверки, SPF, DKIM, DMARC | v=spf1 include:_spf.mail-provider.com ~all |
| NS | Сообщает, какие серверы отвечают за зону | ns1.dns-provider.com |
A и AAAA
A — самая базовая запись: «сайт example.com живёт на сервере с таким IP». AAAA делает то же для IPv6. Если ваш сервер не имеет IPv6-адреса, AAAA не нужна, а ошибочная AAAA-запись может сделать сайт недоступным для части посетителей.
CNAME
CNAME говорит: «это имя — то же самое, что вон то». Так обычно подключают www или поддомен к облачной платформе, которая сама меняет свои IP. Важные ограничения:
- CNAME нельзя ставить на корень домена (
example.com) по стандарту — для этого провайдеры предлагают ALIAS, ANAME или «CNAME flattening». - Если на имени есть CNAME, других записей на этом же имени быть не должно.
MX
MX указывает почтовый сервер для домена. Число перед именем — приоритет: чем меньше, тем выше. Значение MX должно быть именем хоста, а не IP-адресом и не CNAME.
TXT
TXT — универсальное поле для текста. На практике в нём живут:
- подтверждение владения доменом для Google Search Console, почтовых сервисов, SSL-провайдеров;
- SPF — список серверов, которым разрешено отправлять почту от имени домена;
- DKIM — публичный ключ для подписи писем (обычно на имени вида
selector._domainkey); - DMARC — политика обработки писем, не прошедших проверку (на имени
_dmarc).
NS
NS определяет, какие DNS-серверы авторитетны для домена. Меняются они у регистратора, когда вы переносите управление DNS к другому провайдеру. Без особой причины трогать их не нужно.
Какие записи нужны для типичных задач
Чтобы открылся сайт:
- A (и AAAA, если есть IPv6) для
example.com; - CNAME для
wwwна основной домен или адрес платформы.
Чтобы работала почта на домене:
- MX — от почтового провайдера;
- TXT с SPF;
- TXT с DKIM-ключом;
- TXT с DMARC на
_dmarc.
Чтобы подтвердить домен в сервисе:
- TXT (реже CNAME) со значением, которое выдаёт сервис.
Пример минимальной зоны:
example.com. 3600 A 203.0.113.10
www.example.com. 3600 CNAME example.com.
example.com. 3600 MX 10 mx.mail-provider.com.
example.com. 3600 TXT "v=spf1 include:_spf.mail-provider.com ~all"
_dmarc.example.com. 3600 TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
Частые ошибки
- Две SPF-записи на одном домене. SPF должна быть одна: несколько источников объединяют через
include:в одной строке. - CNAME на корне домена — многие панели его не дадут создать, а если дадут, может сломаться почта.
- Лишняя точка или её отсутствие. В одних панелях имя пишется относительно зоны (
www), в других полностью (www.example.com.). Иначе получитсяwww.example.com.example.com. - Удаление старых MX при переезде сайта. Сайт и почта независимы: меняя хостинг, не трогайте почтовые записи.
- Ожидание мгновенного эффекта. Изменения применяются с учётом TTL, поэтому старые значения могут жить в кэшах ещё какое-то время.
Как проверить записи
Посмотреть, что реально отдаёт DNS, можно командой:
dig example.com A +short
dig example.com MX +short
dig example.com TXT +short
В Windows аналог — nslookup -type=MX example.com.