name-server

Global

Какими резолверами пользуется узел
в конфигурации это строкаname-server DNS-резолверы, настроенные в операционной системевнутри блока Global
Свои резолверы вместо системных

Строка задаёт адрес сервера имён. Не задана ни одна — MTA пользуется теми резолверами, что настроены в операционной системе.

Директиву повторяют: несколько строк дают несколько резолверов, и MTA ходит по ним по кругу, распределяя нагрузку.

Требование к самим резолверам — отдельный разговор: MTA нужна рекурсивная служба, и резолвер, отвечающий отсылками, замедляет доставку молча. Разобрано в recursive-resolver-requirement.

Рядом живёт edns-udp-length — расширение, поднимающее предел размера ответа. Оно касается тех же запросов.

Главная ловушка — умолчание отдаёт выбор хостеру. Без строки действуют резолверы операционной системы, а на арендованном сервере их прописал хостер. Какие они, кем обслуживаются, есть ли у них квоты на рекурсию — вопросы, ответа на которые у вас нет.

Для узла, который разрешает имена на каждое письмо, это неудачное умолчание: резолвер оказывается в пути доставки, и им вы не управляете.

Вторая половина: один резолвер — точка отказа. Круговой обход начинается со второй строки.

Что делает Хаб. Не пишет: резолверы остаются системными, то есть теми, что настроил хостер узла.

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

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

Что ставить. Резолвер — часть пути доставки, и выбирать его стоит осознанно:

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

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

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

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

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

Оставляют резолверы хостера

наш опыт

Чем чреватоРазрешение имён — часть пути доставки, и этой частью вы не управляете. Квоты на рекурсию, время ответа и надёжность резолвера остаются неизвестными, а замедление из-за них видно только в журнале.
Как заметитьСтроки в конфигурации нет, в файле резолверов системы — адреса хостера.
Как правильноЗадать свои резолверы явно, хотя бы два.

Задают один резолвер

§ 3.3.1.36

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

Берут публичный резолвер основным

§ 4.2.3

Чем чреватоУ публичных резолверов есть пределы на источник запросов. Под нагрузкой они начинают отвечать отсылками, MTA эти ответы выбрасывает и повторяет запрос — доставка замедляется молча.
Как заметитьВ журнале предупреждения о нерекурсивных ответах, и появляются они во время рассылок.
Как правильноОсновным ставить свой резолвер, публичный оставить запасным.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
name-server <ip-address>
Значения
адрес сервера имён; строку можно повторять
Умолчание
DNS-резолверы, настроенные в операционной системе § 3.3.1.36
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
можно повторять
Всё здесь — из руководства, с разделом.
Наследование
Директива пишется в корне файла конфигурации и действует на весь узел: резолверы одни на экземпляр. Задать разные для разных потоков или получателей нельзя.
Как проверить на узле
Настройку видно в конфигурации, работу — командой разрешения:
grep -n 'name-server\|edns-udp-length' /etc/pmta/config
cat /etc/resolv.conf
pmta resolve gmail.com
Если строк в конфигурации нет, действуют резолверы из второй команды — те, что прописал хостер. Третья показывает, доходит ли разрешение до конца.
В Хабе
Цена ошибки
с перерывом: применение прерывает работу узла
Сценарии
Разобраться с доставляемостью · Подготовить узел к отправке