[TOC]
### **别名VIP(Alias IP)**
执行以下命令为网卡ens33添加一个别名IP
```
$ ifconfig ens33:100 192.168.2.100/24 up
$ ifconfig ens33:100
ens33:100: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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.csdn.net/chengxuyuanyonghu/article/details/83539966
* https://blog.csdn.net/dog250/article/details/5303542
- 常用命令
- 用户与用户组
- 创建用户与用户组
- 快速脚本
- umask
- Yum源
- 基础Yum源
- Epel源
- 制作Yum源
- 同步Yum源
- 为Yum源配置代理
- 下载RPM及依赖
- 系统与内核
- 获取内核的rpm包
- 升级内核
- Iptables
- 基本语法
- 匹配条件
- 基础匹配条件
- 扩展匹配条件
- Addrtype
- Set
- TCP
- Mark
- Multiport
- 目标
- 基本目标
- 扩展目标
- DNAT
- LOG
- CT
- NOTRACK
- MARK
- IP set
- 连接追踪
- 初识连接追踪
- 连接追踪详解
- NAT
- 思路与参考汇总
- 数据结构
- FAQ
- Keepalived
- 单网卡多VIP
- 安装Keepalived
- 双网卡绑VIP
- 别名VIP和辅助VIP
- LVS
- 安装LVS
- Ipvsadm命令
- 磁盘与分区
- 基础知识
- 创建分区
- 格式化与挂载
- Fstab
- LVM
- LVM扩容
- Swap分区
- Tmpfs
- 网络相关
- 重命名网卡
- resolv.conf
- Tcpdump
- nslookup与dig
- ifcg-xxx
- 主机名
- 软件安装
- NFS
- Squid
- Redsocks
- Shadowsocks
- 时钟同步
- Chrony
- FTP
- 文件句柄
- 简介
- 设置文件句柄
- 其他
- SSH密钥登录
- 进程组-会话-终端
- X11转发
- 环境变量
- 常见问题
- 系统进程数
- 系统调用
- 系统调用FAQ
- 用户程序如何进行系统调用