通常,当我为 MAC 地址保留 IP 时,设备在启动并请求 dhcp 地址时,将获取我保留的地址。但是最近请求似乎已经进入,但 dhcp 却提供了一个范围内的地址,并显示“未知租约”。是否缺少某些内容或配置不正确?我很确定我多次将相机恢复出厂设置,因此它不是硬编码的。还有其他建议吗?
配置文件:/etc/dhcp/dhcpd.conf
}
## }}}
## {{{ IT::Devices (10.54.200.0/24)
subnet 10.54.200.0 netmask 255.255.255.0 {
authoritative;
option ntp-servers 10.54.25.110;
option broadcast-address 10.54.200.255;
option routers 10.54.200.1;
pool {
# WINS server address and info for microsoft win 3x,9x & NT
option netbios-name-servers 10.54.25.75;
option ntp-servers 10.54.25.110;
option netbios-dd-server 10.54.25.75;
option netbios-node-type 8;
option domain-name-servers 10.54.25.110,10.54.25.110;
range 10.54.200.35 10.54.200.40;
#range dynamic-bootp 10.54.200.25 10.54.200.29;
default-lease-time 345600;
max-lease-time 518400;
allow unknown clients;
}
...
host 040-cam-test {
hardware ethernet 00:02:d1:01:10:73;
fixed-address 10.54.200.60;
}
tail -f /var/log/dhcpd/dhcpd.log | ccze -A | grep 10.54.200
Dec 10 11:39:31 DHCP01 dhcpd: DHCPOFFER on 10.54.200.60 to 00:02:d1:01:10:73 via 10.54.200.1
Dec 10 11:39:31 DHCP01 dhcpd: DHCPDISCOVER from 00:02:d1:01:10:73 (IP21x2-VVTK-0101c) via 10.54.200.1
Dec 10 11:39:31 DHCP01 dhcpd: DHCPREQUEST for 10.54.200.60 (10.54.25.75) from 00:02:d1:01:10:73 via 10.54.200.1
Dec 10 11:39:31 DHCP01 dhcpd: DHCPACK on 10.54.200.60 to 00:02:d1:01:10:73 via 10.54.200.1
Dec 10 11:39:31 DHCP01 dhcpd: DHCPREQUEST for 10.54.200.60 (10.54.25.75) from 00:02:d1:01:10:73 via 10.54.200.1: unknown lease 10.54.200.60.
Dec 10 11:39:32 DHCP01 dhcpd: DHCPOFFER on 10.54.200.37 to 00:02:d1:01:10:73 (IP21x2-VVTK-0101c) via 10.54.200.1
/var/lib/dhcp/dhcpd.leases ...
lease 10.54.200.37 {
starts 4 2015/12/10 18:32:44;
ends 4 2015/12/10 18:35:10;
tstp 4 2015/12/10 18:35:10;
cltt 4 2015/12/10 18:32:44;
binding state free;
hardware ethernet 00:02:d1:01:10:73;
uid "\001\000\002\321\001\020s";
}
答案1
有一个恶意 dhcpd 进程正在运行,因此设备收到过多响应。这是因为使用以下命令多次重新启动了该服务:
/etc/init.d/isc-dhcp-server restart
相反,我需要使用以下命令重新启动 dhcpd:
sudo service isc-dhcp-server restart
答案2
我在运行 Raspbian 8 的 RPi 1 上遇到了类似的问题。我正在运行 isc-dhcp-server。
它没有为机器提供静态配置的 DHCP IP 地址 192.168.1.8 作为 MAC 地址,而是说租约未知,并为其提供我设置的动态范围内的某个地址,例如 192.168.1.201。但即使有了这个 IP 地址,事情仍然无法正常工作,而且我检查时,客户端机器通常没有配置 IP 地址。
最终我阅读了这个链接底部的帖子: https://ubuntuforums.org/archive/index.php/t-1575290.html
检查我的服务器时,我发现有另一个 dhcp 进程正在运行(ps -elf | grep dhcp),该进程称为 dhcpcd5,但这是一个客户端(https://packages.debian.org/search?keywords=dhcpcd)
这是我所做操作的 apt 日志(我删除的两个包):
cat /var/log/apt/history.log
Start-Date: 2017-11-13 20:28:38
Remove: raspberrypi-net-mods:armhf (1.2.5), dhcpcd5:armhf (6.7.1-1+rpi5)
End-Date: 2017-11-13 20:28:52
卸载 dhcpcd5 包(以及依赖于它的 raspberrypi-net-mods 包)后,我发现我的 DHCP 系统在所有客户端机器上运行良好,并且服务器日志不再显示 dhcp 客户端固定地址(例如 192.168.1.8)的租约未知,该地址映射到 /etc/dhcp/dhcpd.conf 中的特定 MAC 地址
dhcp 服务器甚至开始向客户端发出 DHCPNAK 消息以消除先前造成的损害,即拒绝 192.168.1.201 向在我的 dhcp 服务器中为其保留了 192.168.1.8 的 MAC 地址的机器发出的请求,然后正确地向其提供 192.168.1.8。