如何丢弃一个DHCP请求的旧IP地址(并提供一个新的)?

我从192.168.0.0/24networking切换到10.10.10.0/24 。 地址由dnsmasq-dhcp

所有设备的交换机都没有问题,只有一台打印机(称为PRINTER )。 根据打印机在/etc/hosts定义的名称(通过dhcp-host=PRINTER )为该打印机分配了一个固定IP,并且仍然使用新的范围。

当它请求IP地址时,DHCP服务器在其日志中声明

 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地址?

检查您的打印机名称是否为旧IP:/var/lib/misc/dnsmasq.leases并编辑该文件,您必须先停止dnsmask

检查您在configurationdhcp时设置的租用时间,如果您分配了太多时间,则需要一段时间才能“自行修复”

首先,我将假定您的打印机正在正确实施DHCP和DDNS更新,但事实并非如此。 我还假设它获得的原始租约尚未到期。 如果您到期收到此消息,那么您可能正在处理不正确的DHCP实施。

您的打印机获得了192.168.0.20的租约,并被告知这将在X天内有效。 在此之前的一段时间,您将范围更改为10.10.10.0/24。 打印机仍然有一个技术上有效的地址租约,虽然不合要求。

在租赁期间,设备通常要求续约和/或DDNS更新。 由于原来的地址不再适用于新的租约,因此续租明显下降,但这并不意味着打印机将停止使用它。 它可能不会要求一个新的地址,直到最初的租约已经到期。 这不是一个错误。

尽pipe名称更新似乎是触发错误的原因。 取决于您的configuration,它可能是请求更新名称的打印机,或代表打印机请求续订的DHCP服务器。 名称更新被拒绝,因为它所绑定的地址不再是服务器上的有效地址。 服务器部件足够聪明,可以知道这一点,但是设备会一直挂着,直到再次尝试,并可能成功。

更新过程基本上是客户或其代理,询问是否可以继续在该地址上使用该名称。 服务器回答“是”或“否”,但不会说“不,但是用这个来代替”。

快捷方式是让你的打印机释放它的租约,并得到一个新的。 通常你可以通过networking界面来做到这一点,有时候也可以通过电源循环。