VOIP 系统、Windows 域等的 DHCP 和 DNS 服务配置

VOIP 系统、Windows 域等的 DHCP 和 DNS 服务配置

我的公司拥有众多实体办公室(为了便于讨论,共计 15 栋大楼)。其中一些办公室通过光纤与我们的主要数据中心连接良好。其他办公室将通过 P2P T1 连接到数据中心。我们正处于实施 Avaya VOIP 电话系统的初始阶段,我们将在此过程中更换很大一部分网络基础设施。

与电话系统实施同步,我们将重新寻址部分网络,并将大部分 Windows 域合并为一个(不是所有域,只是大部分)。我们目前有相当多的 Windows 域,当然每个域都有自己的 DNS 区域。其中一些网络目前使用 DHCP,但大多数网络对每台设备使用静态 IP 分配。我厌倦了管理静态分配——我想在除服务器之外的所有设备上使用 DHCP 配置。打印机等将有 DHCP 预留。新的 IP 电话需要从 DHCP 获取 IP 地址,但它们需要与计算机/打印机/等位于不同的 VLAN 中。

计算机和打印机需要在 DNS 中注册。目前,这项工作由各个域上的 Windows DHCP 服务器处理。我们需要优先考虑每个站点的 DHCP 和 DNS(以防某些东西中断 WAN 连接),以便计算机和(主要是)电话使用。较小的位置(将拥有 IP 电话但不属于任何 Windows 域)将没有任何可用的 Windows DNS/DHCP 服务器。我们还在寻找更换发生故障的部件的最简单方法。也就是说,如果托管 DHCP 的服务器/设备/路由器严重崩溃,而我们无法极快地恢复 DHCP 预留和租约(随后将它们恢复到冷备用),我们预计可能会发生糟糕的事情。

考虑到以上所有因素,如何重新实现 DNS 和 DHCP 的最佳想法是什么? 有人提出了一些想法(由我或我的同事提出):

  • 使用 Windows DNS 和 DHCP 服务器(如果存在),并在必要时使用 IP 助手将 DHCP 请求路由到其他 Windows 服务器。如果 WAN 出现故障且客户端未收到 DHCP 响应,则可能无法接受。
  • 使用 Windows DNS(在所有地方,在某些情况下通过 WAN)以及 Windows DHCP 和 Cisco 路由器提供的 DHCP 的混合。每个站点都可以使用 DHCP,但据我所知,Cisco 路由器无法处理 DHCP 客户端到 Windows DNS 服务器的动态注册,这可能会在使用 Cisco 路由器进行 DHCP 时产生问题。
  • 使用 Windows DNS(无处不在,在某些情况下通过 WAN)以及 Windows DHCP 和由在极低价 Linux 服务器上运行的某些服务提供的 DHCP 的混合。是否有任何此类软件允许将这些 Linux 设备授予的 DHCP 租约动态注册到 Windows DNS 服务器上?
  • 为 DNS 和 DHCP 提出一个 Linux 解决方案,并在每个站点部署低价的 Linux 服务器。要求是 DNS 区域是多主控的(如与 Active Directory 集成的 Windows DNS),DHCP 能够在该区域中为每个租约(提供主机名,因此是可能的)进行动态 DNS 注册,并且多个服务器要么对同一 DHCP 范围具有权威性,要么至少接收租约表的实时副本/复制/同步,这样如果一台服务器死机,我们仍然知道哪个 MAC 具有哪个地址。
  • 购买专用 DNS/DHCP 设备,部署到所有站点。从我读到/看到的内容来看,这解决了我们所有的技术问题。然后是财务问题……我没有很多钱花在这上面。
  • 或者,我们迄今为止忽略的一些其他解决方案,将在提出建议时予以考虑。

Cisco 路由器或 Windows 服务器能否同步 DHCP 租约表,以便多个服务器可以在同一范围内具有权威性(或就我而言是主动/被动的),以防万一其中一个合作伙伴发生故障?我在网上(反复)读到ISC 的 DHCP能够在多台服务器上维护相同的租约表,以解决此问题。有人对此有任何经验或建议吗?

答案1

决定取消静态 IP 分配(除非绝对必要),真是太棒了。我还想告诉您,将 DHCP 数据库用作“IP 地址列表”文档。同时为分配了静态 IP 地址的设备预留空间。让 DHCP 数据库成为权威的“IP 地址列表”,而不是使用过时的电子表格等。

以下是一些背景信息回复:Windows 中的 DNS 和 DHCP。听起来您可能不知道客户端计算机执行一半的注册(“A”记录),并且还可以执行“PTR”记录注册。这允许您使用几乎任何您想要的 DHCP 服务器,只要它分发可以接受动态注册的 DNS 服务器的地址即可。

Windows DHCP 服务器定期将 DHCP 数据库备份到本地硬盘驱动器。您还可以使用“netsh”(W2K3 或更新版本)导出数据库,以便轻松将其恢复到另一台服务器。将 ISC DHCPd 范围恢复到另一台服务器只需复制 dhcpd.leases 文件和 dhcpd.conf 文件的相关部分。嵌入式 DHCP 服务器在恢复场景中可能会更成问题。

如上所述,您的 Cisco 路由器可以将 DHCP 分发给 Windows PC,但 PC 可以注册自己的“PTR”和“A”记录。查看位于“计算机设置”、“管理模板”、“网络”和“DNS 客户端”下的组策略设置“注册 PTR 记录”。客户端将默认自行注册“A”记录。

我不会为这个应用程序使用自己的 Linux DNS 部署。您将在其中投入大量时间,并且它总是会成为“哇,这能与 Windows Server 2029 一起使用吗……”这类思考的​​来源。如果不是因为 Active Directory,我可能会有不同的想法。由于您的环境中有 AD,并且 Microsoft 在 Microsoft DNS 上测试 AD,因此我会使用 Microsoft DNS。

Windows Server 无法同步 DHCP 服务器数据库,因此无法为同一子网设置多个权威服务器。这在 Windows DHCP 中仍然明显不是最佳选择。对于 Linux 上的 ISC DHCPd 来说,这可能是一个“胜利”。我没有使用此功能在多个 DHCP 服务器之间共享 DHCP 租约数据库的经验,但这听起来确实不错。我不知道 Cisco 路由器是否有这样做的功能。同样,无论您使用哪种 DHCP 服务器,都可以让您的 PC 在 DNS 中自行注册。

您还可以使用一些脚本和本机数据库导出功能在多台 Windows Server 计算机上安装主动/被动 DHCP。

就我个人而言,我会选择在任何地方使用 Windows DNS,在可以与客户端位于同一 LAN 上拥有 Windows DHCP 服务器的地方使用 Windows DHCP,并在无法拥有 Windows Server 计算机的地方使用 Cisco 路由器分发 DHCP。Linux ISC DHCPd 解决方案可能也是一种“胜利”,但我坚持使用 Windows DNS。

答案2

在我看来,最好的方法是使用 DHCP 为工作站、打印机等分配地址,但使用静态 MAC 地址到 IP 地址映射,以便同一台机器始终获得相同的 IP 地址(除非您更改映射)。

我在工作中使用 mysql 数据库和一些 perl 脚本从同一个数据库生成 dhcpd.conf 和 DNS 区域文件。在 linux 上使用 dhcpd 和 bind(当然:)。我们在每栋楼里至少有一个 DHCP 和 DNS 服务器,它们上有足够的 NIC,以便它们可以位于该大楼里的所有 VLAN 上(因此不需要 DHCP 中继)。

我们根本不分配动态地址。所有机器都必须注册(并且用户必须签署 AUP)才能接入网络。

数据库中每个机器条目所需的绝对最少信息是主机名、域名、MAC 地址、IP 地址。

其他一些有用的字段是 VLAN、端口号、用户名/房间/分机号/电子邮件/等、计算机位置(房间、建筑物)、设备类型(计算机、打印机、交换机、WLAN 接入点、仪器控制器等)、计算机的技术细节(品牌、型号、CPU、RAM 等)、操作系统和版本、SOE 细节、软件许可证细节、状态标志(例如使用中、存储中、已处置等)以及评论/注释。

实际上,我们的数据库功能远不止这些 - 它还是资产登记册、软件许可证注册表和符合 ITIL 标准的事件/问题跟踪器。它将事件报告与特定用户和特定机器关联起来,例如,我们可以获得有关哪些用户/机器出现问题的报告。目前,数据库中有 6 个 VLAN(主要是工作站和打印机)上大约 1500 条机器记录。它也是我们的 IP 地址管理器,因此我们不会将相同的 IP 分配给多台机器 - 每台机器都会获得一条记录,无论它是 DHCP 客户端还是具有硬编码 IP 地址的服务器。

该数据库是我们获取 IP 和 DNS 信息的权威来源。首先,将所有数据放入系统需要大量工作,并且需要良好的纪律来保持其最新状态 - 但当您需要时,将所有这些信息集中在一个地方是绝对值得的。

相关内容