Назад | Перейти на главную страницу

Кэширует ли sendmail DNS или получает его другим способом, чем host / dig / nslookup?

У нас работает Linux-сервер sendmail который передает электронную почту через наш основной почтовый сервер, но с тех пор, как на прошлой неделе DNS-серверы были изменены, время ожидания подключения к нашему почтовому серверу истекло. После дальнейшего расследования, /var/log/maillog показывает следующие строки, в т.ч. в неверный IP-адрес почтового сервера:

Apr  4 15:37:32 yip sendmail[20583]: p34JVgLE020540: to=<user@domain.tld>, ctladdr=<root@host.domain.tld> (0/0), delay=00:05:50, xdelay=00:02:00, mailer=esmtp, pri=258071, relay=mailserver.domain.tld. [xxx.xxx.xxx.xxx], dsn=4.0.0, stat=Deferred: Connection timed out with mailserver.domain.tld.

На прошлой неделе мы обновили DNS-серверы Linux-сервера вместе с миграцией, отредактировав /etc/resolv.conf. Бег dig mailserver.domain.tld, host mailserver.domain.tld, или nslookup mailserver.domain.tld на сервере Linux все приводит к возврату правильного IP-адреса. Где мог sendmail получать / кешировать неверный IP-адрес, и как я могу решить эту проблему?

Отправить почту делает кэшировать информацию о статусе хоста перед повторным опросом DNS. Настройка Timeout.hoststatus может изменить это, но затем снова перезапустить sendmail для вашего конкретного случая - это выход (вместо ожидания истечения тайм-аута).

  • Начать сначала sendmail.
  • Начать сначала nscd (если он используется в системе).

Также убедитесь, что у вас есть правильный Записи MX. Sendmail полагается на поиск по MX.

Пытаться dig mx domain.tld и посмотрите, приведет ли это к правильному хосту. Если нет, вы можете заставить sendmail доставлять почту, предназначенную для определенного домена, используя mailertable файл обычно находится в / etc / mail /.

Типичная запись в mailertable выглядит так:

xxx.com esmtp:[192.168.1.2]

Где «xxx.com» - это домен и явно указан IP-адрес для доставки.

Sendmail не выполняет кэширования, он полагается на локальный сервер имен.

Есть пара вещей, которые стоит проверить, хотя вы, вероятно, уже их сделали:

  • Убедитесь, что в / etc / hosts нет записей для сервера ретрансляции, это будет иметь приоритет над DNS.
  • Проверьте параметры преобразователя Sendmail, чтобы узнать, действительно ли он установлен на использовать DNS
  • Убедитесь, что /etc/resolv.conf указывает только на обновленные DNS-серверы, и один из них все еще не возвращает старое значение. Сделайте это вручную, запустив nslookup и введя «server 1.2.3.4» для каждого DNS-сервера, помните, что он может возвращать 2 разных IP-адреса при повторных запросах, если для него заданы повторяющиеся записи. Я видел это много раз.

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