MX запись
MX-запись (Mail Exchanger record) — это тип ресурсной записи системы доменных имён (DNS), который определяет почтовый сервер, отвечающий за приём электронной почты для данного домена. MX-запись указывает, на какой хост (или хосты) следует направлять письма, адресованные пользователям домена (например, user@example.com). Помимо имени сервера, запись содержит приоритет (preference value), который задаёт порядок использования серверов при их множественности: чем меньше числовое значение приоритета, тем выше приоритет сервера.
История и стандартизация
MX-запись была введена в 1986 году в рамках спецификации RFC 974 (автор — Крейг Партридж) для замены более раннего механизма доставки почты, основанного на записях типа A (адрес хоста). До появления MX-записей почтовые серверы для домена определялись по записи A самого домена, что не позволяло гибко настраивать маршрутизацию и резервирование. Стандарт MX-записей был уточнён и расширен в последующих RFC, включая RFC 1035 (1987), который закрепил формат DNS-сообщений, и RFC 5321 (2008), описывающий протокол SMTP. Сегодня MX-запись является неотъемлемой частью инфраструктуры электронной почты в интернете.
Структура и синтаксис
MX-запись в зонном файле DNS выглядит следующим образом:
`` example.com. IN MX 10 mail.example.com. ``
Каждый элемент записи имеет строгое значение:
- Имя домена (example.com.) — домен, для которого настраивается почтовый обмен. Если имя не заканчивается точкой, DNS-сервер автоматически дописывает имя текущей зоны.
- Класс (IN) — стандартный класс интернет-ресурсов (Internet).
- Тип записи (MX) — указывает, что это почтовая запись.
- Приоритет (10) — целое число от 0 до 65535. Определяет очерёдность использования серверов: чем меньше число, тем выше приоритет. При равенстве приоритетов почтовый сервер отправляющей стороны выбирает сервер случайным образом.
- Целевой хост (mail.example.com.) — полностью определённое доменное имя (FQDN) почтового сервера, которое должно быть разрешено в запись типа A или AAAA. Использование IP-адресов в MX-записи не допускается.
Пример с несколькими серверами (резервирование):
`` example.com. IN MX 10 mail1.example.com. example.com. IN MX 20 mail2.example.com. example.com. IN MX 30 mail3.example.com. ``
В этом случае почта сначала будет направляться на mail1 (приоритет 10), при его недоступности — на mail2 (20), затем на mail3 (30).
Принцип работы
Когда почтовый сервер отправляющей стороны (MTA — Mail Transfer Agent) собирается доставить письмо на адрес user@example.com, он выполняет следующие шаги:
- Запрос MX-записи — MTA отправляет DNS-запрос на получение MX-записей для домена example.com.
- Сортировка по приоритету — полученные записи сортируются по возрастанию приоритета. При равенстве приоритетов порядок может быть произвольным (обычно случайным для балансировки нагрузки).
- Разрешение целевого хоста — для каждого целевого хоста из MX-записи выполняется DNS-запрос записи типа A (IPv4) или AAAA (IPv6) для получения IP-адреса.
- Попытка соединения — MTA пытается установить SMTP-соединение с сервером, имеющим наивысший приоритет (наименьшее числовое значение). Если соединение не удаётся (сервер недоступен, тайм-аут, ошибка), MTA переходит к следующему по приоритету серверу.
- Доставка — при успешном соединении письмо передаётся по протоколу SMTP.
Если MX-запись для домена отсутствует, некоторые MTA могут попытаться доставить почту непосредственно на запись A самого домена (так называемое fallback-поведение, описанное в RFC 5321), однако это не является обязательным и часто блокируется из соображений безопасности.
Применение и значение
MX-записи используются для:
- Направления почты на внешние почтовые сервисы — например, для доменов, использующих Google Workspace или Яндекс 360, MX-записи указывают на серверы этих провайдеров.
- Организации резервирования и отказоустойчивости — несколько MX-записей с разными приоритетами позволяют сохранить приём почты при выходе из строя основного сервера.
- Балансировки нагрузки — при равных приоритетах запросы распределяются между несколькими серверами.
- Разделения почтового трафика — например, для разных поддоменов (mail.example.com vs corporate.example.com) могут быть настроены разные MX-записи.
Особенности и ограничения
- MX-запись не может указывать на CNAME-запись (алиас). Целевой хост должен быть записью типа A или AAAA. Это требование закреплено в RFC 2181 и RFC 1912.
- Приоритет 0 — наивысший приоритет. Однако использование нулевого приоритета не рекомендуется, так как некоторые старые MTA могут некорректно его обрабатывать.
- MX-запись не влияет на исходящую почту — она определяет только входящие серверы. Для отправки почты используются другие механизмы (например, настройки SMTP-клиента или SPF-записи).
- Валидность MX-записи проверяется при настройке домена — если указанный целевой хост не существует или не имеет записи A/AAAA, почта не будет доставляться.
Взаимодействие с другими DNS-записями
MX-запись тесно связана с другими типами DNS-записей, обеспечивающими безопасность и аутентификацию электронной почты:
- SPF (Sender Policy Framework) — запись TXT, которая указывает, какие серверы имеют право отправлять почту от имени домена. SPF не заменяет MX, но дополняет его, защищая от подделки отправителя.
- DKIM (DomainKeys Identified Mail) — запись TXT, содержащая открытый ключ для проверки цифровой подписи письма. Не зависит от MX, но используется для подтверждения целостности сообщения.
- DMARC (Domain-based Message Authentication, Reporting & Conformance) — запись TXT, описывающая политику обработки писем, не прошедших проверку SPF и DKIM. DMARC может ссылаться на MX-записи для определения легитимных серверов.
Проверка и настройка
Для проверки MX-записей используются утилиты командной строки, такие как nslookup, dig или host. Пример команды:
`` dig example.com MX ``
Ответ содержит список MX-записей с приоритетами и целевыми хостами. Администраторы доменов настраивают MX-записи через панель управления DNS-провайдера или регистратора доменов. Типичная ошибка — указание неполного доменного имени (без точки в конце) или использование IP-адреса вместо FQDN.
Интересные факты
- В ранних версиях DNS (до RFC 974) почта доставлялась напрямую на хост, указанный в записи A домена. Это приводило к проблемам, если почтовый сервер находился на другом IP-адресе.
- Максимальное количество MX-записей для одного домена не ограничено стандартом, но на практике рекомендуется использовать не более 5–10 для упрощения управления и снижения времени обработки DNS-запросов.
- Некоторые почтовые серверы (например, Microsoft Exchange) могут игнорировать MX-записи с приоритетом выше 100, считая их ошибочными.
Критика и альтернативы
Основная критика MX-записей связана с тем, что они не обеспечивают шифрование или аутентификацию трафика — это решается на уровне протоколов SMTP (STARTTLS) и дополнительных DNS-записей (SPF, DKIM, DMARC). В качестве альтернативы для небольших доменов иногда используется запись типа A самого домена (fallback), но такой подход не рекомендуется из-за отсутствия резервирования и гибкости.
Источники
- RFC 974 — Mail Routing and the Domain System (1986)
- RFC 1035 — Domain Names — Implementation and Specification (1987)
- RFC 5321 — Simple Mail Transfer Protocol (2008)
- RFC 2181 — Clarifications to the DNS Specification (1997)
- RFC 1912 — Common DNS Operational and Configuration Errors (1996)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →