treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

DNSでAレコード変更後にメールがエラーになる

logwatchで送信されるログメールが届かない…、ということがあったので、その対処法をご報告します。
エラーは以前にもあった「Sender address rejected: Domain not found」です。

以前に

blog.treedown.net

「Sender address rejected: Domain not found」のエラーを対処しましたが、今回は別の対処方法となります。

対象の環境

Ubuntu 16.04 LTSのサーバ、postfixをMTAとしています。
ここにlogwatchを導入して、ログメールを送信していました。
しかし、メールサーバの移行に伴い、メールが送信できなくなった、という状況、これに対処しなきゃいけなくなりました。
DNSでは、

;wms02.hogedomein.jp. IN A %IPアドレス%
websys.hogedomein.jp. IN A %IPアドレス%

もともとあったwms02というホスト名をコメントアウトで無効にし、同じIPアドレスをwebsysというホスト名に割り当てました。
要するにDNS上で名前解決してくれるホスト名をリネームしたような格好です。

エラーが起こる

そうするとlogwatchのメール送信で以下のエラーに。

Jun 30 12:48:22 wms02 postfix/qmgr: from=<root@wms02.hogedomein.jp>, size=4640, nrcpt=1 (queue active)Jun 30 12:48:22 wms02 postfix/smtp: to=<log@hogedomein.jp>, relay=mx.hogedomein.jp[xxx.xxx.xxx.xx]:25, delay=311, delays=311/0.01/0.01/0.02, dsn=4.1.8, status=deferred (host mx.hogedomein.jp[xxx.xxx.xxx.xx] said: 450 4.1.8 <root@wms02.hogedomein.jp>: Sender address rejected: Domain not found (in reply to RCPT TO command))

簡単に言えば、status=deferredとなって「Sender address rejected: Domain not found (in reply to RCPT TO command))」という要因でメールサーバが受け取り拒否している、という状況。
wms02.hogedomein.jpは存在しないホスト名、という判定を受けてメールが送れなくなる、という感じに読み取れます。

設定の変更

DNSで解決されるホスト名を変更した場合、logwatchメールを送信するホスト側以下の変更が必要でした。

「/etc/mailname」に登録されているホスト名の変更が必要。この「/etc/mailname」に記述されるホスト名を、変更したDNSで解決されるホスト名に変更します。

古い/etc/mailnameを

cp /etc/mailname /etc/mailname.org

でバックアップ。

# cat /etc/mailname.org
wms02.hogedomein.jp

vi /etc/mailname
で、ホスト名をDNSで解決できるホスト名に書き換え

# cat /etc/mailname
websys.hogedomein.jp

f:id:treedown:20180630143404p:plain

要するに/etc/mailnameで指定するホスト名を実在するFQDNに変更すれば、いいということです。

設定変更後…

こうすると、DNSで存在確認できるホスト名でメールを送出するようになり、ログの記述に変化が見られました。

Jun 30 13:40:11 wms02 postfix/qmgr: from=<root@websys.hogedomein.jp>, size=4634, nrcpt=1 (queue active)Jun 30 13:40:11 wms02 postfix/smtp: to=<log@hogedomein.jp>, relay=mx.hogedomein.jp[xxx.xxx.xxx.xx]:25, delay=0.51, delays=0.47/0/0.02/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 40350)Jun 30 13:40:11 wms02 postfix/qmgr: removed

と、このように送信できるようになります。

変更前には
wms02.hogedomein.jp
というホスト名で送信しようとしていたのですが、変更後の上記ログでは
websys.hogedomein.jp
というホスト名でメールを送信しようとしているのが分かります。結果「status=sent」となり無事メールが送信できるようになりました。