Postfixが外部に送信しない。CNAMEの設定には気を付けよう。

サーバーをCentOSからFreeBSDに移行しているときにPostfixが外部にメール送信しなくて調査しているときの覚書。

環境: FreeBSD 14.1, Postfix 3.9.0

Postfixのバージョンを確認。
# postconf mail_version

mail_version = 3.9

メールログの確認。
# less /var/log/maillog

Jun 30 08:20:41 conoha01 postfix/qmgr[893]: 55F0932063: from=<root@hoge.jp>, size=361, nrcpt=1 (queue active)
Jun 30 08:20:41 conoha01 postfix/qmgr[893]: 1C31231C3F: from=<root@hoge.jp>, size=367, nrcpt=1 (queue active)
Jun 30 08:20:41 conoha01 postfix/smtp[54106]: connect to hoge.jp[2400:8500:2002:3189:163:44:102:135]:25: Connection refused
Jun 30 08:20:41 conoha01 postfix/smtp[54106]: connect to hoge.jp[1.2.3.4]:25: Connection refused
Jun 30 08:20:41 conoha01 postfix/smtp[54107]: connect to hoge.jp[2400:8500:2002:3189:1:2:3:4]:25: Connection refused
Jun 30 08:20:41 conoha01 postfix/smtp[54107]: connect to hoge.jp[1.2.3.4]:25: Connection refused
Jun 30 08:20:41 conoha01 postfix/smtp[54106]: 55F0932063: to=<info@hoge.jp>, relay=none, delay=434, delays=434/0.01/0/0, dsn=4.4.1, status=deferred (connect to hoge.jp[1.2.3.4]:25: Connection refused)
Jun 30 08:20:41 conoha01 postfix/smtp[54107]: 1C31231C3F: to=<suganuma@hoge.jp>, relay=none, delay=373, delays=373/0.01/0/0, dsn=4.4.1, status=deferred (connect to hoge.jp[1.2.3.4]:25: Connection refused)


取り急ぎ、メールキューを確認して全削除して確認する。
# postqueue -p
# postsuper -d ALL
# postqueue -p

DNSを確認。
# drill hoge.jp
# drill hoge.jp MX

原因が分かった。
DNSの設定でCNAMEをサブドメインなしに指定したから。
value-domainの設定例でちゃんと書いてあった。

@(ホスト名なし)をcnameで解決させるのは弊害(メールが使えない等)があるため推奨しません。aliasをお使いください。

サーバーからメールを送信してみて確認。
# mail info@hoge.co.jp
# less /var/log/maillog

勉強になった。


DNSのキャッシュを回避

サーバーにはホスティング会社のName Serverが登録されている。
基本は距離が一番近いので変えない方がいい。
# less /etc/resolv.conf

だけど、キャッシュするのでDNS変更直後に早く参照してほしい場合は手動でGoogle Public DNSとかに変更する。
参考: スタートガイド  |  Public DNS  |  Google for Developers
# less /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860:0:0:0:0:8888
nameserver 2001:4860:4860:0:0:0:0:8844



【関連記事】