|NO.Z.00005|——————————|Applications|——|LBC负载均衡集群.V2|——|6台server|
一、LVS-工作方式:LVS工作层级

### --- user:
~~~ 用户空间:更贴近用户;用户连接
### --- kernel:
~~~ 内核空间:更贴近系统,驱动,操作系统,QQ,微信都是在内核空间的
### --- ipvsadm:
~~~ 通过命令行管理工具去触发,类似于/etc/sysconfig开启路由转发。
### --- ipvs:
~~~ 它才是真正的内核组件,是嵌在linux主机内核的,才是真正的LVS 的核心组件,
~~~ 只需要考虑有没有触发,通过命令确认
二、LVS工作模式分类

### --- 第四种模式正在开发,GitHub上可以看到,提交了一个新的字典,目前还是只支持三种模式
### --- NAT模式:
~~~ LVS有两个网卡, 内网网卡:需要和后端的生产服务器建立所谓的数据传输,必须要相互通信。
~~~ 公网网卡:和用户去连接的部分。通过私网和负载路由器相连
### --- TUN模式:
~~~ 负载路由器和用户都是通过公网直接和业务服务器直连的,
~~~ 也就意味着我们的业务服务器在全国各地的情况下通过TUN模式把它结合起来,
~~~ 构成一个完整的负载均衡集群,比较特殊,用途不是特别广泛
### --- DR模式:
~~~ 负载路由器与我们的业务服务器都是处于同一个广播域之中,若外部用户想访问进来的话,
~~~ 需要借助一个物理的路由器进行跳转,这种模式是整个环境中负载量最高的一种方式。
~~~ 也是企业比较容易选择的一种方式。
三、LVS-NAT模式

### --- LVS-NAT模式
~~~ 负载和业务服务器是处于同一个网域之中的,
~~~ 数据包经过交换及路由的传输,会到达负载路由器
~~~ 负载路由想把数据包传递给后端的服务器,
~~~ 所以要经过自己的算法去选择将目标地址改为后面真实服务器的其中一个地址,
~~~ 怎么去确定它们三个其中哪一个呢,是经过算法去决定的。
~~~ 数据包若是选择了11这台服务器,它会把目标地址改为11:80端口,
~~~ 使用的DNAT技术:目标地址转换。目的地址进行更改,完成数据报文的传输,前提是开启路由转发。
~~~ 数据包能够到达客户端吗?肯定是没有任何问题的
~~~ 客户与之能够与源数据服务器建立连接吗,是不行的只有当发出的数据报文的格式源时11,12,13,14,
~~~ 目标是11,12,13,14的时候,源数据报文才能够到达我们的客户端
~~~ rs1、rs2、rs3都是指向DNAT/SNAT,进行数据的转发。
~~~ 所有的数据报文都是需要进过负载路由器进行数据的转发。
1、LVS-NAT模式-总结
### --- LVS-NAT模式-总结
~~~ 集群节点处于同一个网络环境中:
~~~ 真实服务器必须将网关指向负载调度器
~~~ RIP通常是私有IP,仅用于各个集群节点通信
~~~ 负载调度器必须位于RS与DS之间,充当网关:客户与真实服务器之间,
~~~ 支持端口映射:真实服务器的端口不一定一直,只需要在LVS中把对应端口注明明确即可
~~~ 负载调度器必须是Linux操作系统,真实服务器随意;
### --- LVS:linux虚拟服务技术,所以必须是linux系统。
~~~ 进出数据报文都要进过负载调度器机器,压力较大;
四、LVS-DR模式

### --- LVS-DR模式
~~~ 不管是负载调度器,真实服务器都是处于同一个网络域中,必须处于同一个网络域
~~~ 客户设置的是一个私有地址,真实的生产环境中是通过公网去访问的。
~~~ 设置私有地址授课是不涉及到路由器的转发。
~~~ 数据报文的转发是比较困难的,单网络的访问加入路由就可以进行公网访问
~~~ 把数据报文转发给后边某一台真实服务器上,怎么转发:
~~~ 源和目标对应不上,改为目标mac,可以通过三层转,也可以通过三层转,
~~~ 数据报文给rs1,对应不是自己的Mac,而是另外一台Mac,
~~~ 而我们还是想让它接收包,为它设置一个100的IP地址,并且把它隐藏起来。
~~~ 只要rs1自己知道就可以了;rs1会拿着100的IP去返回数据,并传输到客户端。
1、LVS-DR模式-总结
### --- LVS-DR模式-总结
~~~ 集群节点处于同一个广播域中
~~~ 真实服务器将网关指向真实路由器:真实路由器:只是做了一个二层数据报文的修改。
~~~ 负载调度器只负责处理入站请求,压力最小;并发量越大的原有;并发量最大。
~~~ 不支持端口映射:协议层是配置不到的,
~~~ 所以不支持端口映射,客户端访问的80,真实服务器的端口是80 ,访问的443,
~~~ 真实服务器的端口必须是443。
~~~ 负载调度器必须是Linux,真实服务器最好是Linux
五、LVS-TUN模式

### --- LVS-TUN模式
~~~ 公网用户:公网IP
~~~ 北京的负载调度器:公网IP
~~~ 广州的真实服务器2:公网IP
~~~ 上市的真实服务器1:公网IP
~~~ 说明客户端可以被公网IP路由到。客户端发送数据包,可以被负载调度器探测到,并改写。
~~~ 数据包的二次封装。耗费的资源比LVS-NAT模式高一些,不太好用,
~~~ 走的是公网网络,公网网络典型的特点是慢,特殊的环境中生产服务器下,
~~~ 可以执行这种方案,一般不会去使用。
1、LVS-TUN模式-总结
### --- LVS-TUN模式-总结
~~~ 集群所有节点都必须直接/间接拥有公网地址:直接:配一个公网IP,间接:路由转换。
~~~ 真实服务器必须将网关指向真实网关处
~~~ 不支持端口映射:需要对数据报文进行二次封装,端口映射的话不便于进行修改。
~~~ DS与RS必须开启隧道功能:必须要对数据报文进行MAC,TCP,UDP的封装,
~~~ 不然不可以进行LVS-TUN级别的负载均衡的。
~~~ 入站由DS完成,出站由RS完成:入站是需要进过负载调度器的,
~~~ 负载调度器进行二次封装以后转发至真实服务器,
~~~ 真是服务器在进行第二次报文返回给客户真实数据,完成真个链路的负载。
~~~ 负载调度器是Linux操作系统,真实服务器随意:支持隧道功能就可以配置;
~~~ 现在市面上的服务器都支持隧道功能的。
~~~ 压力较大:需要对数据进行二次封装,所以压力较大,用途不是很广泛。
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv001-lbchac
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通