我正在尝试按照以下教程在 CentOS 7 上的笔记本电脑上设置 PXE 服务器以连接到物理测试客户端: https ://www.linuxtechi.com/configure-pxe-installation-server-centos-7/#评论 35567
所有的配置文件和设置程序都来自这个网站。在“步骤:6 启动并启用 xinetd、dhcp 和 vsftpd 服务。”,命令:“systemctl start xinetd”和“systemctl enable xinetd”工作,但是当我运行命令:“systemctl start dhcpd.service”时,我收到以下错误消息:
Job for dhcpd.service failed because the control process exited with error code. See “systemctl status dhcpd.service” and “journalctl -xe” for details.
当我运行“systemctl status -l dhcpd.service”时,我收到以下错误消息:
systemctl status -l dhcpd.service
dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2022-07-05 11:18:07 EDT; 1min 12s ago
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Process: 11655 ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid (code=exited, status=1/FAILURE)
Main PID: 11655 (code=exited, status=1/FAILURE)
Jul 05 11:18:07 localhost.localdomain dhcpd[11655]: to which interface virbr0 is attached. **
Jul 05 11:18:07 localhost.localdomain dhcpd[11655]:
Jul 05 11:18:07 localhost.localdomain dhcpd[11655]:
Jul 05 11:18:07 localhost.localdomain dhcpd[11655]: No subnet declaration for enp0s20f0u13 (10.249.6.154).
Jul 05 11:18:07 localhost.localdomain dhcpd[11655]: ** Ignoring requests on enp0s20f0u13. If this is not what
Jul 05 11:18:07 localhost.localdomain dhcpd[11655]: you want, please write a subnet declaration
Jul 05 11:18:07 localhost.localdomain systemd[1]: dhcpd.service: main process exited, code=exited, status=1/FAILURE
Jul 05 11:18:07 localhost.localdomain systemd[1]: Failed to start DHCPv4 Server Daemon.
Jul 05 11:18:07 localhost.localdomain systemd[1]: Unit dhcpd.service entered failed state.
Jul 05 11:18:07 localhost.localdomain systemd[1]: dhcpd.service failed.
这里还有 Dhcpd.conf 文件:
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
# DHCP Server Configuration file.
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;
# internal subnet for my DHCP Server
subnet 172.168.1.0 netmask 255.255.255.0 {
range 172.168.1.21 172.168.1.151;
option domain-name-servers 172.168.1.11;
option domain-name "pxe.example.com";
option routers 172.168.1.11;
option broadcast-address 172.168.1.255;
default-lease-time 600;
max-lease-time 7200;
# IP of PXE Server
next-server 172.168.1.11;
filename "pxelinux.0";
}
我需要在我的 dhcpd.conf 文件中进行哪些更改以使命令“systemctl start dhcpd.service”正常工作,这样我才能完成 PXE 服务器教程?
dhcpd
没有检测到任何已经在 172.168.1.0 子网中配置了 IP 地址的网络接口,因此它无法确定应该使用哪个网络接口来提供其服务。不,您不能使用您开始为实际运行 DHCP 服务器的系统分配 IP 地址的 DHCP 服务器。
显然,您的系统有一个
enp0s20f0u13
IP 地址为 10.249.6.154 的物理网络接口。该地址是“RFC 1918”私有 IP 地址范围的一部分,任何人都可以使用。另一方面,您所关注的教程中使用的地址实际上已被 Microsoft 使用,因此您不应按原样复制教程中的配置,而应使用其中一个私有地址范围或其中的一部分.
其他两个私有 IP 地址范围是 172.16.0.0 ... 172.31.255.255 和 192.168.0.0 ... 192.168.255.255,所以也许本教程的作者正在考虑使用其中任何一个,并设法将其混合起来?实际上,还有一组较小的 IP 地址范围专门分配用于书面文档,以最大程度地减少任何人直接从教程中复制配置的机会,从而意外盗用实际使用的 IP 地址。
如果您计划将 PXE 服务器与笔记本电脑中的虚拟机一起使用,则应首先
virbr0
使用 IP 地址配置虚拟网桥接口。您可以为其分配类似 192.168.1.1/24 的内容(注意:末尾的 /24 是“网络掩码 255.255.255.0”的更短方式)。由于该接口将成为您的虚拟机的默认网关 IP 地址,因此您不应为该virbr0
接口配置默认网关地址:您的笔记本电脑可能已经为其外部接口设置了默认网关,而系统上的一个默认网关就足够了对于大多数常见情况。配置完成后,您
virbr0
可以像这样配置 DHCP 服务器:现在,DHCP 服务器应该检测到
subnet 192.168.1.0 netmask 255.255.255.0
声明与为接口配置的 IP 地址和网络掩码匹配,virbr0
并自动开始在该接口上提供服务。这应该允许您完成教程,然后您就可以开始在笔记本电脑上设置虚拟机,通过 PXE 引导安装程序。
如果要 PXE 引导物理机,则应在没有其他 DHCP 服务器的网段中进行。如果两个 DHCP 服务器没有专门配置为相互协作,它们将竞争客户端,这可能会导致您的 PXE 引导尝试仅在某些时候令人沮丧地工作。
(技术上可以为 PXE 启动设置第二个 DHCP 服务器,而无需触及第一个的配置,但我认为这是“你应该避免的肮脏技巧,除非你知道自己在做什么并且绝对没有办法做首先它是正确的。”)
我同意,您需要连贯地配置您的网络。如果您稍微描述一下您的目标,它也应该对帮助者有用。看起来您使用的是 Centos Linux,因此可以假设您可能是一位有经验的 linux 用户。因此,您可以阅读其他一些系统信息来源,例如
/var/log/systemlog
或/var/log/messages
。DHCP服务器没有启动的主要原因是您将您的网卡(名为enp0s20f0u13的接口)配置为IP:10.249.6.154。但是您保留了给定的示例配置,而不考虑您的真实现有配置。
要为 PXE 引导配置 BootP 服务器,您需要一起调整一些重要组件:DHCP 服务器、TFTP 服务器、Syslinux (pxelinux),还可能还有域名服务器 (bind?)。对您来说好消息是,该软件包
dnsmasq
执行除 Syslinux 之外的所有这些功能。所以它可以让你的配置更简单。需要注意的是,TFTP 服务器(ThinyFTP)不能提供大于 500MB 的文件,因此如果你的 ISO 镜像更大,你需要使用 lpxelinux 和一些迷你 http 服务器(我使用lighttpd
)。我在这里写了有关您项目的更多信息,如果您对dnsmasq
解决方案感兴趣,请等到第二天,因为我不在办公室,我可以复制我的重要行dnsmask.conf
并提供一些其他提示。