CNAME レコードの処理
正規名レコード (CNAME) は、IP アドレスではなく、別のドメイン・アドレスを指すレコードです。 CNAME レコードは別の DNS レコードを指し、別の DNS レコードが IP アドレスを指す A レコードを指します。 IP アドレスが変更された場合は、ネットワーク内の 1 つの場所で変更を記録するだけで済みます。
-
有効な CNAME レコードの例:
ftp.example.com 900 IN CNAME example.com
sftp.example.com 900 IN CNAME example.com
-
無効な CNAME レコードの例 (MX レコードは別の CNAME レコードを指していてはなりません):
example.com. MX 0 foo.example.com.
foo.example.com. CNAME host.example.com.
CNAME レコードの動作
CNAME は別名です。 これにより、あるドメインが別のドメインを指すことができます。このドメインは、CNAME チェーンに従うと、最終的に A レコードと IP アドレスに解決されます。 CNAME レコードに別の CNAME レコードを指定すると、ドメインをロードする前に複数の DNS ルックアップが必要になり、ユーザー・エクスペリエンスの速度に悪影響を及ぼすため、効率的ではありません (ただし、可能性はあります)。
CNAME チェーン内の各リソース・レコードは別個の DNS 照会と見なされるため、解決時間が遅くなります。
例えば、CNAME レコードを使用して、 ftp.example.com
と sftp.example.com
が example.com
の DNS エントリーを指すようにします。これらのエントリーには、IP アドレスを指す A レコードがあります。
ftp.example.com CNAME example.com
example.com A 10.1.1.10
以下は、プライベート・ゾーンとパブリック・ゾーンの組み合わせである長い CNAME チェーンの例です。
- プライベート・ゾーン
foo.com
bar.com
- パブリック・ゾーン
prod.com
containers.appdomain.cloud
abc.foo.com CNAME abc.bar.com
abc.bar.com CNAME new.prod.com
new.prod.com CNAME 1234.containers.appdomain.cloud
1234.containers.appdomain.cloud A 10.10.24.4
グローバル・ロード・バランサーの有無にかかわらず、CNAME チェーンが長くなると、DNS 応答時間が長くなります。 通常、DNS クライアントには 2 秒のデフォルトの照会タイムアウトがあるため、クライアントはタイムアウトになり、解決に 2 秒を超える時間がかかると照会を再試行します。
制限
- MX および NS レコードは、CNAME レコードを指すことはできません。これらのレコードは、A レコード ( IPv4の場合) または AAAA レコード ( IPv6の場合) を指す必要があります。
- CNAME チェーンの長さは 5 を超えてはなりません。
- CNAME は、単一ドメインの別のレコード・タイプと同じ名前を共有することはできません。
- 同じドメイン内に同じ名前の複数の CNAME レコードを持つことはできません。
CNAME DNS レコードの管理
CNAME レコードは、他のレコードを管理するのと同じ方法で管理できます。 CNAME レコードの作成、読み取り、更新、および削除について詳しくは、 DNS レコードの管理を参照してください。