pix-bug-workaround

<domain>

Отправлять ли финальную точку отдельным пакетом ради старых экранов Cisco PIX
в конфигурации это строкаpix-bug-workaround trueвнутри блока <domain>
Обход неполадки, включённый по умолчанию

У некоторых версий межсетевого экрана Cisco PIX есть известная неполадка (CSCds90792) в разборе почтового протокола: если завершающая последовательность с точкой разъезжается по нескольким сетевым пакетам, экран отвергает письмо — и оно задваивается при повторе.

Обход простой: узел отправляет финальную точку отдельным пакетом, чтобы она наверняка дошла целиком. Включено это по умолчанию.

Экран узнаётся по приветствию. Если в строке приветствия не меньше десяти звёздочек подряд — так экран прячет настоящее приветствие сервера, — узел считает, что перед ним PIX. Другой проверки нет.

Главная ловушка — выключить его «как устаревшее». Оборудование действительно старое, но обход ничего не стоит там, где экрана нет: признак не совпал — узел работает как обычно. Выключение не ускоряет ничего, а на редком приёмнике за таким экраном возвращает задвоение писем.
Что делает Хаб. Не пишет — остаётся вендорское true, и это верное значение. Обход бесплатен, а случай, в котором он спасает, редкий, но неприятный.
Рекомендуемые значения

Оставьте включённым. Обход срабатывает только при обнаруженном экране и в остальных случаях не делает ничего.

Выключать — незачем. Выигрыша нет: один дополнительный пакет на письмо и только там, где признак совпал.

Парная строка решает другое. bounce-upon-pix-transfer-failure определяет, что делать, если задвоение всё-таки случилось; эта уменьшает его вероятность.

Правило «оставить включённым» — наше. Из руководства здесь умолчание true, номер вендорской неполадки, механика с отдельным пакетом для финальной точки и признак обнаружения по десяти звёздочкам в приветствии.
Пример в конфигурации
# обход включён по умолчанию; строка нужна, только чтобы его вернуть
<domain legacy.example.com>
    pix-bug-workaround true    bounce-upon-pix-transfer-failure true
</domain>
Две строки закрывают один риск с разных сторон: первая уменьшает вероятность задвоения, вторая решает, что делать после него.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Выключают как устаревшее

наш опыт

Чем чреватоОбход не стоит ничего там, где экрана нет: признак не совпал — поведение обычное. Выключение ничего не ускоряет, но на редком приёмнике за таким экраном возвращает задвоение писем.
Как заметитьДубли у одного конкретного приёмника, в приветствии которого стоят звёздочки.
Как правильноВернуть умолчание.

Считают, что обход действует всегда

§ 3.3.10.97

Чем чреватоОн срабатывает только при обнаруженном экране. Ждать от него защиты от прочих причин задвоения — обрыва передачи, таймаута подтверждения — не стоит: те закрываются другими строками.
Как заметитьДубли продолжаются, обход включён.
Как правильноСмотреть на smtp-data-termination-timeout и allow-cancel-during-transfer: чаще всего дело в них.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
pix-bug-workaround <boolean>
Значения
yes или no; true и false принимаются наравне с ними
Умолчание
true § 3.3.10.97
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Подхватывается по pmta reload; действует только при обнаруженном экране, поэтому значение в общем блоке безвредно.
Как проверить на узле
Значение печатает команда настроек очереди; встречается ли такое оборудование вообще — видно по приветствиям в журнале:
pmta show settings legacy.example.com/vmta1 | grep -i pix-bug
grep -E '^220 .*[*][*][*]' /var/log/pmta/pmta.log | tail -10
Вторая команда ищет приветствия со звёздочками; сам узел считает экраном приветствие, где их не меньше десяти подряд. Хаб видит приветствия почтовиков только в проверке прокси и звёздочек в них не ищет.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Классификация отказов · Настроить темп под провайдера