AD域客户端在登录域控制器的过程中,是如何找到域控制器并且在域控制器上登录的呢?很多朋友在排查客户端登录域问题的时候,不知道从何下手,这篇文章就介绍AD域客户端如何用定位器查找域控制器。您只有了解了这个工作过程,才会知道如何排查域客户端无法登录域的问题。

• 在客户机(搜索域控制器的计算机)上,定位器的启动是以对本地 Netlogon 服务执行远程过程调用 (RPC) 的形式执行的。定位器 DsGetDcName 应用程序编程接口 (API) 调用是通过 Netlogon 服务实现的。

• 客户机收集在选择一个域控制器时所需的信息,并使用 DsGetDcName 调用将这些信息传递到 Netlogon 服务。

• 客户机上的 Netlogon 服务使用收集的这些信息从一个域控制器中查找指定的域,采用的是下面两种方法之一:您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1 

对于 DNS 名称,Netlogon 通过使用 IP/DNS 兼容定位器查询 DNS--即在 DNS 将域名附加到指定 SRV 记录的适当的字符串后,DsGetDcName 调用 DnsQuery 调用从 DNS 读取“服务资源”(SRV) 记录和“A”记录。
登录到基于 Windows 的域的工作站向 DNS 查询一般形式的 SRV 记录: _service._protocol.DnsDomainName
Active Directory 服务器通过 TCP 协议提供“轻量目录访问协议”(LDAP) 服务。因此,客户机通过向 DNS 查询以下形式的一条记录找到一个 LDAP 服务器: _ldap._tcp.DnsDomainName

对于 NetBIOS 名称,Netlogon 通过使用 Microsoft Windows NT 4.0 版兼容定位器来执行域控制器发现(即通过使用特定于传输的机制,例如 WINS)。 在 Windows NT 4.0 及更早版本中,“discovery”是在主域或受信域中用于定位一个用于身份验证的域控制器的过程。

• Netlogon 服务将一个数据报发送到注册该名称的计算机。对于 NetBIOS 域名,数据报是作为一个mailslot消息实现的。对于 DNS 域名,数据报是作为一个 LDAP 用户数据报协议 (UDP) 搜索实现的。(UDP 是无连接数据报传输协议,它是 TCP/IP 协议组的一部分。TCP 是一个面向连接的传输协议。) 您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1

• 每个可用的域控制器都响应此数据报,表明它当前处于运行状态,并将该信息返回到 DsGetDcName。• Netlogon 服务缓存域控制器信息,以便后续请求不必重复此发现过程。缓存此信息有利于保证使用同一域控制器时的一致性和 Active Directory 视图的一致性。

当一个客户机登录或加入网络时,它必须能够找到一个域控制器。此客户机向 DNS 发送一个“DNS 查找”查询以搜索域控制器,并优先在当前子网内查询。因此,客户机通过向 DNS 查询以下形式的一条记录找到一个域控制器: _LDAP._TCP.dc._msdcs.domainname
在客户机找到一个域控制器后,它将使用 LDAP 建立通讯,以获得对 Active Directory 的访问权。作为此协商的一部分,域控制器根据客户机的 IP 子网来确定此客户机所在的站点。如果此客户机正在与一个不在最近(最佳)站点的域控制器通讯,此域控制器将返回此客户机的站点名称。

如果此客户机已经尝试在此站点中查找域控制器(例如,当客户机向 DNS 发送“DNS 查找”查询以在此客户机的子网内查找域控制器时),则此客户机将使用这个并非最佳的域控制器。否则,此客户机将使用此新的最佳站点名称重新执行一个特定于站点的 DNS 查找。您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1

域控制器使用一些目录服务信息来标识站点和子网。在客户机找到一个域控制器后,此域控制器的条目将被缓存。如果此域控制器不在最佳站点,此客户机在十五分钟后将刷新缓存并丢弃缓存条目。然后它将尝试在它自己所在的站点内查找一个最佳的域控制器。在客户机建立到域控制器的通讯路径之后,它就可以建立登录和身份验证凭证,而且,对于基于 Windows 的计算机,在必要时还可以建立一个安全通道。然后此客户机就可以在目录中执行常规查询和搜索信息了。客户机建立一个到域控制器的 LDAP 连接以便登录。此登录过程要使用“安全帐户管理器”。因为通讯路径使用了 LDAP 接口,且此客户机是由一个域控制器进行身份验证的,所以此客户帐户在得到验证后通过“安全帐户管理器”传递到目录服务代理,然后到数据库层,最后到“可扩展存储引擎”(ESE) 中的数据库。

以上内容译自kb314861 http://support.microsoft.com/kb/314861