SOAの有効期限値が推奨範囲外となる原因と修正方法の解説イメージ画像

SOAの有効期限値が推奨範囲外となる原因と修正方法


著者: Yunes Tarada
翻訳: 東條 百々朱

この記事はPowerDMARCのブログ記事 SOA Expire Value Out of Recommended Range: What It Means and How to Fix It の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。


主なポイント

  1. 「SOAの有効期限値が推奨範囲外」という警告は、DNSゾーンの有効期限が一般的な推奨範囲に設定されていない場合に表示されます。
  2. SOAの有効期限値は、プライマリDNSサーバへ接続できなくなった場合に、セカンダリDNSサーバが保持しているゾーンデータを権威ある情報として使用し続ける期間を定義します。
  3. RFC 1912では、有効期限の目安として1,209,600~2,419,200秒、つまり2~4週間が示されています。
  4. 値が短すぎると、プライマリDNSサーバの障害が長引いた際に、セカンダリDNSサーバが早い段階で応答を停止する可能性があります。
    一方、値が長すぎると、更新されていない古いDNSレコードが長期間提供され続ける可能性があります。
  5. 主な原因には、DNSホスティングサービスのデフォルト設定、入力ミス、古い設定の継続利用などがあります。
  6. この問題を修正するには、DNSプロバイダの管理画面でSOAレコードを確認し、Expireフィールドを推奨範囲内の値へ変更します。

「SOAの有効期限値が推奨範囲外」という警告が表示された場合、ドメインのStart of Authority(SOA)レコードに設定されている有効期限が、DNSのベストプラクティスで推奨される範囲から外れています。
この警告だけで直ちに重大な障害が発生するわけではありません。

ただし、プライマリDNSサーバの停止が長引いた場合に名前解決へ影響が生じたり、古いゾーンデータが長期間提供されたりする可能性があります。
有効期限値の役割を理解し、一般的に推奨される2~4週間の範囲へ調整することで、DNS環境の安定性を維持できます。

SOAレコードとは?

SOAレコードは、DNSゾーンの管理に必要な情報を保持するDNSレコードです。
プライマリDNSサーバ、管理者の連絡先、ゾーンの更新履歴、セカンダリDNSサーバが更新を確認する間隔などが記録されています。

プライマリDNSサーバからセカンダリDNSサーバへゾーン情報を複製するゾーン転送を適切に行うためにも、SOAレコードが必要です。
一般的なSOAレコードには、以下の情報が含まれます。

Serial Number
ゾーンファイルのバージョン番号です。
DNSレコードを変更するたびに更新します。
Primary Name Server
対象のDNSゾーンを管理するプライマリDNSサーバです。
Responsible Email Address
DNSゾーンの管理責任者のメールアドレスです。
SOAレコードでは通常、@の代わりにピリオドを使用して表記します。
Refresh
セカンダリDNSサーバがプライマリDNSサーバへ問い合わせ、ゾーンの更新を確認する間隔です。
Retry
更新確認に失敗した場合に、セカンダリDNSサーバが再試行するまでの待機時間です。
Expire
セカンダリDNSサーバがプライマリDNSサーバとの通信に最後に成功してから、保持しているゾーンデータを権威ある情報として利用し続ける最大期間です。
秒単位で指定します。
Minimum TTL
現在では主に、存在しないドメイン名などに対する否定応答をキャッシュする期間として利用されます。
DNSソフトウェアや設定によっては、別の用途で参照される場合もあります。

有効期限値の仕組み

SOAレコードの有効期限値は、プライマリDNSサーバから応答を得られない状態が続いた場合に、セカンダリDNSサーバが保持しているゾーンデータをいつまで利用できるかを指定する値です。
セカンダリDNSサーバは、通常、Refreshで指定された間隔ごとにプライマリDNSサーバへ問い合わせ、ゾーンデータが更新されていないか確認します。
プライマリDNSサーバへ接続できない場合は、Retryで指定された間隔に従って再接続を試みます。

その間も、セカンダリDNSサーバは最後に取得したゾーンデータを使用してDNSクエリへ応答します。
ただし、プライマリDNSサーバとの通信に成功しないままExpireで指定された期間を過ぎると、セカンダリDNSサーバは保持しているゾーンデータを期限切れと判断します。
具体的な流れは以下のとおりです。

プライマリDNSサーバへの接続に失敗する
セカンダリDNSサーバがプライマリDNSサーバへ接続できない場合、最後に正常に取得したゾーンデータを引き続き使用します。
有効期限値は、そのデータを利用できる最大期間を定めています。
ゾーンデータが期限切れになる
有効期限内にプライマリDNSサーバとの通信が復旧しなかった場合、セカンダリDNSサーバは保持しているゾーンデータを期限切れと判断します。
これは、更新されていない情報を権威あるデータとして提供し続けることを防ぐためです。
権威DNS応答を停止する
ゾーンデータが期限切れになると、セカンダリDNSサーバは対象ゾーンに対する権威ある応答を停止します。
その結果、DNSクエリに対してSERVFAILが返される可能性があります。
これは、古く誤ったDNS情報が提供され続けることを防ぐための保護措置です。
推奨される範囲
厳密に強制される値ではありませんが、RFC 1912や一般的なDNSのベストプラクティスでは、有効期限を2~4週間程度に設定することが推奨されています。
この範囲であれば、セカンダリDNSサーバが早い段階で応答を停止することを避けつつ、管理者がプライマリDNSサーバの障害を解消するための時間も確保できます。

「推奨範囲外」という警告が表示される原因

この警告は、SOAレコードのExpire値が一般的な推奨範囲である2~4週間から外れている場合に表示されます。
主な原因は以下のとおりです。

有効期限が短すぎる
有効期限が短すぎると、一時的なネットワーク障害やプライマリDNSサーバの停止によって、セカンダリDNSサーバが早い段階で権威DNS応答を停止する可能性があります。
その結果、Webサイトやメールサービスの名前解決に影響が生じることがあります。
有効期限が長すぎる
有効期限が長すぎると、プライマリDNSサーバで重大な問題が発生した場合でも、更新されていないDNSレコードが長期間提供され続ける可能性があります。
古いIPアドレスや無効なメールサーバ情報が残り続けると、通信障害やセキュリティ上の問題につながることがあります。
DNSサービスのデフォルト設定
DNSホスティングサービスやサーバ管理ツールによっては、一般的な推奨範囲から外れた値がデフォルトで設定されている場合があります。
以前から使用しているテンプレートの設定が、そのまま引き継がれているケースもあります。
入力ミス
SOAレコードを手動で設定した際に数字を1桁多く入力したり、秒と日数を取り違えたりすると、値が大幅に推奨範囲から外れることがあります。

推奨されるSOA有効期限値の範囲

RFC 1912では、プライマリDNSサーバの障害へ対応するための時間を確保しながら、古いデータが長期間残らないよう、バランスの取れた値を設定することが推奨されています。
代表的な値は以下のとおりです。

有効期限値 期間 評価
86400 1日 短すぎる可能性があります
1209600 14日 ✅推奨範囲内です
2419200 28日 ✅推奨範囲内です
99999999 3年以上 長すぎるため推奨されません

迷った場合は、14日間に相当する1209600秒を設定値の候補として検討できます。
ただし、利用しているDNSサービスの仕様や組織の運用方針も確認してください。

「SOAの有効期限値が推奨範囲外」という警告を修正する方法

修正作業は、DNSプロバイダの管理画面から行います。
ただし、マネージドDNSサービスではSOAレコードが自動管理されており、利用者が直接変更できない場合があります。

1.DNS管理画面を開く
ドメインレジストラまたはDNSホスティングプロバイダの管理画面へログインします。
PowerDNS、Cloudflare、cPanelなど、利用しているサービスによって画面や操作方法は異なります。
SOAレコードを表示・変更できるかどうかも、プロバイダの仕様や利用者の権限によって異なります。
2.SOAレコードを確認する
対象ドメインのDNSゾーンを開き、SOAレコードを探します。
SOAレコードは、AレコードやCNAMEレコードとは別に、「Zone Settings」「Advanced DNS」「SOA Settings」などの項目で管理されている場合があります。
3.Expire値を推奨範囲内へ変更する
SOAレコード内の「Expire」または「Expire Time」と記載された項目を確認します。
現在の値が推奨範囲外であれば、1209600~2419200秒の範囲内へ変更します。
設定例として、14日間に相当する1209600秒を使用できます。
4.変更を保存する
設定を保存し、DNSへ反映されるまで待ちます。
DNSプロバイダがSOAレコードを自動管理している場合、シリアル番号も自動的に更新されます。
手動で管理している場合は、セカンダリDNSサーバが変更を検出できるよう、Serial Numberを以前より大きな値へ変更してください。

Expire値は、Refresh値やRetry値に対して十分に長く設定する必要があります。
少なくとも、次の関係を満たすことを確認してください。


Expire > Refresh + Retry

ただし、実際には複数回の再試行が行われるため、単に合計値を上回るだけでなく、十分な余裕を持たせることが重要です。

修正前と修正後の例

問題のある設定例

REFRESH: 86400
RETRY: 7200
EXPIRE: 604800  ; 推奨範囲より短い値(7日)
この設定では、有効期限が7日間に設定されています。
プライマリDNSサーバの障害が1週間以上続くと、セカンダリDNSサーバはゾーンデータを期限切れと判断し、対象ドメインへの権威DNS応答を停止する可能性があります。
その結果、利用者がWebサイトへアクセスできなくなったり、メールの送受信に影響が生じたりすることがあります。
修正後の設定例

REFRESH: 86400
RETRY: 7200
EXPIRE: 1209600 ; 修正後の値(14日)
この例では、Expire値を14日間へ変更しています。
プライマリDNSサーバの障害が長引いた場合でも、セカンダリDNSサーバがゾーン情報を提供し続けられる期間が確保されます。
変更を保存する際は、必要に応じてSerial Numberも更新してください。

Serial Numberは、DNSゾーンのバージョン番号として機能します。
ソフトウェアのバージョン番号と同様に、ゾーン情報を変更するたびに値を増やすことで、セカンダリDNSサーバが新しい設定を認識できるようになります。

SOAを適切に設定することが重要な理由

適切に設定されたSOAレコードは、診断ツールの警告を解消するだけでなく、DNS環境の安定した運用にも役立ちます。

DNSの安定性を高める
プライマリDNSサーバに障害が発生しても、セカンダリDNSサーバが適切な期間、権威ある応答を継続できます。
不要なサービス停止を防ぐ
有効期限が短すぎることで、セカンダリDNSサーバが早期に応答を停止するリスクを軽減できます。
古い情報の長期提供を防ぐ
有効期限が長すぎることで、更新されていないDNS情報が長期間提供され続けるリスクも抑えられます。
DNSのベストプラクティスに沿った運用ができる
SOAレコードを適切に管理することで、標準的なDNS運用に沿った、信頼性の高い環境を構築できます。

SOAレコードが推奨範囲内にあるか確認する方法

PowerDMARCが提供する無料のSOAチェッカーツールを使用すると、ドメインのSOAレコードを確認できます。
対象のドメイン名を入力すると、DNSレコードの確認結果が表示されます。
レコードタイプから「SOA」を選択すると、Primary Name Server、Serial Number、Refresh、Retry、Expireなどの値を確認できます。

設定に問題がある場合は、警告や修正すべき項目も表示されるため、原因の特定に役立ちます。
具体的な手順は以下のとおりです。

分析ツール
SOAレコードチェッカー

まとめ

「SOAの有効期限値が推奨範囲外」という警告は、直ちにWebサイトやメールが停止することを意味するものではありません。
ただし、プライマリDNSサーバの障害が長引いた場合に、セカンダリDNSサーバが早期に応答を停止したり、反対に古いDNS情報を長期間提供し続けたりする可能性があります。
Expire値を一般的な推奨範囲である1,209,600~2,419,200秒へ調整することで、DNS環境の安定性と信頼性を高められます。

SOAレコードの設定変更にはそれほど時間がかかりませんが、将来のDNS障害や長時間のトラブルシューティングを防ぐために有効です。
PowerDMARCのドメインチェッカーを使用して、ドメインの健全性を無料で確認し、DNS設定を適切な状態に保ちましょう。

よくある質問

1.「SOAの有効期限値が推奨範囲外」という警告は重大ですか?
直ちにWebサイトが停止するほど重大な問題ではありません。
ただし、プライマリDNSサーバの障害が長引いた場合、セカンダリDNSサーバによる名前解決へ影響する可能性があります。
安定したDNS運用を維持するため、推奨範囲内へ修正することをおすすめします。
2.SOAレコードを変更するとWebサイトが停止しますか?
適切な値へ変更するだけであれば、通常はWebサイトの停止やダウンタイムは発生しません。
ただし、Serial NumberやほかのSOA値を誤って変更すると、ゾーン転送へ影響する可能性があります。
変更前に現在の設定を記録し、不明な点がある場合はDNSプロバイダへ確認してください。
3.「SOAの有効期限値が推奨範囲外」という警告を無視するとどうなりますか?
通常時は問題なく動作する可能性があります。
しかし、Expire値が短すぎる状態でプライマリDNSサーバが長期間停止すると、セカンダリDNSサーバがゾーン情報の提供を停止し、Webサイトへのアクセスやメールの送受信に影響が生じる可能性があります。
反対に、値が長すぎる場合は、更新されていない古いDNS情報が長期間提供され続ける可能性があります。