首先,我要说一下我同意其他许多观点,或者说服客户,否则就逃避。
但是,考虑到您列出的要求(有许多未列出的要求),我至少可以想到(并经过部分测试)实现这一要求的基础。
有几个特定方面需要考虑。
- Active Directory域服务复制
- 客户端/成员服务器的DC定位器过程
- 非AD DS服务的名称解析和流量
一个和两个有很多共同点-总的来说,我们在这方面受到Microsoft的追捧,并且必须在Microsoft AD DS流程的范围内工作。
第三,我们还有一点工作空间。我们可以选择用于访问服务的标签(文件,数据库实例等)。
这是我的建议:
建立您的域控制器(DC)
- 可能至少两个。
- 每个DC将有两个NIC,每个IP网络/ AD DS站点中都有一个NIC-现在将它们称为clt和srv。
- 只有在每个DC的SRV网络中配置一个NIC现在。
正确配置广告站点和服务
- srv站点和子网
- clt站点和子网
- 取消选中 “站点”->“站点间传输”->“ IP”上的“桥接所有站点链接”
- 如果DEFAULTIPSITELINK存在(或重命名),则将其删除,以便未配置任何站点链接。请注意,这对我来说是未知的-KCC可能会将错误转储到Directory Service事件日志中,表明两个站点(srv和clt)没有以不同的间隔连接。但是,复制仍将继续在两个DC之间进行,因为它们可以使用同一站点中的IP相互联系。
在AD DS集成DNS中配置其他区域
- 如果您的AD DS域是acme.local,则创建另一个启用了动态更新的主要AD集成区域,称为clt.acme.local。
在您的DC上配置第二个NIC
- 这些NIC将是clt网络/站点中的NIC。
- 设置他们的IP
- 这是神奇的部分 -适配器属性-> IPv4属性->高级-> DNS选项卡->将此连接的DNS后缀设置为 clt.acme.local- >检查注册此连接...->检查使用此连接的DNS后缀...->确定。
- ipconfig /注册域名
- 这将在clt.acme.local区域中注册clt NIC IP,这为我们提供了一种控制以后使用哪个IP /网络的方法。
配置成员服务器NIC
- clt站点中的成员服务器NIC的DNS后缀和复选框也必须如上所述设置。
- 这些设置可以与静态和DHCP一起使用,没关系。
在站点中配置DNS [存根]解析器行为
- DC的->配置DC srv NIC以使用自身和其他DC srv NIC IP。将DC clt NIC DNS保留为空(尽管需要静态IP)。(默认情况下,DC DNS服务器仍将侦听所有IP)。
- 成员服务器->配置成员服务器srv NIC以使用DC srv站点IP。将成员服务器clt NIC DNS保留为空(可以使用静态IP)。
- 客户端/工作站->配置DNS(通过DHCP或静态)以使用DC的clt NIC IP。
适当配置映射/资源
- 服务器相互通信时,请确保使用.acme.local->将解析为srv网络IP。
- 当客户端与服务器对话时,请确保使用.clt.acme.local->将解析为clt网络IP。
我在说什么
- 由于DC可以相互解析并相互连接,因此AD DS复制仍然会发生。acme.local和_msdcs.acme.local区域将仅包含DC srv NIC IP的AD DS复制仅在srv网络上进行。
- 成员服务器和工作站的DC定位器进程将起作用-尽管如果站点未知,则在各个AD DS进程的各个部分存在延迟的可能性,如果返回了多个DC IP,它们将被尝试,失败并继续运行直到一个作品。尚未完全评估对DFS-N的影响-但仍会起作用。
- 如果使用上述的.acme.local和.clt.acme.local标签,则非AD DS服务将正常运行。
我还没有完全测试过,因为这很可笑。 但是,这个(哇,冗长的)答案的重点是开始评估是否有可能,而不是是否应该这样做。
@注释
@Massimo 1/2请勿混淆acme.local区域中的多个AD DS站点,因此,由DC在acme.local区域中的站点中填充的SRV记录与需要的clt.acme.local区域中的SRV记录相混淆。客户端的主要DNS后缀(以及它们加入的Windows域)仍为acme.local。客户端/工作站只有一个NIC,主要DNS后缀可能来自DHCP,设置为acme.local。
clt.acme.local区域不需要SRV记录,因为它不会在DC定位器过程中使用。客户端/工作站仅使用它来使用clt网络中的成员服务器IP连接到成员服务器的非AD DS服务。与AD DS相关的进程(DC定位器)将不使用clt.acme.local区域,而是使用acme.local区域中的AD DS站点(和子网)。
@马西莫3
clt和srv AD DS站点都将有SRV记录-只是它们将存在于acme.local区域中-请参见上面的注释。clt.acme.local区域不需要DC相关的SRV记录。
客户将能够找到DC罚款。客户端DNS服务器指向DC的clt IP。
当客户端上的DC定位器进程启动时
- 如果客户端知道其站点,则DNS问题将为_ldap._tcp。[site] ._ sites.dc._msdcs.acme.local SRV。这将返回已注册SRV记录的特定于站点的DC。
- 如果客户端不知道它的网站上的DNS问题将是_ldap._tcp.dc._msdcs.acme.local SRV。这将返回所有DC。客户端将尝试绑定到DC的LDAP,直到找到响应的LDAP。当客户端找到一个客户端时,它将执行站点查找以确定客户端的站点,并将该站点缓存在注册表中,以便将来的DC定位器实例更快地发生。
@马西莫4
gh,好抓住。我认为它有两种解决此问题的方法。
- 较小的影响(与下面的2比较)是在客户端/工作站上的hosts文件中为dc1.acme.local和dc2.acme.local指向DC的clt NIC IP 创建一个条目。
要么
- 在每个DC的netlogon.dns文件中手动创建必要的SRV记录。这可能会对服务器网络产生一些后果。如果已配置,则成员服务器有时可能会与clt网络上的DC进行通信。
总而言之,这都不是很漂亮,但这不一定是最终目标。也许客户只是在测试您的技术排骨。将其放在会议桌上,然后告诉他们:“这可以用,但是我向您收取正常费用的4倍,以进行配置和支持。您可以将其降低为正常费用的1.5倍,即0.5欧元的PITA费用[正确的解决方案]。
如前所述,我的建议是说服他人或逃跑。但这无疑是一个有趣的小练习。:)