DNS 伺服器服務支援過時及清除功能。這些功能可提供一項機制,用於清除及移除區域資料中隨時間累積的過時資源記錄。

如果使用動態更新,在網路上啟動電腦時會自動將資源記錄新增至區域。但在某些情況下,當電腦離開網路時,不會自動移除這些記錄。例如,如果電腦在啟動時登錄自己的主機 (A) 資源記錄,而稍後未正確地與網路中斷連線,可能就不會刪除它的主機 (A) 資源記錄。如果您的網路有行動使用者及電腦,就會經常發生這種情況。

如果置之不理,區域資料中的過期資源記錄可能會造成一些問題:

  • 如果區域中留有大量的過期資源記錄,最後會佔去大量磁碟空間,並造成長時間進行不必要的區域轉送。

  • 網域名稱系統 (DNS) 伺服器若載入包含過時資源記錄的區域,可能會使用過時資訊回應用戶端查詢,而造成用戶端在網路上發生名稱解析問題。

  • 在 DNS 伺服器累積過期的資源記錄會降低該伺服器的效能及回應能力。

  • 在某些情況下,區域中若存在過期的資源記錄,會使其他電腦或主機裝置無法使用 DNS 網域名稱。

DNS 伺服器服務具有下列功能,可以解決這些問題:

  • 時間戳記,以伺服器電腦設定的目前日期及時間為基礎,用於動態新增至主要類型區域的任何資源記錄。此外,時間戳記是記錄在啟用過時及清除功能的標準主要區域中。

    對於您手動新增的資源記錄,會使用時間戳記值 0,指出這些記錄不受過時處理程序影響,除非您變更記錄的時間戳記或刪除它們,否則這些記錄可以無限期留在區域資料中。

  • 根據指定的重新整理時間間隔,為任何可用區域過時處理本機資料中的資源記錄。

    只有 DNS 伺服器服務載入的主要類型區域,才可以參與這個處理程序。

  • 清除在指定的重新整理期間後仍舊存在的任何資源記錄。

    當 DNS 伺服器執行清除操作時,伺服器可以根據成為過時的時間點判別已經過時的資源記錄,並從區域資料移除過時的資源記錄。您可以設定伺服器自動重複執行清除操作,也可以在伺服器初始化立即清除操作。

    如需相關資訊,請參閱啟用過時資源記錄的自動清除開始立即清除過時的資源記錄

注意

根據預設,會停用 DNS 伺服器服務的過時及清除機制。應只有在完全了解所有參數的用法時,才啟用此一機制。否則,可能會不小心將伺服器設定為刪除不應刪除的記錄。如果不小心刪除記錄,不但使用者無法解析該記錄的查詢,而且即使是在為安全動態更新設定的區域,任何使用者都可以建立記錄並取得該記錄的擁有權。

伺服器使用每個資源記錄特有的時間戳記內容,以及您可以調整或設定的其他過時及清除內容,判斷何時清除記錄。

過時及清除的必要條件

使用 DNS 的過時及清除功能之前,必須符合數項條件:

  1. DNS 伺服器及區域兩者都必須啟用過時及清除功能。

    根據預設,會停用資源記錄的過時及清除功能。

  2. 資源記錄必須動態新增至區域或手動修改,以用於過時及清除操作。

    通常,只有使用 DNS 動態更新通訊協定動態新增的資源記錄,才能使用過時及清除功能。

    不過,您可以為透過非動態方式新增的其他資源記錄啟用清除功能。對於以此方式新增至區域的記錄,無論是從其他 DNS 伺服器載入文字區域檔案,或是將這些記錄手動新增至區域,都會將時間戳記設定為 0。這會讓這些記錄無法用於過時及清除操作。

    若要變更這個預設值,您可以個別管理這些記錄,重設並允許記錄使用目前 (非零) 的時間戳記值。這樣可讓這些記錄變成過時並能夠清除。

    如需相關資訊,請參閱重設所指定資源記錄的過時及清除內容

附註

在從標準主要區域變更為 Active Directory 整合區域時,您可能想要啟用區域中所有現有資源記錄的清除功能。若要啟用區域中所有現有資源記錄的過時處理,您可以透過 dnscmd 命令列工具使用 AgeAllRecords 命令。

過時及清除詞彙

下表列出在討論過時及清除功能時,特別採用的全新及修訂詞彙。

詞彙 描述

資源記錄時間戳記

DNS 伺服器在執行過時及清除操作時,用來判斷是否要移除資源記錄的日期及時間值。

目前的伺服器時間

目前 DNS 伺服器上的日期及時間。這個數字可以顯示為任何時間點的確切數值。

不重新整理的間隔

為每個區域決定的時間間隔,由以下兩個事件限定:

  1. 上次重新整理記錄以及設定記錄時間戳記的日期及時間。

  2. 下次可重新整理記錄和重設記錄時間戳記的日期及時間。

必須要有這個值,才能減少對 Active Directory 資料庫的寫入操作次數。根據預設,這個間隔設定為七天。而間隔不應該不合理地過度增加,因為這樣就會失去或降低過時及清除功能的好處。

重新整理間隔

為每個區域決定的時間間隔,由以下兩個不同事件限定:

  1. 可重新整理記錄和重設記錄時間戳記的最早日期及時間。

  2. 可從區域資料庫清除和移除記錄的最早日期及時間。

這個值要夠大,讓所有用戶端可以重新整理它們的記錄。根據預設,這個間隔設定為七天。而間隔不應該不合理地過度增加,因為這樣就會失去或降低過時及清除功能的好處。

開始清除時間

以數字表示的特定時間。伺服器使用這個時間判斷何時可以清除區域。

清除期間

伺服器啟用自動清除功能時,這個期間代表重複自動清除處理程序之間的時間。這個期間的預設值是七天。為避免降低 DNS 伺服器效能,這個值允許的最小值為 1 小時。

記錄重新整理

只修訂資源記錄時間戳記,記錄的其他特性並未修訂時,所進行的資源記錄 DNS 動態更新。

一般來說,進行重新整理的原因如下:

  1. 電腦在網路上重新啟動時,如果電腦啟動時的名稱及 IP 位址資訊與關閉之前使用的名稱及位址資訊相同,就會傳送重新整理,更新此資訊的相關資源記錄。

  2. 電腦執行時定期傳送重新整理。

    Windows DNS 用戶端服務每 24 小時更新一次用戶端資源記錄的 DNS 登錄。進行此動態更新時,如果動態更新要求並未對 DNS 資料庫做出任何修改,則會視為重新整理而非資源記錄更新。

  3. 嘗試進行重新整理的其他網路服務如下:DHCP 伺服器,更新用戶端位址租用;叢集伺服器,登錄和更新叢集的記錄;以及 Net Logon 服務,登錄和更新 Active Directory 網域控制站所使用的資源記錄。

記錄更新

資源記錄的其他特性以及時間戳記都有所修訂時,所進行的資源記錄 DNS 動態更新。

一般來說,進行更新的原因如下:

  1. 當新電腦新增至網路時,電腦會在啟動時傳送更新,以所設定的區域首次登錄它的資源記錄。

  2. 當區域中已有記錄的電腦變更 IP 位址時,會針對在 DNS 區域資料中修訂的名稱到位址對應傳送更新。

  3. 當 Net Logon 服務登錄新的 Active Directory 網域控制站時。

清除伺服器

選擇性的進階區域參數,讓您為已啟用執行區域清除的 DNS 伺服器,指定有限的 IP 位址清單。

根據預設,如果不指定這個參數,載入目錄整合區域 (也啟用清除) 的所有 DNS 伺服器都會嘗試清除區域。在某些情況下,如果只希望在載入目錄整合區域的某些伺服器執行清除,這個參數就很有用。

若要設定這個參數,您必須在區域的 ZoneResetScavengeServers 參數中,為已啟用清除區域的伺服器指定 IP 位址清單。這可以使用 dnscmd 命令完成,此命令是一種用於管理 Windows DNS 伺服器的命令列工具。

何時可以開始進行清除

在允許使用清除功能的所有必要條件全部符合後,就可以在目前的伺服器時間大於開始清除區域的時間時,開始清除伺服器區域。

伺服器設定時間值,以在下列任何一項事件發生時,開始針對各個區域進行清除:

  • 已為區域啟用動態更新。

  • 套用 [清理過時的資源記錄] 核取方塊中的變更。您可以使用 [DNS 管理員],在適用的 DNS 伺服器或伺服器的其中一個主要區域修改這個設定。

  • DNS 伺服器載入已啟用要使用清除的主要區域。

    這會在伺服器電腦啟動時或是 DNS 伺服器服務啟動時發生。

  • 當區域在暫停後繼續執行服務。

  • 如果是 AD DS 整合區域,在重新啟動 DNS 服務或將網域控制站重新開機之後,至少必須複寫一次該區域。發生上述事件時,DNS 伺服器會計算下列總和,以設定開始清除時間的值:

    目前的伺服器時間 + 重新整理間隔 = 開始清除時間

    這個值會在進行清除操作時做為比較基礎。

範例:範例記錄的過時及清除處理程序

若要了解伺服器的過時及清除處理程序,請考慮單一資源記錄的壽命及後續階段,因為該記錄是新增到進行這個處理程序的伺服器及區域,然後變得過時並從資料庫中移除。

  1. 範例 DNS 主機 "host-a.example.microsoft.com" 在 DNS 伺服器登錄它的主機 (A) 資源記錄,以供啟用過時及清除功能的區域使用。

  2. 在登錄記錄時,DNS 伺服器會根據目前的伺服器時間,在這個記錄上放置時間戳記。

    寫入記錄時間戳記之後,DNS 伺服器在區域不重新整理的間隔期間,不接受重新整理此記錄。不過在該時間之前,伺服器接受更新。例如,如果 "host-a.example.microsoft.com" 的 IP 位址有所變更,DNS 伺服器能夠接受更新。在這種情況下,伺服器也會更新 (重設) 記錄時間戳記。

  3. 經過沒有重新整理的間隔之後,伺服器便開始接受重新整理此記錄的嘗試。

    在初始沒有重新整理的間隔結束後,該記錄的重新整理期間會立即開始。在這段期間,伺服器不會抑制重新整理記錄剩餘壽命的嘗試。

  4. 在重新整理期間和之後,如果伺服器收到重新整理該記錄的要求,會進行處理。

    這會根據步驟 2 中描述的方法,重設記錄的時間戳記。

  5. 伺服器執行 "example.microsoft.com" 區域的後續清除時,伺服器會檢查記錄 (以及所有其他區域記錄)。

    每個記錄都會以下列的總和為基礎,與目前的伺服器時間相比較,判斷是否應該移除該記錄:

    記錄時間戳記 + 區域的不重新整理的間隔 + 區域的重新整理間隔

    • 如果這個總和的值大於目前的伺服器時間,不會採取任何動作,而該記錄可以繼續留在區域中。

    • 如果這個總和的值小於目前的伺服器時間,會從目前伺服器記憶體中載入的任何區域資料,以及從儲存在目錄整合 "example.microsoft.com" 區域的 Active Directory 網域服務 (AD DS) 中的適當 DnsZone 物件,刪除該記錄。


目錄