DNSレコードの追加は、Webサイトの公開、メールの利用、サブドメインの作成、外部サービスとの連携などで必要になる基本的な作業です。
ただし、仕組みをあいまいなまま操作すると、サイトが表示されなくなったり、メールが届かなくなったりすることがあります。
そこでまずは、DNSレコードとは何か、どこで設定するのか、どの種類をどう使い分けるのかを整理したうえで、追加の手順を順番に見ていきます。
DNSは、ドメイン名に関する情報を管理する仕組みです。
たとえば、次のような設定はDNSによって行われます。
example.com をWebサーバーのIPアドレスに向けるwww.example.com を別のホスト名の別名にするこのような設定情報の1つ1つが、DNSレコードです。
つまりDNSレコードは、「このドメインをどう使うか」を定義する設定項目と考えると分かりやすいです。
DNSレコードを追加する前に、必ず確認しておきたいのが、どこでDNSを管理しているかです。
ここでよくある誤解が、「ドメインを取得した会社の管理画面で設定すればよい」と思ってしまうことです。
実際には、ドメインの取得先とDNSの管理先が別になっていることがよくあります。
たとえば、ドメインはレジストラで取得していても、ネームサーバーを Cloudflare や Route 53 へ向けている場合、DNSレコードを追加する場所はその委任先です。
つまり、レコードを編集すべきなのは、そのドメインの権威DNSを管理しているサービス側です。
DNSレコードの追加は、多くの場合、次の流れで進めます。
管理画面の名称はサービスによって異なりますが、次のようなメニュー名になっていることが多いです。
Aレコードは、ホスト名をIPv4アドレスに対応付けるレコードです。
もっとも基本的なレコードで、Webサイトをサーバーに向けるときによく使います。
たとえば、example.com を 203.0.113.10 に向けるなら、Aレコードを追加します。
例
@203.0.113.10ここで @ は、多くの管理画面でルートドメイン、つまり example.com 自体を表す記号として使われます。
ただし、これはDNSそのものの記法ではなく、管理画面側の入力上の表現です。
AAAAレコードは、AレコードのIPv6版です。
ホスト名をIPv6アドレスへ向ける場合に使います。
例
@2001:db8::1IPv6を利用していない環境では使わないこともありますが、対応サーバーでは設定対象になることがあります。
CNAMEレコードは、あるホスト名を別のホスト名の別名として扱うレコードです。
たとえば、www.example.com を example.com の別名にする場合は、次のように設定します。
wwwexample.comこの設定により、www.example.com は DNS上で example.com の別名として解決されます。
ここで重要なのは、CNAMEはURL転送やリダイレクトではないという点です。
あくまでDNSレベルでの別名指定であり、ブラウザのURLを書き換える機能ではありません。
URLを別ページへ飛ばす 301 リダイレクトなどは、Webサーバーやアプリケーション側の役割です。
さらに、CNAMEには大切な制約があります。
CNAMEを置いた名前には、原則として他の通常レコードを置けません。
たとえば、www にCNAMEを設定しているのに、同じ www にAレコードやTXTレコードを追加するのは避けるべきです。
実務では、「CNAMEを置いた名前には他のレコードを重ねない」と覚えておくと安全です。
また、ルートドメインには通常のCNAMEを置けません。
つまり example.com 自体を通常のCNAMEにすることはできません。
ルートドメインで同様のことを実現したい場合は、DNS事業者が提供する ALIAS や ANAME、独自の alias 機能を使うことがあります。
MXレコードは、メールを受信するメールサーバーを指定するレコードです。
メールサービスを使う場合は、Webサイト用のAレコードとは別に、MXレコードの設定が必要になります。
例
@10mail.example.comMXレコードには優先度があり、数字が小さいものほど優先されます。
ここで注意したいのは、MXの宛先にCNAMEを使わないことです。
MXレコードが指す先は、最終的にAレコードまたはAAAAレコードを持つ実体のあるホスト名にするのが基本です。
たとえば、次のような形は分かりやすく安全です。
mail.example.commail.example.com = 203.0.113.20TXTレコードは、文字列データを登録するためのレコードです。
以前は単純なメモ的用途として説明されることもありましたが、現在の実務では主に次のような用途で使われます。
たとえば、Google Search Console の所有確認では、指定されたTXTレコードを追加します。
例
@google-site-verification=xxxxxSPFの例
@v=spf1 include:_spf.google.com ~allDMARCの例
_dmarcv=DMARC1; p=none; rua=mailto:dmarc@example.comなお、管理画面によっては、_dmarc だけ入力すれば自動的に example.com が補われる場合があります。
そのため、Name欄に何を入れるべきかは、管理画面の仕様を必ず確認してください。
NSレコードは、そのドメインやサブドメインをどのネームサーバーが管理するかを示すレコードです。
これは非常に重要な設定で、変更するとサイトやメール全体に影響することがあります。
そのため、意味が分からないまま変更するのは危険です。
特に、ドメイン全体のネームサーバー変更は影響範囲が大きいため、慎重に扱う必要があります。
CAAレコードは、どの認証局がそのドメインに対してSSL証明書を発行してよいかを指定するレコードです。
セキュリティ強化のために使われることがあります。
通常のWeb公開では意識する機会が少ないかもしれませんが、証明書発行の制御やポリシー管理では重要です。
SRVレコードは、特定サービスの接続先ホスト名やポート番号を示すためのレコードです。
VoIP、チャット、認証系、一部のMicrosoft系サービスなどで使われることがあります。
一般的なWebサイト運用ではあまり触れませんが、業務システムや特殊なサービス連携では登場します。
DNS設定で混乱しやすいのが、Name や Host 欄の入力です。
たとえばドメインが example.com の場合、多くの管理画面では次のように扱います。
@ → example.comwww → www.example.commail → mail.example.com_dmarc → _dmarc.example.comただし、管理画面によっては、完全なホスト名をそのまま入力する形式もあります。
つまり、www とだけ入れる画面もあれば、www.example.com まで必要な画面もあるということです。
この部分はDNSそのもののルールというより、管理画面ごとの仕様の違いです。
入力後に意図した名前になっているか確認することが大切です。
TTLは、DNSの応答をどれくらいキャッシュしてよいかを示す時間です。
よく使われる値としては、300秒、600秒、3600秒、86400秒などがあります。
ただし、ここでよく誤解されるのが、TTLはそのまま反映時間ではないという点です。
TTLが300秒なら、理屈の上では5分ほどで新しい情報を見に行くリゾルバが増えますが、実際の見え方は環境によって前後します。
OSやブラウザ、ネットワーク機器、DNSリゾルバ側のキャッシュ状況によって、古い情報がしばらく残ることもあります。
そのため、TTLは「反映時間」ではなく「キャッシュ保持時間の目安」と理解するのが正確です。
example.com と www.example.com の両方でサイトを表示したい場合、よくある設定は次の通りです。
@203.0.113.10wwwexample.comこの構成では、example.com はサーバーIPへ直接向き、www.example.com はその別名として動作します。
たとえば blog.example.com を作る場合は、次のどちらかを使います。
Aレコードで直接向ける場合
blog203.0.113.15CNAMEで別のホスト名へ向ける場合
bloghosting.example.netCNAMEを使う場合は、同じ blog に他のレコードを重ねないようにします。
Google Search Console や各種SaaSでは、TXTレコードによる所有確認がよく使われます。
例
@google-site-verification=xxxxxxxxこうした値は、自分で推測して設定するのではなく、サービス側が指定した内容をそのまま使うのが基本です。
Google Workspace や Microsoft 365 などを使う場合は、通常、次のようなレコードが必要になります。
このときは、各サービスが案内する値を正確に設定することが重要です。
特にSPFは、既存のTXTレコードとの重複に注意が必要です。
SPF用TXTを複数に分けてしまうと、正しく動作しないことがあります。
もっとも多いミスです。
実際に権威DNSを管理しているサービスではなく、別の管理画面でレコードを追加しても反映されません。
www だけでよいのに www.example.com まで入れてしまったり、その逆をしてしまったりするケースです。
最終的なレコード名がどう作られるかを確認する必要があります。
同じ名前にCNAMEとA、TXTなどを一緒に置こうとしてしまうミスです。
これは避けるべきです。
example.com 自体には通常のCNAMEは置けません。
ここは初心者がつまずきやすいポイントです。
MXレコードが向く先は、AまたはAAAAを持つ実ホスト名にするのが基本です。
保存後すぐに全環境で反映されるとは限りません。
TTLや各種キャッシュを考慮しながら確認する必要があります。
DNSレコードを追加したら、必ず確認します。
nslookup
nslookup example.com
nslookup -type=TXT example.com
dig
dig example.com A
dig www.example.com CNAME
dig example.com MX
dig _dmarc.example.com TXT
確認時は、次のような点を見るとよいです。
DNS変更は影響が大きいため、次の流れで進めると安全です。
特に慎重に扱うべきなのは、次のような設定です。
DNSレコード追加で押さえるべきポイントは、次の4つです。
そして、特に重要なのは次の点です。
DNSは一見難しそうに見えますが、「どこで」「何を」「どの名前に」「どんな値で」設定するかを整理すれば、かなり理解しやすくなります。
以上、DNSレコードを追加する方法についてでした。
最後までお読みいただき、ありがとうございました。