我想知道 DC 定位器检查所连接域控制器可用性的频率。我假设它在启动时选择域控制器,但我不确定以下内容:
- 它检查所选 DC 是否仍在运行/可用的频率
- 正在使用哪种类型的检查
- 什么触发了特定域切换到另一个 DC
- 不同 Windows Server 版本或域/林功能级别之间的 DC 定位器行为是否有重大变化?
-是否存在这样的情况: DC 定位器无法识别其当前选定的 DC 已发生故障,并且 DC 定位器会长时间附着在发生故障的域上?
最新一点对我来说特别有趣。
答案1
关于 DC Locator 流程如何运作,有大量的公开信息。
本质上,它执行一系列 DNS 查找和 LDAP ping,并且还尝试通过选择最近的域控制器对结果进行分层。
Windows DC Locator 继续使用发生故障的域控制器的情况并不常见,除非域控制器通过了 DC Locator 测试,但存在其他问题(例如数据库被卸载)。很久以前,Exchange 因 DC 锁定失败而闻名,但这种情况如今已很少见。
另一方面,应用程序可能更常见。这通常是由于应用程序或供应商没有遵循与 DC 定位器相同的流程。例如,他们可能会执行直接 DNS 查找并尝试某种类型的 LDAP 或自定义代码操作。如果 DNS 查找返回的查询结果包含不可用的域控制器地址,则他们的应用程序可能会失败。
在组策略中,System\Net Logon,一些相关设置:
为非后台调用者指定正周期性 DC 缓存刷新
“此策略设置确定何时刷新成功的 DC 缓存条目。此策略设置适用于不定期尝试定位 DC 的调用程序,并在将 DC 信息返回给调用程序之前应用。此策略设置仅与未指定 DS_BACKGROUND_ONLY 标志的 DsGetDcName 调用程序相关。此设置的默认值为 30 分钟 (1800)。“
强制重新发现间隔
“此策略设置确定 DC Locator 执行强制重新发现的间隔。客户端使用域控制器定位器 (DC Locator) 服务来查找其 Active Directory 域的域控制器。当 DC Locator 找到域控制器时,它会缓存域控制器以提高定位算法的效率。只要缓存的域控制器满足要求并正在运行,DC Locator 将继续返回它。如果引入了新的域控制器,现有客户端将仅在 DC Locator 执行强制重新发现时发现它。为了适应网络条件的变化,DC Locator 将默认根据特定时间间隔执行强制重新发现,并在所有域或林中的所有可用域控制器之间保持客户端的有效负载平衡。DC Locator 强制重新发现的默认时间间隔为 12 小时。如果对 DC Locator 的调用使用 DS_FORCE_REDISCOVERY 标志,也可以触发强制重新发现。重新发现会重置缓存域控制器条目上的计时器。如果启用此策略设置,计算机上的 DC 定位器将根据配置的时间间隔定期执行强制重新发现。最小时间间隔为 3600 秒(1 小时),以避免重新发现产生过多的网络流量。允许的最大时间间隔为 4294967200 秒,而任何大于 4294967 秒(~49 天)的值都将被视为无穷大。如果禁用此策略设置,则默认情况下将每隔 12 小时对计算机使用强制重新发现。如果不配置此策略设置,则默认情况下将每隔 12 小时对计算机使用强制重新发现,除非注册表中的本地计算机设置是不同的值。
对域控制器进行 ping 操作时使用紧急模式
“此策略设置配置应用此设置的计算机在尝试定位域控制器 (DC) 时是否更积极。当环境中有大量运行新旧操作系统的 DC 时,默认的 DC 定位器发现行为可能不足以找到运行较新操作系统的 DC。可以启用此策略设置,以配置 DC 定位器更积极地尝试在此类环境中定位 DC,方法是以更高的频率 ping DC。启用此设置可能会导致额外的网络流量和 DC 负载增加。一旦所有 DC 都运行相同的操作系统版本,您就应该禁用此设置。此设置的允许值会导致以下行为:1 - 计算机将以正常频率 ping DC。2 - 计算机将以更高的频率 ping DC。要指定此行为,请单击“已启用”,然后输入一个值。值的范围是 1 到 2。如果您不配置此策略设置,则它不会应用于任何计算机,并且计算机将使用其本地配置。”
http://blogs.technet.com/b/arnaud_jumelet/archive/2010/07/11/domain-controller-locator-in-depth.aspx