🗺️

DNSゾーンファイルの歩き方:SOA, A, MX, CNAMEレコードの基本

に公開

はじめに

DNSサーバーを構築する際、named.confの設定と並んで重要になるのが、ドメインの具体的な情報を定義する「ゾーンファイル(ゾーンデータベース)」です。

example.com.dbのようなファイル名で、一見すると謎の記号や略語が並んでいるように見えますよね。

この記事では、自身のWikiメモを元に、このゾーンファイルの基本的な書式と、主要なレコード(SOA, A, MX, CNAMEなど)がそれぞれ何を示しているのかを、備忘録として解説します。

ゾーンファイルの基本構造

ゾーンファイルは、リソースレコードと呼ばれる情報の集まりです。各レコードは、一般的に以下の形式で記述されます。

[ドメイン名] [TTL] [クラス] [タイプ] [データ]

  • ドメイン名: レコードの対象となるホスト名。@はドメイン名そのもの($ORIGIN)を指す省略記法です。
  • TTL: Time To Live。このレコードをキャッシュして良い時間(秒)。
  • クラス: IN (インターネット) が一般的に使われます。
  • タイプ: レコードの種類(A, MXなど)。
  • データ: レコードの内容(IPアドレスやホスト名など)。

最重要レコード:SOAレコード

SOA (Start of Authority)レコードは、そのゾーンファイルの管理者情報やバージョンを定義する、最も重要なレコードです。必ずファイルの一番最初に記述します。

@ IN SOA ns1.example.com. root.example.com. (
  2024100801 ; Serial
  28800      ; Refresh
  14400      ; Retry
  2419200    ; Expire
  10800 )    ; Minimum TTL
  • ns1.example.com.: このゾーンのプライマリDNSサーバー名。
  • root.example.com.: 管理者のメールアドレス (root@example.com@.に置き換えたもの)。
  • Serial: ゾーンファイルのバージョン番号。ファイルを更新したら、必ずこの数値を増やします。 YYYYMMDDNN (年月日+連番) 形式が一般的です。セカンダリDNSサーバーは、この番号を見てファイルの更新を検知します。
  • Refresh, Retry, Expire: セカンダリDNSサーバーがプライマリに問い合わせるタイミングの設定です。

基本的なレコードの種類

次に、実際にドメインの挙動を定義する主要なレコードを見ていきましょう。

NSレコード (Name Server)

そのドメインの名前解決を担当するDNSサーバーを指定します。

        IN  NS  ns1.example.com.
        IN  NS  ns2.example.com.

Aレコード (Address)

ドメイン名(ホスト名)をIPv4アドレスに対応させます。 最もよく使われるレコードです。

www     IN  A   203.0.113.10
mail    IN  A   203.0.113.11

これで、www.example.com203.0.113.10に、mail.example.com203.0.113.11に解決されるようになります。

MXレコード (Mail Exchanger)

そのドメイン宛のメールをどのサーバーに配送すればよいかを指定します。

        IN  MX  10 mail.example.com.

10は優先度を示し、数値が小さいほど優先度が高くなります。

CNAMEレコード (Canonical Name)

あるドメイン名に**別の名前(エイリアス)**を付けます。

ftp     IN  CNAME   www

この設定により、ftp.example.comへのアクセスは、www.example.comと同じIPアドレスに解決されるようになります。

PTRレコード (Pointer)

Aレコードの逆で、 IPアドレスからドメイン名を引く(逆引き) ために使われます。逆引き用のゾーンファイルに記述します。

10      IN  PTR   [www.example.com](https://www.example.com).

おわりに

ゾーンファイルは、一見すると複雑ですが、それぞれのレコードの役割さえ理解してしまえば、ドメインの挙動を自由自在にコントロールできるようになります。
特にSOAレコードのシリアルナンバーの更新は、設定変更時に忘れがちなポイントなので注意が必要です。
この記事が、DNSの内部構造を理解するための一助となれば幸いです。


この記事で紹介した内容以外にも、技術情報をブログで発信しています。
MEANTECH
https://meantech.fontfontfont.com/

Discussion