Узлу нужен резолвер, который делает всю работу сам

recursive name service
Отсылка вместо ответа — потерянное время

Требование руководство формулирует коротко: MTA нужна рекурсивная служба имён — резолвер, который принимает запрос и сам доводит разрешение до конца.

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

Когда таких ответов от одного и того же сервера приходит несколько, MTA пишет предупреждение в журнал. Это единственный сигнал: доставка при этом не останавливается, она просто идёт медленнее.

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

Главная ловушка — это не отказ, а замедление. Ничего не ломается: письма уходят, очереди двигаются, ошибок нет. Медленнее становится всё, и найти причину по симптомам почти невозможно — она видна только в журнале, куда при исправной работе никто не смотрит.

Вторая половина — предел одновременных рекурсивных запросов. Он срабатывает под нагрузкой, то есть ровно тогда, когда резолвер нужен больше всего: рассылка пошла, доменов много, запросов много — и резолвер начинает отвечать отсылками. На спокойном узле всё выглядит исправным.

Что делает Хаб. Резолверы не задаёт: строки name-server в конфигурации нет, значит MTA пользуется настройками операционной системы — теми, что оставил хостер.

Слежения за этим у Хаба тоже нет: предупреждения о нерекурсивных ответах живут в журнале узла, а его Хаб не разбирает. Значит замедление такого рода мы бы не заметили.

Пример в конфигурации
# свои резолверы вместо хостерских: MTA ходит по ним по кругу
name-server 10.1.2.3
name-server 8.8.8.8
Без этих строк MTA пользуется резолверами операционной системы. Двух и более достаточно, чтобы отказ одного не останавливал разрешение имён.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Считают резолвер исправным, потому что письма уходят

§ 4.2.3

Чем чреватоНерекурсивные ответы не ломают доставку — они её замедляют. Симптомов нет, ошибок нет, а очереди двигаются хуже, чем могли бы. Причина видна только в журнале.
Как заметитьДоставка медленнее ожидаемого без видимых причин; в журнале предупреждения о нерекурсивных ответах.
Как правильноПроверить настройки резолвера — квоты и списки доступа; если он чужой, завести свой.

Проверяют резолвер на спокойном узле

§ 4.2.3

Чем чреватоПредел одновременных рекурсивных запросов срабатывает под нагрузкой. Проверка в тишине проходит успешно, а во время рассылки тот же резолвер начинает отвечать отсылками.
Как заметитьРазрешение имён исправно при проверке и медленное во время рассылки.
Как правильноСмотреть журнал во время нагрузки, а не после неё.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
⇄

Связанные записи

2 связи

Как проверить на узле
Единственный сигнал — предупреждения в журнале; сам резолвер проверяют командой:
grep -i 'recursi\|referral' /var/log/pmta/pmta.log | tail -20
pmta resolve gmail.com
Записи в журнале означают, что резолвер отвечает отсылками. Вторая команда показывает, доходит ли разрешение до конца, — но на спокойном узле она может пройти успешно, а под нагрузкой тот же резолвер начнёт отсылать.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подготовить узел к отправке · Разобрать зависшую очередь