Answers:
默认情况下,从接口删除主IP地址将删除同一子网上的所有其他地址。
这是对用户lain报告的REHL错误1136733的答复,该用户在13年3月12日提供了答案...
您要在同一子网中添加多个地址,因此第二个及后续的地址将成为第二个。这可以在“ ip addr show”输出中看到,请注意那些地址旁边的关键字“ secondary”。
默认情况下,删除主地址时,内核也会删除所有相应的辅助地址。
如果要在辅助删除中将其中一个辅助升级为新的辅助,则设置net.ipv4.conf.eth9.promote_secondaries系统。
sudo systemctl net.ipv4.conf.eth0.promote_secondaries
未知操作net.ipv4.conf.eth0.promote_secondaries。
发生这种情况是因为删除时使用了/ 24网络掩码。它适用于您输入的地址。请尝试以下操作:
ip addr del 1.1.1.2/32 dev eth2
/ 32掩码仅定义一个主机。
ip addr del 1.1.1.2 dev eth2
我没有eth2可以检查它,但是它可以在eth0上正常工作,我看不出eth2应该是神奇的原因。我想您正在使用,ip addr show dev eth2
因为ifconfig eth2
似乎没有显示ip添加的其他地址。
我注意到的一件事是,您创建/删除地址的顺序很重要。如果删除主要地址,则将删除在同一网络中添加的第二个及后续地址。考虑...
inet 1.1.1.1/24 scope global eth0
inet 1.1.2.3/24 scope global eth0
inet 1.1.1.2/24 scope global secondary eth0
inet 1.1.1.3/24 scope global secondary eth0
如果删除1.1.1.1,则1.2和1.3地址也将被删除。如果删除任何其他地址,则只会删除该地址。
@bvs的答案指出了问题的正确方向,并为我解决了问题。这里是一些关于精确命令的细节。对于许多默认接口eth0
,我在以下命令中采用了该接口,eth2
对于原始问题,该接口必须替换为。
对于临时解决方案(直到重新启动),请使用
sudo sysctl -w net.ipv4.conf.eth0.promote_secondaries=1
对于永久解决方案,该解决方案在重新启动后仍然存在,请创建一个包含以下内容的文件/etc/sysctl.d/ip-promote.conf
(或其他以结尾的文件名.conf
):
# The following makes that a second IP on the eth0 interface
# is promoted as primary IP instead of being removed.
net.ipv4.conf.eth0.promote_secondaries=1