如何从内核命令行添加虚拟网络 IP 地址?

如何从内核命令行添加虚拟网络 IP 地址?

我想添加一个虚拟 IP 地址,这是您通常会做的事情:

ifconfig eth0:0 192.168.1.1

(或通过/etc/network/interfaces)。但是,我想从内核命令行执行此操作,其命令格式为:

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>

但是,虚拟 IP 名称的格式使用冒号,这与内核命令行格式冲突。因此,例如,以下非虚拟设备eth0可以正常工作:

ip=192.168.1.1:::::eth0:::

但如果我想使用虚拟设备eth0:0,以下方法不起作用:

ip=192.168.1.1:::::eth0:0:::

(我没想到会这样,因为额外的冒号会破坏格式)。注意:在这种情况下不起作用意味着它仍然配置设备eth0,而不是eth0:0设备。

有什么办法可以做到这一点吗?

答案1

看来不可能。

ip参数的内核文档说语法是

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>

只有一个client-ip.

Linux IP 别名文档表示冒号形式已被弃用。

ip选项只是将其:视为单词分隔符,而不提供任何特殊的方法来转义文字:

https://github.com/torvalds/linux/blob/master/net/ipv4/ipconfig.c#L1614

相关内容