在我的网络上已经存在一个使用 dhcp 的路由器,在这个网络中启动我需要启动一个使用 pxe 从网络启动的无盘系统,而 pxe 服务器使用 dnsmasq 来提供操作系统,但是目前这个 dnsmasq 也充当 dhcp 服务器,所以同一个网络上有多个 dhcp 服务器
如何使用 dnsmasq 运行不充当 dhcp 服务器的 pxe 服务器?
这是我的 dnsmasq 命令行,如果我不指定 dhcp ip 范围,客户端将不会接收 IP 并且不会启动
dnsmasq --enable-tftp --tftp-root=/var/state/dnsmasq/root \
--dhcp-boot=pxelinux.0,"$IP",$IP \
--dhcp-range=192.168.1.10,192.168.1.252,proxy,2552.255.255.0,192.168.1.255 --log-dhcp \
--dhcp-option=3,192.168.1.1
答案1
让我们考虑已经存在的 DHCP 服务器和 PXE 服务器位于不同的 PC 上。
在这种情况下,PXE 服务器的 DHCP 组件必须配置为代理DHCP并且不会与主 DHCP 发生冲突。
您可以将 dnsmasq 配置为 proxyDHCP。
# This range(s) is for the public interface, where dnsmasq functions
# as a proxy DHCP server providing boot information but no IP leases.
# Any ip in the subnet will do, so you may just put your server NIC ip here.
dhcp-range=10.160.31.10,proxy
答案2
您需要一个 BOOTP 和 TFTP 服务器。您也可以将“next-server”设置为您当前的 DHCP 服务器设置,并将其设置为您的 TFTP 服务器。如果没有将正确的 BOOTP 服务器设置为 TFTP 服务器(next-server),您将无法运行远程启动。
首先,您需要一个 BOOTP/DHCP 服务器来设置客户端网络配置并告知将使用哪个服务器作为 PXE/TFTP 服务器。然后,您需要一个 PXE/TFTP 服务器来托管 PXE 文件,这是 dnsmasq 处理的两种不同服务。