一、配置LVS节点与ipvsadm
1、前期准备
- 服务器与ip规划:
- LVS - 1台
- VIP(虚拟IP):192.168.1.150
- DIP(转发者IP/内网IP):192.168.1.151 - Nginx - 2台(RealServer)
- RIP(真实IP/内网IP):192.168.1.171
- RIP(真实IP/内网IP):192.168.1.172
- 所有计算机节点关闭网络配置管理器,因为有可能会和网络接口冲突:
systemctl stop NetworkManager
systemctl disable NetworkManager
2、创建子接口
- 进入到网卡配置目录,找到咱们的ens33:
- 拷贝并且创建子接口:
* 注:`数字1`为别名,可以任取其他数字都行
cp ifcfg-ens33 ifcfg-ens33:1
- 修改子接口配置: vim ifcfg-ens33:1
- 配置参考如下:
- 重启网络并查看ip配置
service network restart
ip adrr
3、安装ipvsadm
yum install ipvsadm
二、为两台RS配置虚拟IP
1、配置虚拟网络子接口(回环接口)
- 进入到网卡配置目录,找到lo(本地回环接口,用户构建虚拟网络子接口),拷贝一份新的随后进行修改:
- 修改内容如下:
- 重启后通过ip addr 查看如下,表示ok
#也可用service network restart
ifup lo
ip adrr
另一台配置一样
三、为两台RS配置arp
1、ARP响应级别与通告行为的概念
- arp-ignore:ARP响应级别(处理请求)
- 0:只要本机配置了ip,就能响应请求
- 1:请求的目标地址到达对应的网络接口,才会响应请求 - arp-announce:ARP通告行为(返回响应)
- 0:本机上任何网络接口都向外通告,所有的网卡都能接受到通告
- 1:尽可能避免本网卡与不匹配的目标进行通告
- 2:只在本网卡通告
2、配置ARP
- 打开sysctl.conf:
vim /etc/sysctl.conf
- 配置 所有网卡 、 默认网卡 以及 虚拟网卡 的arp响应级别和通告行为,分别对应: all , default , lo :
# configration for lvs
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
- 刷新配置文件:
sysctl -p
- 增加一个网关,用于接收数据报文,当有请求到本机后,会交给lo去处理:
route add -host 192.168.1.150 dev lo:1
- 查看路由配置
- 将上述增加网关的命令加入到系统启动文件中
echo "route add -host 192.168.1.150 dev lo:1" >> /etc/rc.local
四、使用ipvsadm配置集群规则
- 创建LVS节点,用户访问的集群调度者
ipvsadm -A -t 192.168.1.150:80 -s rr -p 5
- -A:添加集群
- -t:tcp协议
- ip地址:设定集群的访问ip,也就是LVS的虚拟ip
- -s:设置负载均衡的算法,rr表示轮询
- -p:设置连接持久化的时间
- 创建2台RS真实服务器
ipvsadm -a -t 192.168.1.150:80 -r 192.168.1.171:80 -g
ipvsadm -a -t 192.168.1.150:80 -r 192.168.1.172:80 -g
- -a:添加真实服务器
- -t:tcp协议
- -r:真实服务器的ip地址
- -g:设定DR模式
-
保存到规则库,否则重启失效
ipvsadm -S -
检查集群
查看集群列表:ipvsadm -Ln
查看集群状态:ipvsadm -Ln --stats -
其他命令
# 重启ipvsadm,重启后需要重新配置
service ipvsadm restart
# 查看持久化连接
ipvsadm -Ln --persistent-conn
# 查看连接请求过期时间以及请求源ip和目标ip
ipvsadm -Lnc
# 查看过期时间
ipvsadm -Ln --timeout
- 更详细的帮助文档:
ipvsadm -h
man ipvsadm
- 更改RS的持久化连接为5秒(便于测试)
ipvsadm -E -t 192.168.1.150:80 -s rr -p 5
- 设置tcp tcpfin udp 的过期时间为1秒(便于测试,一般保持默认)
ipvsadm --set 1 1 1
- 利用ipvsadm -Lnc测试查看
至此 搭建LVS-DR模式全部完成。