Check-Host.cc

授權起始 (SOA) 檢查器

SOA (Start of Authority) 紀錄充當任何 DNS 區域的管理核心。這是一項強制性紀錄;如果沒有有效的 SOA,該網域在全球路由表上就不復存在。SOA Payload 決定了網域的核心運作參數,確立了哪台伺服器是最終的真相來源 (source of truth)、由誰管理,以及決定次要、備援名稱伺服器如何複製區域資料的嚴格計時機制。

區域序號 (Zone Serial Number) 與狀態複製

SOA Payload 中最關鍵的整數是序號 (Serial Number)。根據業界慣例,它通常被格式化為日期戳記(例如,2023 年 10 月 24 日的第一次變更為 2023102401)。每次管理員修改 A、MX 或 TXT 紀錄時,這個序號都必須遞增。次要 (slave) 名稱伺服器會例行性地輪詢 (poll) 主要伺服器的 SOA 紀錄。如果它們偵測到比儲存在其本機快取中更高的序號,它會觸發立即的 AXFR 或 IXFR 區域傳輸以提取更新的路由表。如果在編輯期間沒有遞增序號,次要伺服器將永遠不會同步,導致破碎、不一致的 DNS 回應。

管理計時:Refresh、Retry 和 Expire

SOA 紀錄定義了三個控制區域韌性的特定計時器:

  • Refresh (更新):次要伺服器在輪詢主要伺服器以尋找序號變更之前等待的間隔(以秒為單位)。
  • Retry (重試):如果主要伺服器在輪詢期間離線,這定義了次要伺服器在重試之前等待的時間。
  • Expire (過期):如果主要伺服器永久離線,次要伺服器將繼續提供快取紀錄的絕對最長時間。一旦達到此計時器,次要伺服器將停止回答查詢,有效地關閉該網域以防止提供嚴重過時的資料。

負向快取 (Negative Caching) 與最小 TTL

SOA 紀錄中一個經常被誤解的參數是 Minimum TTL 值。歷史上用於設定基準快取時間,RFC 2308 將此整數專門重新用於負向快取。如果使用者查詢一個不存在的子網域(例如 fake.example.com),權威伺服器會回應一個 NXDOMAIN 錯誤。解析器會使用 SOA 的 Minimum TTL 來準確決定該錯誤的快取時間。如果管理員快速修正了錯字,較低的值可以防止長時間的停機,而較高的值則可以保護權威伺服器免受查詢隨機、不存在子網域的 DDoS 洪水攻擊。