Debian Bookworm (SysV init):ISC dhcpd 在启动过程中挂起

Debian Bookworm (SysV init):ISC dhcpd 在启动过程中挂起

我有一个虚拟机充当 Windows 虚拟机的 DC,但是,由于 systemd 反复玩弄一些恶作剧(引导过程会莫名其妙地挂起,CPU 负载直接穿过屋顶,迫使我杀死 DC并重新启动它,可能需要多次尝试),我决定切换到 System V init,但是,现在我遇到了 ISC DHCP 服务器的问题,我正在使用该服务器将 IP 地址分配到 Windows VM 所连接的子网。

引导序列正常进行,直到到达 DHCP 服务器的启动脚本,但是,在那一刻引导过程锁定并拒绝继续。当然,这会导致启动序列中稍后的任何内容都无法执行,甚至任何 tty 都不会启动(甚至不会启动我为 VM 设置的串行控制台)。幸运的是,SSH 在 DHCP 服务器启动之前启动,因此我仍然可以通过 SSH 连接到虚拟机。
当服务器挂起时,会出现以下消息:
Launching IPv4 server only.
但是,预期的消息Starting ISC DHCPv4 server: dhcpd.甚至不会出现。

现在,当执行 a 时,ps -ef | grep dhcp我得到以下输出:

root      1118     1  0 04:15 ?        00:00:00 dhclient -4 -v -i -pf /run/dhclient.enX0.pid -lf /var/lib/dhcp/dhclient.enX0.leases -I -df /var/lib/dhcp/dhclient6.enX0.leases enX0
root      1444  1272  0 04:15 ?        00:00:00 /bin/sh /etc/init.d/isc-dhcp-server start
root      1453  1444  0 04:15 ?        00:00:00 /usr/sbin/dhcpd -t -4 -q -cf /etc/dhcp/dhcpd.conf
ntp       1531     1  0 04:15 ?        00:00:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -c /run/ntp.conf.dhcp -u 109:117
root      1712  1588  0 04:34 pts/0    00:00:00 grep dhcp

接下来,当检查 dhcpd 打开的任何端口时,我找不到任何内容,因此我强烈怀疑该进程在尝试打开其 UDP 端口期间出现问题。

所讨论的网络接口是连接到在 Domain-0 中定义和设置的网桥的 Xen PV 接口。
在 DomU(域控制器)中,这是以下节/etc/network/interfaces

allow-hotplug enX1
iface enX1 inet static
      address 192.168.128.1/24

关联后端所连接的桥定义如下:

auto br1
iface br1 inet manual
      bridge_ports none
      bridge_stp on
      bridge_hello 10
      bridge_maxage 40
      bridge_bridgeprio 0
      bridge_fd 5

问题是,是什么导致了这个问题,如何解决?

目前,我唯一的选择是终止挂起的 DHCP 服务器进程,以获取调用它的 init 脚本,从而完成引导过程,但这充其量是非常次优的,特别是因为它使我正在使用的 SSH干预不可用(无法输入),所以我必须在此过程中杀死它。这至少可以让启动过程摆脱困境,以便它可以完成。
终止 DHCP 服务器(在给定的示例中是kill -TERM 1453)时显示的另一条有趣的消息是:

dhcpd self-test failed. Please fix /etc/dhcp/dhcpd.conf.
The error was:

但是,当使用 手动启动时service isc-dhcp-server start,一切正常,并且服务器完全正常运行,没有任何进一步的问题。

答案1

dhcpd -t -4 -q -cf /etc/dhcp/dhcpd.conf正在执行配置测试dhcpd.conf。它在打印您期望的“Starting ISC DHCPv4...”消息之前运行。配置测试不应打开任何端口,但也不应挂起。

我想dhcpd您希望在启动br1之前启动dhcpd,但由于没有启动,因此它会挂起。登录后,桥已经启动,您的手册service isc-dhcp-server start将成功。哎呀,我错过了这样一个事实:DHCP 服务器位于虚拟机中,而不是主机中。

VM 能否成功解析自己的主机名?这只是一个大胆的猜测,但主机名/IP 解析失败可能会导致令人惊讶的长时间挂起。

相关内容