DNS CNAMEレコードは、単一のIPアドレスを共有するドメイン名のエイリアスとして機能します。
この記事を読み終えると、以下のことができるようになります。
記事のリンクをコピーする
「Canonical NAME(正規名)」(CNAME)レコードは、別名と「正規の」ドメインを結び付けます。CNAMEレコードは、ドメインまたはサブドメインが他のドメインのエイリアスである場合、Aレコードの代わりに使用されます。すべてのCNAMEレコードは必ずIPアドレスではなくドメイン名を指します。ヒントを元に探す宝探ゲームしを想像してみてください。それぞれのヒントが別のヒントに繋がり、最後のヒントが宝を示します。CNAMEレコードを持つドメインは、別のヒント(CNAMEレコードを持つ別のドメイン)または宝物(Aレコードを持つドメイン)に繋がるヒントのようなものです。
例えば、blog.example.comが「example.com」(「blog」抜き)という値のCNAMEレコードを持っているとします。これは、DNSサーバーがblog.example.comのDNSレコードにアクセスすると、実際にexample.comに対して別のDNS検索をトリガーして、example.comのIP アドレスがAレコードを通じて返されることを意味します。この場合、example.comがblog.example.comの正規の名前(または真の名前)であると言えます。
多くの場合、サイトにblog.example.comやshop.example.comなどのサブドメインがある場合、それらのサブドメインにはルートドメイン(example.com)を指すCNAMEレコードがあります。このため、ホストのIPアドレスが変更された場合、ルートドメインのDNS Aレコードを更新する必要があるだけで、すべてのCNAMEレコードはルートに加えられた変更を追跡します。
よく、CNAMEレコードは常に、それが指すドメインと同じWebサイトに解決する必要があると誤解されていますが、そうではありません。CNAMEレコードは、クライアントに対して、ルートドメインと同じIPアドレスを示すだけです。クライアントがそのIPアドレスにヒットしても、Webサーバーはそれに従ってURLを処理します。たとえば、blog.example.comにはexample.comを指すCNAMEがあり、クライアントをexample.comのIPアドレスにリダイレクトする場合があります。しかし、クライアントが実際にそのIPアドレスに接続すると、WebサーバーはURLを見てblog.example.comであることを確認し、ホームページではなくブログページを配信します。
CNAMEレコードの例:
blog.example.com | レコードのタイプ: | 値: | TTL |
---|---|---|---|
@ | CNAME | はexample.com のエイリアスです | 32600 |
この例では、blog.example.comがexample.comを示していることがわかります。それが例のAレコードに基づいていると仮定すると、最終的にIPアドレス192.0.2.1に解決されることがわかります。
CNAMEレコードに別のCNAMEレコードを指定することは、ドメインを読み込む前に複数のDNSルックアップを必要とするため非効率的(ユーザーエクスペリエンスを低下させます)ですが、可能です。例えば、blog.example.comは、www.example.comのCNAMEレコードを指すCNAMEレコードを持つことができ、そのCNAMEレコードはexample.comのAレコードを指しています。
以下はblog.example.comのCNAMEです。
blog.example.com | レコードのタイプ: | 値: | TTL |
---|---|---|---|
@ | CNAME | はexample.comのエイリアスです | 32600 |
これは、www.example.comのCNAMEを指しています。
www.example.com | レコードのタイプ: | 値: | TTL |
---|---|---|---|
@ | CNAME | はexample.com のエイリアスです | 32600 |
この構成では、DNSルックアッププロセスに余分なステップが追加されるため、可能であれば避けるべきです。代わりに、blog.example.comとwww.example.comの両方のCNAMEレコードはexample.comを直接指すべきです。
MXレコードとNSレコードはCNAMEレコードを指すことはできず、Aレコード(IPv4の場合)または AAAAレコード(IPv6の場合)を指す必要があります。MXレコードは、メールサーバーに電子メールを送信するためのメール交換レコードです。NSレコードは「ネームサーバー」レコードで、そのドメインに対してどのDNSサーバーが権威を持っているかを示します。