公開:

CNAME(Canonical Name)とは?意味をわかりやすく簡単に解説

text: XEXEQ編集部


CNAME(Canonical Name)とは

CNAMEとはCanonical Name(正規名)の略称で、DNSレコードの一種です。CNAMEレコードはあるドメイン名を別のドメイン名に対応付けるために使用されます。

例えば、「www.example.com」というサブドメインを「example.com」というドメインに対応付ける場合、CNAMEレコードを使用します。この場合、「www.example.com」がCNAMEレコードのソース(エイリアス)となり、「example.com」がCNAMEレコードのターゲット(正規名)となります。

CNAMEレコードを使用することで、複数のドメイン名を1つのIPアドレスに対応付けることができます。これにより、同じウェブサイトやサービスを複数のドメイン名で提供することが可能になります。

ただし、CNAMEレコードにはいくつかの制限があります。まず、CNAMEレコードのソースとなるドメイン名には他のDNSレコード(AレコードやMXレコードなど)を設定できません。また、CNAMEレコードのターゲットとなるドメイン名は同じゾーン内に存在する必要があります。

CNAMEレコードを適切に設定することで、ドメイン名の管理がシンプルになり、ウェブサイトやサービスの可用性が向上します。また、CNAMEレコードを使用することで、IPアドレスの変更に伴うドメイン名の変更を最小限に抑えることができます。

CNAMEレコードの仕組み

CNAMEレコードの仕組みに関して、以下3つを簡単に解説していきます。

  • CNAMEレコードの構成要素
  • CNAMEレコードの解決プロセス
  • CNAMEレコードのチェーン

CNAMEレコードの構成要素

CNAMEレコードは主に2つの構成要素からなります。1つ目はCNAMEレコードを設定するドメイン名(エイリアス)です。これは別のドメイン名に対応付けたいドメイン名を指します。

2つ目はCNAMEレコードが参照するドメイン名(正規名)です。これはエイリアスが対応付けられる先のドメイン名を指します。CNAMEレコードを設定する際はこれら2つの構成要素を正しく指定する必要があります。

例えば、「www.example.com」を「example.com」に対応付ける場合、「www.example.com」がエイリアス、「example.com」が正規名となります。エイリアスと正規名の関係を正しく理解することが、CNAMEレコードを適切に設定するための第一歩です。

CNAMEレコードの解決プロセス

CNAMEレコードが設定されたドメイン名に対して、クライアントがDNSクエリを送信すると、CNAMEレコードの解決プロセスが開始されます。まず、DNSサーバーはCNAMEレコードを参照し、エイリアスが対応付けられている正規名を取得します。

次に、DNSサーバーは取得した正規名に対してDNSクエリを送信します。この処理は正規名がAレコードを持つドメイン名になるまで再帰的に行われます。最終的に、Aレコードが取得できた時点で、IPアドレスがクライアントに返されます。

つまり、CNAMEレコードの解決プロセスではエイリアスから正規名への変換が行われ、最終的にはAレコードによってIPアドレスが特定されるという流れになります。このプロセスを理解することで、CNAMEレコードがどのようにドメイン名の解決に関与しているかがわかります。

CNAMEレコードのチェーン

CNAMEレコードは複数のCNAMEレコードを連鎖的に設定することができます。これを、CNAMEチェーンと呼びます。CNAMEチェーンではあるドメイン名が別のドメイン名を参照し、そのドメイン名がさらに別のドメイン名を参照するという構造になります。

例えば、「www.example.com」が「example.com」を参照し、「example.com」が「example.net」を参照するという設定が可能です。この場合、「www.example.com」から始まるCNAMEチェーンが形成されます。

ただし、CNAMEチェーンを過度に長くすると、DNSクエリの解決に時間がかかり、パフォーマンスが低下する可能性があります。また、CNAMEチェーンの中で循環参照が発生すると、DNSクエリが無限ループに陥ってしまうため、注意が必要です。適切な長さのCNAMEチェーンを維持することが、効率的なドメイン名の管理につながります。

CNAMEレコードの設定方法

CNAMEレコードの設定方法に関して、以下3つを簡単に解説していきます。

  • ドメインレジストラでのCNAMEレコード設定
  • DNSサーバー上でのCNAMEレコード設定
  • CNAMEレコード設定時の注意点

ドメインレジストラでのCNAMEレコード設定

ドメインレジストラのDNS管理画面で、CNAMEレコードを設定します。通常、ソース(エイリアス)とターゲット(正規名)を入力するフィールドが用意されています。ソースにはCNAMEレコードを設定したいサブドメインを入力し、ターゲットには対応付けたいドメイン名を入力します。

例えば、「www.example.com」を「example.com」に対応付ける場合、ソースに「www」、ターゲットに「example.com」と入力します。設定変更を保存すると、CNAMEレコードが適用されます。ドメインレジストラによって設定方法が異なる場合があるため、各レジストラのドキュメントを参照することをおすすめします。

ドメインレジストラでのCNAMEレコードの設定は比較的シンプルな手順で行うことができます。ただし、設定変更が反映されるまでにはDNSの伝播に一定の時間がかかる点に注意が必要です。

DNSサーバー上でのCNAMEレコード設定

自身でDNSサーバーを管理している場合、DNSサーバー上でCNAMEレコードを設定します。一般的に、DNSサーバーの設定ファイル(例:BIND の named.conf)にCNAMEレコードを追加します。

www IN CNAME example.com.

上記の例では「www」というサブドメインを「example.com」に対応付けています。設定変更後、DNSサーバーを再起動することで、CNAMEレコードが適用されます。DNSサーバーの設定方法は使用しているDNSソフトウェアによって異なります。

DNSサーバー上でのCNAMEレコードの設定はより詳細な制御が可能である一方、設定ミスによる影響が大きくなる可能性があります。そのため、十分な知識と経験を持つ管理者が設定を行うことが重要です。

CNAMEレコード設定時の注意点

CNAMEレコードを設定する際はいくつかの注意点があります。まず、CNAMEレコードのソースとなるドメイン名には他のDNSレコードを設定できません。つまり、CNAMEレコードを設定したドメイン名に、AレコードやMXレコードを同時に設定することはできません。

また、CNAMEレコードのターゲットとなるドメイン名は同じゾーン内に存在する必要があります。例えば、「example.com」ゾーンにCNAMEレコードを設定する場合、ターゲットとなるドメイン名も「example.com」ゾーン内のドメイン名でなければなりません。これらの制限に注意して、CNAMEレコードを設定する必要があります。

さらに、CNAMEレコードを設定する際はDNSの伝播時間を考慮する必要があります。設定変更が反映されるまでには一定の時間がかかります。この間、古い設定と新しい設定が混在する可能性があるため、注意が必要です。

CNAMEレコードの活用シーン

CNAMEレコードの活用シーンに関して、以下3つを簡単に解説していきます。

  • サブドメインの管理
  • ロードバランシング
  • 外部サービスとの連携

サブドメインの管理

CNAMEレコードはサブドメインの管理に広く活用されています。例えば、「www.example.com」というサブドメインを「example.com」に対応付けることで、ユーザーがどちらのドメイン名でアクセスしても同じウェブサイトが表示されるようになります。

これにより、ユーザーがサブドメインを含むURLを入力した場合でも、適切なウェブサイトにアクセスできるようになります。また、サブドメインを使い分けることで、ウェブサイトの構造を論理的に分割することができ、管理がしやすくなります。

例えば、「blog.example.com」をブログ用のサブドメインとして設定し、「shop.example.com」をオンラインショップ用のサブドメインとして設定することで、用途に応じたサブドメインの管理が可能になります。CNAMEレコードを活用することで、柔軟なサブドメインの運用が実現できます。

ロードバランシング

CNAMEレコードはロードバランシングにも活用されています。複数のサーバーに対して、同じドメイン名を割り当てることができます。これにより、アクセスが集中した場合でも、負荷を分散することができます。

例えば、「www.example.com」というドメイン名に対して、複数のサーバーのIPアドレスをCNAMEレコードで割り当てることができます。DNSラウンドロビンなどの手法と組み合わせることで、効果的なロードバランシングを実現できます。

ロードバランシングにCNAMEレコードを活用することで、サーバーの負荷分散や冗長化が可能になります。これにより、ウェブサイトやサービスの可用性や応答性が向上し、ユーザーエクスペリエンスの改善につながります。

外部サービスとの連携

CNAMEレコードは外部サービスとの連携にも活用されています。例えば、ウェブサイトをCDN(コンテンツデリバリーネットワーク)サービスと連携させる場合、CNAMEレコードを使用します。

ウェブサイトのドメイン名をCDNサービスが提供するドメイン名に対応付けることで、CDNサービスを介してコンテンツを配信できるようになります。これにより、ウェブサイトの表示速度が向上し、ユーザーエクスペリエンスが改善されます。

また、メールサービスやDNSサービスなど、外部のサービスプロバイダーと連携する際にも、CNAMEレコードが活用されます。CNAMEレコードを設定することで、自身のドメイン名を外部サービスのドメイン名に対応付けることができ、シームレスな連携が可能になります。

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「インターネット」に関するコラム一覧「インターネット」に関するニュース一覧
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。