有关多宿主服务器的Active Directory设计的建议


10

我受客户的委托,为具有以下要求的方案提出了可行的Active Directory设计(简化后,它们实际上要糟糕得多):

  • 客户端系统有一个子网。
  • 服务器系统有一个子网。
  • 这两个网络未连接。
  • 每个服务器应具有两个网卡,一个在服务器的网络上,另一个在客户机的网络上。
  • 客户端和服务器之间的流量应仅在客户端网络上流动。
  • 服务器之间的流量只能在服务器的网络上流动。
  • 这也应适用于域控制器。

不用说,这与Active Directory使用DNS定位域控制器的方式并不太好。任何可能的方法都会导致以下情况之一:

  • DC在域DNS中注册其“客户端” IP地址;客户端将使用该地址与他们交谈,但服务器和AD复制流量也将与其交谈。
  • DC在域DNS中注册其“服务器端” IP地址。服务器将使用该地址与它们通信,并且复制流量将在该网络上流动,但是客户端将无法访问它们。
  • DC将在域名DNS中注册这两个 IP地址。有人猜测任何系统都将如何达到目标。

当然,这些要求是完全疯狂的,并且不能同时满足所有这些要求,除非使用疯狂的解决方案,例如在两个网络上拆分DNS服务并手工(argh)填充其SRV记录或让服务器定位使用DNS的DC和客户端使用WINS(双精度)定位DC。

我想出的解决方案是在“服务器”网络上有两个DC,在“客户端”上有两个DC,定义了两个AD站点,并且仅使用DC复制流量跨越了两个网络之间的边界。这仍然需要进行一些DNS修改,因为每个服务器仍将具有两个网卡(除了两个服务器端DC和纯后端服务器之外),但是它至少有一定的工作机会。

有什么建议,除了尽快逃跑?


7
逃跑得更快……如果可以的话……
SpacemanSpiff

1
好吧,我想您没有理由不能设置两个域,然后将它们合并到一棵树/森林中,并称之为一天。然后,您可以使用内置的东西来管理大多数问题。尽管如此,还是有人需要把愚蠢的人打出来。这是无法建立网络的方法。
Satanicpuppy

1
这些人有没有听说过路由?“更多NICS !! 1”不是网络安全性。也就是说,使用手动SRV记录拆分DNS听起来并不令人讨厌。
Shane Madden

2
您的客户显然不了解实用性。如果您不能逃脱,我建议尽可能频繁地向他们收费。
埃文·安德森

1
解雇客户。
gWaldo 2011年

Answers:


5

首先,我要说一下我同意其他许多观点,或者说服客户,否则就逃避。

但是,考虑到您列出的要求(有许多未列出的要求),我至少可以想到(并经过部分测试)实现这一要求的基础。

有几个特定方面需要考虑。

  1. Active Directory域服务复制
  2. 客户端/成员服务器的DC定位器过程
  3. 非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,好抓住。我认为它有两种解决此问题的方法。

  1. 较小的影响(与下面的2比较)是在客户端/工作站上的hosts文件中为dc1.acme.local和dc2.acme.local指向DC的clt NIC IP 创建一个条目。

要么

  1. 在每个DC的netlogon.dns文件中手动创建必要的SRV记录。这可能会对服务器网络产生一些后果。如果已配置,则成员服务器有时可能会与clt网络上的DC进行通信。

总而言之,这都不是很漂亮,但这不一定是最终目标。也许客户只是在测试您的技术排骨。将其放在会议桌上,然后告诉他们:“这可以用,但是我向您收取正常费用的4倍,以进行配置和支持。您可以将其降低为正常费用的1.5倍,即0.5欧元的PITA费用[正确的解决方案]。

如前所述,我的建议是说服他人或逃跑。但这无疑是一个有趣的小练习。:)


这很有趣,我没有考虑使用两个不同的DNS名称空间。但是我可以在这里看到各种问题... 1)clt.acme.local区域没有DC定位器记录;那么,客户将如何找到DC?2)客户端的主要DNS后缀仍为acme.local,因为它们是域成员;因此,我猜他们即使在其NIC的DNS后缀不同的情况下,仍会在该区域中寻找DC定位器记录。3)无论如何,客户站点将没有注册的DC,因此客户将找不到任何DC。
马西莫

最有可能的结果是,要么客户端根本无法找到DC(此处没有WINS,并且路由了网络),要么客户端将尝试连接到DC的服务器端IP地址,可达的。
马西莫

@Massimo-在帖子末尾回复评论。
Weaver

但是,当客户端收到一条说“您的DC就是dc1.acme.local”的SRV记录(无论站点是什么)时,它是否会尝试使用其FQDN与它联系?我认为它根本不会在乎其NIC的DNS后缀,即,我认为它不会认为“ dc1.acme.local没有应答,让我们尝试“ dc1.clt.acme.local”。只尝试dc1.acme.local,它映射到DC的服务器端IP地址...它将失败。还是我在这里丢失了一些东西?
Massimo

@Massimo-在帖子末尾回复评论。
Weaver

3

最后,我选择了两个站点的解决方案:

  • “服务器”网络的两个DC,“客户端”网络的两个DC。
  • 两个AD站点,一个站点用于“服务器”网络,一个站点用于“客户端”网络。
  • “服务器”网络中的DC仅在该服务器上有一个NIC(客户端根本不会与它们通信),因此这很容易。
  • “客户端”区域中的DC将有两个,但只会在DNS中注册其客户端的DC。
  • 服务器将与其DC通信,客户端将与其DC通信。

当然,这意味着启用两个网络之间的复制流量。“客户端”网络中的DC 仍将有一个位于“服务器”网络上的NIC,但是由于不会在DNS中进行注册,因此该网络中的DC将使用其客户端IP地址与它们联系;因此,NIC实际上将完全无用,并且需要打开某些防火墙端口。唯一的其他选择是处理DC的hosts文件,但我们希望可以避免这种情况。

好吧,我认为这是最好的方法,可以满足尽可能多的(疯狂的)要求。

感谢您的所有建议:-)


2

首先,当我们为客户提供服务时,我们应该质疑他们的要求是什么。使客户能够理解他们的复杂程度是不必要的。

  • 客户数量是多少?
  • 这都是内部流量吗?
  • 域的功能级别是什么?
  • 是否正在使用TLS协议?

使用KISS方法-将创建两个VLAN“ SVR”和“ CLT”,以启用SSL / TLS并将其称为“ Day”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.