LVS几种模式介绍

备注:这篇真的是水文,不看也罢。

LVS,linux virtual server,可提供IP网络层的负载均衡。

其主要模式主要有以下几种:

LVS-NAT  主要通过网络地址转换,修改目的IP实现。Network Address Translation

LVS-TUN  主要封装一层IP头 IP Tunneling

LVS-DR   主要是修改目的MAC  Direct Routing

LVS-FULLNAT   这个是阿里研发的一种模式,主要是解决多vlan的场景,它会修改请求报文的(源/目的)地址、(源/目的)端口。

先看几个LVS的名词定义:

        CIP:客户端ip

        Director:负载调度集群的主机,简称DR

        VIP:Virtual IP,向外提供服务的IP

        RIP:Real Server IP,内部真正提供服务的IP

        DIP:DR主机用于内部通信的IP

一个完整的经过LVS请求的都会涉及到上面几个角色。

1、LVS-NAT

流程示意图:

其请求处理流程:

1.客户端(Client)发送请求到LVS, 目标IP地址为VIP
2. LVS根据某种负载均衡算法选择一个Real-server,并记录连接信息到hash表中,然后修改客户端的request的目的IP地址为选择的RS(这个RIP只是内部通信用的),随后将请求发给RS,此时源IP为CIP,目的IP为RIP;
3. RS收到request包后,发现目的IP是自己的IP,于是处理请求,然后发送reply给LVS,此时源IP为RIP,目的IP是CIP;
4. LVS收到reply包后,修改reply包的的源地址为VIP,原端口为VIP端口;
5. LVS将reply发送给客户端;
6. 客户端来的属于本次连接的包,查hash表,然后发给对应的RS;
7. 客户端发送完毕,此次连接结束时,LVS自动从hash表中删除此条记录;

上面流程的特点是:

1、DR和RS必须是在同一个网段内,RS的网关配置成DIP,RIP和DIP都是用于内网机器间通信的IP。我感觉说的直白点,RS的网关为DR;

2、所有请求响应都要经过DR,这必然会导致DR会成为整个网络的瓶颈。

2、LVS-TUN

1.客户端Client 发送request包到LVS服务器, 目标地址VIP;
2. LVS按照算法选择后端的一个Real-server,并将记录一条消息到hash表中,然后将客户端的request包封装到一个新的IP包里,新IP包的目的IP是RIP,源IP是DIP,然后转发给RS;
3. RS收到包后,解封装,取出客户端的request包,发现还有一个IP包,目的地址是VIP,而RS发现在自己的虚拟网卡tunl0上有这个IP地址,于是处理客户端的请求,处理完成通过虚拟网卡发送给eth0网口发送出去,此时源IP为VIP,目的地址是CIP;
4. 该客户端的后面的request包,LVS直接按照hash表中的记录直接转发给Real-server,当传输完毕或者连接超时,那么将删除hash表中的记录。

该模式中:

RIP,VIP,DIP都可以是公网地址,可以跨网段;

请求报文都走DR,响应不走,直接由RS发送给Client。这个特点使得TUN的性能要相比NAT提升了几倍,且解决了跨网段问题,问题就在于其维护成本挺高的;

3、LVS-DR

1、客户端Client 发送request包到LVS服务器, 目标地址VIP;
2、LVS根据负载均衡算法选择一台active的Realserver,将此RIP所在网卡的mac地址作为目标mac地址,发送到局域网里,因为是在数据链路层,所以必须在同一局域网;
3、RS在局域网中收到这个帧,拆开后发现目标IP不是自己的IP,正常来讲RS会抛弃的,但由于我们在lo上配置了VIP,所以RS会接收该请求包,并进行处理。

4、处理后,RS直接经过网络发送给客户端,源IP为VIP,目的IP为CIP。

LVS-DR技术解决了NAT的DR瓶颈问题,提高性能,但其最大限制就是DR和RIP必须是同一网段的,解决不料跨网段的问题。

4、LVS-FULLNAT

这个是阿里做的。

LVS的DR和NAT模式要求RS和DR在同一个vlan中,导致部署成本过高;TUN模式虽然可以跨vlan,但RealServer上需要部署ipip隧道模块等,网络拓扑上需要连通外网,较复杂,不易运维。

为了解决上述问题,开发出FULLNAT,该模式和NAT模式的区别是:数据包进入时,除了做DNAT,还做SNAT(用户ip->内网ip),从而实现LVS-RealServer间可以跨vlan通讯,RealServer只需要连接到内网。

当客户端访问VIP后,DR会将源IP改成DIP,目的IP改成RIP,RIP同样是通过某种均衡算法找的。

剩下的就是内网调用的事情了,可以是同网段,也可以是不同网段,至于不同Vlan如何通信,这个就不用多说了把,就是路由策略配置的问题了。

FULLNAT相对于之前那三种方式,可能不是完全集中缺点,但避开了他们的很多缺点,比如配置维护都很简单,可以跨网段。现在也是LVS主流的使用模式。

小米的lvs:

参考资料:

最强lvs总结

高并发场景 LVS 安装及高可用实现

LVS 负载均衡原理及安装配置详解

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

关于Oracle VM VirtualBox无法查询IP地址的原因

1.如下,输入ifconfig却没有显示我框住的显示IP。 2.原因有可能: (1)主机没连上网络。 (2)虚拟机网络设置不正确。

bugku-web-你必须让他停下

这里在不停的刷新 页面源码 开发脚本截取同样效果 利用抓包工具将其请求与得到的数据全部记录下来 发现只有10.jpg可以被正常加载出来 将其图片打开 发现没有flag 再将其转化为txt文件 同样不对 这时回到抓包处 查看请求10.jpg文件的报文 得到flag

公司服务器被.rmallox攻击了如何挽救数据?

公司服务器被.rmallox攻击了如何挽救数据? .rmallox这种病毒与之前的勒索病毒变种有何不同?它有哪些新的特点或功能? .rmallox勒索病毒与之前的勒索病毒变种相比,具有一些新的特点和功能。这种病毒主要利用加密技术来威胁用户&am…

HarmonyOS 应用开发之ExtensionAbility组件

ExtensionAbility组件是基于特定场景(例如服务卡片、输入法等)提供的应用组件,以便满足更多的使用场景。 每一个具体场景对应一个 ExtensionAbilityType,开发者只能使用(包括实现和访问)系统已定义的类型。…

什么是广告可见性测量 如何测量广告可见性

广告可见性测量 & 如何测量广告可见性 --- 一起来来认识MOAT 现在是2024年,大家或许还记得大约8年前广告可见性(Ad viewability)成为数字媒体世界的一种货币以来,出版商一直处于不利地位。当广告商用不同的工具和技术武装自…

千川素材投放效果追踪与精准识别:从数据洞察到策略优化的全面跃升

一、数据驱动的投放效果追踪在数字化营销时代,数据的力量不可忽视。对于广告主而言,投放效果追踪不仅是对广告效果的简单度量,更是对市场反应、用户行为和广告策略的深入分析。通过数据驱动的投放效果追踪,广告主可以更加精准地了…

axi4资料

System-on-Chip bus: AXI4 simplified and explained AXI Protocol Overview

视频无水印爬虫采集工具|抖音视频批量下载软件|可导出视频分享链接

全新视频无水印爬虫采集工具,助力您快速获取所需视频! 视频无水印爬虫采集工具,为用户提供了强大的视频采集和下载功能。它可以批量提取关键词相关的视频,同时支持单独视频的提取和下载,操作简便,使用方便。…

在视频号上开小店,这些细节内容你知道吗?过来人经验分享!

大家好,我是电商小布。 现在有越来越多的小伙伴,看到了视频号小店的内部的发展机会,纷纷想要加入这个市场。 但是不了解这个项目,在开店运营的时候都是无处下手的。 这其中的一些细节内容一定要提前的了解清楚。 接下来&#…

基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)

基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化) Hive介绍: Hive是建立在Hadoop之上的数据仓库基础架构,它提供了类似于SQL的语言&…

顶顶通呼叫中心中间件-声音编码自适应配置方法(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-声音编码自适应配置方法讲解(mod_cti基于FreeSWITCH) 声音编码自适应介绍 声音编码自适应,通常在语音通信和音频处理领域中指的是一种能够根据信号特性和传输环境自动调整编码参数的技术。其目的是在不同的网络状况和音质要求下,…

银河麒麟服务器操作系统安装SQLite数据库

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低&a…

举个栗子!Quick BI 技巧(7) :堆积柱状图的制作及应用

众所周知,在数据分析中,堆积柱状图是利用率非常高的一种图,它可以形象地展示一个大分类包含的每个小分类的数据,以及各个小分类的占比,显示单个项目与整体之间的关系。其中百分比堆积柱状图表示该类别数据占该分组总体…

Linux查看重启时间,关机时间,运行时长的指令

Linux查看重启时间,关机时间,运行时长的指令 查看上次启动时间查看系统重启时间查看关机时间查看运行时长 这里测试环境为Ubuntu 16.04 查看上次启动时间 who -b可以通过who --help查看who指令的更多功能 查看系统重启时间 可以通过下面的方式来进行…

平台介绍-搭建赛事运营平台(3)

上文介绍了品牌隔离的基本原理,就是通过不同的前端和微服务来实现。但是确实很多功能是类似的,所以从编程角度还是有些管理手段的。 前端部分:前端部分没有什么特别手段,就是两个独立的项目工程,分别维护。相同的部分复…

提高上架效率:常用的苹果应用商店上架工具的最佳实践与案例分析

摘要 移动应用app上架是开发者关注的重要环节,但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作,各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用,最终指出合理使用工具的重要性。 引言 移动应…

什么是framebuffer,怎么应用(二)————如何打印BMP图片、字幕函数、字符串

如何切换到终端模式 在昨天写的文章中,没有写到如何切换到终端模式,在编译完函数之后,我们需要从桌面切换到终端模式: ALTCTRLF3切换到终端模式后,登录账号名与密码,其余操作均有桌面终端一样。 如何切换…

二十九 超级数据查看器 讲解稿 查询复用

二十九 超级数据查看器 讲解稿 查询复用 ​点击此处 以新页面 打开B站 播放当前教学视频 点击访问app下载页面 百度手机助手 下载地址 大家好,今天我们讲一下超级数据查看器的查询复用功能,这是新版本要增加的功能,这讲是预告。 先介绍…

【能省则省】搭建网站仅50/年 云服务器选择建议 程序员职场刚需云产品 附最新价格对比表

《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准! 【腾讯文档实时更新】云服务器1分钟教会你如何选择教程 2024-开年采购活动 云服务器专区 京东云 阿里云 腾讯云 配置最新价格表 与 官方活动地址 ​ 当前活动…

【python】爬取4K壁纸保存到本地文件夹【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 图片信息丰富多彩,许多网站上都有大量精美的图片资源。有时候我们可能需要批量下载这些图片,而手动一个个下载显然效率太低。因此,编写一个简单的网站图片爬取程序可以帮助我们…