俺#

しょうがない。

ホスト名のないCNAMEレコードとMXレコードの怪

DNSレコードの話。

レンタルサーバ→固定IP
自宅サーバ→動的IP

の2台サーバがある。「mydomain.net」がこれらを運用するドメインで、それとは別にダイナミックDNSで更新される「yamagw.dynamic.jp」という自宅サーバドメインがある。この2台を用途によって振り分けるため、以下のようなDNSレコードを設定してみた次第。

rental.mydomain.net A XXX.XXX.XXX.XXX ← レンタルサーバAレコード ※1
mydomain.net CNAME yamagw.dynamic.jp ← Webサーバ(自宅)
ssh.mydomain.net CNAME yamagw.dynamic.jp ← sshd(自宅)
mail.mydomain.net CNAME rental.mydomain.net ← POP/SMTP(レンタル)
mydomain.net MX rental.mydomain.net ← MXレコード(レンタル) ※2

これで「@mydomain.net」宛のメールが「rental.mydomain.net」に届くと思ったら「届かないよ」と言われること複数回。おかしいなーと思い、全然関係のないいくつかのサーバから「dig mx mydomain.net」した結果2つのパターンを確認した。

サーバXの場合

;; QUESTION SECTION:
;mydomain.net.   IN MX

;; ANSWER SECTION:
mydomain.net. 120 IN CNAME yamagw.dynamic.jp.
yamagw.mydns.jp. 300 IN MX 10 yamagw.dynamic.jp.

サーバYの場合

;; QUESTION SECTION:
;mydomain.net. IN MX

;; ANSWER SECTION:
mydomain.net. 120 IN MX 10 rental.mydomain.net.

あり?サーバXは「※2」のMXレコードを見ずに、「※1」のCNAMEを解決した先のMXレコードを見てるのか。これじゃメール届かないわー。期待したのは「※2」のMXレコードを直接見るサーバYの解決方法なんだけども。これ仕様的にはどっちが正しいんだろ?その時のレコード順によるとか?

とりあえず原因が判ったので「yamagw.dynamic.jp」のMXレコードを「yamagw.dynamic.jp」から「rental.mydomain.net」に変更する事で解決したが、実は良くない事してるのかも...と思い始めた。ホスト名のないCNAMEはまずいんだっけ?。「www.hoge.com」のCNAMEに「hoge.com」を指定する、みたいな例はあるけど逆は見たことないよな(^^;