SOA 記錄

DNS 起始授權(SOA)記錄是每個 DNS 區域中的必備記錄,儲存有關該區域的重要管理資訊。它包含區域的詳細資訊,如主網域名稱伺服器、區域管理員的電子郵件地址、區域的序列號,以及控制網域名稱伺服器之間區域傳輸和更新的時間參數。

How it works

每個 DNS 區域必須恰好有一條 SOA 記錄,並且它必須是區域檔案中的第一條記錄。SOA 記錄作為有關區域資訊的權威來源,對於協調主網域名稱伺服器和輔網域名稱伺服器之間的區域傳輸至關重要。它包含的時間參數決定了輔網域名稱伺服器檢查更新的頻率以及快取區域資料的時長。

SOA 記錄包含幾個控制區域行為的關鍵欄位: **主網域名稱伺服器(MNAME):** 該區域的主(master)網域名稱伺服器的主機名。這是該區域資料的權威來源。 **管理員電子郵件(RNAME):** 負責該區域的人員的電子郵件地址,其中 @ 符號被點號替換(例如,admin.example.com 表示 admin@example.com)。 **序列號:** 區域的版本號,通常格式化為 YYYYMMDDNN(年、月、日、修訂號)。每當區域檔案發生變更時,此數字必須遞增。輔網域名稱伺服器檢查此數字以確定是否需要要求區域傳輸。 **重新整理(Refresh):** 輔網域名稱伺服器在檢查主伺服器以查看區域是否已更新之前應等待的時間間隔(以秒為單位)。建議值:86400 秒(24 小時)。 **重試(Retry):** 如果輔網域名稱伺服器在重新整理期間無法聯繫主伺服器,則應等待多長時間(以秒為單位)再次嘗試。建議值:7200 秒(2 小時)。 **過期(Expire):** 如果輔網域名稱伺服器在此時間長度(以秒為單位)內無法聯繫主伺服器,它應停止回應該區域的查詢,因為其資料太舊而不具有權威性。建議值:3600000 秒(約 41 天)。 **最小 TTL:** 區域的預設 TTL,指定解析器應快取否定回應(如 NXDOMAIN)的時長。

Key Points

  • 每個 DNS 區域必須恰好有一條 SOA 記錄作為區域中的第一條記錄
  • 每當區域資料變更時,序列號必須遞增,以觸發輔伺服器上的更新
  • 重新整理、重試和過期值控制網域名稱伺服器之間的區域傳輸時間
  • SOA 記錄中的電子郵件地址使用點號而不是 @ 符號
  • SOA 記錄主要用於區域管理,通常不被最終使用者查詢

Common Use Cases

  • 區域傳輸協調: 輔網域名稱伺服器使用 SOA 序列號來檢測區域資料何時發生變更並需要從主伺服器傳輸
  • 區域權威識別: SOA 記錄標識負責 DNS 區域的主網域名稱伺服器和管理員
  • 陳舊資料防止: 過期欄位確保輔伺服器在長時間無法存取主伺服器時停止提供過時的區域資料
  • 更新排程: 重新整理和重試值決定了區域變更傳播到輔網域名稱伺服器的速度

code SOA 記錄示例

TypeHost / NameValue / Points toTTL
SOA@ns1.example.com admin.example.com 2025121301 86400 7200 3600000 1728003600
FieldPrimary NSns1.example.com
FieldAdmin Emailadmin@example.com
FieldSerial2025121301
FieldRefresh86400 (24h)
FieldRetry7200 (2h)
FieldExpire3600000 (~41d)
FieldMinimum172800 (48h)

* SOA 記錄包含具有特定時間和管理值的多個欄位。值通常以秒為單位。

Frequently Asked Questions

為什麼在進行變更時必須遞增序列號?expand_more
序列號是輔網域名稱伺服器檢測區域資料是否發生變更的方式。當輔伺服器執行重新整理檢查時,它會將其快取的序列號與主伺服器的目前序列號進行比較。如果主伺服器的數字較高,輔伺服器就知道需要要求區域傳輸以取得更新的記錄。如果您在進行變更時忘記遞增序列號,輔伺服器將不知道需要更新,它們將繼續提供過時的資料。
我應該使用什麼序列號格式?expand_more
最常見的格式是 YYYYMMDDNN,其中 YYYY 是年份,MM 是月份,DD 是日期,NN 是當天的修訂號(從 01 開始)。例如,2025121301 表示 2025 年 12 月 13 日,第一次修訂。這種格式使得追蹤變更的時間變得容易,並且允許每天最多 99 次修訂。但是,任何遞增的數字系統都可以 - 唯一的要求是序列號必須隨著每次變更而增加。
一個網域名稱可以有多條 SOA 記錄嗎?expand_more
不可以,每個 DNS 區域必須恰好有一條 SOA 記錄,並且它必須是區域檔案中的第一條記錄。擁有多條 SOA 記錄或沒有 SOA 記錄違反了 DNS 規範,並將導致區域無法正常運作。SOA 記錄定義了區域的權威來源,擁有多條將造成哪個是權威的歧義。
如果達到過期時間會發生什麼?expand_more
如果輔網域名稱伺服器在過期欄位指定的持續時間內無法聯繫主伺服器,它將停止回應該區域的查詢。這是一種安全機制,用於防止輔伺服器提供極其過時的資料。過期值應設定得足夠長,以考量到延長的維護時間窗口或中斷(通常為 1-4 週),但又不能太長以至於陳舊資料無限期持續存在。
我需要手動編輯 SOA 記錄嗎?expand_more
大多數託管 DNS 服務和控制面板都會自動處理 SOA 記錄管理,包括在您進行變更時遞增序列號。除非您使用 BIND 等軟體執行自己的權威網域名稱伺服器,否則通常不需要手動編輯 SOA 記錄。如果您確實管理自己的網域名稱伺服器,請記住在每次修改區域檔案時遞增序列號,或者如果您的 DNS 軟體支援,請使用自動序列號管理功能。