如何强制 Active Directory 集成 DNS 仅根据客户端的子网返回特定域控制器的 SRV 记录?

如何强制 Active Directory 集成 DNS 仅根据客户端的子网返回特定域控制器的 SRV 记录?

我有一组由多个办公室组成的集合,这些办公室使用各种 IPsec VPN 和 MPLS 网络组合而成。大多数站点使用 VPN 形成网状结构,但站点 B 只有一个 IPsec VPN 连接到站点 A - 站点 B 无法连接到任何其他站点(站点 C 和 D)。

站点 A、C 和 D 都共享一个 Active Directory 域,例如“companya.com”。 companya.com 的域控制器位于所有三个站点中,并且都运行 Windows Server 2012 R2。

站点 B 运行自己的 Active Directory 域 - 例如“companyb.com”。companyb.com 的域控制器仅位于站点 B。一个运行 Windows Server 2019,另一个运行 Windows Server 2012 R2。

我们在 AD 域 companya.com 和 companyb.com 之间建立了双向信任。这是通过在 companyb.com 的 AD DNS 服务器中使用条件转发器实现的,该转发器指向 companya.com 站点 A 上的两个域控制器;此外,我们在 companya.com 中设置了一个存根区域,该区域指向 companyb.com 站点 B 上的两个域控制器。

正如预期的那样,站点 A 中的两个域控制器都可以可靠地联系站点 B 中的域控制器。但是,站点 B 中的两个域控制器只能可靠地联系站点 A 中的域控制器 - 因为我们部署了条件转发器,所以有时 DNS 查找描述站点 B 中的域控制器的 SRV 记录会返回站点 C 和 D 的结果,而站点 B 根本无法访问。这会导致偶尔出现错误,例如“系统无法联系域控制器来处理身份验证请求。请稍后重试。”

我需要确保当 companyb.com 中的域控制器执行查找以查找 companya.com 上的域控制器时,只返回站点 A 中的域控制器。

我努力了:

  • 使用 companyb.com 域控制器所连接的子网为站点 B 配置 AD 站点。但是,我认为这行不通,因为 DNS 中没有配置任何内容来指定站点 B 应仅提供站点 A 的结果。
  • 用存根区域替换 companyb.com 中 DC 上的条件转发器。同样的问题仍然存在,而且更糟,因为存根区域导致查找站点 C 和 D 中的 DNS 服务器,而这些服务器无法访问。
  • 在 companyb.com 的 DNS 服务器上手动为 companya.com 添加一个主 AD 集成区域,并添加指向站点 A 上的域控制器的记录:
    • companya.com 的多个 A 记录。
    • 多个 _gc._tcp.companya.com 记录。
    • 多个 _ldap._tcp.companya.com 记录。
    • 多个 _kerberos._tcp.companya.com 记录。

我无法在站点 B 和站点 C 和 D 之间建立 IPsec 隧道,也无法通过从站点 B 到站点 A 的现有隧道将流量路由到站点 C 和 D。

我怀疑 Windows Server 2016 的 DNS 策略功能可能会对这种情况有所帮助,但我无法访问运行 Windows Server 2016 的 DC。我还怀疑当我在 companyb.com 的服务器上手动设置 DNS 区域时可能错过了一些记录。

任何见解都将不胜感激。

相关内容