SOAレコードとは
SOAレコード(開始権限)はDNSゾーンの管理情報を含む必須DNSレコードです。すべてのDNSゾーンはゾーンの頂点にちょうど1つのSOAレコードを持つ必要があり、プライマリネームサーバー、責任あるアドミニストレータの連絡先、ゾーンシリアル番号、ゾーン転送とキャッシングのタイミングパラメーターを定義します。SOAレコードは権限を確立し、DNS操作のための重要なメタデータを提供します。SOAレコード構造
コンポーネントフィールド
example.com. IN SOA ns1.example.com. admin.example.com. (
2024010101 ; シリアル番号
3600 ; リフレッシュ(1時間)
900 ; リトライ(15分)
604800 ; 有効期限(1週間)
86400 ; 最小TTL(1日)
)
フィールドの内訳
| フィールド | 目的 | 一般的な値 |
|---|---|---|
| MNAME | プライマリネームサーバー | ns1.example.com |
| RNAME | 管理メール(@を.に置き換え) | admin.example.com |
| シリアル | ゾーンバージョン番号 | YYYYMMDDnn |
| リフレッシュ | セカンダリチェック間隔 | 3600-86400 |
| リトライ | 失敗したリフレッシュ後の再試行 | 900-3600 |
| 有効期限 | セカンダリが諦める | 604800-2419200 |
| 最小 | ネガティブキャッシングTTL | 300-86400 |
SOAレコードフィールドの説明
MNAME(プライマリネームサーバー)
ゾーンの権限あるネームサーバー:
- 有効で解決可能なホスト名である必要があります
- プライマリDNSサーバーを指します
- セカンダリサーバーがソースを識別するために使用
RNAME(責任者)
アドミニストレータ連絡先メール:
admin.example.com = admin@example.com
hostmaster.example.com = hostmaster@example.com
注: 最初のドット@記号を置き換えます
シリアル番号
ゾーンデータのバージョン識別子:
一般的な形式:YYYYMMDDnn
例:2024010102(2024年1月1日、リビジョン2)
ゾーン変更のたびに増加する必要があります
セカンダリはアップデートが必要かどうかを知るために比較します
タイミングパラメーター
ゾーン転送とキャッシング動作を制御します:
リフレッシュ: セカンダリがアップデートをチェックする頻度推奨:3600-86400秒(1-24時間)
リトライ: 失敗したリフレッシュ試行後の待機時間
推奨:900-3600秒(15-60分)
有効期限: セカンダリがゾーン提供を停止するとき
推奨:604800-2419200秒(1-4週間)
最小TTL: 「ドメインが存在しない」レスポンスをキャッシュする期間
どのくらい「ドメインが存在しない」のレスポンスをキャッシュするか
推奨:300-86400秒
SOAレコードの表示
digの使用
dig example.com SOA
# 出力:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. 2024010101 3600 900 604800 86400
nslookupの使用
nslookup -type=SOA example.com
SOAレコードのベストプラクティス
1. すべての変更でシリアルを増加: ゾーン転送に重要
2. 意味のあるシリアル形式を使用: YYYYMMDDnn推奨
3. 適切なタイマーを設定: 新鮮さ対サーバー負荷のバランス
4. 有効な連絡先メールを使用: アクセス可能なアドミニストレータ
5. MNAMEが解決可能であることを確認: 有効なNSを指す必要があります
一般的なSOA問題
| 問題 | 原因 | 解決策 |
|---|---|---|
| ゾーン転送失敗 | シリアルが増加していない | 常にシリアルを更新 |
| セカンダリのデータが古い | リフレッシュが長すぎる | リフレッシュ間隔を減らす |
| DNS負荷が高い | リフレッシュが短すぎる | リフレッシュ間隔を増やす |
| NXDOMAINが長くキャッシュされる | 最小TTLが高い | 最小値を減らす |
SOAレコードはDNSゾーンの基礎的な行政レコードで、プライマリネームサーバーとセカンダリネームサーバー間の同期を制御し、ゾーン全体のキャッシング動作を定義します。