ゾーンファイルの書き方完全ガイド|SOA・NS・A・MXレコードの設定方法を理解する

目次
ゾーンファイルの書き方完全ガイド
DNSサーバを構築する際、named.confと並んで重要になるのがゾーンファイルです。
ゾーンファイルにはドメイン名とIPアドレスの対応情報やメールサーバ情報など、DNSサーバが応答するためのデータが記述されています。
BINDの学習において、多くの人が最初につまずくのがゾーンファイルの書式です。
しかし、各レコードの意味を理解すれば決して難しいものではありません。
本記事ではBINDで利用するゾーンファイルの基本構造から、実際によく利用されるレコードの書き方まで解説します。
ゾーンファイルとは
ゾーンファイルとは、DNSレコードを保存するファイルです。
権威DNSサーバは、このゾーンファイルを参照して問い合わせへ応答します。
例えば以下のような情報を管理します。
- WebサーバのIPアドレス
- メールサーバ情報
- DNSサーバ情報
- TXTレコード
ゾーンファイルの配置場所
BINDでは一般的に以下へ配置します。
/var/named/
例です。
/var/named/example.com.zone最小構成のゾーンファイル
$TTL 3600
@ IN SOA ns1.example.com. root.example.com. (
2026060901
28800
14400
3600000
86400
)
@ IN NS ns1.example.com.
ns1 IN A 192.168.60.10
www IN A 192.168.60.20まずはこの構造を理解することが重要です。
$TTLとは
TTL(Time To Live)を指定します。
$TTL 3600秒単位で指定します。
3600秒は1時間です。
DNSキャッシュの保持時間として利用されます。
@の意味
ゾーンファイルでよく見かける記号です。
@ゾーン名そのものを意味します。
例えばexample.comゾーンなら次と同じ意味です。
example.com.SOAレコードとは
ゾーン管理情報を保持する重要なレコードです。
@ IN SOA ns1.example.com. root.example.com. (
2026060901
28800
14400
3600000
86400
)すべてのゾーンに必須です。
SOAの構成
| 項目 | 意味 |
|---|---|
| ns1.example.com. | プライマリDNS |
| root.example.com. | 管理者メールアドレス |
| 2026060901 | シリアル番号 |
| 28800 | Refresh |
| 14400 | Retry |
| 3600000 | Expire |
| 86400 | Negative Cache TTL |
シリアル番号とは
ゾーン更新管理に利用します。
2026060901
一般的には以下の形式です。
YYYYMMDDNN
ゾーンを変更したら必ず更新します。
NSレコードとは
DNSサーバを定義します。
@ IN NS ns1.example.com.
example.comを管理するDNSサーバを指定しています。
セカンダリーDNSの登録例
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.実運用では複数登録するのが一般的です。
Aレコードとは
ホスト名とIPv4アドレスを対応付けます。
www IN A 192.168.60.20
意味は次の通りです。
www.example.com
↓
192.168.60.20AAAAレコードとは
IPv6アドレスを登録します。
www IN AAAA 2001:db8::20
IPv6環境で利用されます。MXレコードとは
メールサーバを指定します。
@ IN MX 10 mail.example.com.
メール配送時に利用されます。MXレコードの優先順位
数値が小さいほど優先されます。
@ IN MX 10 mail1.example.com.
@ IN MX 20 mail2.example.com.
mail1が優先されます。メールサーバのAレコード
MXだけでは不十分です。
対応するAレコードも必要です。
mail IN A 192.168.60.30CNAMEレコードとは
別名を定義します。
ftp IN CNAME www
意味です。
ftp.example.com
↓
www.example.comCNAMEの注意点
CNAMEと他レコードは共存できません。
例えば以下はエラーです。
ftp IN CNAME www
ftp IN A 192.168.60.50TXTレコードとは
任意の文字列を登録できます。
@ IN TXT "hello"
近年はメール認証で利用されることが多くなっています。SPFレコード例
@ IN TXT "v=spf1 mx -all"
送信元メールサーバの認証に利用されます。DKIMレコード例
selector._domainkey
IN TXT "公開鍵情報"
メール改ざん検知に利用されます。ワイルドカードレコード
アスタリスクを利用できます。
* IN A 192.168.60.20
未定義ホスト名へ応答できます。ゾーンファイルの省略記法
次の2つは同じ意味です。
www IN A 192.168.60.20
www.example.com. IN A 192.168.60.20
通常は短縮記法を利用します。末尾ドットの意味
非常に重要なポイントです。
ns1.example.com.
最後のドットはFQDNを意味します。末尾ドット忘れの例
以下は誤りです。
ns1.example.com
ゾーン名が自動付加されます。
ns1.example.com.example.com
意図しないレコードになることがあります。ゾーンファイルの確認
構文チェックを行います。
# named-checkzone example.com /var/named/example.com.zone
成功例です。
OKよくある記述ミス
末尾ドット忘れ
最も多いミスです。
シリアル番号未更新
セカンダリーDNSへ反映されません。
CNAMEとAレコードの共存
設定エラーになります。
MXのAレコード未設定
メール配送に失敗します。
実務で覚えておきたいポイント
- SOAレコードは必須
- シリアル番号管理が重要
- NSレコードは複数登録する
- MXには対応するAレコードが必要
- 末尾ドットに注意する
- named-checkzoneで確認する
まとめ
ゾーンファイルはDNSサーバの応答内容を定義する重要なファイルです。
SOA、NS、A、AAAA、MX、CNAME、TXTなどのレコードを組み合わせることで、Webサイトやメールシステムの名前解決を実現します。
また、シリアル番号管理や末尾ドットなど、運用上の重要なポイントも数多く存在します。
BIND運用を行う上では、ゾーンファイルを正しく読み書きできることが最も重要なスキルの一つと言えるでしょう。






