我想在 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 更好的选择,它似乎也对网络管理器了解太多了。