Check-Host.cc

Start of Authority (SOA) チェッカー

SOA (Start of Authority) レコードは、あらゆるDNSゾーンの管理の心臓部として機能します。これは必須のレコードであり、有効なSOAがなければ、そのドメインはグローバルルーティングテーブル全体にわたって存在しなくなります。SOAのペイロードは、どのサーバーが真実の決定的なソースであるか、誰がそれを管理しているか、そしてセカンダリ (冗長) ネームサーバーがどのようにゾーンデータを複製するかを規定する厳密なタイミングメカニズムなど、ドメインのコアとなる運用パラメータを決定します。

ゾーンのシリアル番号と状態のレプリケーション

SOAペイロード内で最も重要な整数値は、シリアル番号 (Serial Number) です。業界の慣例により、これは日付スタンプ (例:2023年10月24日の最初の変更を示す 2023102401) としてフォーマットされることがよくあります。管理者がA、MX、またはTXTレコードを変更するたびに、このシリアル番号をインクリメント (増加) させる必要があります。セカンダリ (スレーブ) ネームサーバーは、ルーチンとしてプライマリサーバーのSOAレコードをポーリングします。ローカルキャッシュに保存されているものより大きなシリアル番号を検出すると、即座にAXFRまたはIXFRゾーン転送をトリガーして、更新されたルーティングテーブルを取得します。編集時にシリアルが増加されないと、セカンダリサーバーは同期されることがなくなり、結果として断片化して矛盾したDNS応答が発生します。

管理タイミング:Refresh、Retry、Expire

SOAレコードは、ゾーンのレジリエンスを制御する3つの特定のタイマーを定義します:

  • Refresh (更新): セカンダリサーバーがシリアルの変更を求めてプライマリサーバーをポーリングする前に待機する間隔 (秒単位)。
  • Retry (再試行): ポーリング時にプライマリサーバーがオフラインだった場合、セカンダリサーバーが再試行するまで待機する時間を定義します。
  • Expire (期限切れ): プライマリサーバーが恒久的にオフラインになった場合、セカンダリサーバーがキャッシュされたレコードを提供し続ける絶対的な最大時間。このタイマーに達すると、セカンダリサーバーはクエリへの応答を停止し、著しく古いデータを提供しないように効果的にドメインをダウンさせます。

ネガティブキャッシュと最小TTL (Minimum TTL)

SOAレコードで頻繁に誤解されるパラメータが、最小TTL (Minimum TTL) の値です。歴史的にはベースラインのキャッシュ時間を設定するために使用されていましたが、RFC 2308ではこの整数を「ネガティブキャッシング (Negative Caching)」専用に再定義しました。ユーザーが存在しないサブドメイン (例: fake.example.com) にクエリを行った場合、権威サーバーはNXDOMAINエラーで応答します。リゾルバはSOAの最小TTLを使用して、その失敗を正確にどのくらいの時間キャッシュするかを決定します。低い値を設定すると、管理者がタイプミスを素早く修正した場合にダウンタイムが長引くのを防ぎますが、高い値を設定すると、ランダムで存在しないサブドメインをクエリするDDoSフラッド攻撃から権威サーバーを保護します。