URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 81376
[ Назад ]

Исходное сообщение
"SchTiRlic"

Отправлено SchTiRlic , 28-Июл-08 16:45 
Имеется машина с Sendmail'ом, которая исопльзуется в качестве транзитного релея. Вся входящая почта пересылается либо по mailertable, либо по smarthost в качестве приёмников у которых указаны FQDN серверов.

Схема проста, из сети Интернет принимается почта и пересылается либо по mailertable либо по smarthost внутренним почтовым серверам, которые и занимаются маршрутизацией (получается примерно так если входящая почта в домен a.domain.ru то пересылаем по mailertable, всюостальную пуляем по smarthost'у).

С недавнего времени перестала ходить почта по smarthost'у. В логах появились следующие записи:
--------/var/log/maillog----------
Jul  28 12:32:22 me sm-mta[2023]: k517VgpV000762: to=<sch@mail.ru>, delay=00:00:02, xdelay=00:00:00, mailer=relay, pri=2090453, relay=[smarthost], dsn=4.0.0, stat=Deferred: Name server: [smarthost]: host name lookup failure

Где [smarthost] - FQDN внутреннего сервера осуществляющего маршрутизацию.


Первое что мне пришло в голову, какие то баги с DNS. Лезу к серверу в консоль. Набираю nslookup [smarthost], корректно резолвится. Вот тут я вставл в тупик.

Получается так что Nslookup резолвит имя, а Sendmail нет. Может в таймаутах тогда причина?

Подскажите где копать?

FreeBSD 6.2, Sendmail 8.13.4.


Содержание

Сообщения в этом обсуждении
"DNS - Sendmail vs. Nslookup"
Отправлено SchTiRlic , 28-Июл-08 18:18 
ПРошу прощения за некоррктное название топика.

Вот есть такие решения данной проблемы.
http://forums12.itrc.hp.com/service/forums/questionanswer.do...

http://www.issociate.de/board/post/270103/host_name_lookup_f...

Но это скорее временное решение чем постоянное. Хочется знать в чём же дело и почему не резолвит Sendmail доменное имя.


"SchTiRlic"
Отправлено Medlar , 28-Июл-08 18:49 
файл /etc/mail/service.switch имеется?

"SchTiRlic"
Отправлено SchTiRlic , 28-Июл-08 18:57 
>файл /etc/mail/service.switch имеется?

нет, такого файла нет.

Как я понял достаточно распространёная фича, но решения нигде так найти и не могу.


"SchTiRlic"
Отправлено SchTiRlic , 29-Июл-08 07:04 
Кажется я понял в чём проблема.

В качестве параметра SMART_HOST у меня была прописана хост запись внутреннего сервера. Как я понимаю, в случае с использованием DNS Sendmail'ом (а у меня именно такая конфиурация), он проверяет данную запись на наличие MX и соответственно ничего не находит.

Указание хост записи или IP-адреса в квадратных скобках (что означает отключение проверок на наличие MX-записей) должно решить проблему.

Что скажете?


"SchTiRlic"
Отправлено Medlar , 29-Июл-08 07:27 
скажу, что это похоже на правду

еще вчера хотелось запостить эту ссылку, но не было уверенности, что это ваш случай
http://www.anrb.ru/linux/sendmail_tips.html#5


"SchTiRlic"
Отправлено SchTiRlic , 29-Июл-08 13:18 
>скажу, что это похоже на правду
>
>еще вчера хотелось запостить эту ссылку, но не было уверенности, что это
>ваш случай
>http://www.anrb.ru/linux/sendmail_tips.html#5

Прописал в праметре SMART_HOST значение в квадратных скобках.

Итог - вот так с IP работает [10.10.10.10], а вот так, с FQDN не работает [smarthost.company.ru].

В принципе должны отключиться запросы на MX или квадратные скобки отключают полностью DNS проверки?


"SchTiRlic"
Отправлено Medlar , 29-Июл-08 14:44 
>В принципе должны отключиться запросы на MX или квадратные скобки отключают полностью
>DNS проверки?

должны отключиться запросы на MX


"SchTiRlic"
Отправлено SchTiRlic , 29-Июл-08 14:56 
>>В принципе должны отключиться запросы на MX или квадратные скобки отключают полностью
>>DNS проверки?
>
>должны отключиться запросы на MX

Ну так вот у меня вот такая конструкция

define(`SMART_HOST', `[smarthost.company.ru]') даёт ошибку  логах о невозможности резолвинга хоста smarthost.company.ru.

В качестве смарт хосту нужно указать именно ДНС запись, так как IP может часто меняться.

Как это сделать?


"SchTiRlic"
Отправлено Medlar , 29-Июл-08 15:34 
прочитав еще раз док-ию,  уточняю: квадратные скобки отключают обращение к DNS
(обязательное обращение за mx-записью)

по другому сказать, кв. скобки приводят к тому, что, если указано доменное имя, происходит обращение к /etc/hosts, т.е. standard hostname lookup

так что вам остается описать smarthost.company.ru в этом файле и предусмотреть автоматическое изменение этой записи по необходимости


Возможно, я ошибаюсь, и будут другие мнения


"SchTiRlic"
Отправлено SchTiRlic , 29-Июл-08 16:02 
>[оверквотинг удален]
>(обязательное обращение за mx-записью)
>
>по другому сказать, кв. скобки приводят к тому, что, если указано доменное
>имя, происходит обращение к /etc/hosts, т.е. standard hostname lookup
>
>так что вам остается описать smarthost.company.ru в этом файле и предусмотреть автоматическое
>изменение этой записи по необходимости
>
>
>Возможно, я ошибаюсь, и будут другие мнения

Перечитав несколько статей пришёл к тому же выводу.

Может есть решение как указать в SMART_HOST с динамически изменяющимся IP? Например, не отключать полностью DNS, а лишь отключить проверку MX записи. Хотя я как понимаю это заложено в спецификации на SMTP.


"SchTiRlic"
Отправлено Medlar , 29-Июл-08 17:31 
думаю, никак

если только скрипт написать который при получении определенного извещения будет
изменять эту строку и рестартовать почтовик