如何让 avahi-autoipd 获取别名上的地址,而不管接口的状态如何?

如何让 avahi-autoipd 获取别名上的地址,而不管接口的状态如何?

我想在 eth0:ipv4ll 上配置一个地址,即使 eth0 本身已配置。Eth0 永远不会配置 ipv4ll 地址,它被设置为 DHCP。所讨论的系统既用于常规网络,也用于常规网络之外,并且始终需要 ipv4ll 地址。

我在接口文件中设置了一行,如下所示:

iface eth0:ipv4ll inet ipv4ll

但是,这仅仅得到一个日志提示,avahi-auotipd 没有配置接口,因为它上面已经有一个可路由的地址。

是的,eth0 有一个地址。但是 eth0:ipv4ll 不是 eth0。

我不明白 avahi-autoipd 究竟在哪里运行,或者我只是想在该行中添加 --force-binding。

有没有更好的办法?

答案1

我查看了 ifupdown 源和定义文件,ipv4ll 接口类型只是手动启动/关闭包装器。您可以在 /etc/network/interfaces 中将 avahi-autoipd 接口配置为手动类型:

auto eth0:0
iface eth0:0 inet manual
  up avahi-autoipd -D --force-bind eth0:0
  down avahi-autoipd -k eth0:0

如果您已将 eth0 配置为 dhcp,那么您还需要注释掉 /etc/dhcp/dhclient-enter-hooks.d/avahi-autoipd 中的行,该行会导致 avahi 接口在 dhcp 配置自身时被关闭。完成这些操作后,您将能够使用 eth0 和 eth0:0(奇怪的是,在您 ifup eth0:0 后,它将重命名为 eth0:avahi)。

答案2

嗯,看起来 ifup 直接从二进制文件内的静态字符串调用 avahi-autoipd。

有点不灵活。

我将寻求另一种解决方案。无论如何,我都欢迎提出建议。例如,我想知道是否有比 ifupdown 更好的选择,它似乎也对网络管理器了解太多了。

相关内容