我有一个问题需要解决。
设想:
LAN network 192.168.190.0/255 (1 server, 60 clients)
Server Windows 2008 (server roles: mail server, print server, dhcp server...etc)
5 pxe-clients
Debian Linux server
几天前,我安装了另一台服务器(Linux Debian),其目的是用作 pxe 服务器。pxe 服务器的主要职责是处理 5 个客户端,仅用于 pxe 网络启动(这些客户端属于上述相同的 LAN)。一切似乎都运行良好,但不幸的是,我惊讶地发现一些问题即将出现。尽管我为服务器(Debian)提供了静态 ip、子网和网关,但五个 pxe 客户端中有两个将 Debian 服务器 ip 作为其默认网关。简而言之,Debian 服务器 ip 是 192.168.190.216,其默认网关是 192.168.190.254。两个 pxe 客户端有自己的 ip,但它们的网关与 192.168.190.216(Debian 服务器 ip)相同。这当然阻止了 pxe 客户端上网。
问题:
- 这听起来不寻常吗?我不明白为什么有些客户端选择 Debian 服务器 IP 作为其默认网关
- 我是否可以通过设置 Debian 服务器来处理特定的 IP 范围(DHCP 的子集,例如 192.168.190.200/215)并让其余子网连接到 Windows 服务器来解决问题?(为了避免冲突)我指的是某种网络分区
- 如果将网络分区视为最佳选择,那么 VLAN 是否是最合适的实现?在这种情况下,有人可以向我解释 VLAN 的工作原理吗?
答案1
您尝试在同一个第 2 层网络上运行两个 DHCP 服务器。这只会酿成灾难。
服务器获取错误网关意味着您的 Linux 机器上的 DHCP 服务器配置不正确。您应该修复该问题。
但更大的问题是,有了两个 DHCP 服务器,您永远无法确定哪个服务器会先响应。一些 PXE 客户端将从 Windows 服务器获取地址,而不是 PXE 启动。其他常规机器将从 Linux 机器获取 DHCP 地址,并且也会出现问题。
VLAN 是解决这个问题的一种方法。VLAN 本质上是将一台交换机分割成一堆较小的交换机。因此,如果我有一个 48 端口交换机,并将端口 1-24 放在 VLAN1 上,将 25-47 放在 VLAN2 上,那么我现在拥有的几乎与 2 个独立的 24 端口交换机相同。注意到我没有包括端口 48 吗?该端口设置为包含两个 VLAN 的中继,并进入我的防火墙。防火墙还可以处理 VLAN,并为两个网络提供互联网访问。这样,它们就保持独立,但我不必在防火墙上绑定 2 个接口并运行 2 根电缆。它们作为独立的网络运行,每个都有自己的子网(您可以对两者使用相同的子网,但很快就会变得非常混乱)、自己的 DHCP 和 DNS 服务器、自己的网关等。在交换机上,您将每个端口分配给特定的 VLAN。
另一个选项是使用 Windows DHCP 服务器上的 DHCP 选项 66 和 67 将 PXE 客户端指向 Linux 机器。在 Google 上简单搜索“linux pxe windows dhcp”即可找到大量指南。在这种情况下,您可以关闭 Linux 机器上的 DHCP 服务器,只使用 Windows DHCP 服务器。如果您没有其他理由将它们放在不同的网络上,那么此选项可能更简单。
答案2
您需要在“代理DHCP“模式。这样,您的 Windows 2008 服务器 DHCP 将(像往常一样)负责为“所有”客户端(包括 PXE 客户端)分配 IP、默认网关等,并且在 Debian PXE 服务器上运行的代理 DHCP 服务器将“仅”向 PXE 启动客户端提供额外的 PXE 相关 DHCP 信息。PXE 客户端的“额外”DHCP 信息主要包括 NBP 文件(网络启动程序)的名称和托管它的 TFTP 服务器(在您的情况下为 Debian 服务器)的 IP。
然后保持当前 DHCP 不变,并在 Debian PXE 服务器中设置代理 DHCP。
在同一个子网中运行 DHCP 服务器和代理 DHCP 服务器是完全没问题的。