LVS-DR实验记录
接上一篇:LVS-NAT实验记录
LVS-DR工作原理:
①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的源MAC地址改为自己DIP的MAC地址,目标MAC改为了RIP的MAC地址,并将此包发送给RS。
③.RS发现请求报文中的目的MAC是自己,就会将次报文接收下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡直接发送给客户端。
一,实验背景
1.1,使用了3台VMware虚拟机分别作为:LVS-DR、RS1、RS2;而Client端我尝试用物理机。具体IP划分如下:
Client:物理机(VMnet8)192.168.229.1
VIP(lo:0):192.168.229.200
LVS(ens33):192.168.229.133
RS1-WEB1:192.168.229.142
RS2-WEB2:192.168.229.143
PS:注意要关闭防火墙和SELinux
1.2,在LVS-DR上启用路由转发、3台虚拟机上都添加VIP
[root@lvs-dr ~]#sysctl net.ipv4.ip_forward #查看是否开启路由转发
[root@lvs-dr ~]#net.ipv4.ip_forward = 0 #“0”代表没有开启
[root@lvs-dr ~]#vim /etc/sysctl.conf #开启转发功能
[root@lvs-dr ~]#net.ipv4.ip_forward = 1 #添加进去
[root@lvs-dr ~]#sysctl -p #使生效,"1"代表开启成功
ifconfig lo:0 192.168.229.200/32 #添加VIP到环回口lo:0(在lvs-dr,web1/2上都要配置相同VIP)
二,配置LVS-DR
2.1,安装并启用LVS
[root@lvs-dr ~]# yum install -y ipvsadm.x86_64
[root@lvs-dr ~]# touch /etc/sysconfig/ipvsadm #没创建会无法启动
[root@lvs-dr ~]# systemctl start ipvsadm.service #启动LVS
2.2,配置负载均衡
[root@lvs-dr ~]# ipvsadm -A -t 192.168.229.200:80 -s rr #-A 添加VIP;-t tcp;-s 添加调度规则;rr 轮询
[root@lvs-dr ~]# ipvsadm -a -t 192.168.229.200:80 -r 192.168.229.142:80 -g #-a 添加真实服务器;-r 真实IP;-g DR模式
[root@lvs-dr ~]# ipvsadm -a -t 192.168.229.200:80 -r 192.168.229.143:80 -g
查看当前配置的虚拟服务和各个RS的权重
[root@lvs-dr ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.229.200:80 rr
-> 192.168.229.142:80 Route 1 0 0
-> 192.168.229.143:80 Route 1 0 0
三,RS-WEB服务器配置
3.1,配置web服务(web1/2都需要配置)
#安装httpd服务
[root@web1 ~]yum install -y httpd
#启用http
[root@web1 ~]systemctl start httpd
#设置自启
[root@web1 ~]systemctl enable httpd
#设置主页面(以web1为例)
[root@web1 ~]echo "This is RS1-Web1" >/var/www/html/index.html
3.2,给web服务器设置内核参数(web1/2都需要配置)
#限制ARP响应和通告
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
四,测试&验证
4.1,客户端测试(中间要清一下缓存或者换一个浏览器)
也可以使用命令行测试
C:\Users\Win10>curl 192.168.229.200
This is RS2-Web2
C:\Users\Win10>curl 192.168.229.200
This is RS1-Web1
C:\Users\Win10>curl 192.168.229.200
This is RS2-Web2
C:\Users\Win10>curl 192.168.229.200
This is RS1-Web1
可以看到web服务器根据轮询规则一次换一台接受访问
4.2,查看LVS统计值
[root@lvs-dr ~]# ipvsadm -L -c
IPVS connection entries
pro expire state source virtual destination
TCP 14:47 ESTABLISHED 192.168.229.1:ccag-pib lvs-dr:http 192.168.229.143:http
TCP 14:32 ESTABLISHED 192.168.229.1:7157 lvs-dr:http 192.168.229.143:http
TCP 15:01 ESTABLISHED 192.168.229.1:cnckadserver lvs-dr:http 192.168.229.142:http
TCP 15:02 ESTABLISHED 192.168.229.1:7328 lvs-dr:http 192.168.229.143:http
TCP 01:09 FIN_WAIT 192.168.229.1:cnckadserver lvs-dr:http 192.168.229.142:http
TCP 00:33 FIN_WAIT 192.168.229.1:cnckadserver lvs-dr:http 192.168.229.142:http
4.3,查看当前ipvs模块中的转发情况信息
[root@lvs-dr ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.229.200:80 32 208 0 22974 0
-> 192.168.229.142:80 16 85 0 4786 0
-> 192.168.229.143:80 16 123 0 18188 0
评论
发表评论