将 DHCP/DNS 服务从 Windows 服务器 (Active Directory) 移至 Linux 计算机

将 DHCP/DNS 服务从 Windows 服务器 (Active Directory) 移至 Linux 计算机

在我的工作场所,我们有一台 Windows Small Business Server,它为我们的本地网络运行 DHCP 和 DNS 服务。我相信这是一个 Active Directory 设置,但由于我对 Windows 一无所知,所以我对此并不完全确定。我能说的是,该服务器控制着一个 Windows 域,我们的一些 Windows 机器位于该域中。我们还有更多计算机供客户使用,这些计算机都是普通的 Internet PC,运行 Windows,但不属于域或工作组。

我们的服务器经常出现问题,部分原因是硬件比较旧。此外,我们使用的防火墙/路由器设备经常出现问题。我现在正在用一台运行 Linux 和防火墙系统 (OpenWRT) 的旧 PC 替换后者。

确保我们的客户拥有有效的 Internet 连接非常重要,而在旧设置中,路由器/防火墙或 Small Business Server 发生故障就意味着无法连接。当我用 Linux 系统替换旧防火墙时,我还想将 DHCP 和 DNS 服务从服务器迁移到防火墙。因此,服务器故障将不再导致 Internet 问题。

现在我已经安装了新的防火墙。我关闭了 SBS 上的 DHCP 服务器,并配置了它的 TCP/IP 协议,以便它使用新的防火墙机器作为 DNS。一切都运行良好,但只持续了几个小时。我在域上测试了几台 Windows 计算机,它们运行正常。我禁用并启用了网络接口,以从新的 DHCP 服务(防火墙上的服务)获取网络配置。

然而,几个小时后(即今天早上我回来上班时),域中的 Windows 计算机无法再挂载网络共享。网络驱动器和打印机都无法工作。双击网络驱动器时,会弹出一个警告框,提示“本地设备名称已被使用”。

当停用 SBS 上的 DHCP 服务器并在单独的(非 Windows)机器上操作 DHCP 时,我该怎么做才能保持我们的 Windows 网络服务正常运行?

到目前为止,我已经在新防火墙上添加了 DHCP 选项,将 SBS 的 IP 地址引用为 netbios-ns 和 netbios-dd。这似乎还不够。

我想要这样一种设置,防火墙运行本地 DHCP 和 DNS 服务,但 Windows PC 知道 Windows 服务可从不同的服务器获得。任何与 Windows 网络共享、打印机、Active Directory 等有关的事情都应该由 SBS 来完成,而不是代理 DHCP 和 DNS 服务器。

答案1

您将遇到的问题是 Active Directory 使用 DNS 来告诉客户端计算机在哪里可以找到各种资源,因此关闭 Windows 服务器上的 DNS 最终将使需要 Active Directory 的事物停止工作。听起来它工作了几个小时,因为客户端缓存了它,但后来缓存过期了。

我的建议是绑定在您的 Linux 服务器上,并使其充当 Windows 服务器的辅助服务器,然后配置您的 DHCP 服务器以将 Linux 服务器分配为客户端应使用的 DNS 服务器。这样,您的 DNS 查询就会卸载到 Linux 服务器上,同时保留使用 Active Directory 的能力。

你需要在你的named.conf(或类似的)中写一行这样的代码:-

zone "ad.internal.company.com"
{
  type slave;
  file "/etc/bind/db.ad.internal.company.com";
  masters { aaa.bbb.ccc.ddd; };
};

不确定你使用的是哪个版本的 SBS,但对于 2003 年版,请打开域名管理控制台,转到活动目录域的属性,然后将 Linux 服务器添加为名称服务器名称服务器标签。你还需要确保允许区域传输已勾选区域传输标签,以及仅限名称服务器选项卡上列出的服务器。此外,您需要确保在单击通知...(也在区域传输选项卡上),自动通知“名称服务器”选项卡上列出的服务器被选中。

重新加载(或重新启动)Linux 服务器上的 bind,并密切关注日志,您应该会看到 bind 正在从 Windows 服务器请求区域文件的副本。为确保一切正常,请尝试在 Windows 服务器上对区域文件进行添加,并将其传播到 Linux 服务器上的 bind。

希望有帮助!

相关内容