![](https://linux22.com/image/1208125/.png)
尝试让 ubuntu 上的 DHCP 服务正常工作。安装 Vanilla 操作系统。从现有的 ubuntu 20 主机 dhcp 服务器复制。服务不会启动。
我甚至还没有涉及到更高级的事情,比如添加 ddns 和证书以及故障转移。这是基础。无法从可用的 dhcpd.conf 文件的副本开始
root@ps-dns-01:~# systemctl restart isc-dhcp-server.service root@ps-dns-01:~# systemctl status isc-dhcp-server.service × isc-dhcp-server.service - ISC DHCP IPv4 服务器 已加载:已加载(/lib/systemd/system/isc-dhcp-server.service;已启用;供应商预设:已启用) 活动:失败(结果:退出代码)自 2023-03-25 星期六 20:24:33 UTC;13 秒前 文档:man:dhcpd(8) 进程:20249 ExecStart=/bin/sh -ec CONFIG_FILE=/etc/dhcp/dhcpd.conf; 如果 [ -f /etc/ltsp/dhcpd.conf ]; 则 CONFIG_FILE=/etc/ltsp/dhcpd.conf; fi; [ -e /var/lib/dhcp/dhcpd.leases ] || touch /var/lib/dhcp/dhcpd.leases; chown root:dhcpd /var/lib/dhcp /var/lib/dhcp/dhcpd.leases; chmod 7> 主 PID: 20249 (代码=退出,状态=1/FAILURE) CPU: 16ms
3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 如果您认为收到此消息是由于错误而不是配置问题,请阅读有关提交的部分,3 月 25 日 20:24:33 ps-dns-01 systemd[1]: isc-dhcp-server.service: 主进程已退出,代码=退出,状态=1/失败 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 请阅读有关提交的部分,3 月 25 日 20:24:33 ps-dns-01 systemd[1]: isc-dhcp-server.service: 失败,结果为“退出代码”。 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 我们的网页上有错误www.isc.org或在 README 文件中 Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: 提交错误之前。这些页面解释了正确的 Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: 流程以及我们认为有助于调试的信息。Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: 退出。 1-18/18 行(结束)░░ 作业标识符为 8946。3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: Internet Systems Consortium DHCP 服务器 4.4.1 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: Internet Systems Consortium DHCP 服务器 4.4.1 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 版权所有 2004-2018 Internet Systems Consortium。3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 保留所有权利。3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 有关信息,请访问https://www.isc.org/software/dhcp/ 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 版权所有 2004-2018 Internet Systems Consortium。3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 保留所有权利。3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 如需了解详情,请访问https://www.isc.org/software/dhcp/ 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 配置文件:/etc/dhcp/dhcpd.conf 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 配置文件:/etc/dhcp/dhcpd.conf 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 数据库文件:/var/lib/dhcp/dhcpd.leases 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: PID 文件:/run/dhcp-server/dhcpd.pid 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 数据库文件:/var/lib/dhcp/dhcpd.leases 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: PID 文件: /run/dhcp-server/dhcpd.pid 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 将 0 个已删除的主机声明写入 leases 文件。 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 将 0 个已删除的主机声明写入 leases 文件。 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 将 0 个新的动态主机声明写入 leases 文件。 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 将 0 个租约写入 leases 文件。 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 将 0 个新的动态主机声明写入 leases 文件。3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 将 0 个租约写入 leases 文件。3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 没有 ens160 (10.89.100.152) 的子网声明。3 月 25 日 20:24:33 ps-dns-01 sh[20249]: ** 忽略 ens160 上的请求。如果这不是您想要的,请在 dhcpd.conf 文件中为接口 ens160 所连接的网段 Mar 25 20:24:33 ps-dns-01 sh[20249]: 写入子网声明 Mar 25 20:24:33 ps-dns-01 sh[20249]:。** Mar 25 20:24:33 ps-dns-01 sh[20249]: 未配置为监听任何接口! 3 月 25 日 20:24:33 ps-dns-01 sh[20249]: 如果您认为收到此消息是因为存在错误,而不是由于配置问题,请阅读我们网页上有关提交错误的内容,网址为:www.isc.org或在 README 文件 Mar 25 20:24:33 ps-dns-01 sh[20249]: 中提交错误。这些页面解释了正确的 Mar 25 20:24:33 ps-dns-01 sh[20249]: 流程以及我们认为有助于调试的信息。Mar 25 20:24:33 ps-dns-01 sh[20249]: 退出。Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: ** 忽略 ens160 上的请求。如果这不是您想要的,请在 dhcpd.conf 文件中为接口 ens160 所连接的网段 Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: 写入子网声明 Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: 。** Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: 未配置为侦听任何接口! 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 如果您认为由于错误而收到此消息,则 root@ps-dns-01:~# journalctl -xeu isc-dhcp-server.service ░░ Defined-By: systemd ░░ 支持:http://www.ubuntu.com/support ░░ ░░ 单元 isc-dhcp-server.service 已进入“失败”状态,结果为“退出代码”。3 月 25 日 20:24:33 ps-dns-01 systemd[1]: 已启动 ISC DHCP IPv4 服务器。░░ 主题:单元 isc-dhcp-server.service 的启动作业已成功完成░░ 定义者:systemd░░ 支持:http://www.ubuntu.com/support ░░ ░░ 单元 isc-dhcp-server.service 的启动作业已成功完成。 ░░ root@ps-dns-01:~# journalctl -xeu isc-dhcp-server.service ░░ 定义者:systemd ░░ 支持:http://www.ubuntu.com/support ░░ ░░ 单元 isc-dhcp-server.service 已进入“失败”状态,结果为“退出代码”。3 月 25 日 20:24:33 ps-dns-01 systemd[1]: 已启动 ISC DHCP IPv4 服务器。░░ 主题:单元 isc-dhcp-server.service 的启动作业已成功完成░░ 定义者:systemd░░ 支持:http://www.ubuntu.com/support ░░ ░░ 单元 isc-dhcp-server.service 的启动作业已成功完成。 ░░ root@ps-dns-01:~# journalctl -xeu isc-dhcp-server.service ░░ 定义者:systemd ░░ 支持:http://www.ubuntu.com/support ░░ ░░ 单元 isc-dhcp-server.service 已进入“失败”状态,结果为“退出代码”。3 月 25 日 20:24:33 ps-dns-01 systemd[1]: 已启动 ISC DHCP IPv4 服务器。░░ 主题:单元 isc-dhcp-server.service 的启动作业已成功完成░░ 定义者:systemd░░ 支持:http://www.ubuntu.com/support ░░ ░░ 单元 isc-dhcp-server.service 的启动作业已成功完成。░░
3 月 25 日 20:24:33 ps-dns-01 systemd[1]: isc-dhcp-server.service: 主进程已退出, 代码=已退出, 状态=1/FAILURE ░░ 主题: 单元进程已退出 ░░ 定义者: systemd ░░ 支持:http://www.ubuntu.com/support ░░ ░░ 属于单元 isc-dhcp-server.service 的 ExecStart= 进程已退出。 ░░ ░░ 进程的退出代码为“已退出”,其退出状态为 1。 3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]: 不是配置问题,请阅读提交部分 3 月 25 日 20:24:33 ps-dns-01 systemd[1]: isc-dhcp-server.service: 失败,结果为“退出代码”。 ░░ 主题:单元失败 ░░ 定义者:systemd ░░ 支持:http://www.ubuntu.com/support ░░ ░░ 单元 isc-dhcp-server.service 已进入“失败”状态,结果为“退出代码”。3 月 25 日 20:24:33 ps-dns-01 dhcpd[20249]:我们的网页上有错误www.isc.org或在 README 文件中 Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: 提交错误之前。这些页面解释了正确的 Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: 流程以及我们认为有助于调试的信息。Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: Mar 25 20:24:33 ps-dns-01 dhcpd[20249]: 退出。
root@ps-dns-01:~# journalctl -xeu isc-dhcp-server.service
root@ps-dns-01:~# cat /etc/dhcp/dhcpd.conf
option domain-name "ps.labs.local";
option domain-search "ps.labs.local";
option domain-name-servers 10.89.100.152, 10.89.100.153;
option time-offset -6;
option ntp-servers 10.89.66.1;
option time-servers 10.89.66.1;
#ddns-domainname "ps.labs.local";
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
subnet 10.89.128.0 netmask 255.255.255.0 {
interface ens160;
option routers 10.89.128.1;
range 10.89.128.10 10.89.128.254;
}
subnet 10.89.130.0 netmask 255.255.255.0 {
interface ens160;
option routers 10.89.130.1;
range 10.89.130.10 10.89.130.254;
}
subnet 10.89.132.0 netmask 255.255.255.0 {
interface ens160;
option routers 10.89.132.1;
range 10.89.132.10 10.89.132.254;
}
subnet 10.89.134.0 netmask 255.255.255.0 {
interface ens160;
option routers 10.89.134.1;
range 10.89.134.10 10.89.134.254;
}
subnet 10.89.135.32 netmask 255.255.255.224 {
interface ens160;
option routers 10.89.135.33;
range 10.89.135.34 10.89.135.62;
}
host tanzuprod-service-control-plane-bbwwb {
hardware ethernet 00:50:56:8b:71:bf;
fixed-address 10.89.135.48;
}
host tanzuprod-service-control-plane-gbqr6 {
hardware ethernet 00:50:56:8b:42:55;
fixed-address 10.89.135.44;
}
host tanzuprod-service-control-plane-rrg46 {
hardware ethernet 00:50:56:8b:fb:44;
fixed-address 10.89.135.49;
}
host tanzuprod-mgmt-control-plane-cpzkd {
root@ps-dns-01:~#
我还用我能定义的最愚蠢的平面文件作为基线:
测试
子网 10.89.130.0 网络掩码 255.255.255.0 { 范围 10.89.130.10 10.89.130.254; }
dmesag 输出 Mar 25 20:30:34 ps-dns-01 sh[20630]: 在提交错误之前。这些页面解释了正确的 Mar 25 20:30:34 ps-dns-01 dhcpd[20630]: 没有 ens160 (10.89.100.152) 的子网声明。Mar 25 20:30:34 ps-dns-01 sh[20630]: 流程和我们认为对调试有用的信息。Mar 25 20:30:34 ps-dns-01 sh[20630]: 退出。Mar 25 20:30:34 ps-dns-01 dhcpd[20630]: ** 忽略 ens160 上的请求。如果这不是您想要的,请在 dhcpd.conf 文件中为接口 ens160 所连接的网段 Mar 25 20:30:34 ps-dns-01 dhcpd[20630]: 写入子网声明 Mar 25 20:30:34 ps-dns-01 dhcpd[20630]: Mar 25 20:30:34 ps-dns-01 dhcpd[20630]: 。** Mar 25 20:30:34 ps-dns-01 dhcpd[20630]: Mar 25 20:30:34 ps-dns-01 dhcpd[20630]: Mar 25 20:30:34 ps-dns-01 dhcpd[20630]: 未配置为侦听任何接口!
所以我在界面中添加了节
测试
子网 10.89.130.0 网络掩码 255.255.255.0 { 接口 ens160;范围 10.89.130.10 10.89.130.254;} . dmesg
3 月 25 日 20:32:54 ps-dns-01 sh[20952]: 将 0 个租约写入租约文件。3 月 25 日 20:32:54 ps-dns-01 dhcpd[20952]: 3 月 25 日 20:32:54 ps-dns-01 dhcpd[20952]: 没有 ens160 (10.89.100.152) 的子网声明。3 月 25 日 20:32:54 ps-dns-01 sh[20952]: 没有 ens160 (10.89.100.152) 的子网声明。3 月 25 日 20:32:54 ps-dns-01 dhcpd[20952]: ** 忽略 ens160 上的请求。如果这不是 3 月 25 日 20:32:54 ps-dns-01 sh[20952]: ** 忽略 ens160 上的请求。如果这不是您想要的,请写一个子网声明 Mar 25 20:32:54 ps-dns-01 dhcpd[20952]: 您想要的,请写一个子网声明 Mar 25 20:32:54 ps-dns-01 sh[20952]: 在您的 dhcpd.conf 文件中为网段 Mar 25 20:32:54 ps-dns-01 sh[20952]: 在您的 dhcpd.conf 文件中为网段 Mar 25 20:32:54 ps-dns-01 dhcpd[20952]: 接口 ens160 连接到的那个。 ** 3 月 25 日 20:32:54 ps-dns-01 sh[20952]: ens160 所连接的接口。** 3 月 25 日 20:32:54 ps-dns-01 dhcpd[20952]: 3 月 25 日 20:32:54 ps-dns-01 dhcpd[20952]: 3 月 25 日 20:32:54 ps-dns-01 dhcpd[20952]: 未配置为侦听任何接口!3 月 25 日 20:32:54 ps-dns-01 sh[20952]: 未配置为侦听任何接口!3 月 25 日 20:32:54 ps-dns-01 dhcpd[20952]:
没有 SELinux。UFW 已禁用,真的不知道为什么这么难。似乎很多帖子都是关于 dhcpd 服务的输出,非常晦涩难懂,小版本更改很难找到根本原因。
root@ps-dns-01:~# cat /etc/default/isc-dhcp-server INTERFACESv4=ens160 INTERFACESv6="" root@ps-dns-01:~# ip ad 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 状态 UNKNOWN 组默认 qlen 1000 链路/环回 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 范围主机 lo valid_lft forever preferred_lft forever inet6 ::1/128 范围主机 valid_lft forever preferred_lft forever 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq 状态 UP 组默认 qlen 1000链接/以太 00:50:56:b7:08:f6 brd ff:ff:ff:ff:ff:ff altname enp3s0 inet 10.89.100.152/24 brd 10.89.100.255 范围全局 ens160 valid_lft forever preferred_lft forever inet6 2607:fee0:2002:100:250:56ff:feb7:8f6/64 范围全局动态 mngtmpaddr noprefixroute valid_lft 2591676sec preferred_lft 604476sec inet6 fe80::250:56ff:feb7:8f6/64 范围链接 valid_lft forever preferred_lft forever root@ps-dns-01:~# !nmcli nmcli -f 名称,自动连接显示
不确定这是否是虚拟接口问题或调用 NIC 的网络配置文件?也许有人可以发布示例?我不确定我是否可以将其分解得比 staza 发布的更小。
答案1
哇..花了三天时间研究这个简单的 DHCP 服务器启动问题..但我终于解决了。
您必须有一个区域..即使区域中没有可供租用的 IP,也必须与 DHCP 服务器的 NIC 匹配。
例如:主机 10.89.100.153 必须具有针对 10.89.100.0/24 的定义 dhcp 范围
或者 DHCP 服务器将无法启动..
这应该有更好的文档记录。而且这确实没有理由被要求。其他十几个子网的 DHCP 辅助服务可以很好地工作,以引用单个 DHCP 服务器主机。所以我认为没有理由强制执行不租用任何 IP 的范围,以使服务能够启动。