Для чего нужна MX-запись в DNS?

«Для чего нужна MX-запись в DNS?» — вопрос из категории Сети, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

MX-запись (Mail Exchange) — это тип DNS-записи, который указывает почтовым серверам отправителей, на какие именно серверы следует доставлять электронную почту для определенного домена.

Принцип работы: Когда сервер отправляет письмо на адрес user@example.com, он выполняет DNS-запрос для домена example.com на получение MX-записей. В ответ он получает список серверов с приоритетами и пытается доставить письмо сначала на сервер с наименьшим числом приоритета.

Структура и пример:

example.com.    IN  MX  10 mail-server-1.example.com.
example.com.    IN  MX  20 mail-backup.example.com.
  • Приоритет (10, 20): Чем меньше число, тем выше приоритет. Отправитель сначала пытается соединиться с mail-server-1.example.com (приоритет 10). Если он недоступен, происходит попытка доставки на mail-backup.example.com (приоритет 20).
  • Значение записи: Должно быть полное доменное имя (FQDN) почтового сервера, которое, в свою очередь, должно иметь корректную A или AAAA запись, разрешаемую в IP-адрес.

Важные нюансы для DevOps/SRE:

  1. Отсутствие MX-записи: Если MX-запись отсутствует, отправители могут попытаться доставить почту на A-запись домена (так называемое "fallback to A"), но это поведение не гарантировано стандартами.
  2. TTL (Time to Live): Устанавливайте разумный TTL для MX-записей (например, 1 час). Слишком высокий TSL замедлит переход на резервный сервер в случае аварии.
  3. SPF/DKIM/DMARC: Для успешной доставки и защиты от спама MX-записи должны работать в связке с этими записями, которые указывают, с каких IP-адресов или серверов разрешена отправка писем от имени вашего домена.
  4. Настройка почтового сервера: Сервер, указанный в MX-записи (например, mail-server-1.example.com), должен быть настроен принимать почту для домена example.com (часто через виртуальные домены в Postfix/Exim).