DNSのゾーン情報とは、ある範囲のドメイン名に対して、どの名前をどこに向けるかを定義したDNSの管理データです。
たとえば example.com というドメインについて、
www.example.com はどのIPアドレスへ向けるかといった情報をまとめたものが、DNSのゾーン情報です。
ひとことで言えば、「そのドメインに関する名前解決ルールの正式な台帳」のようなものです。
DNSでは、インターネット上の名前空間を階層的に分け、それぞれを別々に管理しています。
この管理の単位が「ゾーン」です。
ここで似た言葉として「ドメイン」がありますが、両者は完全に同じではありません。
たとえば example.com を管理していても、sub.example.com を別のDNSサーバーへ委任している場合は、
example.com のゾーンsub.example.com のゾーンは別になります。
つまりゾーンとは、「どこまでを1つのDNS管理単位として扱うか」という考え方です。
ゾーン情報は、リソースレコード(Resource Record) の集合として構成されます。
リソースレコードとは、DNSに登録される1件ごとのデータです。
代表的なものを順番に見ていきます。
SOAは Start of Authority の略で、そのゾーンの基本情報を示す重要なレコードです。
SOAには主に次のような情報が入ります。
MINIMUM フィールドこのうちシリアル番号は、ゾーン情報が更新されたかどうかを判定するために使われます。
セカンダリDNSはこの番号を見て、プライマリDNSより古い場合にゾーン転送を行います。
なお、SOAの MINIMUM フィールドは、古い説明では「最低TTL」とされることがありますが、現在は単純にそう理解しないほうが安全です。
現代の運用では、主に負の応答のキャッシュ期間に関係する値として扱われます。
NSレコードは、そのゾーンを管理する権威ネームサーバーを示します。
たとえば次のような情報です。
ns1.example.netns2.example.netこれにより、「このドメインの正式なDNS情報はどのサーバーが持っているか」が分かります。
また、サブドメインを別のDNSサーバーへ委任する場合にも、NSレコードが重要になります。
Aレコードは、ホスト名をIPv4アドレスに対応付けるレコードです。
例
www.example.com → 192.0.2.10Webサイト公開時に最もよく使われる基本レコードです。
AAAAレコードは、ホスト名をIPv6アドレスに対応付けるレコードです。
例
www.example.com → 2001:db8::10IPv6対応のサーバーではAレコードとあわせて使われることがあります。
CNAMEレコードは、ある名前を別の名前の別名として定義するレコードです。
例
blog.example.com → example.hosting-service.comこれは「blog.example.com は、この別のホスト名を参照してください」という意味です。
ただし重要な注意点があります。
CNAMEを置いた名前には、原則として他の通常レコードを同居させません。
つまり、同じ名前に
などを同時に置くのは、通常できません。
このため、特にゾーン頂点(ルートドメイン)では注意が必要です。
ゾーン頂点には通常 SOA や NS が必要になるため、そこへ通常のCNAMEを置くことはできません。
その代わり、一部のDNSサービスでは ALIAS や ANAME などの独自機能で似た動きを実現しています。
MXレコードは、メール配送先となるメールサーバーのホスト名を指定するレコードです。
例
example.com のメールは mail.example.com で受けるまた、MXレコードには優先順位を付けることができます。
たとえば、
mail1.example.commail2.example.comのように設定すれば、通常は優先度の低い数字のサーバーが優先されます。
なお、MXはIPアドレスそのものではなくホスト名を指定するのがポイントです。
そして、そのホスト名は通常 A または AAAA で引けるようにしておきます。
TXTレコードは、テキスト情報を公開するためのレコードです。
昔は比較的自由な用途に使われていましたが、現在では実務上かなり重要です。
たとえば次のような用途があります。
Web担当者やマーケ担当者にとっては、もっとも触る機会の多いレコードの1つです。
PTRレコードは、逆引きDNSで使われるレコードです。
通常のDNSは「名前からIPアドレスを調べる」仕組みですが、PTRはその逆で、IPアドレスから名前を引くために使います。
これは通常のドメインゾーンではなく、
in-addr.arpaip6.arpaといった逆引き用ゾーンで管理されます。
SRVレコードは、特定サービスの接続先ホスト名やポート番号を示すためのレコードです。
主に特定アプリケーションやサービス検出の用途で使われます。
CAAレコードは、どの認証局がそのドメインの証明書を発行してよいかを指定するためのレコードです。
SSL/TLS証明書の発行管理をより厳密にしたい場合に使われます。
DNSサーバーによっては、ゾーン情報をゾーンファイルというテキスト形式で管理します。
特にBIND系のDNSではよく知られた形式です。
イメージは次のようなものです。
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2026041901 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
3600 ; minimum
)
IN NS ns1.example.com.
IN NS ns2.example.com.
@ IN A 192.0.2.10
www IN A 192.0.2.20
mail IN A 192.0.2.30
@ IN MX 10 mail.example.com.
@ IN TXT "v=spf1 mx -all"
この例からは、
ns1 と ns2example.com 自体は 192.0.2.10www.example.com は 192.0.2.20mail.example.comといったことが読み取れます。
たとえばブラウザで www.example.com にアクセスすると、概念的には次のような流れで名前解決が行われます。
.com)のDNS情報を参照するexample.com の権威DNSに到達するwww.example.com のAまたはAAAAレコードを返す実際にはキャッシュが効いていたり、最適化が入っていたりするため、毎回すべてをたどるわけではありません。
ただ、仕組みを理解するための基本図としてはこの流れで問題ありません。
この最終的な回答の元になるのが、権威DNSが持つゾーン情報です。
DNSを理解するうえで、この違いは非常に重要です。
つまり、「その情報の本当の元はどこか」を知りたいときは、権威DNSを見る必要があります。
DNSでは、1つのゾーン情報を複数の権威DNSサーバーで共有することが一般的です。
その同期に使われる仕組みがゾーン転送です。
主な種類は次の2つです。
一般には、
の間で行われます。
ただし、ゾーン転送を無制限に許可すると、ゾーン内の情報を第三者に一覧取得される可能性があります。
そのため、通常は転送元・転送先を制限して運用します。
SOAレコードにあるシリアル番号は、ゾーン情報の版数管理のような役割を持ちます。
よくある形式は次のようなものです。
2026041901これは慣例的に、
という意味で使われることがあります。
形式は必ずしもこれでなければならないわけではありませんが、重要なのは更新時に値が増えることです。
DNSを更新したのにセカンダリ側へ反映されない場合、シリアル番号の更新漏れが原因になることがあります。
TTLは Time To Live の略で、そのDNS情報をどれくらいキャッシュしてよいかを示す値です。
たとえばTTLが3600なら、1時間程度キャッシュされる可能性があります。
TTLが長い場合は、
TTLが短い場合は、
という特徴があります。
Webサイト移転やメール切替の前にTTLを短くしておくのは、よくある実務対応です。
実務で「DNSのゾーン情報を確認する」という場合、主に次のような点を見ます。
DNSのゾーン情報では、次のようなミスが起こりやすいです。
Webサイトが別のサーバーを向いてしまう。
メールが届かない、または誤った配送先へ送られる。
同じ名前に他レコードを置いてしまい、正しく解決できなくなる。
サブドメインが解決不能になる。
セカンダリDNSへ反映されない。
修正済みなのに、まだ古い情報が見えているように見える。
SPFやドメイン認証に失敗する。
内部構成を不用意に見られる可能性がある。
ここはよく混同されます。
つまり、
という2段階になっています。
dig などで確認する方法実務では dig コマンドがよく使われます。
dig example.com A
dig example.com NS
dig example.com MX
dig example.com SOA
dig @ns1.example.com example.com SOA
このように権威DNSを直接指定すると、キャッシュではなく正式な情報源に近いデータを確認しやすくなります。
DNSのゾーン情報とは、あるドメインまたはその一部について、どの名前をどこに向けるかを定義した正式なDNSデータです。
中心となるのは次のようなレコードです。
これを理解すると、
がかなり分かりやすくなります。
特に重要なのは、「ドメインを持っていること」と「DNSを設定していること」と「Webサーバーが動いていること」は別の話だと整理して理解することです。
以上、DNSのゾーン情報についてでした。
最後までお読みいただき、ありがとうございました。