sendmail 是缓存 DNS 还是通过与 host/dig/nslookup 不同的方法获取它?

mor*_*ant 4 domain-name-system linux sendmail

我们有一个 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.
Run Code Online (Sandbox Code Playgroud)

现在,我们在上周通过编辑/etc/resolv.conf. 在 linux 服务器上运行dig mailserver.domain.tldhost mailserver.domain.tldnslookup mailserver.domain.tld都会导致返回正确的 IP 地址。哪里可以sendmail获取/缓存不正确的 IP 地址,我该如何解决该问题?

ada*_*amo 5

在重新咨询 DNS 之前,sendmail缓存有关主机状态的信息。调整 Timeout.hoststatus 可以改变这一点,但是针对您的特定情况再次重新启动 sendmail 是可行的方法(而不是等待超时到期)。