以前,我是/etc/network/interfaces
这样配置 IPVS 环回地址的:
auto lo:0
iface lo:0 inet static
address 12.34.56.78
netmask 255.255.255.255
pre-up sysctl -q -p
在 18.04 上,我尝试将此部分添加到 netplan 配置中:
network:
ethernets:
lo:
addresses:
- 12.34.56.78/32
然后运行netplan apply
。systemd-networkd 记录以下内容:
May 18 10:01:55 [...] systemd-networkd[3820]: lo: Adding address: 12.34.56.78/32 (valid forever)
May 18 10:01:55 [...] systemd-networkd[3820]: lo: Adding address: 127.0.0.1/8 (valid forever)
May 18 10:01:55 [...] systemd-networkd[3820]: rtnl: received address with invalid family 129, ignoring
但它似乎没有任何效果(ifconfig
未列出lo:0
)。不确定无效的系列 129 指的是什么。当我手动使用 ifconfig 进行设置时,实际地址(不是 12.34.56.78 :-) )工作正常。
我也尝试使用它lo:0
作为 YAML 键名,但是出现此错误:
May 18 10:00:06 [...] systemd-networkd[3736]: /run/systemd/network/10-netplan-lo:0.network:2: Interface name is not valid or too long, ignoring assignment: (null)
看起来 systemd-networkd 不适合lo:0
用作接口名称。有什么建议吗?
答案1
事实证明,netplan 配置做过将额外的环回地址分配给 lo,但ifconfig
无法显示,这误导了我。当我手动运行时,它ifconfig lo:0 12.34.56.78 netmask 255.255.255.255
显示lo:0
正常。但 netplan 将地址分配给lo
,而不是lo:0
。运行ip addr
显示了 上的额外 IP 地址lo
。
进一步阅读后,我发现ifconfig
(net-tools)早已被弃用,取而代之的是ip
(iproute):https://serverfault.com/questions/633087/where-is-the-statement-of-deprecation-of-ifconfig-on-linux