DNS、メール、CNAME レコード

現在でも、かつて Cobalt RaQ の時代から変わらず通用する大事な原則があります。

CNAME DNS レコードは使わないでください。メール運用では問題の原因になります。

これは 15 年前と同じく、今でも有効です。BlueOnyx 上の仮想サイトでメールを受信したい場合、そのサイトに向けて CNAME を設定してはいけません。必要なのは A レコードと MX レコードです。仮想サイトに最低限必要な DNS レコードは、典型的には次のようになります。

www.site.com  ---(A Record)--->  IP-Address
site.com  ---(A Record)---> IP-Address
www.site.com  ---(MX Record)---> www.site.com
site.com  ---(MX Record)---> www.site.com


この例は、「www.site.com」が Virtual Site List に表示されている仮想サイトの正式名称であり、「site.com」がそのサイトの「Email Server Alias」(および「Web Server Alias」)として設定されていることを前提にしています。

DNS をこのように設定し、さらに適切な「Email Server Alias」と「Web Server Alias」を設定しておけば、通常は問題は発生しません。

この構成はさらに拡張でき、追加の別名とその DNS レコードを定義することもできます。たとえば次のような例です。

www.site.com  ---(A Record)--->  IP-Address
site.com  ---(A Record)---> IP-Address
www.site.com  ---(MX Record)---> www.site.com
site.com  ---(MX Record)---> www.site.com
mail.site.com  ---(A Record)---> IP-Address
mail.site.com  ---(MX Record)---> www.site.com


「www.site.com」という仮想サイトの「Email Server Alias」に「mail.site.com」を追加すれば、この構成でも正しく動作します。

たとえば www.site.com に「johndoe」というユーザーがいる場合、そのユーザーは次のアドレスでメールを受信できます。

johndoe@site.com
johndoe@www.site.com
johndoe@mail.site.com

ただし、このガイドから外れて別の DNS 構成を採用する場合は自己責任になります。たまたま動くこともありますが、動かないこともあります。

重要なのは常に、MX レコードの右辺が Virtual Site List 上のサイト名と完全に一致する完全修飾ドメイン名を指していなければならないという点です。これが一致していないと問題が発生します。

CNAME レコードを使うと、Sendmail は MX レコード右辺の正しい名前解決を安定して判断できなくなります。その結果、どのローカルメールボックスに配送すべきかを正しく関連付けられなくなります。もし CNAME を含む DNS 構成でたまたまメール配送が動いているなら、それは単に運が良いだけです。

しかし、壊れて動かなくなっても、それをこちらで修正することはできません。CNAME レコードは使わないでください。メール配送の不具合相談を CNAME 構成のサーバーで受けたとき、こちらの表情が険しくなるくらいには危険です。