Windows-Server-2008

SBS 2008 DNS 在 .uk、.eu 和美國以外的其他一些 TLD 的 1 天后停止工作

  • September 2, 2011

在 SBS 2008 中,首次安裝或重新啟動時,DNS 查詢成功,但大約 1 天后,使用者報告他們無法訪問某些網站。檢查時,可能會注意到無法訪問的網站位於 .uk 和 .eu 頂級域 (TLD) 或美國以外的某些其他 TLD。

如果放置幾天,問題可能會自行解決,然後再過一天左右會再次出現。

如果重新啟動 DNS 伺服器服務,或者清除伺服器上的 DNS 記憶體,則問題暫時解決,但在一天左右後再次出現。

此問題的原因是在歐盟國家(以及美國以外的某些其他 TLD)中,名稱伺服器記錄通常被記憶體超過 1 天。SBS2008 對允許記憶體名稱伺服器記錄的最長時間有一個上限,預設為 1 天。此預設設置在美國執行良好,但當 .uk 和 .eu 記錄過時時,它們不會從記憶體中刪除,而是不再作為有效記錄返回。因此,它們有效地防止這些 TLD 中的 DNS 查找成功,直到記錄過期並從記憶體中刪除,或者重新啟動 DNS 伺服器服務。

解決方法是增加 DNS 伺服器中的最大生存時間 (TTL) 設置,以便它辨識早於 1 天的記錄。經驗表明,將該值設置為 4 天通常就足夠了,但最大設置為 30 天。

解決方法

此問題可以通過重新啟動 DNS Server 服務或清除 DNS 伺服器上的 DNS 記憶體來臨時解決。

永久解決方案包括 - 增加最大 DNS 記憶體 TTL 值。- 重新配置 DNS 伺服器以使用 DNS 轉發器,而不是依賴根提示。

解決方案

要永久解決,需要將 MaxCacheTTL 值更改為大於 TLD TTL 的值(預設值為 1 天,最大值為 30 天)。在 SBS2008 上沒有負面影響,因為這是資源記錄記憶體的 TTL。這只是它將儲存在 DNS 伺服器上的最大值。如果實際 TTL 更短,將使用更短的值。   

  1. 啟動系統資料庫編輯器 (Regedit.exe)。
  2. 找到以下系統資料庫​​項:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters 3. 在編輯菜單上,點擊新建,點擊 DWORD(32 位)值,然後添加以下值:

值:MaxCacheTtl

數據類型:DWORD

數據值:0x69780(十進制的 432000 = 5 天) 4. 點擊確定。 5. 退出系統資料庫編輯器。 6. 重新啟動 DNS 伺服器。

作為額外的預防措施,請使用清除 DNS 解析器記憶體

IPCONFIG /FlushDNS

更改後,應監視伺服器以檢查問題是否再次出現。由於此值不會影響 SBS2008 上的正常行為,因此如果問題仍然存在,我們可以將此值增加到更大的值。

也可以看看

引用自:https://serverfault.com/questions/98999