好的,所以站点被 WAN 分隔
Domain : production.contoso.local
SITE A
Site network: 192.168.0.0/16
Site DCs : DC1-SiteA, DC2-SiteA
Client : serverA
SITE B
Site network: 172.16.0.0/16
Site DCS : DC1-SiteB, DC2-SiteB
Client : serverB
随机服务器似乎将域名解析到另一个站点的 DC。
我将登录到 serverA(192.*) 并 ping 我们的域“production”,它将解析为不同站点 (DC1-SiteB,172.16.0.0/16) 中的 DC 的 IP,而另一方面,如果我使用完整的 fqdn“production.contoso.com”ping 该域,那么我将解析到正确的 DC(DC1-SiteA,192.168.0.0/16)
如果我刷新DNS,那么情况就会逆转,“production”解析为DC1-SiteA(192*),而“production.contoso.com”解析为DC1-SiteB(172.*)。
所有客户端和服务器都通过以下方式报告位于正确的站点 http://www.powershellmagazine.com/2013/04/23/pstip-get-the-ad-site-name-of-a-computer/
对所有 DC 进行 DCDiags 检查
所有 DNS 记录和 _msdcs 看起来都是正确的。
这是..正常的吗?..?
如果域解析为另一个站点中的 DC,它是否会提取策略并对其进行身份验证,从而减慢登录/重启时间?
我还需要检查其他途径吗?
答案1
您的问题是 ping 命令不具备 Active Directory 站点感知能力。当您针对域的 FQDN 发出 ping 命令时,它会针对名称发出一个简单的 DNS 查询,该查询返回所有 DC 的 IP。然后,它会从结果中选择一个循环来实际用于 ping。
您想通过 ping 域来测试/实现什么目的?如果只是检查服务器是否使用正确的域控制器进行身份验证,我知道的最快方法是使用set
命令提示符中的命令。查找LOGONSERVER
环境变量。再多输入一点,您可以通过键入 直接获取它echo %LOGONSERVER%
。
如果您需要考虑连接到域但不支持站点识别的服务或应用程序,则需要做更多工作。在我工作的一些公司中,一种非常便宜的方法是手动在 DNS 中创建站点别名。对于您来说,您需要在 DNS 服务器中创建 4 条额外的 A 记录:
- sitea.production.contoso.local -> <DC1-SiteA 的 IP>
- sitea.production.contoso.local -> <DC2-SiteA 的 IP>
- siteb.production.contoso.local -> <DC1-SiteB 的 IP>
- siteb.production.contoso.local -> <DC2-SiteB 的 IP>
在我工作的一些公司中,我们已经这样做了,以解决通过 LDAP 进行 AD 集成的网站等问题。LDAP 协议本身并不具备站点感知能力*。因此,如果托管站点的服务器位于站点 A,并且您将 LDAP 配置设置为使用域的 FQDN,则它可能会选择使用站点 B 中的 DC 之一。使用附加 DNS 记录,您可以将 LDAP 配置设置为使用 sitea.production.contoso.local。然后,只要您在添加/删除 DC 时保持这些记录为最新,就无需重新配置应用程序。
答案2
身份验证和活动目录流量将取决于您在 AD 站点和服务中设置的内容,它不依赖于 DNS。通过设置网络上的各个子网并将它们分配给适当的站点,您可以控制域的 AD 流量和复制拓扑。