DHCP dnsmasq 无限租约

DHCP dnsmasq 无限租约

我正在使用 dnsmasq 为大约 200 个 vserver 提供 IP。租期是无限的:dhcp-range=10.0.1.2,10.0.1.254,infinite

我不知道为什么,但是 1 个虚拟服务器更改了 IP。假设 MAC 地址已更改。

我希望虚拟服务器恢复其旧 IP,因此我关闭了接口并编辑了 /var/lib/misc/dnsmasq.leases(更改了新/旧 IP)

重启后,vserver 再次出现错误的新 IP。所以我认为 /var/lib/misc/dnsmasq.leases 只是一个日志文件?!

我解决了在控制台上更改虚拟服务器 IP 的问题 - 重启后虚拟服务器使用的是旧 IP。

但我想了解 - dnsmasq 如何保存“我想将此 IP 提供给此 MAC”的信息以及我该如何更改它?!

答案1

dnsmasq.leases文件就像一个数据库,用于dnsmasq了解已分配的地址以及其他一些信息。

据网站这里这里您可以按如下方式为主机分配静态 IP:

--dhcp-host=服务器名称,192.168.0.199
--dhcp-host=00:20:e0:3b:13:af,服务器名称,无限
--dhcp-host=aa:bb:cc:dd:ee:ff,192.168.0.199

笔记:如果使用第一个选项,则必须确保客户端计算机的主机名与文件--dhcp-host=servername中的条目匹配dnsmasq.conf

我希望这有帮助。

答案2

我忘记在编辑 dnsmasq.leases 之前停止 dnsmasq 服务。

https://wiki.gentoo.org/wiki/Dnsmasq

如果客户端的网络接口更新导致 MAC 地址发生变化,则可能无法立即获得预期的 IP 地址。这是因为 dnsmasq 服务已将此 IP 地址提供给旧 MAC 地址,并将等到此地址的租约到期后再重新分配。

dnsmasq 服务将其租约存储在 /var/lib/misc/dnsmasq.leases 中。如果需要更快地删除租约,请关闭 dnsmasq 服务,从 dnsmasq.leases 文件中删除租约,然后重新启动该服务。

相关内容