当没有可用的 DHCP 服务时,如何正常恢复到 AutoIP?

当没有可用的 DHCP 服务时,如何正常恢复到 AutoIP?

我正在开发基于 Linux 和 Busybox 的嵌入式设备,并尝试使其适应不同的网络配置。我想要:

1- 在启动时,如果没有 DHCP 回复,则使用 AutioIP 地址。2-
在运行时,如果 DHCP 服务器可用,则开始使用它。

第 1 点似乎很简单,因为我可以在 /etc/network/interfaces 中将 eth0 设置为手动,并设置命令来

udhcpc eth0 --now || zcip eth0 /etc/zcip.script

我不确定第 2 点。如果我同时运行 udhcpc 和 zcip 守护进程,它们能很好地协同工作吗?

答案1

您可以使用 udhcpc+avahi 来实现这一点。Avahi 是 Linux 的零配置实现。它提供 autoip(无需 dhcp 即可提供地址)和 mDNS(无需 DNS 服务器即可进行名称解析)。

我让它在嵌入式系统中工作构建根。还有一个修改过的 udhcpc 启动脚本,当 dhcp 不可用时可以回退到 autoip。

答案2

如果您只需要在启动时使用 AutoIP 作为 DHCP 的后备,那么也许可以指示 zcip 获取地址并退出,而不是作为守护进程运行。

在启动时你需要执行以下操作:

udhcpc eth0 --now || zcip -f -q eth0 /etc/zcip.script

当此命令完成时,udhcpc 将运行,或者您将获得链接本地地址

然后,当 DHCP 服务器可用时,启动 udhcpc 守护进程。

相关内容