CNAME レコード (Canonical Name)

DNS レコードタイプ
1 つのドメイン名を別のドメイン名にポイントするエイリアスを作成する DNS レコード。サブドメインと CDN 設定に一般的に使用されます。
← 用語集に戻る

CNAMEレコード (Canonical Name) とは何か?

CNAME (Canonical Name)レコードはDNSレコードタイプで、1つのドメイン名から別のドメイン名へのエイリアスを作成します。AレコードのようにダイレクトにIPアドレスをポイントするのではなく、CNAMEは別のドメイン名をポイントして、その後IPアドレスに解決されます。

CNAMEレコードの動作方式

CNAMEを設定する場合:

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

解決プロセス:

1. ユーザーが www.example.com をリクエスト

2. DNSが example.com をポイントするCNAMEを見つける

3. DNSが example.com のAレコードを解決

4. 最終的なIPアドレスが返される

このチェーン解決は、CNAMEターゲットは最終的にAまたはAAAAAレコードに解決される必要があることを意味します。

一般的なCNAME用途

WWW サブドメイン

wwwをルートドメインにポイント:

www    IN    CNAME    example.com.

CDN統合

ドメインをCDNエンドポイントにポイント:

cdn.example.com    IN    CNAME    d111111abcdef8.cloudfront.net.

プラットフォームホスティング

ホスティングプロバイダーにポイント:

blog.example.com    IN    CNAME    yoursite.wordpress.com.

shop.example.com IN CNAME shops.myshopify.com.

SaaS アプリケーション

SaaSプラットフォームにサブドメインを接続:

docs.example.com    IN    CNAME    example.gitbook.io.

status.example.com IN CNAME stats.uptimerobot.com.

CNAMEと A レコード

シナリオCNAMEを使用Aレコードを使用
ルートドメイン (@)❌ 許可されていません✅ 必須
静的IPへのサブドメインどちらでも機能✅ ダイレクト
プロバイダーへのサブドメイン✅ 推奨❌ IPは変更される可能性
CDN構成✅ 典型的異なる
ロードバランシング❌ 複数を持つことができません✅ 複数IP

ルートドメインがCNAMEを使用できない理由

DNS仕様 (RFC 1034)は、CNAME レコードが同じ名前の他のレコードタイプとコン存在することを禁止しています。ルートドメインはSOAおよびNSレコードが必要なため、CNAMEレコードを持つことはできません。

ルートドメインエイリアシング向けの解決策:

CNAMEチェーン

CNAMEは他のCNAMEをポイントできます (チェーニング):

blog.example.com    → myblog.host.com

myblog.host.com → lb-1234.hosting.com

lb-1234.hosting.com → 203.0.113.50 (A レコード)

有効ですが、チェーンはレイテンシーを追加します。ほとんどのDNSプロバイダーはチェーン長を無限ループを防ぐために制限します。

CNAMEレコード構成

基本構文

subdomain    IN    CNAME    target.domain.com.
重要: ターゲットドメインはトレーリングドット (.)を含めるべきです。なしでは、一部のDNSサーバーは発信元ドメインを付加します。

TTL考慮事項

CNAME TTLは変更がどの程度速く伝播するかに影響:

www    300    IN    CNAME    example.com.

低いTTL (300秒) でより高速な更新が可能; より高いTTLはDNSクエリを削減します。

CNAMEレコードの確認

dig を使用:
dig www.example.com CNAME

; ANSWER SECTION:

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

完全な解決トレース:
dig +trace www.example.com

一般的なCNAME問題

ルートドメインのCNAME

example.com    IN    CNAME    other.com.    ; 無効

これはメール (MXレコード)および他のサービスを破壊します。

他のレコードを使用したCNAME

blog.example.com    IN    CNAME    host.com.

blog.example.com IN MX mail.host.com. ; 無効

CNAMEを持つ名前は他のレコードタイプを持つことはできません。

ターゲットレコード欠落

CNAMEターゲットが解決しない場合、サブドメインも機能しません。CNAMEを構成する前にターゲットが有効であることを確認してください。

ベストプラクティス

1. サードパーティサービス向けCNAMEを使用: プロバイダーにIP変更を管理させる

2. 深いチェーンを避ける: 各ホップはレイテンシーを追加

3. ルートをCNAMEしないでください: A レコードまたはALIASを使用

4. トレーリングドットを含める: 完全修飾ターゲット名を確認

5. CNAMEターゲットをモニター: 外部変更はサイトに影響する可能性

6. MXレコードでCNAMEを使用しないでください: RFC 2181に従う

この知識を実践する

DomScan の API を使用してドメインの可用性、状態などを確認します。