本文へスキップ
IPeek

CNAME ルックアップ

正規名(エイリアス)レコード

チェック中…

CNAMEレコードとは?

CNAMEレコードは、あるホスト名を別の正規名(canonical name)のエイリアスにし、ターゲットのAおよびAAAAレコードがアドレスの解決に使われます。CDNやSaaSプロバイダーを指すサブドメインで一般的で、相手のIPアドレスを追わずにそのインフラに追従できます。プロバイダーがIPを変えても、CNAMEは自動的に機能し続けます。

CNAMEエイリアスがアドレスに解決される仕組み

CNAMEはIPを格納せず、あるホスト名を別のホスト名に向けます。リゾルバーがCNAMEに当たると、ターゲット名で検索を再開し、そのAまたはAAAAレコードをたどって最終的なアドレスに到達します。例えば、shop.example.com CNAME mystore.shopify.com は、shop.example.comへのリクエストがShopifyのホスト名を通じて解決されることを意味します。この間接参照こそ、CDNやSaaSプラットフォームがCNAMEターゲットを渡す理由です。基盤となるIPを自由に変えられ、あなたのサブドメインはあなた側で編集なしに追従します。

CNAME結果の読み解き方

CNAMEの結果は、エイリアスのホスト名と、それが指す正規ターゲットを示します。www.example.com CNAME example.com や blog.example.com CNAME hosted.ghost.io のようにです。最終的なIPを見るには連鎖をたどります。ターゲット自身のAおよびAAAAレコードがアドレスを解決します。CNAMEがそれ自体CNAMEを持つターゲットを指す場合、リゾルバーは連鎖をたどりますが、長い連鎖はルックアップと遅延を増やします。レコードのないホスト名を指すCNAMEは壊れており、解決に失敗します。

よくあるCNAMEの間違いと制約

最も重要なルールは、ルートドメイン(example.com)にCNAMEを置けないことです。頂点(apex)は必須のNSおよびSOAレコードと共存しなければならず、CNAMEは他のレコードと名前を共有できないからです。代わりに、頂点ではAレコードか、プロバイダーのALIAS/ANAME機能を使ってください。また、すでにA、MX、TXTレコードを持つホスト名にCNAMEを追加することもできません。よくある失敗は、そこでサービスを有効化する前にCNAMEをSaaSターゲットに向けることで、解決不能なままになります。

よくある質問

CNAMEレコードとは何ですか?

CNAMEレコードは、あるホスト名を別の正規ホスト名のエイリアスにするDNSレコードで、ターゲットのAおよびAAAAレコードがアドレスの解決に使われます。CNAMEはcanonical name(正規名)を表します。サブドメインをCDNやSaaSプロバイダーに向けるのに広く使われ、相手のIPアドレスが変わってもドメインがそのサーバーに追従します。

CNAMEとAレコードの違いは何ですか?

CNAMEはホスト名を別のホスト名に向け、Aレコードはホスト名を直接IPv4アドレスに向けます。CNAMEはターゲットのIPに自動追従する間接参照の層を加え、Aレコードは固定のマッピングです。プロバイダーに追従するサブドメインにはCNAMEを、ルートドメインや固定IPにはAレコードを使ってください。

ルートドメインでCNAMEを使えますか?

いいえ。example.comのようなルート(頂点)ドメインでは標準のCNAMEを使えません。頂点はNSおよびSOAレコードを保持しなければならず、CNAMEは同じ名前の他のレコードと共存できないからです。代わりに、Aレコードか、DNSプロバイダーのALIASまたはANAME機能を使ってください。標準に準拠したまま、頂点でCNAMEの振る舞いを模倣します。

CNAMEは別のCNAMEを指せますか?

はい。CNAMEは別のCNAMEを指すことができ、リゾルバーはAまたはAAAAレコードを持つホスト名に到達するまで連鎖をたどります。ただし、長い連鎖は各ホップでDNSルックアップを加え、遅延を増やします。連鎖は理想的には1階層と短く保ち、解決が成功するよう最終ターゲットが実際にアドレスレコードを持つことを確認してください。

CNAMEが機能しないのはなぜですか?

CNAMEは、ターゲットのホスト名にAまたはAAAAレコードがない、指し示すSaaSサービスがまだ有効化されていない、または他のレコードをすでに持つ名前にCNAMEを置いたために、失敗することがよくあります。ターゲットが単独で解決すること、プロバイダーの設定が完了していること、衝突するA・MX・TXTレコードがホスト名を共有していないことを確認してください。