HOW TO:使用 DNSLint 進行 Active Directory 複寫問題的疑難排解

文章翻譯 文章翻譯
文章編號: 321046 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何使用 DNSLint 公用程式進行 Active Directory 複寫問題的疑難排解。

Active Directory 是一種分散式資料庫, 可以用來儲存網路上物件的相關資訊,並且允許使用者存取這項資訊。 Active Directory 複寫是用來將 Active Directory 樹系中網域控制站之間的分割區複本同步化。 這項複寫處理程序允許使用者從網路上的任何位置存取資訊。 如果這項複寫處理程序運作不如預期,當使用者使用 Active Directory 資訊的服務時,可能會遇到中斷問題: 網域登入並存取網路資源,例如檔案和印表機。

Active Directory 複寫將視需要使用「網域名稱系統」(DNS),解析 IP 位址的名稱。 當 Active Directory 網域控制站的 NetLogon 服務啟動時,該網域控制站通常會使用已設定的 DNS 伺服器,登錄不同的 DNS 記錄。 DNSLint 是在 Windows 2000 (含) 以後作業系統上執行的 Microsoft Windows 公用程式。 它可以協助您進行 Active Directory 複寫問題的疑難排解。 特別是可以協助您判斷兩件事情:
  • 所有可以管理 Active Directory 樹系根目錄的 DNS 伺服器是否真的具備必要的 DNS 記錄,以便順利進行 Active Directory 樹系中網域控制站之間的分割區複本同步化。 DNSLint 會識別每個授權 DNS 伺服器中遺失了哪些 DNS 記錄。
  • 特定的 Active Directory 網域控制站是否可以解析所有必要的 DNS 記錄,以便順利進行 Active Directory 樹系中網域控制站之間的分割區複本同步化。 DNSLint 會識別測試中的網域控制站無法解析哪些 DNS 記錄。

疑難排解

如果 Active Directory 網域控制站想與其他網域控制站進行複寫,則會使用 DNS 尋找其他網域控制站。 這項處理程序運作如下:
  1. 初始化複寫的網域控制站 (DC1) 會查詢 Active Directory,以搜尋已設定的複寫協力電腦。 這些複寫協力電腦通常是由「知識一致性檢查程式」(KCC) 所定義,但也可以手動定義。 如需其他資訊,請按一下下面的文件編號,檢視 Microsoft Knowledge Base 中的文件:
    244368 How to Optimize Active Directory Replication in a Large Network
    DC1 只知道想用來進行複寫的網域控制站名稱 (DC2)。 它會在 Active Directory 中尋找與目標網域控制站名稱相符的 GUID (DC2)。 請注意,樹系中的每一台網域控制站都應該有屬於自己的唯一 GUID。
  2. 現在 DC1 已經知道 DC2 的 GUID,它必須尋找 DC2 的 IP 位址,以便透過網路連線到 DC2。 若要執行這項操作,DC1 會使用 DNS。 DC1 會傳送遞迴 DNS 查詢至其本機設定的 DNS 伺服器,以尋找 CNAME 記錄。 這項記錄永遠會符合下列格式 :
    guid._msdcs.root of Active Directory forest
    其中 guid 是 DC1 在 Active Directory 中找到的 GUID,而 root of Active Directory forest 則是指 Active Directory 樹系的根目錄。例如
    91f9b084-4876-4b59-be17-59e74c340221._msdcs.reskit.com
    其中 91f9b084-4876-4b59-be17-59e74c340221 是 GUID,而 reskit.com 是 Active Directory 樹系的根目錄。

    DC1 本機設定的 DNS 伺服器應該以別名回應 CNAME 查詢。 別名是 GUID 的另一個名稱。 例如,GUID 91f9b084-4876-4b59-be17-59e74c340221 會解析為 dc-02.reskit.com。
  3. 現在 DC1 已經知道 GUID 的別名,它必須將別名解析為 IP 位址,以便透過網路連線到 DC2。 DC1 會傳送遞迴 DNS 查詢至其本機設定的 DNS 伺服器,以尋找符合別名名稱的主機 (A) 記錄。 DNS 伺服器應該使用已對應至別名的 IP 位址進行回應,例如 169.254.66.7。
  4. 現在 DC1 已經知道 DC2 的 IP 位址,就可以透過網路連線到 DC2 並複寫 Active Directory 資料。
如果這項處理程序沒有成功,網域控制站之間的 Active Directory 複寫也會失敗,而且網域控制站上的資料可能會變得不一致。 DNSLint 可以協助判斷此處理程序中所使用的 DNS 記錄是否適當並且可以解析。
  1. 如果要判斷 DNS 是否會導致 Active Directory 樹系中網域控制站之間的 Active Directory 複寫問題,請執行下列指令
    dnslint /ad 169.254.32.1 /s 169.254.10.22
    其中 /ad 為指定 Active Directory 網域控制站的參數,該網域控制站可以用來尋找 Active Directory 樹系中所有網域控制站的 GUID。 依照預設,樹系中的所有網域控制站都應該具備這項資訊。 當您使用 /ad 函數時,就必須要有 /s 選項。 /s 選項是用於告知 DNSLint,可管理 _msdcs.forest root 區域之 DNS 伺服器的 IP 位址。

    當您執行這個指令時,DNSLint 會先聯絡 /ad 參數 (169.254.32.1) 之後所指定的 Active Directory 網域控制站。這個指令會使 DNSLint 針對此網域控制站上的 Active Directory,查詢 Active Directory 樹系的所有 GUID。 特別是會查詢 Active Directory 的下列位置
    CN=NTDS Settings、CN=Sites、CN=Configuration、DC=reskit 和 DC=com
    其中 DC=reskit 和 DC=com 是 Active Directory 樹系的根目錄。

    這種 Lightweight Directory Access Protocol (LDAP) 查詢需要驗證 Active Directory。 DNSLint 通常會在執行指令的使用者之安全性內容下執行。 在 LDAP 連結操作期間會使用這個使用者的憑證驗證 Active Directory。 如果憑證有效而且使用者具有在 Active Directory 存取這項資訊的權限,則連結會成功並且在 Active Directory 中搜尋 GUID。 如果連結失敗,就不會執行搜尋,而整個操作也就失敗。 在這種情況下,DNSLint 會將錯誤傳回給使用者。

    如果從指定的網域控制站傳回 GUID 清單,DNSLint 就會將 DNS 查詢傳送到 /s 選項所指定的 DNS 伺服器。在此步驟的上述範例中,會將 DNS 查詢傳送到 169.254.10.22。 如果這個 DNS 伺服器無權管理 _msdcs.root of Active Directory forest,就會在尚未找到先前所發現 GUID 的 DNS 記錄之前結束操作。 /s 選項必須指定可管理 _msdcs.root of Active Directory forest 子網域之 DNS 伺服器的 IP 位址。

    在某些環境中,例如不接受動態更新的 DNS 伺服器控管根目錄區域時,_msdcs 區域會被委派給無權管理 Active Directory 樹系根目錄的 DNS 伺服器。 DNSLint 會先檢查這項委派,然後再繼續進行之後的 DNS 查詢。 這個步驟可以協助避免將 DNS 查詢傳送到不應該進行測試的 DNS 伺服器。

    當 DNSLint 處理 DNS 查詢時,會嘗試探索其他有權管理 Active Directory 樹系根目錄的 DNS 伺服器。 DNSLint 找到有權管理 Active Directory 樹系根目錄的 DNS 伺服器之後,會在 DNS 伺服器中查詢在 Active Directory 中找到的 CNAME 記錄。 當 DNSLint 將每一個 CNAME 記錄解析為別名時,也會嘗試解析每個別名的主機 (A) 記錄。 如前文所述,進行 Active Directory 複寫時需要這些 DNS 記錄。

    然後,DNSLint 會建立 HTML 格式的報告 (並且可以選擇另外建立一份文字報告)。 報告內容包含 Active Directory 中找到的所有 GUID、有權管理 Active Directory 樹系根目錄的 DNS 伺服器,以及查詢這些伺服器所得到的全部 CNAME 和主機 (A) 記錄結果。 它會報告每一台 DNS 伺服器遺失哪些 CNAME 記錄和主機 (A) 記錄。 這份報告可以用來更正可能導致 Active Directory 複寫問題的任何 DNS 錯誤,例如遺失或不正確的 DNS 記錄。
  2. 如果要判斷特定的 Active Directory 網域控制站是否可以解析為了順利進行 Active Directory 樹系中網域控制站之間的分割區複本同步化所需的所有 DNS 記錄,請在測試中的網域控制站執行下列指令:
    dnslint /ad /s localhost
    由於 /ad 選項後面尚未指定任何 IP 位址,所以會使用 127.0.0.1。 這表示網域控制站會在本身查詢 GUID 記錄清單。 另外,您可以視個人需求指定替代的網域控制站 LDAP 伺服器。 如果您在 /s 選項後面指定 localhost,就是告訴 DNSLint 使用測試中的網域控制站所設定的一或多台 DNS 伺服器,以便解析 Active Directory 複寫要用的 CNAME 和主機 (A) 記錄。 這項規格會將遞迴 DNS 查詢傳送到網域控制站中本機設定的一或多台 DNS 伺服器,以判斷網域控制站是否可以解析必要的記錄。 但這並不表示會針對這些記錄檢查本機網域控制站的所有 DNS 伺服器。 網域控制站的 DNS 伺服器清單是依據其預設行為而加以管理。 也就是說,當清單上的第一台 DNS 伺服器沒有回應時,才會使用第二台。 這項測試只能判斷網域控制站是否可以解析用來進行 Active Directory 複寫的 DNS 記錄。 並未針對特定的 DNS 伺服器進行測試。

    DNSLint 產生的報告可以用來更正可能導致 Active Directory 複寫問題的任何 DNS 錯誤,例如遺失或不正確的 DNS 記錄。

您可以從 Microsoft 下載中心下載 DNSLint 公用程式:

立即下載 DNSLint

如需有關 DNSLint 公用程式的詳細資訊,請按一下下面的文件編號,檢視 Microsoft Knowledge Base 中的文件:
321045 Description of the DNSLint Untility

屬性

文章編號: 321046 - 上次校閱: 2005年9月26日 - 版次: 5.4
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, 64-Bit Datacenter Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows XP Home Edition (家用版)
  • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Server
關鍵字:?
kbhowto kbhowtomaster kbdownload kbnetwork KB321046
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com