proxy-protocol

<virtual-mta>Хаб задаёт сам

Версия протокола PROXY для соединений через прокси — у одного адреса отправки
в конфигурации это строкаproxy-protocolвнутри блока <virtual-mta>
То же имя ещё 1:Global<virtual-mta>— часть из них другие настройки, часть та же самая
Средний уровень трёхуровневой настройки

Строка задаёт версию заголовка протокола — 1 или 2. Умолчание — 1.

Уровней три, и этот средний. Самое точное — protocol-version в самом блоке прокси; не задано там — берётся эта строка; не задана и она — такая же строка уровня узла.

Вторая версия нужна ради дополнительных полей — только с ней работает передача домена очереди (proxy-include-tlv).

Выбирает версию прокси, а не узел: ставить надо ту, которую он понимает.

Главная ловушка — забыть про третий уровень. Строка в блоке <proxy> сильнее этой, и настройка адреса отправки на неё не влияет.
Что делает Хаб. Пишет 2 в каждом адресе отправки через прокси — в блоках proxy-<ярлык> файла /etc/pmta/proxy.txt. Вторая версия выбрана ради передачи домена очереди гейту.
Рекомендуемые значения

Значение выбирают по возможностям прокси:

Значение Когда
1 (умолчание) прокси старый или домен очереди не нужен
2 нужна передача домена очереди
Обе версии, умолчание 1 и порядок перекрытия уровней — из руководства (§ 3.3.1.48, § 3.3.22.3).
Пример в конфигурации
# вторая версия и передача домена очереди — пара
proxy-protocol 2proxy-include-tlv domain
Строку в самом блоке прокси эти две не перекрывают — там она самая точная.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Ставят вторую версию прокси, который знает первую

наш опыт

Чем чреватоПрокси не разберёт заголовок и закроет соединение. Узел увидит обычный отказ и уйдёт к следующему прокси или в повтор.
Как заметитьПервый прокси в списке никогда не работает.
Как правильноСверить версию с настройкой прокси.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
proxy-protocol <see-global>
Значения
1 или 2
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<virtual-mta>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Строка живёт в <virtual-mta> и перекрывает такую же строку уровня узла для этого адреса отправки. Её саму перекрывает одноимённая строка в блоке <proxy>.
Как проверить на узле
Со стороны узла версия не видна — смотреть надо на прокси:
tcpdump -A -i any -c 20 'port 5000'
Первая версия начинается текстом PROXY TCP4 …, вторая — двоичной подписью.
В Хабе
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки