Серверные сети · проверено по источникам

SMTP: следующие адреса MX и петля relay

После поиска MX клиент SMTP получает кандидатов для следующей передачи. Несколько MX и несколько IP одного узла создают разные уровни выбора; relay дополнительно исключает маршруты, возвращающие письмо к нему самому.

Также ищут: SMTP MX failover · MX relay loop prevention

Практический смысл

Почему это важно

Практическое пояснение: резервный MX полезен лишь вместе с правилами очереди и последующей передачи. При проверке маршрута нужны список кандидатов, ответы DNS и роль текущего сервера, а не одна строка MX.

Доказательная часть

Что подтверждено

  1. SMTP-клиент должен уметь пробовать и повторно пробовать подходящие альтернативные адреса до успешной попытки. Допускается настраиваемый предел числа проверяемых адресов; в любом случае рекомендуется попробовать как минимум два.

    Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 70. Обязательна возможность обработки альтернатив. Число два — SHOULD, а не требование найти два адреса там, где существует лишь один; установки могут ограничивать альтернативы.

  2. Когда выбранное имя SMTP-узла имеет несколько IP-адресов, resolver возвращает упорядоченный список альтернатив. Отправитель SMTP должен пробовать их в предоставленном порядке.

    Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 70. Правило касается адресов одного выбранного имени. Оно не подменяет сортировку разных MX по предпочтению и не задаёт универсального превосходства IPv4 над IPv6.

  3. Relay, пересылающий письмо без изменения адресата, должен найти в списке MX собственные имена или адреса. Обнаружив себя, он исключает все MX с тем же числом предпочтения и с большими числами.

    Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 70, 71. Условие относится к узлу, обозначенному MX и выбравшему дальнейший relay без переписывания адреса. Равноприоритетный сосед исключается вместе с собственной записью.

  4. Если после исключения собственного уровня MX и менее предпочтительных уровней у relay не осталось кандидатов, возникает ошибка и письмо должно быть возвращено как недоставляемое. Если кандидаты остались, их рекомендуется пробовать начиная с наиболее предпочтительных.

    Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 71. Это проверка петли у relay, а не обычное отсутствие MX в DNS. Она не разрешает вернуть в список самого себя или равноприоритетного соседа.

  5. При временной ошибке DNS во время выбора почтовой цели сообщение должно остаться в очереди для повторной попытки. Ответ о несуществующем домене должен обрабатываться как ошибка; он не равен пустому успешному списку MX.

    Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 69. Различаются типы исхода DNS. Конкретный код SMTP для всякого DNS-сбоя этим фрагментом не назначается.

  6. Если MX домена существуют, SMTP не должен использовать A или AAAA самого домена в обход этих MX. Когда все найденные MX непригодны, требуется сообщить об ошибке; правило неявного MX действует только при отсутствии MX.

    Граница применимости: RFC 5321, октябрь 2008 года; §5.1, стр. 69. Адресная запись самого домена не становится запасным SMTP-маршрутом лишь потому, что цели явно опубликованных MX не работают. Позднейшие специальные расширения здесь не разбираются.

  7. Приняв задачу дальнейшей передачи, relay сам становится SMTP-клиентом и открывает следующий обмен с выбранным сервером. Успех первого обмена не означает, что следующий уже состоялся: в примере RFC резервный MX принимает письмо и затем отдельно передаёт его основной цели.

    Граница применимости: RFC 5321, октябрь 2008 года; §3.6.2; приложение D.3, стр. 26, 90, 91. Речь о SMTP relay. Окончательная локальная доставка или передача через иной gateway имеют собственную роль; резервный MX не объявляется зеркалом почтового ящика.

Перед спецификацией

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

  1. Получите весь набор применимых MX и адресов каждой выбранной цели.
  2. Сохраняйте порядок IP-адресов, выданный интерфейсом resolver.
  3. Укажите все имена и адреса, по которым текущий relay узнаёт себя.
  4. Удалите собственный уровень предпочтения и худшие уровни перед следующим relay.
  5. Отличайте временную ошибку DNS, несуществующий домен и успешный ответ без MX.
  6. Не подставляйте A или AAAA самого домена в обход существующих MX.
  7. Проверьте отдельную очередь и следующий SMTP-обмен резервного MX.
Открытые основания

Первоисточники

  • Первичная спецификация

    Simple Mail Transfer Protocol

    Internet Engineering Task Force · RFC 5321, October 2008

    Полная локальная копия RFC 5321, октябрь 2008: прочитаны все 95 страниц, включая приложения A–F, 09.09.2026. Сверены конверт, DATA, ответственность, повторы и выбор MX. retrieved_on сохраняет дату офлайн-очереди. Позднейшие errata, расширения и реализации не проверялись.

    Открыть первоисточник

Следующий шаг

Сформулируйте задачу, затем уточните требования перед выбором оборудования.

Подготовить подбор с Делектусом

Откроется черновик вопроса. Отправьте его, когда будете готовы.

Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие