Dhcp
為什麼 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 小時的租用時間,我也無法解釋。)
我嘗試在“頂級”配置中或為特定子網設置最大租約時間和預設租約時間,但沒有成功。
這裡發生了什麼?
我剛剛找到了解決方案。
這似乎是這個特定 OpenBSD 版本中的一個錯誤:
新的租約持續時間預設為網路塊的本地或全域,僅影響在配置(並且
dhcpd
服務重新啟動)後給出的新發布的租約。舊的活動租約優先於配置更改(在某些情況下),並且將與舊的預設值一起顯示,直到它們過期。
因此,只有在今天 19:07 UTC 之後,您向我們展示的 MAC 的租約將獲得您剛剛配置的較短的租約。
如果您希望它在時間結束之前表現不同,則必須刪除該租約。
注意:如果它是一個測試系統,您可以將租約文件截斷為 0 字節,或者在停止守護程序後編輯掉“lease {”和“}”之間的行。
dhcpd