1、客户端登录时,“Net Logon服务”收集寻找域控的必须信息,调用DsGetDcName API、通过两种方法来查找域控

  • DNS名,Net Logon查询DNS使用IP/DNS-兼容定位器的就是DsGetDcName调用DnsQuery API来后它将适当的字符串追加到前面指定的SRV记录的域名的DNS,从读取服务资源(SRV)记录和A记录。

在域工作站上登录时则用标准的SRV记录去查询域控

  • NetBIOS名,使用WINS查询

当一个客户端登录或加入网络时必须能够找到一台域控制器。客户端想DNS发送一个“查找”以查找域控制器,b并优先在自己的子网中查询。

2、域控收到客户端的查询都会响应告知自己的状态。

这个SRV记录查询有限使用带SITE属性的查询,查询不到的时候才会用不带SITE的查询

3、客户端会使用LDAPUDP协议)和回应的域控制器建立通信。

4、域控制器会根据客户端的IP子网确定客户端所在的站点。如果此客户端正在与一个不在最近(最佳)站点的域控制器通信,此域控制器将返回此客户端的站点名称。如果此客户端已经尝试在此站点中查找域控制器(例如, 当客户端向 DNS 发送“DNS 查找”查询以在此客户端的子网内查找域控制器时),则此客户端将使用这个并非最佳的域控制器。否则,此客户端将使用此新的最佳站点名称重新执行特定于站点 的 DNS 查找。域控制器使用一些目录服务信息来标识站点和子网。

5、在客户端找到一个域控制器后,此域控制器的条目将被缓存。如果此域控制器不在最佳站点中,此客户端将在 15 分钟后刷新缓存并丢弃缓存条目。然后它将尝试在它自己所在的站点内查找最佳的域控制器。

参考资料:

http://technet.microsoft.com/zh-cn/library/cc961830.aspx

http://support.microsoft.com/kb/247811/zh-cn