dhclient 在 $reason 报告 TIMEOUT 和有效租约无法到达后不发送 DHCPDISCOVER

dhclient not sending DHCPDISCOVER after $reason report TIMEOUT and valid lease are unreachable

我在我的 debian 8.3 Linux 上使用 ISC dhclient 4.3.1。当 dhclient 报告的 $reason 因无法从租约文件获得有效租约而超时时,dhclient 脚本以状态 2 退出。此后 dhclient 不发送 DHCPDISCOVER 消息。但是,当 dhclient 报告的 $reason 由于没有可用的有效租约而失败时,dhclient 会定期发送 DHCPDISCOVER 消息。请注意,dhclient.conf 中的超时和重试值分别为 8 秒和 1 秒。

可能存在 DHCP 服务器现在无法访问的情况,因为它已关闭或其他原因,但稍后可以使用。如果 $reason 超时,在租约文件中有有效租约的情况下,dhclient 不会定期发送 DHCPDISCOVER。

我正在使用 ifup/ifdown 脚本来管理网络连接。

我自己发现了问题。这是由于 dhclient-script 错误地解释了退出状态,因此退出状态总是结果为 0,因此 state_panic 函数中的 "if (!script_go (client))" 总是为真,通过将dhclient 处于 BOUND 状态并且没有启动计时器来发送 DHCPDISCOVER。