Labee Dev Toolbox
技術ノートガイド用語解説
無料で試す
  1. ホーム
  2. / 用語解説
  3. / SOA レコード(Start of Authority)
DNS

SOA レコード(Start of Authority)

2026年4月21日 更新

概要

SOA レコード(Start of Authority) は、DNS ゾーンの管理情報を定義するレコードです。RFC 1035(1987年)で規定されており、レコードタイプ番号は 6 です。すべての DNS ゾーンには必ず 1 つの SOA レコードが存在し、ゾーンの頂点(Apex)に配置されます。

SOA レコードには、ゾーンのプライマリーネームサーバー、管理者の連絡先、ゾーンデータのバージョン番号(シリアル番号)、セカンダリーサーバーがゾーン転送を行うタイミングの制御値が含まれます。DNS ゾーンの「メタデータ」とも言える存在で、ゾーン転送やネガティブキャッシュの挙動に直接影響します。

仕組み

SOA レコードは 7 つのフィールドで構成され、シリアル番号によるゾーン転送制御とネガティブキャッシュの管理を担います。

レコードの構造

SOA レコードは 7 つのフィールドで構成されます。

example.com.  IN  SOA  ns1.example.com. admin.example.com. (
    2026041101  ; serial
    3600        ; refresh
    900         ; retry
    1209600     ; expire
    300         ; minimum
)
フィールド説明
MNAMEプライマリーネームサーバーのホスト名
RNAMEゾーン管理者のメールアドレス。@ を . に置き換えた形式で記述する(admin.example.com. は admin@example.com)
Serialゾーンデータのバージョン番号。変更のたびにインクリメントする
Refreshセカンダリーサーバーがプライマリーに問い合わせてゾーンの更新を確認する間隔(秒)
RetryRefresh の問い合わせが失敗した場合のリトライ間隔(秒)
Expireセカンダリーサーバーがプライマリーに到達できない場合、ゾーンデータを有効とみなす最大期間(秒)。この期間を超えるとセカンダリーはゾーンデータを破棄し、応答を停止する
Minimumネガティブキャッシュの TTL(秒)。RFC 2308 で再定義された

シリアル番号の運用

シリアル番号はゾーン転送のトリガーとして機能します。セカンダリーサーバーは Refresh 間隔ごとにプライマリーの SOA レコードを取得し、シリアル番号が手元のものより大きければゾーン転送(AXFR または IXFR)を開始します。

一般的なシリアル番号の形式は YYYYMMDDnn です。2026041101 は「2026年4月11日の 1 回目の変更」を意味します。1 日に複数回変更する場合は末尾の nn をインクリメントします。RFC 1982 ではシリアル番号の比較にシーケンス空間演算を使い、32 ビット整数のラップアラウンドにも対応しています。

ゾーン転送の制御

SOA レコードの Refresh / Retry / Expire の 3 つの値がゾーン転送のスケジュールを決定します。

Refresh が 3600 の場合、セカンダリーサーバーは 1 時間ごとにプライマリーのシリアル番号を確認します。プライマリーが応答しなければ Retry(上記では 900 秒 = 15 分)間隔で再試行します。プライマリーへの到達不能が Expire(上記では 1209600 秒 = 14 日間)続くと、セカンダリーはゾーンデータを無効とみなして応答を停止します。

RFC 1912 では、Refresh を 1200〜43200 秒、Retry を Refresh の 1/3 程度、Expire を 1209600〜2419200 秒(14〜28 日)に設定することを推奨しています。

ネガティブキャッシュと MINIMUM フィールド

RFC 1035 の当初の定義では MINIMUM フィールドはゾーン全体のデフォルト TTL でしたが、RFC 2308(1998年)で役割が変わりました。現在の MINIMUM フィールドは、存在しないドメイン名に対する NXDOMAIN 応答のキャッシュ時間(ネガティブキャッシュ TTL)を制御します。

dig で存在しないサブドメインを問い合わせると、AUTHORITY SECTION に SOA レコードが返ります。このとき SOA レコードの MINIMUM フィールドの値がネガティブキャッシュの TTL になります。RFC 2308 ではネガティブキャッシュ TTL の上限を 3 時間(10800 秒) に制限することを推奨しています。

設定例

ゾーンの更新頻度やサービスの可用性要件に応じて、Refresh・Retry・Minimum の値を調整します。

一般的なゾーンの SOA レコード

$TTL 3600
example.com.  IN  SOA  ns1.example.com. hostmaster.example.com. (
    2026041101  ; serial - YYYYMMDDnn 形式
    3600        ; refresh - 1 時間
    900         ; retry - 15 分
    1209600     ; expire - 14 日
    300         ; minimum - ネガティブキャッシュ 5 分
)

頻繁に更新するゾーン

CDN やロードバランサーのように短い TTL で運用するゾーンでは、Refresh と Minimum を短く設定します。

example.com.  IN  SOA  ns1.example.com. dns-admin.example.com. (
    2026041101  ; serial
    600         ; refresh - 10 分
    300         ; retry - 5 分
    1209600     ; expire - 14 日
    60          ; minimum - ネガティブキャッシュ 1 分
)

Cloudflare のデフォルト SOA

Cloudflare DNS を利用する場合、SOA レコードは自動的に設定されます。

example.com.  IN  SOA  hans.ns.cloudflare.com. dns.cloudflare.com. (
    2345678901  ; serial
    10000       ; refresh
    2400        ; retry
    604800      ; expire
    1800        ; minimum
)

確認方法

dig で SOA レコードを確認するには次のコマンドを使います。

dig SOA example.com

出力の ANSWER SECTION にゾーンの管理情報が表示されます。

;; ANSWER SECTION:
example.com.		3600	IN	SOA	ns1.example.com. hostmaster.example.com. 2026041101 3600 900 1209600 300

各フィールドは左から MNAME、RNAME、Serial、Refresh、Retry、Expire、Minimum の順です。

ネガティブキャッシュの動作を確認するには、存在しないサブドメインを問い合わせます。

dig nonexistent.example.com
;; status: NXDOMAIN
;; AUTHORITY SECTION:
example.com.		300	IN	SOA	ns1.example.com. hostmaster.example.com. 2026041101 3600 900 1209600 300

AUTHORITY SECTION に SOA レコードが返り、NXDOMAIN ステータスが表示されます。SOA の MINIMUM フィールドの値(上記では 300)が、そのネガティブ応答のキャッシュ時間です。

外部の視点からも確認したい場合は、Labee Dev Toolbox の DNS API を使うと、外部の視点から見た結果を取得できます。

curl "https://labee.dev/api/dns?domain=example.com&type=SOA"

レスポンスは次の形式で返ります。

{
  "success": true,
  "data": {
    "domain": "example.com",
    "records": {
      "SOA": [
        {
          "mname": "ns1.example.com",
          "rname": "hostmaster.example.com",
          "serial": 2026041101,
          "refresh": 3600,
          "retry": 900,
          "expire": 1209600,
          "minimum": 300
        }
      ]
    }
  },
  "error": null,
  "meta": { "responseTime": 38 }
}

records.SOA 配列の各要素に MNAME から MINIMUM までの 7 フィールドが含まれます。rname フィールドは . 区切りのまま返るため、最初の . を @ に読み替えるとメールアドレスになります。

よくある問題

SOA レコードの設定ミスは、ゾーン転送の停止やネガティブキャッシュの長期化としてドメイン全体に影響します。

シリアル番号を巻き戻してしまった

シリアル番号を手動で編集して以前より小さい値にすると、セカンダリーサーバーは「変更なし」と判断してゾーン転送を行いません。結果として、プライマリーの変更がセカンダリーに反映されなくなります。修正するには、現在のセカンダリーのシリアル番号より大きい値をプライマリーに設定します。

Expire が短すぎてセカンダリーが応答を停止する

プライマリーサーバーの障害が長引いた場合、Expire が短いとセカンダリーがゾーンデータを破棄して応答を停止します。Expire を 14 日(1209600 秒)以上 に設定しておくと、プライマリーの復旧作業に十分な時間を確保できます。

RNAME のメールアドレスが届かない

RNAME フィールドはメールアドレスを . 区切りで記述します。admin@example.com は admin.example.com. になりますが、メールアドレスの @ より前にドットが含まれている場合はバックスラッシュでエスケープする必要があります。first.last@example.com は first\.last.example.com. と記述します。

ネガティブキャッシュ TTL が長すぎて新しいレコードが引けない

MINIMUM を 86400(24 時間) のように長い値に設定すると、新しくサブドメインを追加しても、以前に NXDOMAIN がキャッシュされたリゾルバーからは最大 24 時間アクセスできません。MINIMUM は 300〜1800 秒 程度に設定するのが実用的です。

実際のドメインで確認してみる

登録不要、無料です。ドメイン名を入れるだけで外部からの見え方を確認できます。

無料で試す

関連用語

DNS

DNS レコード

ドメイン名と IP アドレスやサービス情報を紐づける DNS データベースのエントリ。A・MX・TXT など用途別に型が分かれる。

DNS

DNS ゾーン

特定の権威ネームサーバーが管理する DNS 名前空間の区画。ドメイン管理の委任単位となる。

DNS

NS レコード

ドメインの権威 DNS サーバーを指定するレコード。ゾーン委任の基盤となる。

DNS

TTL(Time To Live)

DNS レコードがキャッシュされる有効期間を秒数で指定する値。DNS 切り替え時の反映速度を左右する。

DNS

DNS キャッシュ

DNS リゾルバーが問い合わせ結果を一時保存し、応答を高速化する仕組み。TTL の設定がキャッシュ期間を左右する。

コンテンツ 技術ノート ガイド 用語解説
ツール ツール一覧 API Reference
Labee 日本語トップ Labee LLC
© 2026 Labee LLC . All rights reserved.
ホーム ブログ ガイド 用語集