変更要約: 初版(主題2.08・副主題2.08.1〜2.08.3に対応)
2.2ゾーン情報の管理
ゾーンファイルのレイアウトと、代表的なリソースレコード(SOA・NS・A・AAAA・MX・CNAME・PTR)の書式を学びます。ゾーンファイルの変換・検査に使うnamed-compilezone・named-checkzoneも押さえます。
named.conf がゾーンの「置き場所」を宣言するのに対し、実際の名前とアドレスの対応を記録するのがゾーンファイルです。1行1行のリソースレコードを正確に読み書きできるかが、L2 の実務力を測る核心です。
2.2.1ゾーンファイルのレイアウト
- ゾーンファイルは先頭付近に SOAレコード(Start of Authority=そのゾーンの権威情報)を1つ置き、以降に各種リソースレコードを並べる。書式は概ね
名前 [TTL] IN 種別 値。 - SOA にはシリアル番号(ゾーン転送のトリガー。更新のたびに増やす)・refresh(セカンダリが確認する間隔)・retry・expire(確認できない場合に破棄するまでの期間)・negative TTL(否定応答のキャッシュ期間)が含まれる。
2.2.2主要なリソースレコード
- NS=そのゾーンの権威サーバーを示す。A=ホスト名→IPv4アドレス。AAAA=ホスト名→IPv6アドレス。
- MX=メール配送先ホストと優先度(数値が小さいほど優先)。CNAME=別名から正規名(実体)への別名参照(CNAME 先にさらに他レコードを重ねるのは不可というルールに注意)。
- PTR=逆引き(IPアドレス→ホスト名)専用レコード。逆引きゾーンは
in-addr.arpa(IPv4)・ip6.arpa(IPv6)で運用される。
「SOA のシリアル番号を上げ忘れるとセカンダリに更新が伝わらない」「MX は数値が小さいほど優先度が高い」「逆引き=PTR・正引き=A/AAAA」 が最頻出の対比です。CNAME に他レコードを共存させてはいけないというルールも狙われます。
ゾーンファイル編集は「小さなミスが全体に波及する」典型例です。たとえば新しい Web サーバーを追加する際、www IN A 192.0.2.10 を書き足すだけでなく、SOA のシリアル番号を必ずインクリメントしなければ、セカンダリサーバーは変更をゾーン転送で取得しません(refresh 間隔を待っても serial が変わっていなければ「更新なし」と判断されるため)。メールの到達性を確保するなら example.com. IN MX 10 mail1.example.com. と IN MX 20 mail2.example.com. のように優先度違いの複数 MXを並べ、mail1 に障害があれば mail2 へフォールバックさせます。CNAMEはホスト名の別名付けに便利ですが、www IN CNAME app.example.com. と書いた www に同時に www IN TXT "..." のような別レコードを追加するのは禁止されており、これはよくある設定ミスです。編集後は必ずnamed-checkzoneでゾーンファイルの整合性を検査してから運用に反映し、テキスト形式から高速な内部表現に変換したい場合はnamed-compilezoneを使います。逆引きの整備を怠ると、メールサーバーの逆引き確認(多くの受信側 MTA が実施)に失敗し配送が拒否される、という実務上の落とし穴もあります。
| レコード種別 | 用途 | 例 |
|---|---|---|
| SOA | ゾーンの権威情報(シリアル等) | @ IN SOA ns1.example.com. admin.example.com. ( ... ) |
| NS | 権威サーバーの指定 | @ IN NS ns1.example.com. |
| A / AAAA | ホスト名→IPv4/IPv6 | www IN A 192.0.2.10 |
| MX / CNAME / PTR | メール優先度/別名/逆引き | IN MX 10 mail1.example.com. |
ひっかけ: 「MX レコードは数値が大きいほど優先度が高い」は誤りです。数値が小さいほど優先度が高いのが正しい仕様です。また「ゾーンファイルを編集してもシリアル番号を変えなければ、次の refresh 間隔でセカンダリに自動反映される」も誤り=シリアル番号が変わらない限り、セカンダリは変更を検知しません。
2.2.3この節のまとめ
- SOA=権威情報(シリアル必須インクリメント)/NS=権威サーバー/A・AAAA=正引き/MX=メール優先度(小さいほど優先)/CNAME=別名/PTR=逆引き
- 編集後の整合性検査は named-checkzone、内部表現への変換は named-compilezone
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. ゾーンファイルの A レコードを追加編集した後、セカンダリサーバーに確実に変更を伝えたい。忘れてはならない操作は?
Q2. メールサーバーを2台構成にし、mail1 障害時は mail2 へフォールバックさせたい。ゾーンファイルの設定はどれが適切?
Q3. 編集したゾーンファイルを運用に反映する前に、整合性を検査したい。適切なコマンドは?

