DNSのエイリアスレコードとは、あるドメイン名を別の名前に向ける仕組みを指して使われることがある表現です。
ただし、ここで注意したいのは、「エイリアスレコード」という名前自体はDNS標準の正式なレコード種別ではないという点です。
実務では主に、次のようなものをまとめて「エイリアス」と呼ぶことがあります。
そのため、DNSのエイリアスレコードを理解するには、まずCNAMEを中心に考え、そのうえでALIAS系の違いを押さえると分かりやすくなります。
DNS標準で、あるホスト名を別のホスト名の別名として扱う代表的なレコードが CNAMEレコード です。
CNAMEは Canonical Name の略で、ある名前が別の正規名を参照することを示します。
たとえば、次のような設定です。
www.example.com. IN CNAME example.cdnprovider.net.
この場合、www.example.com にアクセスしたときは、example.cdnprovider.net を参照先として名前解決が行われ、最終的にはその先に設定されているAレコードやAAAAレコードが使われます。
つまり、CNAMEはIPアドレスを直接返すのではなく、別のホスト名を参照させるための仕組みです。
CNAMEがよく使われるのは、運用面でのメリットが大きいためです。
接続先がCDNやクラウドサービスの場合、IPアドレスが固定ではないことがあります。
そのようなときにAレコードでIPアドレスを直接設定するよりも、サービス側が指定するホスト名へCNAMEで向けておくほうが管理しやすくなります。
Webホスティング、CDN、SaaSなどでは、カスタムドメイン設定時に「このホスト名へCNAMEを設定してください」と案内されることがよくあります。
複数のサブドメインを1つの正規名に集約したい場合にも使いやすい仕組みです。
CNAMEは便利ですが、使える場所や設定方法には大事な制約があります。
CNAMEが設定されている名前には、原則として他のレコードを同じ名前で置くことはできません。
たとえば、次のような併用はできません。
www.example.com. IN CNAME example.cdnprovider.net.
www.example.com. IN TXT "v=spf1 ..."
このように、www.example.com をCNAMEにした場合、同じ www.example.com にA、AAAA、MX、TXTなどを同時に設定することはできません。
example.com のようなルートドメイン、いわゆる ゾーン apex には、通常CNAMEを設定できません。
その理由は、ルートドメインにはゾーン運用に必要なSOAレコードやNSレコードが存在するためです。
CNAMEは、その名前に他のデータを共存させられない性質を持つため、apexとは両立できません。
そのため、次のような使い分けになります。
www.example.com のようなサブドメインではCNAMEが使いやすいexample.com のようなルートドメインでは別の方法が必要になるルートドメインでも、外部サービスのホスト名に向けたい場面は少なくありません。
そこで使われるのが、DNS事業者が独自に提供している ALIAS や ANAME などの機能です。
これらは、CNAMEのように見えても、DNS標準の共通レコードタイプではありません。
名称や動作はDNSプロバイダごとに異なります。
一般的には、DNSプロバイダ側が参照先のホスト名を内部的に解決し、その結果をAレコードやAAAAレコード相当の応答として返す仕組みが使われます。
たとえば概念的には、次のようなイメージです。
example.com. IN ALIAS example.hosting-service.com.
ただし、これはあくまで概念説明用の例です。
実際の管理画面での表記や設定方法、内部動作はサービスによって異なります。
ALIASやANAMEの大きな利点は、ルートドメインでも外部サービスへ向けやすいことです。
example.com をそのままWebサイトのURLとして使いたい場合、外部ホスティングやCDNに向ける設定で役立ちます。
参照先のホスト名ベースで運用できるため、接続先のIPアドレス変更に対応しやすくなります。
クラウドサービスやCDNでは、ルートドメイン側にこのような機能を使うことが実務上よくあります。
便利な一方で、ALIASやANAMEには注意点もあります。
CNAMEとは違い、ALIASやANAMEは標準レコードではありません。
そのため、あるDNSサービスで使えても、別のサービスでは使えないことがあります。
更新タイミング、TTLの扱い、IPv6対応、参照先の解決方法などは、提供元によって差があります。
DNS事業者を乗り換える際、同じ名前の機能がなかったり、似ていても動作が違ったりすることがあります。
両者は似ていますが、性質は同じではありません。
DNSのエイリアス的な設定は、主にWeb関連の用途でよく使われます。
Webサイトをクラウドホスティングやマネージドサービスへ向けるときに使われます。
CDNでは専用のホスト名が発行され、それをCNAMEやALIAS系機能で参照させる構成が一般的です。
外部サービスに独自ドメインを接続する際、「CNAMEを追加してください」と案内されるケースが多くあります。
CNAMEやALIASの考え方はWeb用途では便利ですが、メール関連では慎重な設定が必要です。
たとえば、メール受信に使うMXレコードや、認証で使うSPF、DKIM、DMARCなどはDNS設定と密接に関わります。
そのため、TXTレコードを置く必要がある名前にCNAMEを設定してしまうと問題になることがあります。
また、メール用途では次の点に注意が必要です。
実際には、会話の中で「エイリアス」と呼ばれていても、CNAMEだけを指すとは限りません。
ALIASやANAMEのような独自機能を含めて話している場合もあります。
これはよくある誤解です。
サブドメインではCNAMEが使えても、ルートドメインには通常設定できません。
実際にはTTLやキャッシュ、相手側サービスの設計などの影響を受けます。
便利ではありますが、万能というわけではありません。
DNSのエイリアスレコードとは、ある名前を別の名前へ向ける仕組みを表す言い方として使われることがあります。
ただし、これはDNS標準の正式名称ではなく、実務では主にCNAMEや、DNS事業者独自のALIAS / ANAMEなどを含めて指すことがあります。
CNAMEはDNS標準の別名レコードで、主にサブドメインで使われます。
一方、ルートドメインには通常CNAMEを設定できないため、その代替としてALIASやANAMEなどの機能が使われます。
そのため、DNS設定では次のように考えると整理しやすくなります。
以上、DNSのエイリアスレコードについてでした。
最後までお読みいただき、ありがとうございました。