Dhcp

為什麼 DHCPD 提供錯誤的租用時間?

  • July 31, 2018

我在 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 小時的租用時間,我也無法解釋。)

我嘗試在“頂級”配置中或為特定子網設置最大租約時間和預設租約時間,但沒有成功。

這裡發生了什麼?

我剛剛找到了解決方案。

這似乎是這個特定 OpenBSD 版本中的一個錯誤:

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

新的租約持續時間預設為網路塊的本地或全域,僅影響在配置(並且dhcpd服務重新啟動)後給出的新發布的租約。

舊的活動租約優先於配置更改(在某些情況下),並且將與舊的預設值一起顯示,直到它們過期。

因此,只有在今天 19:07 UTC 之後,您向我們展示的 MAC 的租約將獲得您剛剛配置的較短的租約。

如果您希望它在時間結束之前表現不同,則必須刪除該租約。

注意:如果它是一個測試系統,您可以將租約文件截斷為 0 字節,或者在停止守護程序後編輯掉“lease {”和“}”之間的行。dhcpd

引用自:https://unix.stackexchange.com/questions/459567