我从192.168.0.0/24
网络切换到10.10.10.0/24
。地址由 提供dnsmasq-dhcp
。
切换对所有设备都正常,但一台打印机(称为PRINTER
)除外。这台打印机根据其在/etc/hosts
(通过dhcp-host=PRINTER
)中定义的名称分配了一个固定 IP,并且仍然使用新的范围。
当 DHCP 服务器请求 IP 地址时,它会在日志中声明
dnsmasq-dhcp: not giving name PRINTER to the DHCP lease of 192.168.0.20 because the name exists in /etc/hosts with address 10.10.10.20
我不明白此消息的含义:名称确实存在于 中/etc/hosts
,现在有了新10.10.10.20
地址。虽然我猜想打印机的 DHCP 查询暗示了它曾经拥有的旧 IP 地址,但为什么不dnsmasq
忽略它并提供新的 IP 地址呢?
答案1
检查旧 IP 的打印机名称是否在此处:/var/lib/misc/dnsmasq.leases 并编辑该文件,您必须先停止 dnsmask
检查配置 dhcp 时设置的租约时间,如果分配的时间太长,则需要一段时间才能“修复”
答案2
首先,我假设您的打印机正确实施了 DHCP 和 DDNS 更新,但这并不总是正确的。我还假设它获得的原始租约尚未到期。如果您收到此消息后如果 IP 地址过期,那么您可能正在处理不正确的 DHCP 实施。
您的打印机获得了 192.168.0.20 的租约,并被告知该租约的有效期为 X 天。在此之前的某个时间,您将范围更改为 10.10.10.0/24。打印机仍然具有技术上有效的地址租约,尽管这并不理想。
在租赁期间,设备通常会请求续租和/或 DDNS 更新。租约续订显然被拒绝,因为原始地址不再有效新的租约,但这并不意味着打印机将停止使用它。它可能直到原始租约完全到期后才会请求新地址。这不是错误。
不过,名称更新似乎是导致错误的原因。根据您的配置,可能是打印机请求名称更新,也可能是 DHCP 服务器代表打印机请求更新。名称更新被拒绝,因为它绑定的地址不再是服务器上的有效地址。服务器部分足够聪明,知道这一点,但设备会坚持到最后才再次尝试,并且可能会成功。
续订过程基本上就是客户或其代理询问是否可以继续在该地址使用此名称。服务器可以回答“是”或“否”,但不能说“否,但改用这个”。
快捷方式是让您的打印机解除租约并获取新租约。您通常可以通过 Web 界面执行此操作,有时也可以通过电源循环执行此操作。