Узел берёт тот поток, чей адрес совпал с адресом подключения

selection by matching the receiving address
Одно значение вместо таблицы соответствий

Уточнение способа со слушателем, и разница у него полезная: не нужно ни именованного источника на каждый поток, ни слушателя на каждый адрес. Значение by-smtp-source-ip в default-virtual-mta говорит узлу: посмотри, на какой свой адрес пришло входящее соединение, и возьми тот поток, у которого этот адрес объявлен адресом отправки.

Сопоставление идёт по smtp-source-host и его прокси-форме. То есть по данным, которые в определении потока и так есть, — способ ничего не повторяет и ничего не дублирует.

Отсюда его главное свойство: конфигурация выбора не растёт. Узел с десятью потоками на десяти адресах маршрутизирует сам; одиннадцатый поток не требует ни строчки в правилах выбора. Для парка, где адреса появляются и уходят, это разница между «сгенерировать заново» и «не трогать».

Главная ловушка. Способ переносит работу на сторону отправителя: тот обязан подключаться к нужному адресу узла. Со своими программами это нормально, с чужими — неудобно. И руководство не описывает, что происходит, когда подключение пришло на адрес, за которым потока нет: разбор имени в приветствии в этом случае проваливается на общие настройки, а про выбор потока не сказано ничего.
Что делает Хаб. Пользуется: by-smtp-source-ip стоит в общем источнике 0/0 рабочей конфигурации узла (в базовой строки нет). Для парка это верный выбор — адреса добавляются и снимаются постоянно, а строка выбора остаётся одна.

Заметьте, чем это дополняется: заголовок стоит выше и остаётся главным способом прогрева, а в том же источнике рядом стоит список выбора по обратному адресу. by-smtp-source-ip — нижний слой для подачи без логина: он подхватывает всё, что не выбрано выше. Подача под логином идёт через свои источники — у общего логина умолчанием стоит пул, у логина пары её собственный поток.

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

Собственных значений у механизма нет: значение ровно одно и зарезервировано — by-smtp-source-ip в default-virtual-mta. Промежуточных форм не бывает: либо узел сопоставляет адрес назначения сам, либо умолчанием стоит конкретное имя.

Всё из руководства — само значение и правило сопоставления. Оценка «конфигурация не растёт» — наша.
Пример в конфигурации
# десять потоков на десяти адресах, одна строка выбора на всех
<virtual-mta mta1>
    smtp-source-host 203.0.113.10 mta1.example.com
</virtual-mta>

<source 0/0>
    default-virtual-mta by-smtp-source-ip</source>
Ровно эта строка стоит в общем источнике рабочей конфигурации, которую пишет Хаб. Подключение на 203.0.113.10 уйдёт потоком mta1; добавление одиннадцатого потока не потребует править источник.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Ждут выбора на адресе, за которым потока нет

§ 9.4.5

Чем чреватоСопоставление идёт по адресам, объявленным в потоках. Подключение на адрес узла, за которым потока не объявлено, ни с чем не сопоставляется, и руководство не говорит, что произойдёт дальше.
Как заметитьЧасть подач ведёт себя иначе, чем остальные, и разница зависит от адреса узла, а не от отправителя.
Как правильноДержать соответствие «адрес узла ↔ поток» полным. Для адресов-исключений задать обычное умолчание с именем потока в узком блоке <source>.

Полагаются на способ там, где адрес подключения выбирает не отправитель

§ 9.4.5

Чем чреватоСпособ переносит выбор на сторону отправителя: тот обязан подключаться к нужному адресу узла. Платформа, подключающаяся по доменному имени с несколькими записями A, будет попадать на разные адреса и уходить разными потоками.
Как заметитьОдин и тот же отправитель в учёте распределён по нескольким потокам без всякой закономерности.
Как правильноЛибо давать отправителю адрес, а не имя, либо выбирать поток способом, не зависящим от подключения, — заголовком или правилом по обратному адресу.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Наследование
Наследуется так же, как обычное умолчание: default-virtual-mta записан в <source>, более узкий блок перекрывает более широкий. Значение by-smtp-source-ip в широком блоке — разумный нижний слой: узкие блоки при необходимости назовут конкретный поток.
Как проверить на узле
Проверка — сверка двух списков. Какой адрес объявлен у потока:
pmta show vmta-settings vmta1
В выводе у каждого потока стоит его Source Host IP. Подключение сработает только на тот адрес, который в этом списке есть; если адрес узла слушается, а потока с ним нет, выбор не состоится — руководство не говорит, что произойдёт дальше, и полагаться на это нельзя.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки · Отправка через прокси