CNAMEレコード -- 正規名エイリアス

DNS CNAMEレコードがあるドメインから別のドメインへのエイリアスを作成する仕組みを解説します。制限事項、CDN統合、CNAMEとAレコードの違いを理解しましょう。

CNAMEAlias

Zone File Entry

www.example.com.    IN    CNAME    example.com.

詳細な説明

CNAMEレコードとは?

CNAMEレコード(Canonical Nameレコード)は、あるドメイン名から別のドメイン名へのエイリアスを作成します。IPアドレスを指すのではなく、別のドメイン名を指し、そのドメイン名が解決されて最終的なIPアドレスが取得されます。

BINDゾーンファイルの構文

; wwwをルートドメインに向ける
www.example.com.      3600    IN    CNAME    example.com.

; サブドメインを外部サービスに向ける
blog.example.com.     3600    IN    CNAME    custom.ghost.io.

; CDN統合
static.example.com.   3600    IN    CNAME    d111111abcdef8.cloudfront.net.

CNAMEのターゲットは完全修飾ドメイン名(FQDN)でなければならず、IPアドレスは使用できません。

CNAME名前解決の仕組み

リゾルバがCNAMEに遭遇すると、チェーンをたどります:

  1. クライアントがwww.example.comを問い合わせ
  2. DNSがCNAMEを返す:www.example.com → example.com
  3. リゾルバがexample.comを問い合わせ
  4. DNSがAレコードを返す:example.com → 203.0.113.50
  5. クライアントが203.0.113.50に接続

直接的なAレコードと比較して、余分なDNSルックアップが発生するため、わずかなパフォーマンスコストがあります。

重要な制限事項

CNAMEレコードにはRFC 1034で定義された厳格なルールがあります:

  • ゾーン頂点にCNAMEは不可example.com(ルートドメイン)にCNAMEを作成できません。頂点に存在しなければならないSOAレコードやNSレコードと競合するためです。これはDNSで最もよくある誤解の一つです。
  • CNAMEと他のレコードの共存不可:ある名前にCNAMEレコードがある場合、同じ名前に他のレコードタイプ(A、MX、TXTなど)を持つことはできません。
  • CNAMEチェーンのループ禁止:CNAMEチェーン(a → b → c)は有効ですが、循環参照は名前解決の失敗を引き起こします。

CNAMEとAレコードの比較

特徴 Aレコード CNAME
指す先 IPアドレス ドメイン名
ゾーン頂点で使用 不可
追加ルックアップ なし あり
ターゲット変更の容易さ IP更新が必要 ターゲット側でIP変更を処理

よくある用途

  • wwwをルートドメインに向ける
  • サードパーティサービスとの統合(CDN、メールプロバイダー、SaaSプラットフォーム)
  • 外部プラットフォームにリダイレクトする覚えやすいサブドメインの作成
  • GoogleやMicrosoftなどのサービスのドメイン認証

ALIAS / ANAMEの代替手段

一部のDNSプロバイダーは、独自のALIASまたはANAMEレコードを提供しています。これはクエリ時にターゲットを解決してIPアドレスを直接返すことで、ゾーン頂点でCNAMEのように動作します。標準化はされていませんが、実際の制限を解決するものです。

ユースケース

CNAMEレコードは、CDN、ホスティングプラットフォーム、SaaS製品などの外部サービスにサブドメインを向ける場合や、wwwをルートドメインにエイリアスする場合に使用します。

試してみる — DNS Record Generator

フルツールを開く