您现在的位置是:首页 >技术杂谈 >LVS 负载均衡群集的 NAT 模式和 DR 模式网站首页技术杂谈

LVS 负载均衡群集的 NAT 模式和 DR 模式

Gur. 2024-06-17 10:14:33
简介LVS 负载均衡群集的 NAT 模式和 DR 模式

1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 

DR 模式

* 负载各节点服务器通过本地网络连接,不需要建立专用的IP隧道

      原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

     优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

     缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

NAT模式

      原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

     优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。

      缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。

两者的区别

DR模式不使用调度器为公司网关,而是路由设备,调度器只是分配访问的请求任务而回应的web页面,不经过调度器,直接通过网络设备回应,不容易造成阻塞而且所有节点都使用VIP地址。

在nat模式群集中,LSV负载均衡调度器是所有节点的访问internet的网关服务器其外网口地址也最为整个群集的VIP地址,调度器是整个公司网关任何请求都要经过调度器,包括回应的。

2. 基于 CentOS 7 构建 LVS-DR 群集

2.1配置LVS负载调度器


第一步:手动添加虚拟IP地址(VIP)(可以是永久添加也可以是临时添加),采用虚接口的方式,为ens33绑定VIP地址,以便响应群集访问。
[root@lvs1 ~]# nmcli con mod ens33 +ipv4.addresses 192.168.150.100/24    //永久添加
[root@lvs1 ~]# nmcli con up ens33
第二步:下载负载均衡工具
[root@lvs1 ~]# yum install ipvsadm -y

2.2配置LVS-DR群集策略

配置LVS负载均衡服务
[root@lvs1 ~]# ipvsadm -A -t 192.168.150.100:80 -s rr    //对TCP80端口提供负载分流服务,使用的调度为轮询
[root@lvs1 ~]# ipvsadm -ln
[root@lvs1 ~]# ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.12:80    //添加节点服务器 192.168.150.12/
[root@lvs1 ~]# ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.13:80  
[root@lvs1 ~]# ipvsadm-save     #保存配置
[root@lvs1 ~]# systemctl enable ipvsadm

2.3查看节点状态

[root@lvs1 ~]# ipvsadm -ln 

2.4给LVS2与LVS3 创建配置WEB服务器

首先:关闭防火墙

# systemctl stop firewalld.service
# firewall-cmd --state
第一步:搭建静态页面
LVS2:
[root@lvs2 ~]# yum install httpd -y
[root@lvs2 ~]# vim /var/www/html/index.html
web.test.pate,ip:192.168.150.12
[root@lvs2 ~]# systemctl start httpd
 
LVS3:
[root@lvs3 ~]# yum install httpd -y
[root@lvs3 ~]# vim /var/www/html/index.html
web2.test.pate,ip:192.168.150.13
[root@lvs3 ~]# systemctl start httpd

2.5配置节点服务器:需要在虚机中配置

lvs2:
为本机添加一台路由记录,将VIP的数据限制在本地,避免通信混乱
#ifconfig lo:100 192.168.150.100  netmask 255.255.255.255
#route add -host 192.168.150.100 dev lo
 
LVS3:
#ifconfig lo:100 192.168.150.100  netmask 255.255.255.255
#route add -host 192.168.150.100 dev lo

2.6手工在RS端抑制ARP响应

LVS1:
[root@lvs1 ~]#yum install https://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/arptables-0.0.4-8.el7.x86_64.rpm
 
[root@lvs1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@lvs1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@lvs1 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@lvs1 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
 
[root@lvs1 ~]# ipvsadm -ln          #查看节点状态
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。