为什么 DHCPD 提供错误的租用时间?

为什么 DHCPD 提供错误的租用时间?

我在 OpenBSD 5.8 上运行 DHCPD,但遇到了一个奇怪的问题。

我在/etc/dhcpd.conf中设置租用时间如下:

max-lease-time 7200;
default-lease-time 7200;

这应该是2个小时。

当我检查 dhcpd.leases 文件时,我看到以下内容:

lease 172.24.186.224 {
  starts 5 2018/07/31 07:17:03 UTC;
  ends 5 2018/07/31 19:17:03 UTC;
  hardware ethernet b4:f6:1c:27:4f:a4;
  uid 01:b4:f6:1c:27:4f:a4;
  client-hostname "Apple";
}

在执行 tcpdump 并使用 Wireshark 进行分析时,也会检查这 12 小时的租用时间。 (dhcpd.leases 文件中还有一些 24 小时租用时间,我也无法解释。)

我尝试在“顶层”配置中或为特定子网设置最大租用时间和默认租用时间,但没有成功。

这里发生了什么?

答案1

我刚刚找到了解决方案。

这似乎是这个特定 OpenBSD 版本中的一个错误:

http://openbsd-archive.7691.n7.nabble.com/dhcpd-on-5-8-AMD64-default-lease-time-and-max-lease-time-ignored-td285149.html

答案2

新的租约期限默认值(无论是网络块本地的还是全局的)仅影响配置后(并且服务dhcpd重新启动)后给出的新发出的租约。

旧的活动租约优先于配置更改(在某些情况下),并且将显示旧的默认值,直到它们过期。

因此,只有在今天 19:07 UTC 之后,您向我们展示的 MAC 的租约才会获得您刚刚配置的较短期限的租约。

如果您希望它在时间到期之前表现不同,则必须删除该租约。

注意:如果是测试系统,您可以将租用文件截断为 0 字节,或者编辑掉“lease {”和“}”之间的行停止dhcpd守护进程。

相关内容