[Linux] LVS负载均衡群集——DR模式

一、 DR模式的特点

        直接路由: 在LVS_DR模式下,负载均衡器不修改数据包的IP地址,只修改目的MAC地址。这使得数据包可以直接路由到后端实际服务器上,而不需要返回到负载均衡器。

        高性能: 由于数据包在传输过程中不需要回到负载均衡器,LVS_DR模式具有较低的延迟,提供了高性能的负载均衡。

        负载均衡器无状态: 在LVS_DR模式下,负载均衡器是无状态的,因为它不处理响应流量。这降低了负载均衡器的负担,使其更容易扩展和维护。

        后端服务器真实IP: 客户端直接与后端实际服务器通信,因此客户端看到的是后端服务器的真实IP地址,而不是负载均衡器的IP地址。

        ARP协议处理: 在LVS_DR模式下,负载均衡器需要处理ARP(地址解析协议)请求,以便将数据包正确路由到后端实际服务器。通常,负载均衡器会使用VIP(Virtual IP)来响应ARP请求。

二、LVS-DR模式工作过程

1. 客户端通过VIP将访问请求报文(源IP为客户端IP,目的IP为VIP)发送到调度器


2. 调度器通过调度算法选择最适合的节点服务器,并重新封装数据报文(将源MAC改为调度器的       MAC,目的MAC改为节点服务器的MAC地址),再通过交换机转发请求给节点服务器


3. 节点服务器收到请求报文后,确认目的MAC和目的IP无误后解包并送到应用层进行处理


4. 节点服务器在返回响应报文前,会先重新封装报文(源IP为VIP,目的为客户端IP),再将响应报文先通过lo接口传送给物理网卡,再通过物理网卡发送给客户端

三、LVS-DR模式部署过程

第一步:部署共享服务(主机IP:192.168.136.110)
  95  systemctl stop firewalld.service
  96  systemctl disable firewalld.service
  97  setenforce 0
  98  yum install nfs-utils rpcbind -y
  99  systemctl start rpcbind.service
  100  systemctl start nfs.service
  101  systemctl enable nfs.service
  102  systemctl enable rpcbind.service
  103  mkdir -p /var/www/html/{cxk,xhz}
  104  cd /var/www/html/
  105  ls
  106  echo 'this is cxk_web01!' >cxk/test.html
  107  echo 'this is xhz_web02!' >xhz/test.html
  108  cat cxk/test.html 
  109  cat xhz/test.html 
  110  vim /etc/exports
  111  systemctl enable --now rpcbind nfs
  112  showmount -e
  113  systemctl stop firewalld
  114  setenforce 0
  115  showmount -e
  116  systemctl enable --now rpcbind nfs
  117  showmount -e
  118  vim /etc/exports
  119  systemctl status rpcbind.service 
  120  systemctl status nfs
  121  showmount -e
  122  exportfs -a
  123  showmount -e

第二步:配置节点服务器(192.168.136.120 192.168.136.130) 

两台web节点服务器相同的操作:

   77  systemctl restart network.service
   78  systemctl disable --now firewalld
   79  setenforce 0
   80  showmount -e 192.168.136.110
   81  cd /etc/yum.repos.d/
   82  ls
   83  mkdir bak
   84  mv *.repo bak
   85  rz -E
   86  ls
   87  yum -y install nginx
   88  vim /etc/fstab 
   89  mount -a
   90  df -h
   91  ls
   92  ls /usr/share/nginx/html/
   93  cat te
   94  ls /usr/share/nginx/html/
   95  cat /usr/share/nginx/html/test.html 
   96  vim /etc/nginx/nginx.conf 
   97  systemctl restart nginx
   98  vim /etc/sysconfig/network-scripts/ifcfg-ens33
   99  systemctl restart network nginx
   

  web2节点服务器的后续操作:

第三步:配置虚拟 IP 地址(192.168.136.200)

  两台web节点服务器相同的操作:

   68  vim nginx.conf 
   69  cat /etc/sysconfig/network-scripts/ifcfg-ens33 
   70  cd /etc/sysconfig/network-scripts/
   71  ls
   72  vim ifcfg-ens33 
   73  cat /proc/net/ip_vs
   74  systemctl restart network
   75  vim /etc/sysctl.conf 
   76  cp ifcfg-lo ifcfg-lo:0
   77  ls
   78  vim ifcfg-lo:0
   79  cp ifcfg-ens33 ifcfg-lo:0
   80  vim ifcfg-lo:0
   81  route add -host 192.168.136.200 dev lo:0
   82  cat ifcfg-lo:0
   83  systemctl restart network
   84  ip a
   85  ifconfig 
   86  route add -host 192.168.136.200 dev lo:0
   87  route -n
   88  history

web1网卡设置:

web2网卡设置:

第四步:调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.conf.lo.arp_ignore = 1     #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2   #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1 
net.ipv4.conf.all.arp_announce = 2
sysctl -p

两台web服务器同样操作 :

 第五步:配置负载调度器(192.168.136.100)
  102  ifconfig 
  103  cd /etc/sysconfig/network-scripts
  104  ls
  105  cp ifcfg-ens33 ifcfg-ens33:0
  106  vim ifcfg-ens33:0  #配置虚拟 IP 地址
  107  systemctl restart network
  108  vim /etc/sysctl.conf 
  109  yum -y install ipvsadm.x86_64  #安装服务
  110  ipvsadm-save > /etc/sysconfig/ipvsadm #不做这一项服务启动不了
  111  systemctl restart ipvsadm.service 
  112  modprobe ip_vs  #启动ip_vs模块
  113  cat /proc/net/ip_vs  #查看启动结果/ip_vs版本
     #配置负载分配策略
  114  ipvsadm -ln  #查看节点状态,Route代表 DR模式
  115  ipvsadm -C  #清空规则
  116  ipvsadm -ln
  117  ipvsadm -A -t 192.168.136.200:80 -s rr
  118  ipvsadm -a -t 192.168.136.200:80 -r 192.168.136.120:80 -g  #若隧道模式,-g替换为-i
  119  ipvsadm -a -t 192.168.136.200:80 -r 192.168.136.130:80 -g
  120  ipvsadm
  121  ipvsadm -ln
  122  systemctl disable --now firewalld
  123  setenforce 0
  124  vim /etc/sysctl.conf  #调整 proc 响应参数
  125  history

 

第六步:测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/256781.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

生物识别规划人脸识别方案的概述和特点

方案概述 人脸识别方案采用高性能AI芯片,支持RGB和IR摄像头, 支持LCD显示屏。 方案特点 • 普通RGB摄像头和IR摄像头同时参与3D成像RGB摄像头 支持屏幕回显 • 双目摄像头得到特征点视差计算人脸相 对3D深度信息, 同时利用可见光和红外 光…

【数据结构】树状数组算法总结

知识概览 树状数组有两个作用: 快速求前缀和 时间复杂度O(log(n))修改某一个数 时间复杂度O(log(n)) 例题展示 1. 单点修改,区间查询 题目链接 活动 - AcWing本活动组织刷《算法竞赛进阶指南》,系统学习各种编程算法。主要面向…

[极客大挑战 2019]Havefun1

1.别的博主写的非常好,我就不重复造轮子了 一位优秀师傅写的:https://blog.csdn.net/HackerQY/article/details/128503805

音频格式如何转为mp3?

音频格式如何转为mp3?各种各样的音频是在现代生活中肯定会接触到的,音频不仅能够让我们娱乐,也可以在办公和学习中使用,而且音频的格式非常多种多样,但不同的格式有不同的优缺点,例如兼容性问题&#xff0c…

沙盘模型3D打印加工服务建筑设计模型3D打印展览展示模型3D打印-CASAIM

随着3D打印技术的不断发展,沙盘模型3D打印已经成为建筑行业中的一项创新应用。这种技术能够将设计师的创意以实体形式呈现,为建筑项目的沟通和展示提供了更加直观和便捷的方式。本文将介绍CASAIM沙盘模型3D打印的优势和应用。 一、CASAIM沙盘模型3D打印的…

【MATLAB源码-第101期】基于matlab的蝙蝠优化算BA)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 蝙蝠算法(BA)是一种基于群体智能的优化算法,灵感来源于蝙蝠捕食时的回声定位行为。这种算法模拟蝙蝠使用回声定位来探测猎物、避开障碍物的能力。在蝙蝠算法中,每只虚拟蝙蝠代表…

解决Visual Studio 各版本都出现新建项目后解决方案下没有文件和项目问题

一步一步创建C#控制台应用程序也会出错,这个你可能不会相信,我就遇到了这么一次,就在刚刚,是的,我都不敢相信,用了这么多年的新建一个控制台程序居然不正常了。新建完毕发现里面什么都没有,除了…

代码生成器底层原理:模板框架freemarker

1.按照设置好的模板文件就能生成Java,vue文件,前后端都可生成。 2.也可以进行复杂Excel到处:可以转成xml,用xml来制作模板,在生成excel 3.需要批量生成格式固定的一类文件的需求也可以使用模板框架freemarker 首先引…

四十四、Redis的数据持久化(RDB、AOF)

目录 一、定义 二、RDB 1、默认方案: 2、bgsave方案: 3、bgsave的基本流程: 4、RDB会在什么时候执行?save 60 1000代表什么含义? 5、RDB的缺点: 三、AOF 1、定义: 2、流程:…

【深度学习】Sentence Embedding-BERT-Whitening

前言 flow模型本身很弱,BERT-flow里边使用的flow模型更弱,所以flow模型不大可能在BERT-flow中发挥至关重要的作用。反过来想,那就是也许我们可以找到更简单直接的方法达到BERT-flow的效果。 BERT-whitening则认为,flow模型中涉及到…

ChatGPT引领AI时代:程序员、项目经理、产品经理、架构师、Python量化交易师的翅膀

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在当今AI时代,ChatGPT作为一项卓越…

三本光电从颓废到武汉年薪30w的本科经历经验与浅谈(毕业工作一年的嵌入式软件工程师经验分享)

三本光电从颓废到武汉年薪30w的本科经历经验与浅谈(毕业工作一年的嵌入式软件工程师经验分享) 文章目录 目前情况颓废时期项目时期第一次写单片机代码第一次接触计算机视觉第一次接触Linux驱动开发第一次接触FPGA和Verilog HDL第一次开发STM32创新实践及…

将yolo格式转化为voc格式:txt转xml(亲测有效)

1.文件目录如下所示: 对以上目录的解释: 1.dataset下面的image文件夹:里面装的是数据集的原图片 2.dataset下面的label文件夹:里面装的是图片对应得yolo格式标签 3.dataset下面的Annotations文件夹:这是一个空文件夹&…

自动驾驶技术入门平台分享:百度Apollo开放平台9.0全方位升级

目录 平台全方位的升级 全新的架构 工具服务 应用软件(场景应用) 软件核心 硬件设备 更强的算法能力 9.0版本算法升级总结 更易用的工程框架 Apollo开放平台9.0版本的技术升级为开发者提供了许多显著的好处,特别是对于深度开发需求…

Pycharm中如何使用Markdown?只需装这个插件!

一、前言 由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。 如GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge、简书等…

什么是低代码(Low-code) 低代码开发平台特点-优势介绍

随着数字化转型的加速,越来越多的企业开始认识到应用开发的重要性。然而,传统的应用开发方式往往需要耗费大量的时间和资源,而且开发周期长,难以满足企业的快速需求。在这样的背景下,Low Code Platform(低代码平台)应运…

windows10 固定电脑IP地址操作说明

windows10 固定电脑IP地址操作说明 一、无线网络的IP地址设置方法二、有线网络的IP地址设置方法 本文主要介绍,windows10操作系统下,不同的网络类型,对应的电脑IP地址设置方法。 一、无线网络的IP地址设置方法 在桌面右下角,点击…

OpenHarmony鸿蒙原生应用开发,ArkTS、ArkUI学习踩坑学习笔记,持续更新中。

一、AMD处理器win10系统下,DevEco Studio模拟器启动失败解决办法。 结论:在BIOS里面将Hyper-V打开,DevEco Studio模拟器可以成功启动。 二、ArkTS自定义组件导出、引用实现。 如果在另外的文件中引用组件,需要使用export关键字导…

【JavaSE】Java入门九(异常详解)

目录 异常 1.Java中异常的体系结构 2.异常的处理 3.自定义异常类 异常 在Java中,将程序执行过程中发生的不正常行为称为异常,C语言中没有这个概念,接下来我们重点需要掌握异常处理体系(try, catch, throw, finally&#xff…

A01、关于JVM的GC回收

引用类型 对象引用类型分为强引用、软引用、弱引用,具体差别详见下文描述: 强引用:就是我们一般声明对象是时虚拟机生成的引用,强引用环境下,垃圾回收时需要严格判断当前对象是否被强引用,如果被强引用&am…