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 ServerLoaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled)Active: active (exited) since 三 2024-03-06 15:18:53 CST; 20s agoProcess: 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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux--文件类型与权限

Linux上一切皆文件; 蓝色的是目录文件 Linux不以文件的扩展名来区分文件类型,而是在文件属性中有一列专门记录文件类型. ls -l 可以查看 普通文件:.c .cpp .h .txt .pdf .xls (-) 目录文件:文件夹 (d) 管道文件:用于进程间通信的一种文件 (p) 链接文件:相当于W…

学习笔记。。。

1.字符串的拼接 1.sprintf() 往字符串的前面或中间、后面拼接一个字符串。 2.strncpy()用来复制字符串的前n个字符 //dest为目标数组&#xff0c;src为源数组&#xff0c;n为要复制的字符个数 2.char* My_strncpy(char* dest, const char* src, int n) 3.char *strcat(ch…

【研发管理】梳理研发部门的商业画布和常见问题

导读&#xff1a;基于商业画布应用到职能部门分析&#xff0c;从一个新的视角审视带来不一样的思考。本人以研发部门为例&#xff0c;梳理商业画布和常见问题&#xff0c;仅供参考。 目录 1、画布总览​编辑 2、沟通渠道问题 3、客户关系问题 4、核心资源问题 5、关键业务…

linux操作系统虚拟机的环境配置

目录 一、虚拟机安装&#xff08;类似硬件的安装&#xff09; &#xff08;1&#xff09;创建虚拟机 &#xff08;2&#xff09;创建虚拟机 二、IP和主机名称配置 1、设置VM上的IP 2、设置我们电脑上VMnet8的IP 3、设置虚拟机上的IP 主机名称映射 以下是设置主机名映射…

Qt编程技巧总结篇(1)- 画图方面

文章目录 Qt编程技巧总结篇&#xff08;1&#xff09;鼠标左键显示坐标位置鼠标右键拖拽鼠标滚轮放大缩小 小结 Qt编程技巧总结篇&#xff08;1&#xff09; 看了许多的关于C的Qt编程blog&#xff0c;但总有点乱&#xff0c;现在抽出时间对其中关于画图的一些函数进行梳理&…

嵌入式学习day34 网络

TCP包头: 1.序号:发送端发送数据包的编号 2.确认号:已经确认接收到的数据的编号(只有当ACK为1时,确认号才有用) TCP为什么安全可靠: 1.在通信前建立三次握手连接 SYN SYNACK ACK 2.在通信过程中通过序列号和确认号保障数据传输的完整性 本次发送序列号:上次…

Elasticsearch:使用 Streamlit、语义搜索和命名实体提取开发 Elastic Search 应用程序

作者&#xff1a;Camille Corti-Georgiou 介绍 一切都是一个搜索问题。 我在 Elastic 工作的第一周就听到有人说过这句话&#xff0c;从那时起&#xff0c;这句话就永久地印在了我的脑海中。 这篇博客的目的并不是我出色的同事对我所做的相关陈述进行分析&#xff0c;但我首先…

Python错题集-8:AttributeError(找不到对应的对象的属性)

1问题描述 AttributeError: AxesSubplot object has no attribute arc 2代码详情 import matplotlib.pyplot as plt# 创建一个新的图形和坐标轴 fig, ax plt.subplots()# 定义弧线的参数 center (0.5, 0.5) # 圆心坐标 (x, y) width 1.0 # 半径 height 0.5 # 半径 ang…

怎么在学习强国网上发布文章,学习强国投稿发稿方法途径,附学习强国多少钱价格明细表

学习强国是一款受用户欢迎的学习软件&#xff0c;许多人希望在其平台上发布自己的文章&#xff0c;以分享和传播自己的学习成果和心得体会。那么&#xff0c;怎么在学习强国网上发布文章呢&#xff1f;接下来&#xff0c;我们将介绍一些投稿发稿的方法和途径。 首先&#xff0c…

Python使用lxml解析XML格式化数据

Python使用lxml解析XML格式化数据 1. 效果图2. 源代码参考 方法一&#xff1a;无脑读取文件&#xff0c;遇到有关键词的行再去解析获取值 方法二&#xff1a;利用lxml等库&#xff0c;解析格式化数据&#xff0c;批量获取标签及其值 这篇博客介绍第2种办法&#xff0c;以菜鸟教…

Vivado Repository IP Catalog 释疑

Vivado软件自带了一个IP核仓库&#xff0c;可以在IP Catalog界面查看。 在IP目录界面&#xff0c;依次给出了每个IP核的Name(名称)&#xff0c;Interface(接口)&#xff0c;State(状态)&#xff0c;License(许可证)和VLNV&#xff08;标识符&#xff09;。 Interface表示IP核的…

考研经验|如何从考研失败中走出来?

对我来说&#xff0c;太丢人了 其实我在本科的时候在同学眼中&#xff0c;一直很优秀&#xff0c;每年奖学金必有我的&#xff0c;国家励志奖学金&#xff0c;国家奖学金&#xff0c;这种非常难拿的奖学金&#xff0c;我也拿过&#xff0c;本科期间学校有一个公费去新西兰留学的…