我记得在Windows XP中,当DHCP客户端没有从DHCP服务器接收到IPv4地址时,主机会为自己分配一个来自169.254.0.0/16的IPv4链路本地地址。然而,我从未见过 Linux 主机有同样的行为。这是否取决于 DHCP 客户端的实现?我使用 ISC dhclient 版本 4.1。或者 Linux 何时使用 IPv4 链路本地地址?
答案1
(很抱歉,但我还不能发表评论 - 所以就这样):
我认为您需要在 dhclient 中为此类情况配置“租用”选项。
保留旧的租约,以防首次调用 dhclient 时(通常在初始系统引导过程中)DHCP 服务器不可用。在这种情况下,将对 dhclient.leases 文件中尚未过期的旧租约进行测试,如果确定它们有效,则将使用它们,直到它们过期或 DHCP 服务器变得可用。
有时可能需要访问不存在 DHCP 服务器的网络的移动主机可以预先加载该网络上固定地址的租用。当所有联系 DHCP 服务器的尝试都失败时,dhclient 将尝试验证静态租约,如果成功,将使用该租约直到重新启动。
答案2
您可以使用 dhcp.conf 中的静态租约来伪造此功能,但如果另一个系统已使用该 IP 地址,则该功能将无法正常运行。通常,当选择链接本地地址时,主机将运行测试以验证是否没有人正在使用该地址,如果检测到冲突,它将尝试选择另一个地址,直到找到可用的地址。
如果您想在 Linux 下实现此功能,您需要查看 avahi-autoipd 软件包。它不是 dhcp 客户端的一部分。