如何使 BIND 和 Microsoft DNS 很好地协同工作?

如何使 BIND 和 Microsoft DNS 很好地协同工作?

我想尝试将尽可能多的公司 DNS 配置移到 BIND,因为我发现它更容易使用,但拥有 Active Directory 意味着我们必须至少在 Microsoft DNS 中拥有域的区域。

也许我可以在 MSDNS 中拥有域的区域(例如 company.local),但在 BIND 中拥有另一个区域(例如 company.org),该区域具有针对相同计算机的正向和反向区域。DHCP 服务器可以将 BIND 指定为主 DNS 和辅助 DNS,我们只是将该区域用于日常使用。我们还可以在 BIND 中为域区域创建从属区域,我们只需将所有显式 DNS 操作移至 BIND,但保持域区域通过 BIND 可用,以便 AD 可以运行。

有人这样做过并成功了吗?或者这是一个非常糟糕的主意?:)

答案1

我们就是这么做的。我不确定我是否会推荐它,但我们确实这么做了:

运行 BIND 的 Solaris 服务器

  • 对除 example.ad 之外的每个转发域都具有权威性
  • 对除 AD DHCP 提供服务的区域之外的每个 in-addr.arpa 区域都具有权威性
  • 从 AD DNS 服务器获取 example.ad 和 DHCP 范围的从属服务器

运行 BIND 的 Linux 服务器

  • 从 AD DNS 服务器获取 example.ad 和 DHCP 范围的从属服务器
  • 从 solaris 主服务器拉取其他所有服务器的从服务器。

AD DNS 服务器

  • 例如运行 master.ad
  • 为 AD DHCP 提供服务的任何 in-addr.arpa 区域运行主机。
  • 将所有递归请求转发到 solaris/linux BIND 安装

Windows 客户端

  • 通过 AD DHCP 分配 AD DNS 服务器。我们对此进行了试验,发现我们使用的“微软系列产品”不喜欢没有 AD DNS 服务器。我们可能放弃得太早了,但我记得结果并不好。

UNIX/Linux/操作客户端:

  • 硬编码 BIND DNS 服务器

在实践中,我们制定了以下一些政策:

  • 任何涉及 IT 类服务(交换等)的记录都会在 example.ad 中获得 A 记录,并在 example.com 中获得 record.example.ad 的 CNAME
  • 任何引用操作或网络设备的记录都会在 example.com 中获得 A 记录,并在 example.ad 中获得 CNAME。

我们的设置实际上比这更复杂一些,因为我们收购了一家使用 Netware/AD 作为 DNS/DHCP 的公司,因此我们对他们有一套类似的规则。

如果不是迫不得已,我不确定我是否会建议你这样做。我们的安装是为了在糟糕的情况下取得最佳效果。然而,我必须承认,我更喜欢使用 BIND 而不是 AD DNS,所以,既然我们显然不会放弃 AD,那么这是一种很好的方式一些使用 BIND。

我们遇到的一个问题是 AD DNS 服务器中的缓存。我们试图告知我们的运营客户,他们的笔记本电脑使用 AD DNS,但 BIND 中发生了更改,因此如果他们进行了更改并想要验证,他们必须手动查找正确的服务器。这很烦人,但令人惊讶的是,这个问题经常出现。

希望有所帮助。

答案2

我以前做过这个,我会尝试从记忆中重建我所做的事情。

情况:

Win2K 域控制器、各种 Windows 桌面、AD 环境。DNS 服务器需要每隔几天重新启动一次,因为它会停止工作。

解决方案:

我在网络上有一个 Linux 机器,运行着一个小型内部网站,因此我在该机器上安装了 BIND。我将 BIND 设置为区域的从属机器,并配置 Win2K 机器向其发送域传输。然后,我在 Win2K 机器上配置了 DHCP 服务器,将 BIND 机器作为主 DNS 服务器,将 Win2K 机器作为辅助 DNS 服务器。现在,Win2K 机器上 DNS 表的所有更新(包括客户端机器,因为它们都是 DHCP)都将发布到 BIND 服务器,一切运行正常。再也不用重新启动 Win2K DNS 服务器了。

答案3

关键问题是 Active Directory 动态 DNS 更新,它对域控制器的 A 记录、PTR 记录以及 domain.com 记录本身执行...另外,还有下划线区域 _msdcs.domain.com、_sites.domain.com、_tcp.domain.com、_udp.domain.com。

如果您的 BIND 版本可以支持这些动态更新,那么您就可以使用 BIND。

如果不是,那么您必须对带下划线的区域使用 MS-DNS,但是您可以手动编码 A、PTR 和 domain.com 记录,并在添加/删除 DC 时维护它。让 MS-DNS 成为带下划线区域的权威机构,并将它们区域传输/转发到 BIND,以便客户端可以找到它们。

或者,对 AD 使用完全不同的域(如果可以的话),例如 corp.domain.com,将其完全托管在 MS-DNS 中,然后将其传输/转发到 BIND。

Windows 客户端机器也希望动态创建 A/PTR 记录,因此 BIND 本身必须为它们执行此操作或允许它们执行此操作,或者再次对整个区域使用 MS-DNS。

答案4

混合使用 Bind 和 MSDNS 的文档相当齐全,快速搜索后会显示http://support.microsoft.com/kb/255913,但可能还有更多。

您必须决定自己想要什么。。在之前的公司,我为除 _{msdcs、sites、tcp、udp} 和桌面所在的子域之外的所有内容设置了绑定,以便它们可以进行安全的动态更新。它就是有效。(DHCP 在 Unix 上。)

混合使用两者会带来一些额外的工作来保持清洁和最新,但这并不是世界末日

相关内容