プライマリメールサーバーを介してメールを中継するsendmail
を実行しているLinuxサーバーがありますが、先週のDNSサーバーの変更以来、メールサーバーへの接続がタイムアウトになっています。さらに調査すると、/var/log/maillog
は次のような行を示しています。 不正解メールサーバーのIPアドレス:
Apr 4 15:37:32 yip sendmail[20583]: p34JVgLE020540: to=<[email protected]>, ctladdr=<[email protected]> (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.
さて、先週、/etc/resolv.conf
を編集して、移行とともにLinuxサーバーのDNSサーバーを更新しました。 LinuxサーバーでDig mailserver.domain.tld
、Host mailserver.domain.tld
、またはnslookup mailserver.domain.tld
を実行すると、すべて正しいIPアドレスが返されます。 sendmail
が間違ったIPアドレスを取得/キャッシュしている可能性があり、その問題を解決するにはどうすればよいですか?
sendmail
を再起動します。nscd
を再起動します(システムで使用されている場合)。また、正しい MXレコードエントリ があることを確認してください。 SendmailはMXルックアップに依存しています。
Dig mx domain.tld
を試して、正しいホストになるかどうかを確認してください。そうでない場合は、通常/ etc/mail /にあるmailertable
ファイルを使用して、sendmailに特定のドメイン宛てのメールを強制的に配信できます。
典型的なメーラーテーブルエントリは次のようになります。
xxx.com esmtp:[192.168.1.2]
ここで、「xxx.com」はドメインであり、配信用のIPが明示されています。
sendmail does DNSを再確認する前に、ホストのステータスに関する情報をキャッシュします。 Timeout.hoststatusを微調整するとこれを変更できますが、特定のケースでsendmailを再起動するのが(タイムアウトの期限が切れるのを待つのではなく)進む方法です。
Sendmailはそれ自体をキャッシュすることはなく、ローカルネームサーバーに依存します。
確認する価値のあることがいくつかありますが、おそらくすでにそれらを実行しているでしょう。
それらはすべてかなり基本的なものであることは知っていますが、非常に急いでいる管理者がこれらのような単純な間違いを犯すのは簡単です。