-
CNAMEコード:別のホスト名にマッピングするだけでなく、そのホスト名を正式名とみなします。そのため、CNAMEコードを設定したホスト名には、Aレコード、AAAAレコード、MXレコード、TXTレコードなどのDNSレコードを追加できません。
-
エイリアスコード:別のホスト名にマッピングするだけで、他のDNSレコードを許可します。そのため、エイリアスコードを設定したホスト名には、Aレコード、AAAAレコード、MXレコード、TXTレコードなどのDNSレコードを追加できます。
-詳しい解説
エイリアスコードとCNAMEコードの違いは、別のホスト名にマッピングするという点では同じですが、許可されるDNSレコードとDNS名前解決の流れが異なります。
エイリアスコードは、別のホスト名にマッピングするだけで、他のDNSレコードを許可します。そのため、エイリアスコードを設定したホスト名には、Aレコード、AAAAレコード、MXレコード、TXTレコードなどのDNSレコードを追加できます。
CNAMEコードは、別のホスト名にマッピングするだけでなく、そのホスト名を正式名とみなします。そのため、CNAMEコードを設定したホスト名には、Aレコード、AAAAレコード、MXレコード、TXTレコードなどのDNSレコードを追加できません。
DNS名前解決の流れは、以下のようになります。
1. クライアントがDNSサーバーに、ドメイン名のIPアドレスを問い合わせる。
2. DNSサーバーは、ホストゾーン内のレコードを調べて、該当するレコードを返す。
3. クライアントは、返されたレコードの値を元に、IPアドレスを取得する。
エイリアスコードの場合、ステップ2でCNAMEレコードが返された場合、クライアントはCNAMEレコードの値を元に、別のホスト名のIPアドレスを問い合わせる。
CNAMEコードの場合、ステップ2でCNAMEレコードが返された場合、クライアントはCNAMEレコードの値を元に、別のホスト名の正式名を取得する。
具体例
エイリアスコードの場合、以下のようになります。
- ドメイン名: example.com
- エイリアスコード: www.example.com
この場合、クライアントがexample.comにアクセスすると、DNSサーバーはwww.example.comのCNAMEレコードを返します。クライアントはwww.example.comのCNAMEレコードの値を元に、www.example.comのIPアドレスを問い合わせます。
CNAMEコードの場合、以下のようになります。
- ドメイン名: example.com
- CNAMEコード: www.example.com
この場合、クライアントがexample.comにアクセスすると、DNSサーバーはwww.example.comのCNAMEレコードを返します。クライアントはwww.example.comのCNAMEレコードの値を元に、www.example.comの正式名を取得します。
まとめ
エイリアスコードとCNAMEコードは、どちらも別のホスト名にマッピングする点で同じですが、許可されるDNSレコードとDNS名前解決の流れが異なります。
エイリアスコードは、他のDNSレコードを追加できるため、WebサイトのURLを変更するなどの場合に便利です。CNAMEコードは、正式名を変更するなどの場合に便利です。
どのコードを使用するかは、用途に合わせて選択する必要があります。