CNAMEは名前の別名であり、アドレスの別名ではない
www.example.com
CNAMEレコード
cdn.provider.net
ターゲットのホスト名
192.0.2.10
Aレコード、最終的な回答
CNAMEチェーンを解説:エイリアスをたどってIPにたどり着く
CNAMEレコードは、あるDNS名を別の正規ホスト名のエイリアスにします。エイリアス自身はIPv4アドレスもIPv6アドレスも持たず、リゾルバーは指す先をたどって、そこで要求されたデータを探します。チェーンが生じるのは、あるエイリアスが、それ自体もエイリアスである名前を指している場合や、プロバイダーのDNS構成によって、アドレスが返されるまでに複数の管理対象ターゲットが挟まる場合です。ホスティングプラットフォームやCDNでは一般的です。チェーンを理解すると、単純な検索でなぜ最初にホスト名が表示され、追加の解決ステップを経てようやくIPが得られるのかが分かります。
1つずつ意識してたどる
たとえば www.example.com が customer.hosting.example へのCNAMEで、それがさらに地域ごとのサービス名のエイリアスになっているとします。リゾルバーは、要求されたアドレスのデータを見つけるか、エラーまたは無効な設定に当たるまで、チェーンをたどり続けます。各エイリアスのターゲットは別々のDNS名であり、それぞれが独自のTTLとプロバイダーの管理下にある場合があります。デバッグの際は、最終的なアドレスだけでなく、各リンクを記録してください。ターゲットのスペルが間違っていたり、存在しなかったり、ループして戻ってきたりすると、管理画面上では最初のCNAMEレコードが正しい形式に見えても、名前解決に失敗することがあります。
| チェーンの結果 | 確認すること |
|---|---|
| エイリアスがA / AAAAに解決される | 最終的なアドレスの値とそのTTL |
| ターゲットに要求したタイプがない | ターゲットがそのレコードファミリーを公開すべきかどうか |
| ターゲットがNXDOMAINを返す | ホスト名のスペルと、プロバイダー側のターゲットの状態 |
| チェーンがループする | 循環したエイリアス、またはプロバイダー設定の競合 |
| リゾルバーごとにターゲットが異なる | CDN、ジオルーティング、キャッシュの挙動 |
CNAMEにはルール上の制約があります。CNAMEである名前には、DNSSEC関連のレコードや特殊なプロバイダー実装を除き、同じ所有者名に無関係なデータを置くことは一般にできません。標準のDNSでは、ゾーンの頂点(ルートドメイン)のCNAMEが、必須のSOAレコードやNSレコードと競合するのはこのためです。一部のDNSホストは、頂点で同様の利便性を提供するALIAS、ANAME、フラット化の機能を用意していますが、実装は各社で異なり、公開されるのは合成されたアドレスレコードです。プロバイダーのUIにある「エイリアス」という機能が、実際の通信上でも文字どおりのCNAMEだとは限らないことに注意してください。
TTLとプロバイダーの管理範囲が重要
名前解決チェーンの各ステップは、それぞれ独立してキャッシュされます。最終ターゲットを変更しても、再帰リゾルバーがすでにキャッシュしているエイリアスの応答がすぐには置き換わらない場合があり、リンクごとにTTLの値が異なることもあります。ドメイン認証のためにプロバイダーからCNAMEの追加を求められた場合は、先頭のアンダースコアを含め、指定された所有者名とターゲットを正確に使ってください。現在何がそれに依存しているかを確認せずに、既存のCNAMEの向き先を変更してはいけません。チェーンの信頼性は、各リンクの背後にあるレコードとサービスの信頼性で決まります。
- エイリアスからアドレスまで、すべてのCNAMEターゲットを記録する。
- 最終ターゲットのAとAAAAを、それぞれ独立して確認する。
- 循環エイリアスや、同じ所有者名での競合レコードを避ける。
- 頂点のフラット化が、プロバイダーの機能なのか標準のDNSレコードなのかを確認する。
- 更新したターゲットがあらゆる場所で見えない場合は、TTLを比較する。
移行でチェーンを使う
CNAMEを使うと、ホスティングプロバイダーは、お客様がそのたびにAレコードを編集しなくても、基盤となるIPアドレスを変更できます。その代わり、ターゲット名とそのプロバイダーに依存することになります。プラットフォームを移行する前に、新しいターゲットを確認し、正しいDNSの権威側でエイリアスを更新し、パブリックリゾルバーからチェーン全体を検証してください。キャッシュが古いターゲットを参照している可能性がある間は、以前のサービスを稼働させておきます。検索ツールが最初のエイリアスで止まってしまう場合は、後続のリンクも表示できるリゾルバーやチェッカーを使い、そのうえで想定どおりのホスト名で最終的なサービスをテストしてください。
アドレスレコードとエイリアスレコードの基本的な違いについては、CNAMEとAレコードの違いをご覧ください。DNSレコードの解説では、ほかのよく使われるタイプを説明しており、ドメイン検索ツールではホスト名の公開DNSデータを確認できます。表示されたCNAMEは指示にすぎず、目的地そのものではありません。チェーン全体をたどることが、DNSが現在どのエンドポイントに通じているかを確実に把握する方法です。
プロバイダー変更時に壊れやすいチェーンを避ける
エイリアスが1つ増えるたびに、有効であり続けなければならない依存先が増え、キャッシュの有効期間も1つ増える可能性があります。長いチェーンが自動的に壊れているわけではありませんが、最終的な答えを推論しにくくなり、複数のプロバイダーが別々のリンクを管理している場合は、移行が複雑になることがあります。チェーンはできるだけ短く保ち、各ターゲットをどの関係者が管理しているかを記録し、古いプラットフォームの名前がもう参照されていないことを定期的に確認してください。アカウントを削除したりベンダーを変更したりする前に、そのホスト名を指すエイリアスがゾーン内にないか検索します。そうしないと、最初のCNAMEは正しく見えても、廃止されたターゲットに依存し続け、以前のプロバイダーが停止して初めて失敗する、ということになりかねません。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
このテーマの無料ツール
関連記事
メールがメールサーバーを見つける仕組み
送信者
you@gmail.com
MX検索
誰が受け取る?
メールサーバー
優先度10が最初
受信トレイ
配信完了
優先度の数値が小さいものが優先され、大きいものはバックアップ
MXレコードの解説:メールが届く仕組み
MXレコードは、ドメイン宛てのメールをどのメールサーバーが処理するかをインターネットに伝えます。Aレコードと構造が異なる理由も詳しく解説します。
「DNSサーバー」と呼ばれる3つの層
スタブリゾルバー
お使いのデバイス自体
再帰リゾルバー
ISP、ルーター、1.1.1.1
権威サーバー
ドメイン自身のDNS
再帰リゾルバーと権威リゾルバーの違い
「DNSサーバー」という言葉には、問い合わせを行う再帰リゾルバーと、答えそのものを持つ権威サーバーという、まったく異なる2つの役割が含まれています。
TTLの実際の選び方
DNS TTLを理解する:変更の反映に時間がかかる理由
TTLは、DNSの応答が再び検索されるまでキャッシュされる時間を決めます。DNSの変更がすぐにあらゆる場所に反映されない、本当の理由を解説します。