[TOC]
### **别名VIP(Alias IP)**
执行以下命令为网卡ens33添加一个别名IP
```
$ ifconfig ens33:100 192.168.2.100/24 up
$ ifconfig ens33:100
ens33:100: flags=4163 mtu 1500
inet 192.168.2.100 netmask 255.255.255.0 broadcast 192.168.2.255
ether 00:0c:29:ad:8e:a6 txqueuelen 1000 (Ethernet)
$ ip addr show ens33
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:ad:8e:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.101/24 brd 192.168.2.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.2.100/24 brd 192.168.2.255 scope global secondary ens33:1
valid_lft forever preferred_lft forever
```
使用以下命令删除别名IP
```
$ ifconfig ens33:100 down
```
### **辅助VIP(Secondary IP)**
执行以下命令给ens33设置一个辅助IP(辅助IP的子网掩码要和Primary IP的掩码一样,都为24位)
```
$ ip addr add 192.168.2.100/24 dev ens33
$ ip addr show ens33
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:ad:8e:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.101/24 brd 192.168.2.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.2.100/24 scope global secondary ens33
valid_lft forever preferred_lft forever
```
使用以下命令删除辅助IP
```
$ ip addr del 192.168.2.100/24 dev ens33
```
其实,通过ip命令也能达到和ifconfig命令一样的效果,比如我们先用ifconfig命令添加IP,再用ip命令添加一个,如下:
```
$ ifconfig ens33:99 192.168.2.99/24 up
$ ip addr add 192.168.2.98/24 label ens33:98 broadcast 192.168.2.255 dev ens33
$ ip addr show ens33
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:ad:8e:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.101/24 brd 192.168.2.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.2.99/24 brd 192.168.2.255 scope global secondary ens33:99
valid_lft forever preferred_lft forever
inet 192.168.2.98/24 brd 192.168.2.255 scope global secondary ens33:98
valid_lft forever preferred_lft forever
```
然后,用ifconfig命令删除ip命令添加的IP,用ip命令删除ifconfig命令添加的IP,
```
$ ifconfig ens33:98 down
$ ip addr del 192.168.2.99/24 dev ens33
```
### **Keepalived配置VIP**
keepalived配置vip的方式有如下几种:
* 第一种
```
virtual_ipaddress {
192.168.2.200 # 和192.168.2.200/32效果一样
}
```
查看ens33的IP情况,如下:
```
$ ip addr show ens33
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:81:d1:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.102/24 brd 192.168.2.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.2.200/32 scope global ens33
valid_lft forever preferred_lft forever
```
这种相当于执行了命令`ip addr add 192.168.2.200/32 dev ens33`
* 第二种
```
virtual_ipaddress {
192.168.2.200/24
}
```
我们查看ens33的IP情况:
```
$ ip addr show ens33
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:81:d1:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.102/24 brd 192.168.2.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.2.200/24 scope global secondary ens33
valid_lft forever preferred_lft forever
```
这种相当于执行了命令 `ip addr add 192.168.2.200/24 dev ens33`
* 第三种
```
virtual_ipaddress {
192.168.2.200/24 label ens33:200
}
```
我们查看keepalived自动添加的VIP,如下:
```
$ ip addr show ens33
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:81:d1:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.102/24 brd 192.168.2.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.2.200/24 scope global secondary ens33:200
valid_lft forever preferred_lft forever
```
这就相当于执行了命令`ip addr add 192.168.2.200/24 label ens33:200 dev ens33`
### **命令总结**
```
ip addr add 192.168.2.100/24 dev ens33
ip addr del 192.168.2.100/24 dev ens33
ifconfig ens33:100 192.168.2.100/24 up
ifconfig ens33:100 down
```
### **遗留问题**
别名IP和辅助IP对于keepalived实现VIP有什么不同,目前还不清楚。所以keepalived的三种配置方法目前可以任意选择
### **Reference**
* https://blog.youkuaiyun.com/chengxuyuanyonghu/article/details/83539966
* https://blog.youkuaiyun.com/dog250/article/details/5303542