backoff-reroute-to-virtual-mta

<domain>Хаб задаёт сам

На какой адрес или пул переводить письма, пока очередь в backoff
в конфигурации это строкаbackoff-reroute-to-virtual-mtaвнутри блока <domain>
Не притормозить, а увести на другой адрес

Все остальные директивы семьи отвечают на вопрос «насколько медленнее». Эта отвечает на другой: а может, вообще не отсюда. Пока очередь в щадящем режиме, её письма переводятся на указанный адрес отправки или пул — и новые, приходящие в очередь, тоже, пока режим держится.

Переезжает очередь, а не письмо. Руководство описывает это так: письма из example.com/vmta1 при переброске на vmta2 оказываются в очереди example.com/vmta2. Получатель тот же — меняется адрес, с которого к нему идут.

Задержку можно отложить. Необязательное after= откладывает переброску, пока письмо не пролежит в очереди указанное время; минимум — минута. Это разница между «сразу увести» и «увести то, что залежалось».

Петли MTA ловит сам. Руководство предупреждает отдельно: при обнаружении петли переброска молча игнорируется, и письма остаются в исходной очереди. Переброс адреса на самого себя — тоже петля. При переброске на пул письма пойдут по тем путям, где петли нет.

Главная ловушка. Переброска не лечит, а переносит. Если очередь ушла в backoff из-за содержимого писем или качества списка, второй адрес получит ровно те же отказы — и уйдёт в backoff следом. Так выжигается весь парк по очереди, начиная с того адреса, который был здоровее прочих. Уводить осмысленно тогда, когда проблема в адресе: репутация, попадание в список, несходящийся PTR.
Что делает Хаб. Пишет — но не в общем блоке, а у конкретного адреса отправки, и только когда есть куда: переброс задаётся, лишь если для узла определён резервный адрес. Правило простое и намеренное — MTA должен либо уводить очередь на годный адрес, либо не уводить вовсе; строка, ведущая в никуда, хуже её отсутствия.

Резервному адресу Хаб задаёт собственный smtp-source-host и, если у адреса есть обратная запись, собственное имя в приветствии.

Рекомендуемые значения

Уводите на адрес, а не в пустоту. Второй адрес должен быть настроен полностью: свой источник, своё имя в приветствии, свои ключи подписи. Переброска на полупустой адрес заменяет одну проблему на другую.

after= почти всегда лучше, чем без него. Мгновенная переброска уводит и те письма, которые ушли бы и так — очередь могла войти в backoff по единственному ответу. Десять-пятнадцать минут отсеивают случайное.

Пул вместо адреса, если резервных несколько: MTA разложит письма по непетлевым путям сам.

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

Совет про отложенную переброску и предостережение о выжигании парка — наши. Из руководства здесь синтаксис, минимум в минуту, поведение с новыми письмами, стирание пустой строкой и правило про петли.
Пример в конфигурации
# уводим только залежавшееся и только туда, где адрес настроен
<virtual-mta vmta1>
    smtp-source-host 1.2.3.4 mail1.example.com
    <domain *>
        backoff-reroute-to-virtual-mta vmta2, after=10m    </domain>
</virtual-mta>
Переброс задан у адреса отправки, а не в общем блоке: уводить осмысленно письма конкретного адреса, а не весь трафик узла. Десять минут отсеивают случайный вход в щадящий режим.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается3 ошибки▶

Уводят письма, когда дело не в адресе

наш опыт

Чем чреватоЕсли очередь притормозили из-за содержимого или качества списка, резервный адрес получит те же отказы и уйдёт в backoff следом. Так по очереди выжигается весь парк, начиная с самого здорового адреса.
Как заметитьЧерез несколько часов после переброски в щадящем режиме оказывается и второй адрес, потом третий.
Как правильноУводить только тогда, когда проблема в самом адресе. Если отказы одинаковы у разных адресов — дело не в них, и переброску надо снять.

Задают переброс на самого себя или по кругу

§ 3.3.10.59

Чем чреватоMTA находит петлю и молча отменяет переброску: письма остаются в исходной очереди. Ошибки в журнале нет, конфигурация принята, и настройка выглядит работающей.
Как заметитьОчередь в backoff, переброс задан, письма не переезжают.
Как правильноПроверить цепочку целиком: адрес не должен ссылаться ни на себя, ни на того, кто ссылается обратно.

Уводят мгновенно, без after=

наш опыт

Чем чреватоОчередь может войти в щадящий режим по единственному ответу приёмника и выйти через минуту. Мгновенная переброска успевает увести весь трафик на резервный адрес — и нагрузить его без нужды.
Как заметитьРезервный адрес получает всплески трафика при коротких заходах основного в backoff.
Как правильноСтавить after=10m и выше: уводить то, что действительно залежалось.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
backoff-reroute-to-virtual-mta <name>
Значения
имя адреса отправки или пула; необязательно , after=интервал — минимум одна минута; пустая строка стирает унаследованное
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Пустая строка “” стирает унаследованное. Руководство советует задавать директиву именно у адреса отправки — в блоке <domain> внутри <virtual-mta>. Подхватывается по pmta reload.
Как проверить на узле
Переброска видна по тому, где стоят письма: очередь исходного адреса пустеет, очередь целевого растёт при том же получателе.
pmta show queues --mode=backoff --maxitems=20
pmta show queues --maxitems=20 'example.com/*'
Вторая команда показывает все очереди одного получателя — по ним видно, куда переехали письма. Если очередь в backoff, а письма не двинулись, вероятнее всего сработала защита от петли: MTA гасит переброску молча, ошибки не будет.
В Хабе
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
с перерывом: применение прерывает работу узла
Сценарии
Ротация адресов отправки · Настроить темп под провайдера