LVS负载均衡

文章介绍了LVS的三种负载均衡技术——NAT、DR和IP隧道的对比,重点讲解了DR模式的工作原理,以及如何使用ipvsadm进行配置。在DR模式下,调度器通过修改MAC地址将请求转发给真实服务器,服务器直接响应客户端,无需回传。文章还提供了详细的部署步骤,包括调度器和真实服务器的配置,以及如何通过arptables屏蔽客户端。
摘要由CSDN通过智能技术生成


一、lvs三种负载均衡技术对比:

NAT:原路径返回,性能较低;若VS和RS不在同一个网段,NAT可以进行转换;
LVS-TUN:ip隧道,不修改请求报文的IP首部,而是通过在原有的IP首部(CIP-VIP)之外,再封装一个ip首部(DIP-RIP)
LVS-FULLNAT:源地址和目标地址都会改变
LVS-DR:传输走2层数据链路层,性能最快
现实中:调度器和真实服务器可能不在同一地点,必须使用互联网,可以使用隧道模式(支持广域网)

对比项网络地址转换(NAT)直接路由(DR)IP隧道(IP TUN)
建立难度有一定难度有一定难度
可扩展性很好
带宽
延迟最大
支持的服务器数量少(10"20)多(>100)多(100)
IP包修改修改IP地址和端口修改IP包的IAO地址对请求包进行IP包装
后台服务器0S任何支持NAT的0S多数支持IP Tunnel
网络连接要求局罅网本地或远程
缺省路由负戟均衡服务器不限不限
实际服务器限制Lo不响应ARPTunI设备不怕应ARP
服务端口映射可以不可以不可以

二、LVS模式-DR

工作原理:
客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP
负载均衡器接收到报文后,发现请求的是在ipvs规则中存在的地址和端口,那么它将客户端请求报文的源MAC地址改为自己的MAC地址,目标MAC改为了Real Server的MAC地址,并将此包发送给Real Server
Real Server发现请求报文中的目标MAC地址是自己,就会把此报文接受下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡,直接发送给客户端。
VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP 的网络请求。
在这里插入图片描述在这里插入图片描述

三、ipvsadm配置参数

参数解释
-A --add-service添加一条新的虚拟服务
-E --edit-service编辑虚拟服务
-D --delete-service删除虚拟服务
-C --clear清除所有的虚拟服务规则
-R --restore恢复虚拟服务规则
-a --add-server在一个虚拟服务中添加一个新的真实服务器
-e --edit-server编辑某个真实服务器
-d --delete-server删除某个真实服务器
-L / -l --list显示内核中的虚拟服务规则
-n --numeric以数字形式显示IP端口
-c --connection显示ipvs中目前存在的连接,也可以用于分析调度情况
-Z --zero将转发消息的统计清零
-p --persistent配置持久化时间
–set tcp tcpfin udp配置三个超时时间(tcp/tcpfin/udp)
-t /-uTCP/UDP协议的虚拟服务
-g /-m / -iLVS模式为:DR / NAT / TUN
-w配置真实服务器的权重
-s配置负载均衡算法,如:rr轮训, wrr, lc等
–timeout显示配置的tcp/tcpfin/udp超时时间
–stats显示历史转发消息统计(累加值)
–rate显示转发速率信息(瞬时值)

四、DR模式的部署

主机名	       ip	             vip	       角色
server1	  192.168.175.11	   192.168.175.100	 调度器(VS)
server2	  192.168.175.12	   192.168.175.100	 真实服务器(RS)
server3	  192.168.175.13	   192.168.175.100	 真实服务器(RS)
server4	  192.168.175.14		                 测试机

实验时:server1-4虚拟机为NAT网络模式,并且在分配的同一个vlan中(Virtual Local Area Network:虚拟局域网);只有VS的客户端对外响应;
ARP协议在第二层,传输不需要网络,经过转发请求,通过VS主机中目的MAC地址修改,客户端可以访问服务机
整个过程中,源地址和目标地址是没有变化的,所以服务器不需要回传,直接把数据传给客户端

1.server1:调度器(VS)

yum install -y ipvsadm
在这里插入图片描述
在这里插入图片描述

2.server2:真实服务器(RS)

yum install -y httpd在这里插入图片描述
在这里插入图片描述

3.server3:真实服务器(RS)

yum install -y httpd在这里插入图片描述
在这里插入图片描述在这里插入图片描述

注意:完成上述操作后,到此步骤功能都可以实现了,但是此时是随机访问的,调度器无反应,因为192.168.175.88在server1-3均有,server1,2,3都有可能被访问,上面的情况是随机访问到server3(真实服务器),显然在企业中是不可能的,客户端不能访问到真实服务器,所以我们要让真实服务器屏蔽客户端,即客户端就访问不到server2和server3,只能访问到调度器(server1)

4.真实服务器(server2和server3)屏蔽客户端

yum install arptables
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.server4进行测试:

在这里插入图片描述
在这里插入图片描述

6.纯代码步骤演示

调度器配置
[root@server1 ~]# yum install -y ipvsadm

[root@server1 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

添加vip
[root@server1 ~]# ip addr add 192.168.56.100/24 dev eth0

添加lvs策略
[root@server1 ~]# ipvsadm -A -t 192.168.56.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 192.168.56.100:80 -r 192.168.56.12:80 -g
[root@server1 ~]# ipvsadm -a -t 192.168.56.100:80 -r 192.168.56.13:80 -g

[root@server1 ~]# 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.56.100:80 rr
  -> 192.168.56.12:80             Route   1      0          0
  -> 192.168.56.13:80             Route   1      0          0

真实服务器配置
server2:
安装测试服务
[root@server2 ~]# yum install -y httpd

[root@server2 ~]# systemctl  start httpd
[root@server2 ~]# echo server2 > /var/www/html/index.html
[root@server2 ~]# systemctl  enable httpd

rs也需要添加vip
[root@server2 ~]# ip a a 192.168.56.100/24 dev eth0

禁用arp
[root@server2 ~]# yum install arptables

[root@server2 ~]# arptables -A INPUT -d 192.168.56.100 -j DROP
[root@server2 ~]# arptables -A OUTPUT -s 192.168.56.100 -j mangle --mangle-ip-s 192.168.56.12

[root@server2 ~]# arptables-save  > /etc/sysconfig/arptables


server3:
安装测试服务
[root@server3 ~]# yum install -y httpd

[root@server3 ~]# systemctl  enable --now httpd
[root@server3 ~]# echo server2 > /var/www/html/index.html

rs也需要添加vip
[root@server3 ~]# ip a a 192.168.56.100/24 dev eth0

禁用arp
[root@server3 ~]# yum install arptables

[root@server3 ~]# arptables -A INPUT -d 192.168.56.100 -j DROP
[root@server3 ~]# arptables -A OUTPUT -s 192.168.56.100 -j mangle --mangle-ip-s 192.168.56.13

[root@server3 ~]# arptables-save  > /etc/sysconfig/arptables
测试
[root@server4 ~]# for i in {1..10}; do curl 192.168.56.100 ;done
server3
server2
server3
server2
server3
server2
server3
server2
server3
server2


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值