如何在 Windows 中定位域控制器

文章翻译 文章翻译
文章编号: 247811 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文描述了 Windows 用来在基于 Windows 的域中定位域控制器的机制。并详细介绍了按照域的 DNS-style 名称和 Flat-style (NetBIOS) 名称定位该域的过程。Flat-style 名称用于实现向后兼容。在所有其他情况下,DNS-style 名称应因为策略原因而使用。本文还介绍了解决域控制器定位过程的问题。

更多信息

该序列描述定位器查找域控制器的方法:
  • 在客户端(定位域控制器的计算机)上,定位器作为远程过程调用 (RPC) 启动到本地 Netlogon 服务。定位器 DsGetDcName 应用程序编程接口 (API) 调用是通过 Netlogon 服务实现的。
  • 客户端收集选择域控制器所需的信息,并使用 DsGetDcName 调用将此信息传递给 Netlogon 服务。
  • 客户端上的 Netlogon 服务使用收集的信息,通过下列两种方法之一查找指定域的域控制器:
    • 对于 DNS 名称,Netlogon 使用 IP/DNS 兼容定位器查询 DNS,即,在将域名添加到指定 SRV 记录的相应字符串后,DsGetDcName 将调用 DnsQuery 调用来从 DNS 读取 Service Resource (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 及更早版本中,“发现”是在主域或受信任域中定位一个用于身份验证的域控制器的过程。
  • Netlogon 服务将一个数据报发送到注册该名称的计算机。对于 NetBIOS 域名,数据报是作为邮件槽消息实现的。对于 DNS 域名,数据报是作为 LDAP 用户数据报协议 (UDP) 搜索实现的。(UDP 是无连接数据报传输协议,它是 TCP/IP 协议套件的一部分。TCP 是一个面向连接的传输协议。)
  • 每个可用的域控制器都响应此数据报以表明它当前处于运行状态,并将该信息返回到 DsGetDcName。

    请注意,UDP 允许一台计算机上的程序将数据报发送给另一台计算机上的程序。UDP 包括一个协议端口号,这使得发送方能够区分远程计算机上的多个目标(程序)。
  • 每个可用的域控制器都响应此数据报以表明它当前处于运行状态,并将该信息返回到 DsGetDcName。
  • Netlogon 服务缓存域控制器信息,以便后续请求不必重复此发现过程。缓存此信息有利于保证对同一域控制器使用的一致性和 Active Directory 视图的一致性。
当一个客户端登录或加入网络时,它必须能够找到一个域控制器。该客户端向 DNS 发送一个“DNS 查找”查询以查找域控制器,并优先在该客户端自己的子网中查询。因此,客户端通过在 DNS 中查询以下形式的记录来查找域控制器:
_LDAP._TCP.dc._msdcs.domainname
客户端找到域控制器后,它将使用 LDAP 建立通信,以获得对 Active Directory 的访问权。作为此协商的一部分,域控制器根据客户端的 IP 子网来确定此客户端所在的站点。如果此客户端正在与一个不在最近(最佳)站点的域控制器通信,此域控制器将返回此客户端的站点名称。如果此客户端已经尝试在此站点中查找域控制器(例如,当客户端向 DNS 发送“DNS 查找”查询以在此客户端的子网内查找域控制器时),则此客户端将使用这个并非最佳的域控制器。否则,此客户端将使用此新的最佳站点名称重新执行特定于站点的 DNS 查找。域控制器使用一些目录服务信息来标识站点和子网。

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

在客户端建立到域控制器的通信路径后,它就可以建立登录和身份验证凭证,而且,对于基于 Windows 的计算机,在必要时还可以建立一个安全通道。然后此客户端就可以在目录中执行常规查询和搜索信息了。

客户端建立一个到域控制器的 LDAP 连接以便登录。此登录过程使用“安全帐户管理器”。因为通信路径使用了 LDAP 接口,且此客户端是由一个域控制器进行身份验证的,所以此客户端帐户在得到验证后通过“安全帐户管理器”传递到目录服务代理,然后传递到数据库层,最后传递到“可扩展存储引擎”(ESE) 中的数据库。

解决域定位器进程问题

要解决域定位器进程问题,请按照下列步骤操作:
  1. 检查客户端和服务器上的事件查看器。事件日志可能包含表明出现问题的错误信息。要查看事件查看器,请单击开始,指向程序,指向管理工具,然后单击事件查看器。检查客户端和服务器上的系统日志。还请检查服务器上的目录服务日志和 DNS 服务器上的 DNS 日志。
  2. 通过在命令提示符处使用“ipconfig /all”命令检查 IP 配置。
  3. 使用 Ping 实用工具验证网络连接和名称解析。对 IP 地址和服务器名称执行 Ping 操作。您还可能要对域名执行 Ping 操作。
  4. 使用 Netdiag 工具确定网络组件是否正常工作。要将详细输出发送到文本文件,请使用下面的命令:
    netdiag /v >test.txt
    检查日志文件,查找问题并查看任何隐含的组件。该文件还包含其他网络配置的详细情况。
  5. 要修复较小的问题,请通过以下语法使用 Netdiag 工具:“netdiag /fix”。
  6. 使用“nltest /dsgetdc:domainname”命令验证域控制器是否可以定位指定域。
  7. 使用 NSLookup 工具验证 DNS 条目是否在 DNS 中正确注册。验证是否可以解析服务器主机记录和 GUID SRV 记录。

    例如,要验证记录是否注册,请使用以下命令:
    nslookup servername.childofrootdomain.rootdomain.com

    nslookup guid._msdcs.rootdomain.com
  8. 如果这些命令均失败,则使用以下方法之一向 DNS 注册记录:
    • 要强制主机记录注册,请键入 ipconfig /registerdns
    • 要强制域控制器服务注册,请停止然后启动 Netlogon 服务。
  9. 要检测域控制器问题,请从命令提示符处运行 DCdiag 实用工具。该工具运行大量测试以验证域控制器运行是否正常。使用该命令将结果发送到文本文件:
    dcdiag /v >dcdiag.txt
  10. 使用 Ldp.exe 工具连接并绑定到域控制器以验证相应 LDAP 的连接性。
  11. 如果您怀疑某个特定的域控制器有问题,则打开 Netlogon 调试日志可能会很有用。通过键入以下命令使用 NLTest 实用工具:“nltest /dbflag:0x2000ffff”。这样信息将记录到 Debug 文件夹中的 Netlogon.log 文件。
  12. 如果您仍然没有找出问题,请使用网络监视器监控客户端和域控制器之间的网络流量。
有关如何安装网络监视器的信息,请参见下面的 Microsoft 知识库文章:
243270 如何在 Windows 2000 中安装网络监视器

参考

有关其他信息,请参见 Windows Resource Kit 第 10 章“Active Directory Diagnostic, Troubleshooting, and Recovery”(Active Directory 诊断、疑难解答和恢复)。

属性

文章编号: 247811 - 最后修改: 2005年10月24日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
关键字:?
kbinfo kbdns kbenv kbnetwork KB247811
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