如何让 Windows 域控制器和 Ubuntu dnsmasq 顺利运行?

如何让 Windows 域控制器和 Ubuntu dnsmasq 顺利运行?

我继承了一个网络的“所有权”,该网络有一个 Windows 2003 Server 作为域控制器和文件服务器运行(没有运行 IIS 或 DNS)。我们还使用运行 dnsmasq 的 Ubuntu 服务器作为内部名称服务器。

到目前为止,这种设置似乎没有问题 - 我们正在安装一台新的 Windows 2008 服务器(新硬件和一切),并希望逐步从旧服务器迁移服务和数据。为了开始这个过程,我们试图将新服务器添加为我们域上的辅助控制器。服务器很容易连接到域,但是当我们尝试为新控制器指定林时,我们最终会出现此错误:

在向 DNS 查询用于定位域“DOMAIN.address.com”的 Active Directory 域控制器 (AD DC) 的服务位置 (SRV) 资源记录时,发生以下错误:

错误为:“DNS 名称不存在。”(错误代码 0x0000232B RCODE_NAME_ERROR)

该查询针对的是 _ldap._tcp.dc._msdcs.DOMAIN.address.com 的 SRV 记录

导致此错误的常见原因包括:

  • 定位域的 AD DC 所需的 DNS SRV 记录未在 DNS 中注册。当 AD DC 添加到域时,这些记录会自动在 DNS 服务器上注册。它们由 AD DC 按照设定的时间间隔进行更新。此计算机配置为使用具有以下 IP 地址的 DNS 服务器:

xxx.xxx.xxx.xxx

以下一个或多个区域不包括对其子区域的委派:

  • 域名.address.com
  • 地址
  • com
  • . (根区)

我现在想的解决方案是让 2008 Server 使用 2003 Server DNS 而不是我们的 Ubuntu?这是正确的解决方案吗?还有其他选择吗?我和我的团队可能错过了什么?

答案1

我不会花太多精力让它“运行良好”,我宁愿选择 AD 集成 DNS 而不是 dnsmasq...

  1. 安装DNS 服务器在 Windows 2003 DC 上
  2. 创建一个名为DOMAIN.address.com
  3. 将记录从 Ubuntu 服务器传输到 DC 上的新 DNS 服务器
  4. 将区域转换为 Active Directory 集成区域
  5. 在 2003 DC 上重新启动 netlogon 服务(这样,_msdcs 子区域中的所有 SRV 记录将重新注册)
  6. 确保 SRV 记录到位(例如ping _ldap._tcp.dc._msdcs.DOMAIN.addresse.com
  7. 将来使用 2003 DC 作为 DNS 服务器
  8. 将 Ubuntu 服务器用于其他用途... ;-)

现在,新的 2008 DC 将能够在 dcpromo 期间定位 DC,并且一切都应按预期工作:-)

答案2

你确实需要一个 AD 集成的 MS DNS 服务器 - 以不同的方式执行将需要显著的配置开销。但您可以选择保留现有的名称服务器基础设施,并在其基础上添加 MS DNS 服务器。

通过确保不同的名称服务器所授权的名称空间不重叠,您可以轻松地让它们“很好地”协同工作。如果您的“内部名称服务器”对地址区域,拥有一个带有域名.address.com区域。为了确保您的 dnsmasq 服务器能够响应以下请求域名.address.com您只需添加转发器定义即可域名.address.com区域到您的dnsmasq配置中,如下所示dnsmasq.conf

server=/DOMAIN.address.com/192.168.0.1

或者使用-S /DOMAIN.address.com/192.168.0.1命令行选项dnsmasq192.168.0.1其中的一个 AD DNS 服务器的 IP 地址替换掉。

如果名称空间重叠,你就倒霉了——因为这超出了 DNS 的规范,因此任何形式的互操作性基本的区域保存名称服务器(即区域数据的复制)需要专有机制。虽然此类机制内置于 MS DNS 服务器中,用于在 AD DNS 服务器之间复制 AD 集成 DNS 区域数据,但并未为任何类型的第三方实现此类互操作性。

相关内容