linux双机倒换命令 linux整机迁移

Linux下ip addr和ifconfig增删查虚拟ip使用 虚拟ip最多的场景可能是双机  , 往往结合着keepalived使用 。其实没有双机软件也可以使用虚拟ip , 下面介绍两种方法ip addr和ifconfig进行增删查虚拟ip 。
增加虚拟ip :
ip addr add ip/netmask dev 网口名称,比如ip addr add 192.168.88.0/24 dev eth0
查看虚拟ip :
ip addr show device_name或ip addr | grep eth0
ip addr =ip a= ip add list 查看网卡的ip和mac等,即使网卡处于down状态,也能显示出网卡状态 , 但是ifconfig查看就看不到 。
删除虚拟ip:
ip addr del ip/netmask dev 网口名称 , 比如ip addr del 192.168.88.0/24dev eth0
清空指定网卡的所有ip:
ip addr flush dev 接口
ip addr 操作时的注意事项:
说明:网卡配置的ip一般为Primary ip,虚拟ip一般为Secondary ip,当删除Primary ip时Secondary ip也有可能同时被删除 。
先查看ipv4或ipv6相应网卡开启提升参数promote_secondaries为1,当Primary ip被删除后,它的第1个Secondary ip将继承为Primary ip 。
#cat /etc/sysctl.conf| grep promote_secondaries
net.ipv4.conf.eth0.promote_secondaries=1
默认不开启,查不到结果则表明未开启 。
Secondary ip和Primary ip标注如下
[root@localhost ~]# ip addr show eth0
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:19:b9:ef:44:8b brd ff:ff:ff:ff:ff:ff
# Primary ip
inet172.16.0.230/24brd 172.16.0.255 scope global eth0
inet10.1.1.230/24scope global eth0
# Secondary ip
inet10.1.1.231/24scope global secondary eth0
在linux中在一个网卡上配置的同一个网段的ip有Primary IP和Secondary address之分,如果不是同一个网段的ip总有一个是Primary IP,一条链上的吊链结构中上面的那条主链中的IP是Primary IP,Secondary address是主链结点的子链结点中的IP,一 旦主链上一个节点被删除了,那么它的子链也将不复存在,随之被删除 。
可以通过调整一个参数来实现,当一个primary ip被删除时,如果它有secondary ip的话,那么它的第1个secondary地址(长子)成为primary地址,这样就显得很合理了 , 要不然在删除 primary地址的时候,如果有程序用secondary地址,要么延迟删除 , 要么程序崩溃 。
开启的方法(主机重启后仍然生效的)
echo "net.ipv4.conf.eth0.promote_secondaries=1" /etc/sysctl.conf
ifconfig eth1:1 192.168.5.10/24up:起别名
ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 up
ifconfig eth1:1 192.168.5.10/24 down : 删别名
ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 down
ifconfig eth1 up :启用eth1网卡
ifconfig eth1 down : 禁用eth1网卡,这种禁用是从数据链路层断掉 , 但是网络层ip还在 , 有时候能ping 通 , 大概率是缓存表没有更新
ifdown eth0 : 禁用网卡 , 删除了网络层ip
二者本质上没有什么区别,只是表述方式不同 。如果你非常理解网络协议的原理以及网络的分层架构那么我想你就不会有这个问题,实际上 每一个网卡设备都有一个mac地址 , 但是却可以有多个网络层地址,比如IP地址,然而这个事实无法很好地像用户提供操作接口 , 所以就引出了ip别名(IP aliases)和辅助ip(secondary IP addresses)的概念 。其实很容易理解这个事实 , 按照分层的思想,下层总是为上层服务,也就是为上层提供舞台,上层利用下层的服务,而不必让下层知道自己的情况 , 如果一个拥有合理mac地址的网卡没有配置网络层地址(比如IP地址)这件事合理的话,那么为这个设备配置多个IP地址也是合理的,好比一个ip可以对应多个应用层端口一样,也就是说,下层对上层总是一对多的关系,在分层架构中这种关系是合理的 。