DNS在活動(dòng)目錄中,除了提供域名解析功能外,還可以記錄域控和全局編錄服務(wù)器相關(guān)的信息,并將其提交給客戶端使用。域控會(huì)在DNS服務(wù)器上注冊記錄信息,包括主機(jī)記錄信息、各種服務(wù)記錄信息等。客戶端需要查詢這些記錄信息,才可以找到域控,之后才可以執(zhí)行登錄到域環(huán)境、查詢Active Directory信息等操作。
Active Directory要想正常運(yùn)作,必須建立在DNS正確配置和正常工作基礎(chǔ)之上。使用廣播或者WINS等方法,雖然也可以讓客戶端找到域控,不過因?yàn)閯澐諺LAN和缺乏配置等原因,這些方法已經(jīng)很少使用了。
因此,針對AD的排錯(cuò),首先要確認(rèn)DNS工作正常。在DNS中和活動(dòng)目錄相關(guān)的記錄里面,“msdec”區(qū)域是比較重要的,該區(qū)域中包含了所有域控的服務(wù)記錄,AD中的林根域中的“msdcs”區(qū)域中額外包含了林中所有全局編錄服務(wù)器的記錄信息,該區(qū)域的主要作用是對域控和全局編錄服務(wù)器進(jìn)行定位,在林中每個(gè)域都存在域控,但是在默認(rèn)情況下,全局編錄服務(wù)器只能是根域的第一臺域控。如果該區(qū)域中的記錄缺失或者配置不正確,AD自然會(huì)出現(xiàn)故障。如果在網(wǎng)絡(luò)中存在多個(gè)域,那么只有根域的DNS服務(wù)器上才可以看到該區(qū)域的信息。
對于與DNS相關(guān)的故障來說,可以使用NSLOOKUP命令,來驗(yàn)證DNS記錄是否完整。如果DNS記錄確實(shí),可以通過重啟NetLogon服務(wù)加以修復(fù),也可以執(zhí)行“nltest.exe /dsregdns”命令進(jìn)行修復(fù)。
圖1 對DNS服務(wù)進(jìn)行測試
對DNS本身也應(yīng)該進(jìn)行一定的配置,包括允許動(dòng)態(tài)更新、區(qū)域名稱和AD域名一致、DNS服務(wù)器本身需要配置DNS余名后綴等。
如果DNS記錄沒有正確注冊,原因在于沒有對DNS進(jìn)行合理的配置,例如在域控上的TCP/IP屬性設(shè)定中,沒有正確地設(shè)置DNS服務(wù)器地址。在DNS服務(wù)器上配置存在異常,誤刪了一些不許存在的區(qū)域等。
在域控上執(zhí)行“nslookup”命令,在“Defauit Server”欄中顯示的不是默認(rèn)的活動(dòng)目錄DNS服務(wù)器,則一定存在問題。找不到正確的DNS服務(wù)器,就會(huì)造成某些延遲。
例如,當(dāng)客戶機(jī)加入域時(shí)特別慢,系統(tǒng)一直提示正在準(zhǔn)備網(wǎng)絡(luò)連接的話,幾乎都是DNS設(shè)定出了問題。在NSLOOKUP命令行中繼續(xù)輸 入“_ldap.tcp._msdcs.xxx.com”命令,其中的“xxx.com”表示具體的域名,來查找LDAP服務(wù)器(即域控),如果提示該服務(wù)器沒有找到的話,那么客戶端自然無法定位域控。
在Nslookup命令行下執(zhí)行“l(fā)s xxx.com”命令,可以查看域中所有的記錄信息。執(zhí)行“l(fā)s-tsrv”命令,可以查看所有的SRV記錄。如果這些記錄異常的話,就說明DNS配置存在問題。
此外,可以在DNS控制左側(cè)選擇主機(jī)名,在其屬性窗口中的“監(jiān)視”面板(如圖1)中選擇“對此DNS服務(wù)器的簡單查詢”和“對此服務(wù)器的遞歸查詢”項(xiàng),點(diǎn)擊“立即測試”按鈕,對DNS服務(wù)進(jìn)行快速測試。執(zhí)行“net stop netlogon” 和“netlogonstart netlogon”命令,來重啟NetLogon服務(wù),會(huì)執(zhí)行DNS配置的修復(fù)操作。
如果網(wǎng)絡(luò)比較繁忙的話,又不存在多臺域控的情況下,不建議使用上述命令。執(zhí)行“nltest.exe /dsregdns”命令,會(huì)提示命令執(zhí)行成功,也可以修復(fù)DNS配置。打開DNS控制臺,執(zhí)行刷新操作,可以看到DNS配置已經(jīng)恢復(fù)如初了。
如果該方法無效的話,說明相關(guān)DNS區(qū)域也許并不存在。為此需要在DNS控制臺左側(cè)選擇“正向查找區(qū)域”項(xiàng),在其右鍵菜單上點(diǎn)擊“新建區(qū)域”項(xiàng),在向?qū)Ы缑妫ㄈ鐖D2)中選擇“主要區(qū)域”項(xiàng),選擇“在Active Directory中存儲區(qū)域”項(xiàng)。點(diǎn)擊“下一步”按鈕,選擇“在此域中的所有域控制器上運(yùn)行的所有DNS服務(wù)器”項(xiàng),之后輸入?yún)^(qū)域名稱,必須和域名一致。
點(diǎn)擊“下一步”,選擇“至允許安全的動(dòng)態(tài)更新”項(xiàng),點(diǎn)擊完成按鈕,創(chuàng)建該DNS區(qū)域。因?yàn)椤癿sdcs”應(yīng)該作為獨(dú)立的區(qū)域存在,尤其對于林中存在多域的情況而言尤為重要。所以可以選擇“正常查找區(qū)域→xxx.com→_msdcs”項(xiàng),將其刪除。
圖2 創(chuàng)建所需的DNS區(qū)域
如果操作失敗,說明多臺域控之前的同步尚未完成。之后選擇“正向查找區(qū)域”項(xiàng),在其右鍵菜單上點(diǎn)擊“新建區(qū)域”項(xiàng),點(diǎn)擊“下一步”,在Active Directory區(qū) 域復(fù)制作用域窗口中選擇“至Active Directory林xxx.com中的所有DNS服務(wù)器”項(xiàng),在之后的“區(qū)域名稱”欄中輸入“_msdcs.xxx.com”項(xiàng),其余設(shè)置與上述相同,點(diǎn)擊“完成”,創(chuàng)建該獨(dú)立的區(qū)域。如果不將該區(qū)域獨(dú)立出來,會(huì)出現(xiàn)可以找到本域的域控,但是無法找到林中的全局編錄服務(wù)器。
選擇“正向查找區(qū)域→xxx.com”項(xiàng),在右鍵菜單上點(diǎn)擊“新建委派”項(xiàng),在向?qū)Ы缑嬷械摹拔傻挠颉睓谥休斎搿癬msdcs”,讓其他的查詢者知道該區(qū)域由誰負(fù)責(zé)。
在下一步窗口中點(diǎn)擊“添加”按鈕,在“服務(wù)器完全合格的域名”欄中輸入“gc=dc1.xxx.com”,在“IP地址”loan中輸入本地IP,點(diǎn)擊“添加”按鈕將其添加進(jìn)來。這樣就可以讓其指向自身,“dc1.xxx.com”表示本機(jī)名稱。點(diǎn)擊“完成”按鈕,將DNS配置恢復(fù)到初始狀態(tài)。
如果存在多臺DNS服務(wù)器的話,就會(huì)涉及到如何在彼此之間進(jìn)行復(fù)制的問題。比較好的解決方法是,在每臺域控上安裝DNS服務(wù),將相關(guān)的DNS區(qū)域設(shè)置為活動(dòng)目錄集成區(qū)域,從整體上進(jìn)行DNS的復(fù)制和活動(dòng)目錄的復(fù)制,這樣可以有效提高安全性。
使 用“dnscmd”命 令,可以對DNS配置進(jìn)行快速調(diào)整,例如執(zhí)行“dnscmd /clearcache”命令,可以清除DNS緩存。執(zhí)行“dnscmd/zoneinfo”命令,可以查看區(qū)域信息。執(zhí)行“dnscmd xxx.com /zoneexport yyy.com c:”命 令,將“xxx.com”域中的“yyy.com”域名導(dǎo)出到指定的目錄中。
為了避免因?yàn)镈NS注冊問題,導(dǎo)致客戶端無法登錄的情況,可以先在客戶端檢測DNS設(shè)置是否正常,是否指向正確的地址。之后在服務(wù)器端檢測DNS服務(wù)是否可用,并驗(yàn)證DNS區(qū)域是否已經(jīng)配置為自動(dòng)更新狀態(tài)。
如果存在多臺DNS服務(wù)器,必須保證其彼此之間可以復(fù)制數(shù)據(jù)庫。在DNS控制臺左側(cè)選擇域名,在其屬性窗口中的“區(qū)域傳送”面板中選擇“允許區(qū)域傳送”項(xiàng),來執(zhí)行同步操作。點(diǎn)擊“通知”按鈕,可以指定輔助DNS服務(wù)器接收區(qū)域更新通知。執(zhí)行“dcdiag /test:dns”命令,來驗(yàn)證域控是否可以在DNS服務(wù)器上注冊其A記錄。如果因?yàn)樯矸蒡?yàn)證錯(cuò)誤,導(dǎo)致用戶無法登錄的情況,可以使用Netdiag命令加以判斷,來驗(yàn)證客戶端是否可以聯(lián)系到域控。