LVS集群 ----------------(直接路由 )DR模式部署 (二)

一、LVS集群的三种工作模式

  • lvs-nat:修改请求报文的目标IP,多目标IP的DNAT

  • lvs-dr:操纵封装新的MAC地址(直接路由)  

  • lvs-tun:隧道模式

lvs-dr 是 LVS集群的 默认工作模式

NAT通过网络地址转换实现的虚拟服务器,大并发访问时,调度器的性能成为瓶颈lvs压力不适用

DR:使用路由技术实现虚拟服务器,节点服务器需要配置VIP,注意MAC地址广播

TUN:通过隧道方式实现虚拟服务器。

参考上一篇文章

二、LVS工作模式比较

LVs的工作模式及其工作过程:


LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)

1、NAT模式(VS-NAT)


原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的工P地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。
优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。
缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。


2、直接路由模式(VS-DR)


原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的日标mac地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均器。
优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

3、IP隧道模式(VS-TUN)


原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均器。
优点:负载均衡器只负责将请求包分发给后端节点服务器,而Rs将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持"IP Tunneling"。

三、lvs ----------直接路由 (DR模式)

直接路由(Direct Routing):简称 DR 模式,采用半开放式的网络结构,与 TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。

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

直接路由,LVS默认模式,应用最广泛,通过请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变

DR模式两种解决方法:

绑定ARP绑定Ivs 代理服务器(碰不到客户端,一般不用)
关闭ARP 广播 真实服务器(一般采用它)

LVS调度服务器也可以使用公网ip,也可以买公网ip

DR模式的特点:

  1. Director(调度器)和各RS(真实服务器)都配置有VIP(虚拟ip)

  2. 确保前端路由器将目标IP为VIP的请求报文发往Director

  • 在前端网关做静态绑定VIP和Director的MAC地址

  • 在RS上使用arptables工具

arptables -A IN -d $VIP -j DROP
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP

在RS上修改内核参数以限制arp通告及应答级别

/proc/sys/net/ipv4/conf/all/arp_ignore  忽略arp广播
/proc/sys/net/ipv4/conf/all/arp_announce  关闭无敌arp

RS(真实服务器)的RIP(真实ip)可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director

  1. RS和Director要在同一个物理网络

  2. 请求报文要经由Director,但响应报文不经由Director,而由RS直接发往Client

  3. 不支持端口映射(端口不能修改

  4. 无需开启 ip_forward(路由转发)

  5. RS可使用大多数OS系统

操作系统(Operating System,缩写为OS)是一种控制和管理计算机硬件与软件资源的计算机程序

拓朴图:

回环网卡上配置虚拟ip,四台机器共用一个虚拟ip,在Linux中,回环网卡是指用于本地回环测试的虚拟网络接口,通常被标识为lo

四台机器都关闭防火墙、防护

7-1配置负载调度器

net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

#调整/proc响应参数  对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能

[root@zzzcentos1 ~]#systemctl stop firewalld
[root@zzzcentos1 ~]#setenforce 0
[root@zzzcentos1 ~]#ifconfig ens33:0 192.168.246.188/32
[root@zzzcentos1 ~]#ip a
[root@zzzcentos1 ~]#vim /etc/sysctl.conf  #调整/proc响应参数
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
#末行加入
[root@zzzcentos1 ~]#sysctl -p
[root@zzzcentos1 ~]#modprobe ip_vs    ##加载模块
[root@zzzcentos1 ~]#cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@zzzcentos1 ~]#yum install ipvsadm.x86_64 -y
[root@zzzcentos1 ~]#ipvsadm-save >/etc/sysconfig/ipvsadm
[root@zzzcentos1 ~]#systemctl start ipvsadm.service 
[root@zzzcentos1 ~]#systemctl status ipvsadm.service 
● ipvsadm.service - Initialise the Linux Virtual Server
   Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled)
   Active: active (exited) since 三 2024-03-06 15:18:53 CST; 20s ago
  Process: 2969 ExecStart=/bin/bash -c exec /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm (code=exited, status=0/SUCCESS)
 Main PID: 2969 (code=exited, status=0/SUCCESS)

3月 06 15:18:53 zzzcentos1 systemd[1]: Starting Initialise the Linux Virtual Server...
3月 06 15:18:53 zzzcentos1 systemd[1]: Started Initialise the Linux Virtual Server.
[root@zzzcentos1 ~]#ipvsadm -A -t 192.168.246.188:80 -s rr
[root@zzzcentos1 ~]#
[root@zzzcentos1 ~]#ipvsadm -a -t 192.168.246.188:80 -r 192.168.246.8:80 -g
[root@zzzcentos1 ~]#ipvsadm -a -t 192.168.246.188:80 -r 192.168.246.9:80 -g
[root@zzzcentos1 ~]#
[root@zzzcentos1 ~]#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.246.188:80 rr
  -> 192.168.246.8:80             Route   1      0          0         
  -> 192.168.246.9:80             Route   1      0          0         
[root@zzzcentos1 ~]#

7-2 真实服务器配置

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

[root@zzzcentos2 ~]#systemctl stop firewalld
[root@zzzcentos2 ~]#setenforce 0
[root@zzzcentos2 ~]#yum install httpd -y
[root@zzzcentos2 ~]#systemctl start httpd
[root@zzzcentos2 ~]#ifconfig lo:0 192.168.246.188/32
[root@zzzcentos2 ~]#ip a
[root@zzzcentos2 ~]#cd /var/www/html/
[root@zzzcentos2 html]#echo 7-2nihao > index.html
[root@zzzcentos2 html]#cat index.html
7-2nihao
[root@zzzcentos2 html]#sysctl -a |grep arp
[root@zzzcentos2 html]#vim /etc/sysctl.conf
#在末行加入
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@zzzcentos2 html]#sysctl -p

7-3真实服务器配置

[root@zzzcentos3 ~]#systemctl start httpd
[root@zzzcentos3 ~]#ifconfig lo:0 192.168.246.188/32
[root@zzzcentos3 ~]#cd /var/www/html/
[root@zzzcentos3 html]#echo 7-3 nihao > index.html
[root@zzzcentos3 html]#cat index.html
7-3 nihao
[root@zzzcentos3 html]#vim /etc/sysctl.conf 
[root@zzzcentos3 html]#sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@zzzcentos3 html]#

7-4客户机检测:

四、 arp_announce   arp_ignore

vim /etc/sysctl.conf

#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2


五、ARP协议

arp作用:①把ip地址转化为mac地址

                 ② 检测地址是否冲突

arp中没有源ip和目的ip,是发送方ip和接受方ip

arp中没有源ip和目的ip,是发送方ip和接收方ip

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

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

相关文章

3•8向女同胞致敬|营销枢纽SaaS厂商乐通达(ltd.com)正式更名枢纽云

为了向女同胞致敬&#xff0c;我们特地选择3月8日女神节变更公司名称&#xff0c;因为《如果SaaS有性别&#xff0c;那 TA一定是女性 》。 2024年3月8日&#xff0c;“杭州乐通达网络有限公司”名称正式变更为“杭州枢纽云计算有限公司”&#xff08;简称&#xff1a;营销枢纽&…

YOLOv8.1.0安装

【YOLO】YOLOv8训练环境配置 python 3.8.18 cuda 11.3.1 cudnn 8.2.1 pytorch 1.12.1-gpu版 - 知乎 (zhihu.com) 一、Anaconda 默认装好了可用的Anaconda&#xff0c;安装教程见Win10系统anaconda安装 - 知乎 (zhihu.com) 二、在虚拟环境下用conda安装 1.创建虚拟环境 …

双链表的实现(数据结构)

链表总体可以分为三大类 一、无头和有头 二、单向和双向 三、循环和不循环 从上面分类得知可以组合成8种不同类型链表&#xff0c;其中单链表最为简单&#xff0c;双联表最为复杂&#xff0c;两种链表都实现后其余链表都不成问题。 我们前期博客已将完成了单向无头不循环链表…

DNDC土地数据、土壤数据、结果分析、率定验证、土壤碳储量与作物产量、温室气体排放分析、农田减排潜力分析、土地变化下DNDC模拟、气候变化下的DNDC模拟

DNDC模型 DNDC模型是一个用于模拟和追踪农业生态系统中碳氮生物地球化学循环的过程模型&#xff0c;可以用来模拟农业生态系统碳氮排放、农作物产量、土壤固碳作用以及硝酸盐淋失等过程。 模型由两部分组成&#xff1a;第一部分包括土壤气候、植物生长和有机质分解等3个子模型…

二叉搜索树(BST)的创建及增,删,查,改(详解)

目录 初识二叉搜索树&#xff08;BST&#xff09;&#xff1a; 二叉搜索树查找元素&#xff1a; 二叉搜索树修改元素: 二叉搜索树中的增加元素&#xff1a; 二叉搜索树中的删除元素&#xff1a; 初识二叉搜索树&#xff08;BST&#xff09;&#xff1a; 一张图简要概括二…

虚幻4 | 制作游戏——学习记录(一)

1. 启动Epic后下载虚幻4&#xff0c;打开虚幻4后新建一个第三人称游戏项目&#xff0c;效果如下&#xff1a; &#xff08;1&#xff09;内容/ThirdPersonBP/Blueprints中的ThirdPersonCharacter&#xff08;左下角人物&#xff09; 这是模板中使用的主要蓝图类&#xff0c;它…

LED驱动控制芯片SM5166:可消除LED显示模组毛毛虫现象

SM5166是一款LED驱动控制芯片&#xff0c;专为LED显示模组设计&#xff0c;具备多项先进功能。以下是关于SM5166的详细解释&#xff1a; 1. 消除LED显示模组毛毛虫现象&#xff1a;毛毛虫现象是LED显示屏上一种常见的显示问题&#xff0c;表现为在显示动态图像时&#xff0c;L…

LVS (Linux Virtual server)集群介绍

一 集群和分布式 &#xff08;一&#xff09;系统性能扩展方式&#xff1a; Scale UP&#xff1a;垂直扩展&#xff0c;向上扩展,增强&#xff0c;性能更强的计算机运行同样的服务 &#xff08;即升级单机的硬件设备&#xff09; Scale Out&#xff1a;水平扩展&#xff0…

TomCat9的安装与配置

什么是TomCat Tomcat,作为Apache软件基金会下的一个开源项目,是广泛使用的Java Servlet容器和Web服务器。Tomcat提供了运行Java Web应用程序的环境,并且由于其对Servlet和JSP的支持,它成为了许多Java Web应用程序的首选服务器。下面,我们将详细介绍Tomcat的安装与配置过程…

Codeforces Round 932(Div.2) A~E

A.Entertainment in MAC&#xff08;字符串&#xff09; 题意&#xff1a; 恭喜你&#xff0c;你被硕士援助中心录取了&#xff01;但是&#xff0c;你在课堂上感到非常无聊&#xff0c;于是你给自己想了一个游戏。 给你一个字符串 s s s和一个偶数整数 n n n。你可以对它进…

软件测试技术分享 | 测试环境搭建

被测系统的环境搭建&#xff0c;是我们作为软件测试人员需要掌握的技能。 被测系统AUT (Application Under Test) 常见的被测系统即需要被测试的 app&#xff0c;网页和后端服务。大致分为两个方面移动端测试和服务端测试&#xff0c;如下图所示&#xff1a; 常见的被测系统类…

javaSE-----继承和多态

目录 一.初识继承&#xff1a; 1.1什么是继承&#xff0c;为什么需要继承&#xff1a; 1.2继承的概念与语法&#xff1a; 二.成员的访问&#xff1a; 2.1super关键字 2.2this和super的区别&#xff1a; 三.再谈初始化: 小结&#xff1a; 四.初识多态&#xff1a; 4.1多…

RabbitMQ架构详解

文章目录 概述架构详解核心组件虚拟主机&#xff08;Virtual Host&#xff09;RabbitMQ 有几种广播类型 概述 RabbitMQ是⼀个高可用的消息中间件&#xff0c;支持多种协议和集群扩展。并且支持消息持久化和镜像队列&#xff0c;适用于对消息可靠性较高的场合 官网https://www.…

ubuntu22.01安装及配置

前言 本次安装基于VMware Pro 16进行安装。 ubuntu版本&#xff1a;ubuntu-22.04.3-live-server-amd64.iso 1、下载 1.1官网下载 https://ubuntu.com/download 1.2、清华大学镜像网站下载 https://mirrors.tuna.tsinghua.edu.cn/ 进入网站后搜索ubuntu&#xff0c;选择ubu…

谷粒商城【成神路】-【10】——缓存

目录 &#x1f9c2;1.引入缓存的优势 &#x1f953;2.哪些数据适合放入缓存 &#x1f32d;3.使用redis作为缓存组件 &#x1f37f;4.redis存在的问题 &#x1f9c8;5.添加本地锁 &#x1f95e;6.添加分布式锁 &#x1f95a;7.整合redisson作为分布式锁 &#x1f697…

uniapp封装文字提示气泡框toolTip组件

uniapp封装文字提示气泡框toolTip组件 文字提示气泡框&#xff1a;toolTip 因为uniapp 中小程序中没有window对象&#xff0c;需手动调用 关闭 第一种办法关闭&#xff1a;this.$refs.tooltip.close() 第二种办法关闭&#xff1a;visible.sync false 移动端没有现成的toolTip组…

pytorch项目代码记录

目录 1.超过二维的张量写进csv 2.翻转矩阵与绘制热力图 3.切片 4.np按块复制 1.超过二维的张量写进csv #(20,204,273) -> (4080,273) ycsv []for i in range(20):ycsv.append(y[i, 8, :, :].reshape(204,273))with open(y.csv,w,encodingutf-8) as y_obj:writer csv.…

SpringCloud 服务的注册与发现

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第二篇&#xff0c;即使用服务注册和发现的组件&#xff0c;此篇文章会介绍 Eureka、Zookeeper 和 Consu…

C++初阶 类(上)

目录 1. 什么是类 2. 如何定义出一个类 3. 类的访问限定符 4. 类的作用域 5. 类的实例化 6. 类的大小 7. this指针 1.this指针的引出 2. this指针的特性 8. 面试题 1. 什么是类 在C语言中&#xff0c;不同类型的数据集合体是结构体。为了方便管理结构体&#xff0c;我…

CVHub | 万字长文带你全面解读视觉大模型(建议收藏!)

本文来源公众号“CVHub”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;万字长文带你全面解读视觉大模型 0 导读 众所周知&#xff0c;视觉系统对于理解和推理视觉场景的组成特性至关重要。这个领域的挑战在于对象之间的复杂关系…