DNSゾーンとは?ゾーンファイルとドメイン管理の仕組みを理解する

目次
DNSゾーンとは?ゾーンファイルの役割を理解する
DNSを学習していると、「ゾーン」や「ゾーンファイル」という用語が登場します。
DNSレコード、権威DNSサーバ、ゾーン転送などを理解するためには、まずゾーンの概念を理解することが重要です。
実際のDNSサーバ運用では、ドメイン単位でDNS情報を管理するためにゾーンという仕組みが利用されています。
特にBINDを利用したDNSサーバ構築では、ゾーンファイルの理解が欠かせません。
本記事では、DNSゾーンとは何か、ゾーンファイルの構造、権威DNSサーバとの関係、実際の運用方法について解説します。
DNSゾーンとは
ゾーンとは、DNSサーバが管理するDNS情報の範囲を表す単位です。
例えば次のドメインがあるとします。
example.comこのドメインに関するDNS情報をまとめて管理する単位がゾーンです。
ゾーンの中には次のような情報が含まれます。
- Aレコード
- AAAAレコード
- MXレコード
- TXTレコード
- NSレコード
- CNAMEレコード
- SOAレコード
つまり、DNSレコードの集合体がゾーンです。
ドメインとゾーンの違い
ドメインとゾーンは似ていますが、厳密には異なります。
例えば次の階層構造を考えてみます。
example.com
├─ www.example.com
├─ mail.example.com
└─ dev.example.comドメインは名前空間そのものです。
一方、ゾーンはDNS管理単位です。
場合によってはドメインの一部だけを別ゾーンとして管理できます。
ゾーン分割とは
DNSではサブドメインを別のゾーンとして管理できます。
例えば次の構成です。
example.com
└─ dev.example.com通常はexample.comゾーンで管理できます。
しかし次のように分割することも可能です。
example.com ゾーン
└─ dev.example.com → 別ゾーンこれをゾーン委任(Delegation)と呼びます。
ゾーンファイルとは
ゾーンファイルは、ゾーン情報を保存するテキストファイルです。
BINDでは通常次のようなファイルとして管理されます。
/var/named/example.com.zoneこのファイルにDNSレコードを記述します。
ゾーンファイルの基本構造
簡単なゾーンファイルの例です。
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2026060801
28800
14400
3600000
86400
)
@ 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.これがゾーンファイルの基本形です。
$TTLの意味
ファイルの先頭によく登場するのがTTLです。
$TTL 3600これはデフォルトTTLを表しています。
3600秒なので1時間キャッシュされます。
SOAレコードとは
SOA(Start Of Authority)はゾーンの基本情報を定義します。
@ IN SOA ns1.example.com. admin.example.com.SOAレコードには次のような情報が含まれます。
- プライマリDNSサーバ
- 管理者情報
- シリアル番号
- 更新間隔
- 再試行間隔
- 有効期限
- ネガティブキャッシュTTL
ゾーンファイルには必須のレコードです。
シリアル番号の重要性
SOAレコードにはシリアル番号があります。
2026060801ゾーンファイルを変更したら、この番号を増やします。
セカンダリDNSサーバはこの値を確認して更新の有無を判断します。
シリアル番号を更新し忘れると、変更内容が反映されません。
NSレコードの役割
NSレコードはゾーンを管理するDNSサーバを指定します。
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.通常は複数のDNSサーバを指定します。
これにより冗長化が実現できます。
Aレコードの登録
WebサーバなどのIPアドレスを登録します。
www IN A 192.0.2.20この場合、次のFQDNになります。
www.example.comBINDでは自動的にドメイン名が補完されます。
MXレコードの登録
メールサーバを指定します。
@ IN MX 10 mail.example.com.メール配送時にはMXレコードが参照されます。
メールサーバ運用では必須の設定です。
$ORIGINとは
BINDでは$ORIGINが利用できます。
$ORIGIN example.com.これにより記述を簡略化できます。
ただし実務では省略されることも多くあります。
特に単一ドメイン管理の場合は不要なケースもあります。
逆引きゾーンとは
ゾーンには正引きだけでなく逆引きもあります。
正引きです。
www.example.com
↓
192.0.2.10
逆引きです。
192.0.2.10
↓
www.example.com
逆引きゾーンではPTRレコードを利用します。逆引きゾーンファイル例
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2026060801
28800
14400
3600000
86400
)
@ IN NS ns1.example.com.
10 IN PTR www.example.com.メールサーバでは逆引き設定が重要になります。
ゾーン転送との関係
プライマリDNSサーバからセカンダリDNSサーバへゾーン情報をコピーする仕組みをゾーン転送と呼びます。
Primary DNS
↓
AXFR
↓
Secondary DNSこれにより複数の権威DNSサーバが同じ情報を保持できます。
ゾーン転送で利用されるポート
通常のDNS問い合わせはUDP53番ポートです。
しかしゾーン転送はTCP53番ポートを利用します。
ファイアウォール設定時には注意が必要です。
BINDでのゾーン定義
named.confでは次のように設定します。
zone "example.com" {
type master;
file "example.com.zone";
};これによりBINDはゾーンファイルを読み込みます。
よくあるトラブル
シリアル番号未更新
セカンダリDNSへ変更が反映されません。
NSレコードの誤設定
ドメイン全体が名前解決できなくなる場合があります。
ゾーンファイル構文エラー
named-checkzoneで事前確認が必要です。
$ named-checkzone example.com example.com.zone末尾ドット忘れ
BINDでは非常によくあるミスです。
意図しないFQDNが生成される原因になります。
実務で覚えておくべきポイント
- ゾーンはDNS管理単位
- ゾーンファイルはDNSレコードの集合
- SOAレコードは必須
- シリアル番号管理が重要
- ゾーン転送で冗長化する
- 正引きと逆引きが存在する
まとめ
DNSゾーンとは、DNSサーバが管理する情報の単位です。
ゾーン情報はゾーンファイルとして保存され、Aレコード、MXレコード、NSレコード、SOAレコードなどが記述されます。
権威DNSサーバはこのゾーン情報を保持し、正式なDNS情報を提供します。
また、ゾーン転送によってセカンダリDNSサーバへ複製されることで高可用性が実現されています。
DNSサーバ構築や運用を行う際には、ゾーンとゾーンファイルの理解が欠かせません。





