Instiq
第2章 · ドメインネームサーバー·v1.0.0·更新 2026/7/7·読了目安 約11分

変更要約: 初版(主題2.08・副主題2.08.1〜2.08.3に対応)

2.2ゾーン情報の管理

この節の要点

ゾーンファイルのレイアウトと、代表的なリソースレコードSOANSAAAAAMXCNAMEPTR)の書式を学びます。ゾーンファイルの変換・検査に使うnamed-compilezonenamed-checkzoneも押さえます。

named.conf がゾーンの「置き場所」を宣言するのに対し、実際の名前とアドレスの対応を記録するのがゾーンファイルです。1行1行のリソースレコードを正確に読み書きできるかが、L2 の実務力を測る核心です。

2.2.1ゾーンファイルのレイアウト

  • ゾーンファイルは先頭付近に SOAレコード(Start of Authority=そのゾーンの権威情報)を1つ置き、以降に各種リソースレコードを並べる。書式は概ね 名前 [TTL] IN 種別 値
  • SOA にはシリアル番号(ゾーン転送のトリガー。更新のたびに増やす)・refresh(セカンダリが確認する間隔)・retryexpire(確認できない場合に破棄するまでの期間)・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/IPv6www IN A 192.0.2.10
MX / CNAME / PTRメール優先度/別名/逆引きIN MX 10 mail1.example.com.
注意

ひっかけ: 「MX レコードは数値が大きいほど優先度が高い」は誤りです。数値が小さいほど優先度が高いのが正しい仕様です。また「ゾーンファイルを編集してもシリアル番号を変えなければ、次の refresh 間隔でセカンダリに自動反映される」も誤り=シリアル番号が変わらない限り、セカンダリは変更を検知しません

ゾーンファイルのSOA・NS・A/AAAA・MX・CNAME・PTRレコードと named-checkzoneの検査フローを示す図。
シリアル番号を上げ忘れると転送されない

2.2.3この節のまとめ

  • SOA=権威情報(シリアル必須インクリメント)/NS=権威サーバー/A・AAAA=正引き/MX=メール優先度(小さいほど優先)/CNAME=別名/PTR=逆引き
  • 編集後の整合性検査は named-checkzone、内部表現への変換は named-compilezone

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. ゾーンファイルの A レコードを追加編集した後、セカンダリサーバーに確実に変更を伝えたい。忘れてはならない操作は?

Q2. メールサーバーを2台構成にし、mail1 障害時は mail2 へフォールバックさせたい。ゾーンファイルの設定はどれが適切?

Q3. 編集したゾーンファイルを運用に反映する前に、整合性を検査したい。適切なコマンドは?

理解度を確認第2章「ドメインネームサーバー」の問題を解く