DNSレコードタイプのCNAMEとALIASの違いについて

どちらもドメイン名のエイリアス(別名)を設定するために使用されますが、少し動作に違いがあります。

目次

CNAMEレコード

RFCで定義されている基本的なDNSレコードタイプで、以下のような特徴があります。

  • 最上位ノード(Zone Apex、ネイキッドドメインと呼ばれます)に設定することができません。
  • 他のレコード(TXTレコードなど)と共存できません。
  • IPアドレスを返さないので、名前解決処理が複数回になります。(通常は2回だけども多段CNAMEの場合はそれ以上)

出力例

example.comとsub.example.comがあって、example.comのIPアドレスが、203.0.113.4の場合

user@server:~$ dig sub.example.com

;; QUESTION SECTION:
;sub.example.com.              IN      A

;; ANSWER SECTION:
sub.example.com.       1743    IN      CNAME   example.com.
example.com.           1743    IN      A       203.0.113.4

ALIASレコード

まだRFCでも未定義な拡張DNSレコードタイプで、以下のような特徴があります。

  • 最上位ノード(Zone Apex、ネイキッドドメインと呼ばれます)に設定することができます。
  • 他のレコード(TXTレコードなど)と共存できません。
  • DNSサーバー側の内部処理で、IPアドレスを返してくれるので名前解決処理が1回になります。

出力例

example.comとsub.example.comがあって、example.comのIPアドレスが、203.0.113.4の場合

user@server:~$ dig sub.example.com

;; QUESTION SECTION:
;sub.example.com.              IN      A

;; ANSWER SECTION:
sub.example.com.       1743    IN      A       203.0.113.4

まとめ

元々はAWS系サービスでCNAMEレコードの制限を回避するために導入されたALIASレコード。それが、CloudFlareやさくらのクラウド(DNS)などの他社サービスでも導入が進んできているイメージです。

ALIASレコードの大きな利点は、最上位ノードに設定できることだと思います(※)が、名前解決処理の応答速度で影響がでるようなサービスを運営している場合にも良い選択肢となるかと思います。
※・・・CDNなどで最上位ノードにエイリアスを設定する必要がある場合などに使用できます。

また、類似レコードタイプとして、ANAMEレコードなんてものもあるようです。

ただ、CNAMEレコードがまったく不要かと言えばそういう訳でも無く、SPF設定などTXTレコードを複数のサブドメインで共有させたい時などは、CNAMEレコードの方が向いています。

よかったらシェアしてね!
目次