如何将Active Directory与Split-Horizo​​n DNS相结合?

我很尴尬。

我需要在我的办公室基于子网实现水平方向的DNS。 例如:

  • 10.170.0.0/16中的用户需要将“srv01.extra.company.com”parsing为10.170.0.5 10.25.0.170
  • 10.180.0.0/16中的用户需要将“srv01.extra.company.com”parsing为10.180.0.5 10.25.0.180
  • 10.0.0.0/8中的其他人需要将“srv01.extra.company.com”parsing为10.25.0.5

现在,使用BIND很容易实现。 不幸的是,我的networking是基于Active Directory的; 我不可能改变所有工作站的DNS服务器,只是指向BIND服务器,我可以吗? 他们需要指向域控制器。

我一直在玩使用存根区域有条件转发器的想法,但基于我的理解,这些方法将使域控制器自己执行DNSparsing,而不是让工作站联系相关的名称服务器。

你可以build议什么来帮助解决这个分裂视界问题?


附加信息:

  • AD FQDN实际上是id.company.com ,而不是company.com。
  • 我在上面的IP地址上犯了一个错误。 固定。

你几乎得到你自己的解决scheme。

我假设srv01.extra.company.com是在你自己的公司服务器,所以你的srv01.extra.company.com服务器负责。

你是正确的,你不能真正使用存根区域或条件转发器,因为为此设置的域名服务器只能看到你的AD DC发起的查询。 1

但是,Active Directory必须将DC设置为名称服务器,或者客户端需要通过DC进行parsing,这是常见的误解2

在这种特殊情况下,您需要设置一个适当的BIND来干净地解决所有事情( 包括您的AD! )。 在您validation了正确的操作后,您可以将一个区域extra.company.com添加到此服务器(有效地掩盖真正的子域)。 在那里,你可以重写你喜欢的logging。

但请注意,当这个BIND提示, 你的整个广告将停下来 ,因为你的客户的所有查询都通过这个服务器。 所以相应地设置(故障转移,备份,备用等)。

1从技术上讲,这并不适用于所有情况:如果客户端的parsing器能够跟随引用,授权的名称服务器将看到源自客户端的查询。 但是,由于几乎所有的操作系​​统parsing器都是stubparsing器,所以这并不适用。

2你甚至可以安全地设置你的AD的权威NS到BIND服务器,但是它肯定不是一个即丢即用的解决scheme,它需要一些工作; 例如添加特定的logging,并允许您的DC更新这些logging。 微软有这方面的文档,请参阅微软Technet上的这篇文章 。 我通常总是避免这种情况,而是由BIND服务company.com ,并将子域ad.company.com委托给AD。 尽pipe如此,我认为在现有的公元中这样做是不值得的。

如果您想坚持使用Windows DNS,那么可能对您有帮助的function称为带循环的networking掩码sorting 。 当您为同一主机configuration多个Alogging时,DNS将根据客户端IP地址和子网返回具有优先级的结果。 你可以定义什么地址掩码的一部分用于networking掩码sorting,因为在你的情况下它是/ 16,你还需要覆盖默认值(这是/ 24)与

 Dnscmd /Config /LocalNetPriorityNetMask 0x0000FFFF 

不幸的是,这只会覆盖你的例子中的前两种情况,第三种情况会很棘手,因为只有来自10.25.xx的客户端才能匹配主机掩码。

如果DNS是你这样做的唯一方式,那么我认为你唯一真正的select就是使用BIND视图。

AD工作站可以直接指向BIND,只要BIND将AD域的所有请求转发给AD DNS服务器即可解决。 我们实际上是在我工作的非常大的组织里做的,一切正常(包括dynamic更新等)。

这些服务器运行什么服务? 如果他们是HTTP,你可能可以使用像HTTPredirect的东西来反弹用户到他们的本地服务器,而不是使用DNS分割?