一、lvs原理:
经典流传的图解
请求流:
cip------>vip|(ipvs将源为cip---vip 更改为 cip---rip) -----rs01_realip
返回包:
rip----->dr(cip--cip, 更替为vip--cip ) -------cip
二、主机配置
dr配置 主机名
hostname lvs01
关闭防火墙
加载内核
modprobe ip_vs
安装ipvsadm的管理工具
yum install ipvsadm
开启路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
清除所有ipvs的记录
ipvsadm -C
nat配置
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
主机信息:
lvs01 ip地址为:
外网eth0: 172.17.181.216
内网eth1: 10.0.0.179
rs01 ip地址为:
内网eth1: 10.0.0.180
三、lvs集群配置
1) realserver内网默认路由需要指向dr-server,并且realserver建议是单网卡:
安装httpd
yum install httpd -y && systemctl start httpd
添加rs的路由
2) 创建虚拟服务器,监听tcp端口80,使用轮训模式 rr
[root@lvs01 ~]# ipvsadm -A -t 172.17.181.216:80 -s rr
[root@lvs01 ~]# ipvsadm -Ln
3) 挂载后端rs-server (rs已开启http),正式环境脚本化
ipvsadm -a -t 172.17.181.216:80 -r 10.0.0.180:80 -m
ipvsadm语法:
"-A"表示添加虚拟服务器,
"-a"表示添加真实服务器
"-t"用来指定VIP地址及TCP端口
"-r"用来指定RIP地址及TCP端口
"-s"用来指定负载调度算法——rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)
"-m"表示使用NAT群集模式("-g"是DR模式,"-i"是TUN模式)
四、验证
已有访问产生
五、抓包分析
在dr上抓外网、内网的包,并在c端发起请求:
tcpdump -i eth0 -vnn port 80 -w /root/a.cap
tcpdump -i eth1 -vnn port 80 -w /root/b.cap
依据原理,每次新的请求都伴随cip到rip的改写: