DNS-записи: A, CNAME, MX, TXT и другие — что к чему
5 мин чтения Обновлено:
DNS-записи: A, CNAME, MX, TXT и другие — что к чему

DNS-записи: A, CNAME, MX, TXT и другие — что к чему

Как домен превращается в IP, зачем нужна каждая запись и что сломается, если удалить не ту

Почта перестала ходить после смены хостинга

Июнь 2024. Компания «ЛогистикаПро» переезжала с одного хостинга на другой. Системный администратор обновил A-запись — домен стал указывать на новый сервер. Сайт заработал, все обрадовались.

На следующее утро директор спросил: «Почему мне никто не пишет?» Проверили корпоративную почту — входящих писем за сутки: ноль. Исходящие уходили, но ответов не было.

Причина: при переезде забыли перенести MX-записи. Они всё ещё указывали на старый сервер, где почтовый сервис был отключен. Вся входящая корреспонденция уходила в никуда — без ошибок, без отказов, просто тихо исчезала. Заметить подобное вовремя помогает мониторинг DNS-записей.

Эта история показывает главный принцип: DNS — это не только про сайт. Это про почту, про защиту от спуфинга, про подтверждение владения доменом, про CDN и многое другое. Удалить или изменить «не ту» запись — значит сломать то, о чём вы даже не подумали.

Что такое DNS-записи

DNS (Domain Name System) — это распределённая база данных, которая хранит информацию о доменах. DNS-запись — это одна строка в этой базе: тип, имя, значение и параметры.

Когда браузеру нужно открыть сайт, он спрашивает DNS: «Какой IP у prufen.ru?». DNS отвечает: «185.165.123.10». Браузер открывает соединение с этим IP.

Но DNS отвечает не только на вопрос «какой IP». Он также говорит:

  • Куда доставлять почту (MX)
  • Как подтвердить владение доменом (TXT)
  • Кто отвечает за зону (NS)
  • Где находится IPv6-адрес (AAAA)
  • Какой сервер обрабатывает голосовые вызовы (SRV)

Каждая запись имеет TTL (Time To Live) — время в секундах, которое резолвер может кэшировать ответ. TTL=3600 означает: резолвер запомнит ответ на 1 час и в течение этого часа не будет переспрашивать.

Основные типы записей

A-запись — IPv4-адрес

Самая распространённая запись. Сопоставляет домен или поддомен с IPv4-адресом.

prufen.ru. 3600 IN A 185.165.123.10
www.prufen.ru. 3600 IN A 185.165.123.10
mail.prufen.ru. 3600 IN A 185.165.123.20

Если удалить A-запись — домен перестанет резолвиться в IP. Сайт не откроется. Ping скажет «Unknown host».

Особенность: можно иметь несколько A-записей для одного домена. Это простейший способ балансировки нагрузки (round-robin DNS) — запросы распределяются между IP по очереди.

AAAA-запись — IPv6-адрес

То же самое, что A, но для IPv6. Современный протокол с адресами длиной 128 бит (вместо 32 у IPv4).

prufen.ru. 3600 IN AAAA 2a03:6f00:1::5c35:7b0a

Если сайт имеет только A-запись, но не AAAA — пользователи с IPv6-only соединением (некоторые мобильные сети) не смогут открыть сайт. Google рекомендует иметь обе записи.

CNAME — каноническое имя (алиас)

CNAME делает один домен псевдонимом другого. Запрос к CNAME возвращает целевой домен, который затем резолвится в IP.

www.prufen.ru. 3600 IN CNAME prufen.ru.
cdn.prufen.ru. 3600 IN CNAME prufen.cdn.cloudflare.net.

Если IP изменится, достаточно обновить A-запись в одном месте — все CNAME подхватят изменение автоматически.

Важное ограничение: CNAME нельзя ставить на корневой домен (prufen.ru). Только на поддомены (www.prufen.ru). Для корня используйте ALIAS или ANAME, если регистратор поддерживает.

MX — почтовый обменник

Указывает, какие серверы принимают почту для домена. Может быть несколько MX с приоритетами.

prufen.ru. 3600 IN MX 10 mail.prufen.ru.
prufen.ru. 3600 IN MX 20 backup-mx.provider.ru.

Число (10, 20) — приоритет. Меньше = выше приоритет. Почта сначала пытается доставиться на сервер с приоритетом 10. Если он недоступен — на 20.

Если удалить MX-запись — почта не будет доставляться. Отправитель получит ошибку «MX record not found» или «Domain not found» через несколько часов.

TXT — текстовая запись

Произвольный текст, который хранится в DNS. Используется для подтверждения владения, настройки почтовой безопасности, справочной информации.

; Подтверждение владения для Google Search Console
prufen.ru. 3600 IN TXT "google-site-verification=abc123..."

; SPF — разрешённые серверы для отправки почты
prufen.ru. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"

; DKIM — цифровая подпись писем
selector._domainkey.prufen.ru. 3600 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."

TXT-записи часто используются в связке с MX для защиты от спуфинга:

  • SPF — указывает, какие серверы могут отправлять почту от имени домена
  • DKIM — цифровая подпись, подтверждающая, что письмо не было изменено
  • DMARC — политика обработки писем, не прошедших SPF/DKIM

NS — серверы имён

Указывает, какие DNS-серверы являются авторитетными для домена. Это главная запись — без неё никакая другая не будет работать.

prufen.ru. 3600 IN NS ns1.beget.com.
prufen.ru. 3600 IN NS ns2.beget.com.

Если изменить NS-записи — домен перестанет использовать текущие DNS-серверы и переключится на новые. Это распространённый способ переноса домена между хостингами. Но изменение NS требует 24-48 часов на распространение (propagation).

SRV — сервисная запись

Указывает адрес и порт для конкретного сервиса. Используется для SIP-телефонии, XMPP, Minecraft, Microsoft 365 и других сервисов.

; Microsoft Teams / Skype for Business
_sip._tls.prufen.ru. 3600 IN SRV 100 1 443 sipdir.online.lync.com.

PTR — обратная запись

Сопоставляет IP-адрес с доменом (обратно A-записи). Не хранится в зоне домена, а в специальных зонах in-addr.arpa.

; Обратная запись для IP 185.165.123.10
10.123.165.185.in-addr.arpa. 3600 IN PTR prufen.ru.

PTR важна для почты: многие почтовые серверы отклоняют письма с IP, у которых нет PTR или PTR не совпадает с доменом отправителя.

Таблица: все записи в одном месте

Тип Зачем Если удалить TTL обычно
A IPv4-адрес сайта Сайт не откроется 300–3600
AAAA IPv6-адрес сайта IPv6-пользователи не зайдут 300–3600
CNAME Алиас на другой домен Поддомен перестанет работать 300–3600
MX Почтовые серверы Почта не будет доставляться 3600–86400
TXT Текст, SPF, DKIM, DMARC Почта в спам, нет верификации 300–3600
NS DNS-серверы домена Домен перестанет резолвиться 86400–172800
SRV Адрес сервиса и порт Сервис (SIP, XMPP) не найдёт сервер 3600
PTR Обратная запись IP→домен Почта может уходить в спам 3600

DNS propagation: почему изменения не работают сразу

Когда вы меняете A-запись в панели управления, изменение применяется мгновенно на авторитетных DNS-серверах. Но пользователи по всему миру продолжают видеть старый IP — потому что их провайдеры и устройства кэшировали предыдущий ответ.

Сколько ждать:

TTL Время Где применяется
300 5 минут Динамические записи, CDN
3600 1 час Стандарт для A, CNAME, MX
86400 24 часа NS-записи
172800 48 часов Корневые NS-записи в TLD

Лайфхак перед переездом: за 24 часа до смены IP уменьшите TTL записи до 300 (5 минут). После переезда подождите старый TTL, затем верните TTL обратно. Так переезд пройдёт быстрее для всех пользователей.

Мониторинг DNS-записей

DNS-записи меняются редко, но последствия ошибки — катастрофические. Поэтому достаточно проверять их 1 раз в день — это поймёт любое несанкционированное изменение за сутки, а не через неделю.

Как мониторить

  • Свой скрипт — bash/Python, который делает dig/nslookup и сравнивает с эталонными значениями. Запуск по cron раз в день.
  • Внешние сервисы — Пруфен, Pingdom, UptimeRobot, StatusCake — многие умеют проверять DNS-записи
  • Ручная проверка — whois + dig перед и после любых работ с доменом

Что проверять

Что проверяется:

  • A-запись — совпадает ли IP с ожидаемым
  • MX-записи — не пропали ли, не изменился ли приоритет
  • TXT (SPF) — присутствует ли запись, корректна ли директива
  • NS-записи — не были ли подменены
  • Изменения — если любая запись изменилась с прошлой проверки — алерт

Проверка важна, потому что изменения DNS часто происходят «молча» — хостер обновил IP, коллега экспериментировал с записями, злоумышленник получил доступ к панели управления. Мониторинг заметит это за сутки, а не через неделю, когда потерянная почта станет критичной. Проще всего вести такой контроль в сервисе мониторинга сайтов вместе с проверками доступности.

Комбинация проверок

Проверка Частота Зачем
DNS-записи 1 раз/день Контроль A, MX, TXT, NS
Домен 1 раз/день Срок действия домена
Доступность (Ping) 2–15 мин IP доступен
HTTP GET 2–15 мин Сайт отвечает на HTTP

Частые ошибки с DNS-записями

Ошибка 1: CNAME на корневом домене

Пытаетесь сделать prufen.ru. CNAME target.com. — это нарушает RFC. На корне нельзя CNAME, потому что CNAME не может сосуществовать с другими записями (а на корне всегда есть NS и SOA).

Решение: используйте ALIAS/ANAME, если регистратор поддерживает. Или A-запись на IP CDN.

Ошибка 2: Забыли точку в конце

Запись mail.prufen.ru CNAME gmail.com без точки в конце превратится в gmail.com.prufen.ru — несуществующий домен.

Решение: всегда ставьте точку в конце FQDN в DNS-записях: gmail.com.

Ошибка 3: Разные MX и A для mail

MX указывает на mail.prufen.ru, но A-запись для mail.prufen.ru отсутствует или указывает на другой сервер. Почта уходит на сервер без почтового сервиса.

Решение: убедитесь, что домен в MX имеет A-запись, и на этом IP работает почтовый сервер (25 порт открыт).

Ошибка 4: Слишком длинный TTL перед переездом

TTL=86400 (24 часа). Меняете IP. Ждёте 3 дня — половина пользователей всё ещё на старом сервере.

Решение: за сутки до переезда снизьте TTL до 300. После переезда — верните обратно.

Заключение

DNS-записи — это не «техническая магия для сисадминов». Это инфраструктура вашего присутствия в интернете. A-запись — это адрес, MX — почта, TXT — доверие, NS — авторитет.

Любая из этих записей может измениться случайно, злонамеренно или по невнимательности. Мониторинг DNS-записей — cron-скрипт или внешний сервис — стоит копейки по сравнению с восстановлением домена из Redemption Period или судом за украденный домен.

Проверьте свои DNS-записи: Пруфен → «Проверки» → «Добавить проверку» → «DNS-записи». Нужна помощь — пишите на support@prufen.ru.

Была ли статья полезна?

Начните мониторинг прямо сейчас

Бесплатный тариф — до 5 проверок. 150 ₽ на баланс при регистрации.

Создать аккаунт