如何在 DHCP 服务器本身上手动释放 DHCP 租约?

如何在 DHCP 服务器本身上手动释放 DHCP 租约?

我一直在做一些虚拟机测试。我在我的子网上创建和销毁了大量虚拟机,以通过 puppet 测试新的配置。但是,Ubuntu 似乎在系统关闭时不会释放 DHCP 租约,而 DHCP 租约时间是一周。所以我已经到了无法使用新虚拟机获得 DHCP 租约的地步。如果我知道的话,我本可以手动释放测试虚拟机上的租约,但我需要释放这些租约,这样我才能取回我的免费 IP。DHCP 服务器也为一些生产服务器提供服务,所以我不能只是取消所有租约然后就此结束。

DHCP 服务器操作系统是 Ubuntu 12.04.4。使用 dhcpd 作为 DHCP 服务器。

答案1

显然没有如此优雅的方法来完成这项工作。

因此,让我们手动进行。

  • 停止 dhcp 服务器。
  • 检查您的/var/lib/dhcp/dhcpd.leases文件并查找条目。它包含所有 dhcp 租约的列表。
  • 小心地删除该条目并重新启动 dhcp 服务器。

答案2

有一个名为的实用程序dhcp_release可以做到这一点。根据手册页您只需将接口、IP 地址和 MAC 地址传递给它,如下所示:

sudo dhcp_release enp1s0f0 192.168.1.100 01:02:03:04:05:06

它在软件包中可用dnsmasq-utils。我不知道它是否适用于除 dnsmasq 之外的任何 DHCP 服务器,但似乎应该如此。对于 dnsmasq 来说,它是必不可少的,因为 dnsmasq 执行许多其他操作,因此暂时停止它以便您可以手动编辑租约文件可能会带来麻烦。

相关内容