DNS-записи
Коротко: Записи в зоне DNS, связывающие домены с определённой информацией — самое известное IP-адреса, но также почтовые серверы, текстовые сведения или псевдонимы.
Подробнее: У каждой DNS-записи есть тип (например, A, AAAA, CNAME, MX, TXT, NS), имя, значение и TTL. У домена может быть любое число записей разных типов; какие серверы имён авторитетны для домена, определяется записями NS.
Подробности
Важнейшие типы записей
- A — домен → адрес IPv4, безусловно самый распространённый тип записи
- AAAA — домен → адрес IPv6, современный аналог A
- CNAME — домен → другое доменное имя (псевдоним); по стандарту не может существовать вместе с другими типами записей на том же имени
- MX — домен → ответственный почтовый сервер, с номером приоритета, когда записей несколько
- TXT — произвольный свободный текст, например для подтверждения домена или для SPF/DKIM/DMARC (защита от подмены адреса электронной почты)
- NS — домен → авторитетный сервер имён, определяет, у кого вообще «последнее слово» по зоне
- Другие, более редкие типы: SRV (записи служб для определённых протоколов вроде SIP/XMPP), CAA (определяет, какие центры сертификации могут выпускать сертификаты SSL), PTR (обратный DNS, IP → домен вместо наоборот)
Полный путь разрешения
Типичный запрос работает так: клиент спрашивает у своего резолвера DNS (часто провайдера интернета или публичного вроде 1.1.1.1/8.8.8.8) про emzett-digital.com. Если ответа ещё нет в кэше резолвера, он сначала обращается к одному из 13 кластеров корневых серверов (верхний уровень глобальной иерархии DNS), который отсылает его к серверу TLD .com. Тот, в свою очередь, отсылает к авторитетным серверам имён домена, названным в записи NS, которые наконец возвращают подходящую A-запись. Весь этот путь называется «рекурсивным разрешением», потому что резолвер проходит всю цепочку от имени клиента, вместо того чтобы оставлять каждый отдельный промежуточный шаг самому клиенту (что теоретически тоже возможно — «итеративное разрешение»).
На практике благодаря кэшированию этот полный путь обычно проходится только один раз на резолвер: все последующие запросы (от любых клиентов, использующих тот же резолвер) обслуживаются непосредственно из кэша, пока не истечёт соответствующий TTL, без повторного прохода всей цепочки. Поэтому же изменения DNS вступают в силу не везде сразу — им сначала нужно «пройти» через все кэши, на что может уйти время до истечения первоначального TTL.
Файлы зон и управление
Все записи домена вместе образуют его «зону», которой управляют через файл зоны у соответствующего DNS-провайдера (например, Cloudflare, Vercel DNS, сам регистратор). Файл зоны следует стандартизированному текстовому формату с записью SOA (Start of Authority, содержит метаданные вроде первичного сервера имён и серийного номера для синхронизации), за которой следуют собственно записи ресурсов. Изменения зоны вносятся через веб-интерфейс или API провайдера и затем — в зависимости от TTL изменённых записей — распространяются на все резолверы по всему миру за секунды–часы.
Частые ловушки
Классическая ошибка — поставить запись CNAME на то же имя, где уже есть запись A или MX: это нарушает RFC 1034 и приводит к непредсказуемому поведению в зависимости от резолвера. Так же многие забывают заблаговременно понизить TTL перед запланированной миграцией DNS, из-за чего само переключение становится видимым везде не за минуты, а за часы.
См. также: A-запись, AAAA-запись, CNAME, MX-запись, TXT-запись, NS-запись, TTL