DNSサーバーに設定可能なレコードとしてCNAMEレコードがあります。
CNAMEレコードは別ドメインのレコードを参照できるので、利便性が高いですよね。
でも、DNSの仕様により、CNAMEレコードをDNSサーバーに設定できないことがあります。
今回は、CNAMEレコードが使えないケースと、CNAMEの弱点を解決するALIASレコードに対応したDNSサーバーを紹介します。
CNAMEレコードをDNSサーバーに設定できないケース
CNAMEレコードは、Aレコードと同じように特に制限なく使えるイメージがありますが、DNSサーバーに設定できないケースが2つあります。
ネイキッドドメインにCNAMEレコードを設定できない
1つ目の制限は、ネイキッドドメインにはCNAMEレコードが設定できない点です。
ネイキッドドメインとは、egatech.netやgoogle.comのようにサブドメインを含まないドメインのことです。
要するに、トップのドメイン名にはCNAMEは設定できません。
設定できない例:ネイキッドドメイン
egatech.net. CNAME sample.jimdofree.com.
設定できる例:サブドメイン
foo.egatech.net. CNAME sample.jimdofree.com.
CNAMEレコードとTXTレコードを同時に設定できない
2つ目のCNAMEの制限は、同一ホスト名に対して、CNAMEとTXTレコードの両方を設定できないことです。
設定できない例:
foo.egatech.net. CNAME sample.jimdofree.com.
foo.egatech.net. TXT "google-site-verification=xxxxxxxx"
お名前ドットコムのDNSサーバーで設定すると、やはり次のようなエラーになりました。
CNAMEの代わりにAレコードを使えば、設定は可能です。
設定できる例:
foo.egatech.net. A xxx.xxx.xxx.xxx
foo.egatech.net. TXT "google-site-verification=xxxxxxxx"
ALIASレコードとは?
ALIASレコードは、CNAMEの2つの制限を回避できる拡張DNSレコードです。
まだRFCでも定義されていません。
ALIASレコードはCNAMEのように使えますが、DNS呼び出し元から見ると、ALIASレコードではなく、Aレコードが設定されていたかのように振舞います。
つまり、DNSリゾルバはALIASレコードを直接受け取りません、DNSサーバーがALIASレコードを処理します。
ALIASレコードが使えるDNSサーバー
ALIASレコードに対応しているDNSサービスのうち、日本ユーザーになじみのあるDNSサービスをまとめます。
Amazon Route 53
AmazonのDNSサービスRoute 53は、ALIASレコードに対応しています。
エイリアス先は、ELBにしたり、S3バケットにしたりと自由自在に使えます。
CloudFlare
CDNのCloudFlareでは、2014年からCNAMEレコードをフラット化する機能を実装しています。
ムームードメイン
ムームードメインのDNSサーバーは、2018年からALIASレコードに対応しています。
国内向けサービスでは、ムームードメインだけですね。
なお、ムームーDNSが使えるのは、ムームードメインで管理しているドメインのみです。
IIJ DNSプラットフォームサービス
IIJ DNSプラットフォームサービスでは、ANAMEレコードというALIASに似た機能を実装しています。
CMSの独自ドメイン化で注意が必要
以上、CNAMEの制限と、それを回避できるサービスを紹介しました。
ネイキッドドメインにCNAMEレコードを設定できないことによる影響はいくつかあります。
代表的なのが、WixやInstapageなどCMSで作ったサイトを独自ドメイン化するとき、ドメインがサブドメインになることです。
たとえばWixで独自ドメインを使った場合は、www.example.com のように必ず www.が付いてしまいます。”www.”のないホスト名は使えません。
最近はANAMEレコードというALIASレコードに似たレコードの仕様検討が始まったようです。早くこの問題が対処できるといいですね。