​​Linux中一个网卡含有多个IP,将从IP升级为主IP的方法​​



今天在查看虚拟机的时候,发现某一网卡含有多个IP地址



eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:6b:a5:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.213.132/24 brd 192.168.213.255 scope global dynamic eno16777736
valid_lft 1726sec preferred_lft 1726sec
inet 192.168.213.34/24 brd 192.168.213.255 scope global secondary eno16777736
valid_lft forever preferred_lft forever



其中,192.168.213.132为主IP地址,192.168.213.34为从IP地址,执行以下命令删除主IP地址:



ip addr del 192.168.213.132 dev eno16777736



查看结果会发现从IP地址也没有了。

原来是因为有一个内核参数控制这个:

down掉所属某个子网的主IP的时候, 所有相关的从IP也会down掉。 

设置一个内核参数, 当主IP宕掉时可以将从IP提升为primary ip: 



echo "1" > /proc/sys/net/ipv4/conf/all/promote_secondaries



再次执行删除IP的命令:



ip addr del 192.168.213.132 dev eno16777736



输入ip addr查看结果:



eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:6b:a5:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.213.34/24 brd 192.168.213.255 scope global eno16777736
valid_lft forever preferred_lft forever



从IP升级为主IP,大功告成!

本文为博主原创文章,未经允许不得载。