五站点公司通过低延迟第 2 层或 IPSec 隧道连接,每个站点有 2 个 DC。
我注意到浏览到 \\domain.tld 通常会显示来自远程 DC 的 sysvol/netlogon 共享。我能说出来的原因是因为一些较小的站点也有运行打印管理的 DC。打印机共享也显示在那里。
从总部站点的桌面 ping domain.tld 通常会解析到远程 DC 的 IP 地址。ipconfig /flushdns 然后再次 ping domain.tld 似乎总是导致工作站将域名解析到不同的 DC,通常是本地站点上的一个。
需要明确的是,这并没有引起我所知道的问题,我只是想了解为什么 DNS 会这样。%logonserver% 似乎总是解析为本地 DC,无论哪个 DC 返回我对 domain.tld 的 ping。
站点之间的延迟低于 10 毫秒,带宽大于 50 Mbps 同步。
非常感谢您的阅读!
更新:在 DNS ->(右键单击 DNS 服务器名称)-> 属性 -> 高级 ->“启用循环”下为每个 DNS 服务器启用循环。此外,在 DNS ->(服务器名称)-> Fwd 查找区域 -> domain.tld 中,我看到了林中每个域控制器的名称服务器条目(“与父文件夹相同”)。每个 DC 也有一个名为“(与父文件夹相同)”的记录。我认为这种行为是预期的,任何人都可以验证我的假设是否正确?
DNS Round Robin是一种负载平衡技术,而DNS Netmask Ordering提供邻近感知。
默认情况下,您的 DNS 服务器将使用 C 类子网掩码来确定客户端本地的记录。然后,循环将在这些本地结果中对您的客户端进行负载平衡。
如果没有网络掩码排序,您的 DNS 服务器将随机发送任何匹配的 A 记录,无论它是否是客户端的本地地址。这听起来像你正在经历的。
因此,首先我们需要确保在您的 DNS 服务器上启用了网络掩码排序。
Properties
。Advanced
选项卡Enable Netmask Ordering
选中。您也可以在此处禁用/启用循环。接下来,确保您
LocalNetPriorityNetmask
的网络拓扑匹配。默认情况下,您的服务器将使用 C 类网络掩码。换句话说,它将通过比较两个 IP 地址的前 3 个八位字节来确定哪些 A 记录对于客户端是本地的。如果您的站点使用小于或大于 255.255.255.0 的网络掩码,则必须进行调整。Dnscmd /Config /LocalNetPriorityNetMask 0x000000FF
将其设置回默认值。或调整网络掩码以满足您的需要。如果您的站点子网掩码是,
255.255.0.0
则使用优先级掩码0x0000FFFF
. 如果您的站点子网掩码是,255.255.255.192
则使用优先级掩码0x0000003F
. 确保您设置的掩码覆盖该站点的所有子网,以便该站点的所有计算机都获得该站点本地的 A 记录。我更喜欢使用组策略在我的所有域控制器上强制执行这些设置。这可以通过直接修改以下注册表项中的参数来完成:
寻找:
LocalNetPriority
启用/禁用网络掩码排序。LocalNetPriorityNetmask
设置掩码值。如果您修改注册表以设置这些选项,则需要重新启动 DNS 服务才能使更改生效。
更多信息在这里: https: //support.microsoft.com/en-us/help/842197/description-of-the-netmask-ordering-feature-and-the-round-robin-featur