本文へスキップ
ipaddress.si
CNAME

CNAME レコードとは?

CNAME レコードはあるドメイン名を別の名前の別名にします。CNAME の解決の仕組み、apex で使えない理由、よくある落とし穴を解説します。

www.example.com.   3600   IN   CNAME   example.com.

CNAME レコード(正規名)は「この名前は別名なので、代わりにあちらの名前を調べてください」という意味です。リゾルバーはその連鎖をたどり、CNAME とともに参照先のレコードを返します。

ルール

  • CNAME を持つ名前にはほかのレコードを一切設定できません(RFC 1034)。SOA と NS が必要なドメインの apex を CNAME にできないのはこのためです。
  • CNAME は連鎖させられますが、1 段ごとに問い合わせが 1 回増えます。連鎖は短く保ちましょう。
  • MX と NS レコードは、CNAME ではなく A/AAAA レコードを持つ名前を指す必要があります。

よくある使い方

www やサブドメインを CDN や SaaS 事業者に向けます(shop.example.com CNAME shops.provider.net)。こうすれば、事業者側がアドレスを変えてもあなたの DNS を編集する必要がありません。

よくある質問

ルートドメインに CNAME を使えますか?
標準の DNS では使えません。A/AAAA レコードを使うか、DNS 事業者の ALIAS/ANAME/フラット化機能を利用してください。参照先を代わりに解決してくれます。
CNAME はメールに影響しますか?
はい。CNAME を持つ名前には MX や TXT レコードを設定できないため、メールを受け取る必要がある名前には CNAME を使わないでください。

DNSレコード解説