当前位置: 首页 > news >正文

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 httpdLVS3:
[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 loLVS3:
#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          #查看节点状态
http://www.lryc.cn/news/66936.html

相关文章:

  • 自学自动化测试,第一份工作就18K,因为掌握了这些技术
  • C++ 类的继承与派生
  • 分布式系统基础理论
  • HttpServletRequestWrapper的使用与原理
  • PBDB Data Service:List of fossil occurrences(化石产出记录列表)
  • 初识C语言
  • Leetcode 322. 零钱兑换(完全背包)
  • 怎么恢复回收站?分享4个宝藏方法!
  • 大模型混战,最先实现“智慧涌现”的会是谁?
  • Powerlink协议在嵌入式linux上的移植和主从站通信(电脑和linux板通信实验)
  • 快速理解基本的cookie、session 和 redis
  • STANet代码复现出现的问题
  • Java 中String对象详解
  • k8s nfs运行问题、etcd问题、calico网络问题
  • Qt--QString字符串类、QTimer定时器类
  • 2023.5.13>>Eclipse+exe4j打包Java项目及获取exe所在文件的路径
  • Centos系统的使用基本教程
  • IDEA生成ER图、UML类图、时序图、流程图等的插件推荐或独立工具推荐
  • Python心经(3)
  • 单工,半双工,全双工通讯
  • 【2023-05-09】 设计模式(单例,工厂)
  • 批量任务导致页面卡死解决方案
  • 避免“文献综抄”,5种写作结构助你完成文献综述→
  • Java异常和反射
  • Accesss数据库的那点事
  • 网络基础学习:osi网络七层模型
  • EndNote X9 引用参考 单击文献编号,不能跳转到文尾文献列表处,咋解决?文献编号 不能跳转 ,怎么办?
  • 用免费蜜罐工具配置Modbus工控蜜罐
  • DataGridXL中快速搜索单元格和底部全屏模式区域隐藏
  • DotNet几种微服务框架,你用过吗?