エイリアスとCNAMEの違いとそれらを使用するタイミング
2024年2月28日
読了時間:3分

CNAMEレコードとエイリアス・レコードの主な違いは、結果(どちらも別のDNSレコードを指す点)ではなく、問い合わせ時にターゲットのDNSレコードをどのように解決するかにあります。この違いにより、一方はゾーンの頂点(example.comといったネイキッド・ドメインなど)で安全に使用できますが、もう一方は使用できません。

まず、CNAMEレコード・タイプから見ていきましょう。CNAMEレコードは、www.example.comなどのDNS名にlb.example.netといった別のDNS名を付けるだけです。これにより、リゾルバーは、すべてのDNSタイプ(A、AAAA、MX、NS、SOAなど)に対して、参照名で回答を検索するよう指示されます。そこで、ターゲット(lb.example.net)を解決するには、DNSの参照を1回以上追加する必要があるため、性能が低下します。いずれのレコードに対しても再帰リゾルバーが問い合わせを行ったことがない場合、次のように、両レコードに対してDNS階層全体をたどる可能性があるため、時間面でさらにコストがかかります。

  1. DNSクライアント(またはスタブ・リゾルバー)が、再帰リゾルバーにwww.example.comについて問い合わせます。
  2. 再帰リゾルバーは、ルート・ネーム・サーバーに www.example.comについて問い合わせます。
  3. ルート・ネーム・サーバーは、再帰リゾルバーを.comトップレベル・ドメイン(TLD)権威サーバーに参照します。
  4. 再帰リゾルバーは、.com TLD権威サーバーにwww.example.comについて問い合わせます。
  5. .com TLD権威サーバーは、再帰サーバーをexample.comの権威サーバーに参照します。
  6. 再帰リゾルバーは権威サーバーにwww.example.comについて問い合わせ、lb.example.netを回答として受け取ります。
  7. 再帰リゾルバーは、その回答をキャッシュしてDNSクライアントに返します。
  8. ここでDNSクライアントは、再帰リゾルバーに対し、lb.example.netについて2回目のクエリーを発行します。
  9. 再帰リゾルバーは、ルート・ネーム・サーバーにlb.example.netについて問い合わせます。
  10. ルート・ネーム・サーバーは、再帰リゾルバーを.net トップレベル・ドメイン(TLD)権威サーバーに参照します。
  11. 再帰リゾルバーは、.net TLD権威サーバーにlb.example.netについて問い合わせます。
  12. .net TLD権威サーバーは、再帰サーバーをexample.netの権威サーバーに参照します。
  13. 再帰リゾルバーは、権威サーバーにlb.example.netについて問い合わせ、回答としてIPアドレスを受け取ります。
  14. 再帰リゾルバーは、その回答をキャッシュしてDNSクライアントに返します。

これらの各ステップは少なくとも数ミリ秒かかりますが、ネットワークの状態によってはそれ以上かかる場合もあります。これにより、DNSクライアントがIPアドレスの実行可能な最終回答を待つのにかなり時間がかかる可能性があります。

エイリアス・レコードの場合も、CNAMEと全く同じアクションが取られます。ただし、example.comの権威サーバーは、ステップ6から13を実行し、最終回答をIPv4およびIPv6アドレスとして返します。これには、次のような2つのメリットと1つの重大なデメリットがあります。

メリット

最終回答の解決速度が速い

ほとんどの場合、example.comの権威サーバーは回答をキャッシュすることになるため、非常に迅速に回答を返すことができます。

エイリアス応答はAレコードとAAAAレコードになります。エイリアス・レコードは、1つ以上のIPアドレスを含む回答を返すため、ゾーンの頂点など、AレコードまたはAAAAレコードを使用できる場所であればどこでも使用できます。これにより、ゾーンの頂点では使用できないCNAMEよりも柔軟性が高まります。エイリアス・レコードの柔軟性は、ユーザーがexample.comなどのネイキッド・ドメインを介してアクセスできるようにするためにCNAMEレコードを使用する必要がある、最も一般的なCDNの一部にサイトが掲載されている場合に必要です。

デメリット

ジオターゲティング情報が失われる

lb.example.netについてのクエリーを発行しているのはexample.comの権威サーバーであるため、その場合、lb.example.netレコード上のインテリジェントなルーティング機能は、DNSクライアントの場所ではなく、権威サーバーの場所に基づいて動作します。EDNS0 edns-client-subnetオプションはここでは適用されません。これは、DNSクライアントが誤ってルーティングされる可能性があることを意味します。例えば、DNSクライアントがニューヨークにあるのに、example.comの権威サーバーがカリフォルニアにある場合、lb.example.comはDNSクライアントがカリフォルニアにあると考えて回答を返します。これはニューヨークのDNSクライアントにとって明らかに最適とは言えません。ただし、グローバルPoPを持つDNSプロバイダーを使用している場合は、権威DNSサーバーがDNSクライアントの地域に配置される可能性が高いため、この問題は軽減されます。

注意すべき重要な点は、NS1は、CNAMEレコードがすべてNS1システム内にある場合に、これらのレコードをフラット化するということです。NS1のネームサーバーは、CNAMEとターゲット・レコードの両方に対して権威を持っています。フラット化とは単に、NS1のネームサーバーが、CNAMEから最終回答までの一連のレコードをすべて、1回の応答で返すことを意味します。これにより、追加の参照手順がすべて排除され、ネスト化された構成であっても、パフォーマンスを低下させることなくCNAMEレコードを使用することができます。

さらに良いことに、NS1はリンク・レコードと呼ばれる独自のレコード・タイプに対応しています。これは基本的に、サブマイクロ秒の解決速度を除いて、エイリアス・レコードとして機能するプラットフォーム内のシンボリック・リンクです。リンク・レコードを使用するには、通常どおりにターゲット・レコードを作成し(どのタイプでも構いません)、次にそのレコードを示す別のレコードを作成して、リンク・レコード・オプションを選択するだけです。リンク・レコードは、NS1内のドメイン(ゾーン)の境界やアカウントの境界を越えることができ、DNSレコード構造を整理して最適化する強力な方法を提供することに注意してください。

CNAME、エイリアス、リンク・レコードの参照図
 CNAMEエイリアスリンク・レコード
頂点での使用いいえはい可能(他のNS1ゾーンのみ)
相対速度(TTFB)迅速迅速化:迅速化:
フラット化による応答可能(NS1 Connect専用機能)はいはい
スクロールして表全体を表示
著者
Terry Bernstein Senior Director of Product Management for NS1 Managed DNS