![如何为 PXE 服务器的所有子网启用 DHCP 服务器?](https://linux22.com/image/1107918/%E5%A6%82%E4%BD%95%E4%B8%BA%20PXE%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%89%80%E6%9C%89%E5%AD%90%E7%BD%91%E5%90%AF%E7%94%A8%20DHCP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我已经设置了一个 PXE 启动服务器,用于通过网络安装 ubuntu。目前,我正在使用主机 mac 地址来安装 ubuntu 操作系统。我想在所有子网中启用 DHCP 服务器,例如 172.29.34.0/24 172.29.36.0/24 等,而不是使用它的 mac 地址。请在下面找到我当前的配置,
DHCP 服务器配置:
allow booting;
allow bootp;
subnet 172.29.32.0 netmask 255.255.255.0 {
range 172.29.32.20 172.29.32.200;
option broadcast-address 172.29.1.255;
option routers 172.29.32.1;
}
group {
next-server 172.29.32.9;
filename "/pxelinux.0";
host webppc {
hardware ethernet BC:30:5B:C3:23:69;
option host-name "webppc";
}
}
答案1
我不能保证它会起作用,但是您可以按子网指定选项而不是按组指定(尽管您将丢失主机名的分配 - 如果您没有唯一的方法(即 MAC)来识别每个系统,这是可以预料的)。
allow booting;
allow bootp;
subnet 172.29.32.0 netmask 255.255.255.0 {
next-server 172.29.32.9;
filename "/pxelinux.0";
range 172.29.32.20 172.29.32.200;
option broadcast-address 172.29.32.255;
option routers 172.29.32.1;
}
#Repeat this block for each subnet
subnet 172.29.34.0 netmask 255.255.255.0 {
next-server 172.29.32.9; #Note this is on another subnet.
filename "/pxelinux.0";
range 172.29.34.20 172.29.34.200;
option broadcast-address 172.29.34.255;
option routers 172.29.34.1;
}
答案2
allow booting;
allow bootp;
subnet 172.29.32.0 netmask 255.255.255.0 {
range 172.29.32.20 172.29.32.200;
range 172.29.33.20 172.29.33.200;
range 172.29.34.20 172.29.34.200;
option broadcast-address 172.29.1.255;
option routers 172.29.32.1;
}
group {
next-server 172.29.32.9;
filename "/pxelinux.0";
host webppc {
hardware ethernet BC:30:5B:C3:23:69;
option host-name "webppc";
}
}
答案3
您可能考虑通过网络路由器进行 DHCP 中继。这是企业网络中一种非常常见的方法,可以避免 DHCP 服务器在每个 VLAN 上都拥有一个网络接口,以便它能够监听 DHCP/bootp 广播。
我还建议使用快速 PXE 菜单超时(可能为 5 秒或 10 秒),让它响应所有流量(默认),而不是仅响应您配置的流量。您可能会认为这很危险,因为有些最终用户会按下按钮并意外重新安装他们的操作系统,如果您在启动屏幕上用公司徽标分散他们的注意力,他们通常会忽略菜单提示。