我觉得我疯了。我的小型服务器多年来一直运行着 dnsmasq,工作得很好。昨天我向网络添加了新的主机/接口,并尝试使用 dhcp-host 指令对其进行配置,以便像其他主机一样获取特定地址,但无论我做什么,它总是从池中获取地址。我至少检查了 MAC 一千次,安装了新的随机主机,并为其分配了我指定的地址,我多次重新启动了所有设备,我甚至运行了 Wireshark 来查看发生了什么……我在 dnsmasq.conf 中有多个 dhcp-host 指令,但只有这一个不起作用。当新主机请求地址时,它不会获取设置的地址,而是固执地一次又一次地从池中获取地址,即使在手动释放之后也是如此。我没有主意了,你呢,互联网?
编辑:启用日志记录后,我看到以下消息:dnsmasq-dhcp[2704]:不将名称 Kraft.home 提供给 DHCP 租约 192.168.0.168,因为该名称存在于地址为 192.168.0.14 的 /etc/hosts 中
但是它无论如何都会给出.168(来自池),它并没有给它.14,尽管它显然知道它应该给!
答案1
好的,我找到了原因。DNSMasq 记得过去曾将 IP 租借给不同的 MAC,因此它拒绝将其分配给新的 MAC,即使有人直接告诉它,这个小混蛋。清除/var/lib/dnsmasq/dnsmasq.leases
就解决了问题。