precached-domains-file

<dns>

Файл со списком доменов, чей DNS держится свежим постоянно
в конфигурации это строкаprecached-domains-fileвнутри блока <dns>
Список тех, кого разрешают заранее

Значение — путь к текстовому файлу, в котором по домену на строку.

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

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

Две соседние строки задают расписание (precached-refresh-interval) и потолок (precached-max-domains); устройство целиком — в precached-domains.

Главная ловушка — молчаливое обрезание. Из файла берутся только первые записи до потолка, а потолок по умолчанию равен 500. Список длиннее обрезается, и об этом никто не сообщает: домены в конце файла разрешаются обычным порядком, хотя выглядят закэшированными.

Вторая половина: файл читается MTA, и права на него нужны те же, что на конфигурацию. Недоступный файл — это не ошибка применения, а просто пустой кэш.

Что делает Хаб. Не пишет: блока <dns> в конфигурации нет.

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

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

Что ставить. Путь к файлу; правила приходят из назначения:

Свойство Почему
короткий список каждое обновление — запросы по всем доменам сразу
только устойчивые маршруты смену маршрута MTA не заметит до обновления
число строк не больше потолка остальное обрезается молча

Список стоит держать рядом с конфигурацией и править вместе с ней: это часть настройки, а не данные.

Синтаксис, формат файла и разбор обычного порядка разрешения имён — из руководства, § 3.3.16.1. Умолчание потолка 500 — § 3.3.16.3. Требования к списку наши.
Пример в конфигурации
# файл со списком плюс две строки расписания и потолка
<dns>
    precached-domains-file /etc/pmta/precached-domains.txt    precached-max-domains 500
    precached-refresh-interval 5m
</dns>
В файле по домену на строку. Если строк больше потолка, лишние обрезаются молча — сравнивать эти два числа приходится самому.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Кладут в файл больше доменов, чем разрешено потолком

§ 3.3.16.3

Чем чреватоБерутся только первые записи до потолка. Остальные разрешаются обычным порядком, и об этом не сообщается.
Как заметитьЧасть доменов из файла не видна в составе кэша.
Как правильноСравнить число строк с потолком и привести их в согласие.

Кладут файл там, где MTA его не прочитает

наш опыт

Чем чреватоКэш остаётся пустым. Ошибки применения конфигурации при этом нет: строка есть, файла для MTA — нет.
Как заметитьСостав кэша пуст, хотя файл со списком существует.
Как правильноДержать файл рядом с конфигурацией и с теми же правами.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
precached-domains-file <path>
Значения
путь к текстовому файлу, по домену на строку
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<dns>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <dns> и относится ко всему узлу: блок один на экземпляр, и наследования у него нет. Разных списков для разных потоков отправки задать нельзя.
Как проверить на узле
Файл, потолок и состав кэша проверяют вместе:
grep -n -A4 '^<dns>' /etc/pmta/config
wc -l /etc/pmta/precached-domains.txt
pmta show precache
Число строк в файле должно быть не больше потолка. Третья команда показывает, что реально попало в кэш: расхождение со списком означает обрезание.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Разобраться с доставляемостью · Настроить темп под провайдера