在Windows XP中如何定位并登錄域控制器
域控制器是指在“域”模式下,至少有一臺服務器負責每一臺聯入網絡的電腦和用戶的驗證工作,包含了由這個域的賬戶、密碼、屬于這個域的計算機等信息構成的數據庫。在WindowsXP中如何定位并登錄域控制器,具體內容如下所述。
下面介紹如何用定位器查找域控制器:
在客戶機(搜索域控制器的計算機)上,定位器的啟動是以對本地Netlogon服務執行遠程過程調用(RPC)的形式執行的。定位器DsGetDcName應用程序編程接口(API)調用是通過Netlogon服務實現的。
客戶機收集在選擇一個域控制器時所需的信息,并使用DsGetDcName調用將這些信息傳遞到Netlogon服務。
客戶機上的Netlogon服務使用收集的這些信息從一個域控制器中查找指定的域,采用的是下面兩種方法之一:
對于DNS名稱,Netlogon通過使用IP/DNS兼容定位器查詢DNS--即在DNS將域名附加到指定SRV記錄的適當的字符串后,DsGetDcName調用DnsQuery調用從DNS讀取“服務資源”(SRV)記錄和“A”記錄。
登錄到基于Windows的域的工作站向DNS查詢一般形式的SRV記錄:_service._protocol.DnsDomainName
ActiveDirectory服務器通過TCP協議提供“輕量目錄訪問協議”(LDAP)服務。因此,客戶機通過向DNS查詢以下形式的一條記錄找到一個LDAP服務器:_ldap._tcp.DnsDomainName
對于NetBIOS名稱,Netlogon通過使用MicrosoftWindowsNT4.0版兼容定位器來執行域控制器發現(即通過使用特定于傳輸的機制,例如WINS)。在WindowsNT4.0及更早版本中,“discovery”是在主域或受信域中用于定位一個用于身份驗證的域控制器的過程。
Netlogon服務將一個數據報發送到注冊該名稱的計算機。對于NetBIOS域名,數據報是作為一個mailslot消息實現的。對于DNS域名,數據報是作為一個LDAP用戶數據報協議(UDP)搜索實現的。(UDP是無連接數據報傳輸協議,它是TCP/IP協議組的一部分。TCP是一個面向連接的傳輸協議。)
每個可用的域控制器都響應此數據報,表明它當前處于運行狀態,并將該信息返回到DsGetDcName。Netlogon服務緩存域控制器信息,以便后續請求不必重復此發現過程。緩存此信息有利于保證使用同一域控制器時的一致性和ActiveDirectory視圖的一致性。
當一個客戶機登錄或加入網絡時,它必須能夠找到一個域控制器。此客戶機向DNS發送一個“DNS查找”查詢以搜索域控制器,并優先在當前子網內查詢。因此,客戶機通過向DNS查詢以下形式的一條記錄找到一個域控制器:_LDAP._TCP.dc._msdcs.domainname
在客戶機找到一個域控制器后,它將使用LDAP建立通訊,以獲得對ActiveDirectory的訪問權。作為此協商的一部分,域控制器根據客戶機的IP子網來確定此客戶機所在的站點。如果此客戶機正在與一個不在最近(最佳)站點的域控制器通訊,此域控制器將返回此客戶機的站點名稱。
如果此客戶機已經嘗試在此站點中查找域控制器(例如,當客戶機向DNS發送“DNS查找”查詢以在此客戶機的子網內查找域控制器時),則此客戶機將使用這個并非最佳的域控制器。否則,此客戶機將使用此新的最佳站點名稱重新執行一個特定于站點的DNS查找。
域控制器使用一些目錄服務信息來標識站點和子網。在客戶機找到一個域控制器后,此域控制器的條目將被緩存。如果此域控制器不在最佳站點,此客戶機在十五分鐘后將刷新緩存并丟棄緩存條目。然后它將嘗試在它自己所在的站點內查找一個最佳的域控制器。在客戶機建立到域控制器的通訊路徑之后,它就可以建立登錄和身份驗證憑證,而且,對于基于Windows的計算機,在必要時還可以建立一個安全通道。然后此客戶機就可以在目錄中執行常規查詢和搜索信息了。客戶機建立一個到域控制器的LDAP連接以便登錄。此登錄過程要使用“安全帳戶管理器”。因為通訊路徑使用了LDAP接口,且此客戶機是由一個域控制器進行身份驗證的,所以此客戶帳戶在得到驗證后通過“安全帳戶管理器”傳遞到目錄服務代理,然后到數據庫層,最后到“可擴展存儲引擎”(ESE)中的數據庫。
希望本文介紹的在Windows XP中如何定位并登錄域控制器的方法能夠對讀者有所幫助,更多有關域控制器的內容還需要讀者去探索和學習。
【編輯推薦】