DNS 伺服器服務支援過時及清除功能。這些功能可提供一項機制,用於清除及移除區域資料中隨時間累積的過時資源記錄。
如果使用動態更新,在網路上啟動電腦時會自動將資源記錄新增至區域。但在某些情況下,當電腦離開網路時,不會自動移除這些記錄。例如,如果電腦在啟動時登錄自己的主機 (A) 資源記錄,而稍後未正確地與網路中斷連線,可能就不會刪除它的主機 (A) 資源記錄。如果您的網路有行動使用者及電腦,就會經常發生這種情況。
如果置之不理,區域資料中的過期資源記錄可能會造成一些問題:
-
如果區域中留有大量的過期資源記錄,最後會佔去大量磁碟空間,並造成長時間進行不必要的區域轉送。
-
網域名稱系統 (DNS) 伺服器若載入包含過時資源記錄的區域,可能會使用過時資訊回應用戶端查詢,而造成用戶端在網路上發生名稱解析問題。
-
在 DNS 伺服器累積過期的資源記錄會降低該伺服器的效能及回應能力。
-
在某些情況下,區域中若存在過期的資源記錄,會使其他電腦或主機裝置無法使用 DNS 網域名稱。
DNS 伺服器服務具有下列功能,可以解決這些問題:
-
時間戳記,以伺服器電腦設定的目前日期及時間為基礎,用於動態新增至主要類型區域的任何資源記錄。此外,時間戳記是記錄在啟用過時及清除功能的標準主要區域中。
對於您手動新增的資源記錄,會使用時間戳記值 0,指出這些記錄不受過時處理程序影響,除非您變更記錄的時間戳記或刪除它們,否則這些記錄可以無限期留在區域資料中。
-
根據指定的重新整理時間間隔,為任何可用區域過時處理本機資料中的資源記錄。
只有 DNS 伺服器服務載入的主要類型區域,才可以參與這個處理程序。
-
清除在指定的重新整理期間後仍舊存在的任何資源記錄。
當 DNS 伺服器執行清除操作時,伺服器可以根據成為過時的時間點判別已經過時的資源記錄,並從區域資料移除過時的資源記錄。您可以設定伺服器自動重複執行清除操作,也可以在伺服器初始化立即清除操作。
如需相關資訊,請參閱啟用過時資源記錄的自動清除或開始立即清除過時的資源記錄。
注意 | |
根據預設,會停用 DNS 伺服器服務的過時及清除機制。應只有在完全了解所有參數的用法時,才啟用此一機制。否則,可能會不小心將伺服器設定為刪除不應刪除的記錄。如果不小心刪除記錄,不但使用者無法解析該記錄的查詢,而且即使是在為安全動態更新設定的區域,任何使用者都可以建立記錄並取得該記錄的擁有權。 |
伺服器使用每個資源記錄特有的時間戳記內容,以及您可以調整或設定的其他過時及清除內容,判斷何時清除記錄。
過時及清除的必要條件
使用 DNS 的過時及清除功能之前,必須符合數項條件:
-
DNS 伺服器及區域兩者都必須啟用過時及清除功能。
根據預設,會停用資源記錄的過時及清除功能。
-
資源記錄必須動態新增至區域或手動修改,以用於過時及清除操作。
通常,只有使用 DNS 動態更新通訊協定動態新增的資源記錄,才能使用過時及清除功能。
不過,您可以為透過非動態方式新增的其他資源記錄啟用清除功能。對於以此方式新增至區域的記錄,無論是從其他 DNS 伺服器載入文字區域檔案,或是將這些記錄手動新增至區域,都會將時間戳記設定為 0。這會讓這些記錄無法用於過時及清除操作。
若要變更這個預設值,您可以個別管理這些記錄,重設並允許記錄使用目前 (非零) 的時間戳記值。這樣可讓這些記錄變成過時並能夠清除。
如需相關資訊,請參閱重設所指定資源記錄的過時及清除內容。
附註 | |
在從標準主要區域變更為 Active Directory 整合區域時,您可能想要啟用區域中所有現有資源記錄的清除功能。若要啟用區域中所有現有資源記錄的過時處理,您可以透過 dnscmd 命令列工具使用 AgeAllRecords 命令。 |
過時及清除詞彙
下表列出在討論過時及清除功能時,特別採用的全新及修訂詞彙。
詞彙 | 描述 |
---|---|
資源記錄時間戳記 |
DNS 伺服器在執行過時及清除操作時,用來判斷是否要移除資源記錄的日期及時間值。 |
目前的伺服器時間 |
目前 DNS 伺服器上的日期及時間。這個數字可以顯示為任何時間點的確切數值。 |
不重新整理的間隔 |
為每個區域決定的時間間隔,由以下兩個事件限定:
必須要有這個值,才能減少對 Active Directory 資料庫的寫入操作次數。根據預設,這個間隔設定為七天。而間隔不應該不合理地過度增加,因為這樣就會失去或降低過時及清除功能的好處。 |
重新整理間隔 |
為每個區域決定的時間間隔,由以下兩個不同事件限定:
這個值要夠大,讓所有用戶端可以重新整理它們的記錄。根據預設,這個間隔設定為七天。而間隔不應該不合理地過度增加,因為這樣就會失去或降低過時及清除功能的好處。 |
開始清除時間 |
以數字表示的特定時間。伺服器使用這個時間判斷何時可以清除區域。 |
清除期間 |
伺服器啟用自動清除功能時,這個期間代表重複自動清除處理程序之間的時間。這個期間的預設值是七天。為避免降低 DNS 伺服器效能,這個值允許的最小值為 1 小時。 |
記錄重新整理 |
只修訂資源記錄時間戳記,記錄的其他特性並未修訂時,所進行的資源記錄 DNS 動態更新。 一般來說,進行重新整理的原因如下:
|
記錄更新 |
資源記錄的其他特性以及時間戳記都有所修訂時,所進行的資源記錄 DNS 動態更新。 一般來說,進行更新的原因如下:
|
清除伺服器 |
選擇性的進階區域參數,讓您為已啟用執行區域清除的 DNS 伺服器,指定有限的 IP 位址清單。 根據預設,如果不指定這個參數,載入目錄整合區域 (也啟用清除) 的所有 DNS 伺服器都會嘗試清除區域。在某些情況下,如果只希望在載入目錄整合區域的某些伺服器執行清除,這個參數就很有用。 若要設定這個參數,您必須在區域的 ZoneResetScavengeServers 參數中,為已啟用清除區域的伺服器指定 IP 位址清單。這可以使用 dnscmd 命令完成,此命令是一種用於管理 Windows DNS 伺服器的命令列工具。 |
何時可以開始進行清除
在允許使用清除功能的所有必要條件全部符合後,就可以在目前的伺服器時間大於開始清除區域的時間時,開始清除伺服器區域。
伺服器設定時間值,以在下列任何一項事件發生時,開始針對各個區域進行清除:
-
已為區域啟用動態更新。
-
套用 [清理過時的資源記錄] 核取方塊中的變更。您可以使用 [DNS 管理員],在適用的 DNS 伺服器或伺服器的其中一個主要區域修改這個設定。
-
DNS 伺服器載入已啟用要使用清除的主要區域。
這會在伺服器電腦啟動時或是 DNS 伺服器服務啟動時發生。
-
當區域在暫停後繼續執行服務。
-
如果是 AD DS 整合區域,在重新啟動 DNS 服務或將網域控制站重新開機之後,至少必須複寫一次該區域。發生上述事件時,DNS 伺服器會計算下列總和,以設定開始清除時間的值:
目前的伺服器時間 + 重新整理間隔 = 開始清除時間
這個值會在進行清除操作時做為比較基礎。
範例:範例記錄的過時及清除處理程序
若要了解伺服器的過時及清除處理程序,請考慮單一資源記錄的壽命及後續階段,因為該記錄是新增到進行這個處理程序的伺服器及區域,然後變得過時並從資料庫中移除。
-
範例 DNS 主機 "host-a.example.microsoft.com" 在 DNS 伺服器登錄它的主機 (A) 資源記錄,以供啟用過時及清除功能的區域使用。
-
在登錄記錄時,DNS 伺服器會根據目前的伺服器時間,在這個記錄上放置時間戳記。
寫入記錄時間戳記之後,DNS 伺服器在區域不重新整理的間隔期間,不接受重新整理此記錄。不過在該時間之前,伺服器接受更新。例如,如果 "host-a.example.microsoft.com" 的 IP 位址有所變更,DNS 伺服器能夠接受更新。在這種情況下,伺服器也會更新 (重設) 記錄時間戳記。
-
經過沒有重新整理的間隔之後,伺服器便開始接受重新整理此記錄的嘗試。
在初始沒有重新整理的間隔結束後,該記錄的重新整理期間會立即開始。在這段期間,伺服器不會抑制重新整理記錄剩餘壽命的嘗試。
-
在重新整理期間和之後,如果伺服器收到重新整理該記錄的要求,會進行處理。
這會根據步驟 2 中描述的方法,重設記錄的時間戳記。
-
伺服器執行 "example.microsoft.com" 區域的後續清除時,伺服器會檢查記錄 (以及所有其他區域記錄)。
每個記錄都會以下列的總和為基礎,與目前的伺服器時間相比較,判斷是否應該移除該記錄:
記錄時間戳記 + 區域的不重新整理的間隔 + 區域的重新整理間隔
-
如果這個總和的值大於目前的伺服器時間,不會採取任何動作,而該記錄可以繼續留在區域中。
-
如果這個總和的值小於目前的伺服器時間,會從目前伺服器記憶體中載入的任何區域資料,以及從儲存在目錄整合 "example.microsoft.com" 區域的 Active Directory 網域服務 (AD DS) 中的適當 DnsZone 物件,刪除該記錄。
-
如果這個總和的值大於目前的伺服器時間,不會採取任何動作,而該記錄可以繼續留在區域中。