开发者社区> 甩锅侠> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

LVS原理讲解

简介: 一、lvs介绍 LVS的英文全名为“Linux Virtual Server”,即Linux虚拟服务器,是一个虚拟的四层交换器集群系统,根据目标地址和目标端口实现用户请求转发,本身不产生流量,只做用户请求转发,目前是负载均衡性能最好的集群系统。
+关注继续查看

一、lvs介绍

LVS的英文全名为“Linux Virtual Server”,即Linux虚拟服务器,是一个虚拟的四层交换器集群系统,根据目标地址和目标端口实现用户请求转发,本身不产生流量,只做用户请求转发,目前是负载均衡性能最好的集群系统。

二、lvs集群的类型:

lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
lvs-dr:操纵封装新的MAC地址
lvs-tun:在原请求IP报文之外新加一个IP首部
lvs-fullnat:修改请求报文的源和目标IP

三、常用的名词

VS:Virtual Server,虚拟服务器,也称为Director
RS:Real Server(lvs),真正的服务器,集群中各节点
CIP:客户端IP
VIP:Director向外部提供服务的IP
RIP:集群节点的服务器IP
DIP:Director与RS通信的IP

四、LVS的三种类型

1、LVS-NAT

img_c2f2555a0ac1fd66b7eb1841f2a99f1f.png
原理简述
客户端向VIP发起请求连接,Director在经过调度之后选取RS,将本地端口与RS的端口做映射,然后RS返还数据Director将数据返还客户端
LVS-NAT特性
1.RIP的网关必须与网关指向DIP
2.可以使用端口映射;即Director将客户端请求的IP端口转换为真是服务器的iP与端口
3.Director会成为系统的瓶颈所在,
4.RS可以为任意的操作系统
5.每台后端服务器的网关必须为调度器的内网地址

2、LVS-DR

img_1a8ca90f453b2efe18ebcb2455d570e5.png
原理简述
当客户端向VIP发起请求时,[源CIP;目的VIP]数据包通过路由器发送到Director。然后Director不修改其源IP目的iP。经过调度后将目的MAC改为RS的MAC,RS收到数据之后发现目的IP为本机的L0接口就将其收下,然后找到数据再将源IP改为L0目的IP为CIP直接通过公网返回给客户端
架构特性
1.必须保证前端路由通过ARP地址解析将数据转发至Director,数据不能被RS接收
2.RS可以使用私网地址,也可以使用公网IP
3.Director只负责调度。
4.Director与RS必须在同一物理段中
5.不支持端口映射
6.RS的网关为前端路由,不能为Director
7.RS支持大多出OS(可以拒绝ARP响应的系统)

3、LSV-tull

img_80e2babf2cf82a826e7b2815cc0064da.png
原理简述
客户端向VIP发送请求时,[源CIP;目的VIP],Director经过调度轮询后选择一个RS后使用隧道技术再次封装后向RS发送【源DIP;目的RIP [源CIP;目的VIP]】,RS通过隧道收到请求后拆开数据后得到[源CIP;目的VIP],发现目的IP为自己L0接口的IP得,后就把数据收下,找到数据后将数据直接通过公网返还给客户端[源VIP;目的CIP]
特性
1.RIP、DIP、VIP必须为公网IP
2.RS网关不指向Director
3.请求报文由Director转发至RS,回复报文由RS直接发送至客户端
4.不支持端口映射
5.RS的OS必须支持隧道技术
6.Director与RS、RS与RS可以跨网段、跨机房。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
注解的原理
前面介绍了如何使用Java内置的注解以及如何自定义一个注解,接下去看看注解实现的原理,看看在Java的大体系下面是如何对注解的支持的。
802 0
原理……
昨天跟同学讨论技术问题,没办法,几个技术男在一起讨论的不是感情问题就是技术问题,而我是一个没有感情的人,所以只能讨论技术了,哎……同学似乎有点悟性,告诉我,我给他提供的资料都是操作性的,很多原理不清楚,我开玩笑的说,大学上的那些导论,原理什么课程的时候你都不在乎,其实我也不在乎,当时都是注重如何操作,因为原理太抽象了,听起来给人昏昏欲睡的感觉,原因是自己不懂,因为不懂,就觉得没意思,然后就不听了。
398 0
线程池的实现原理
1、线程池简介:    多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。        假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。
1098 0
机器学习实战第五章(Chapter5):Logistic回归-程序原理详解
这一个章节中作者主要运用了Logistic回归分类器进行分类,分类器的函数形式是Sigmoid函数,过程可以概括为:每个输入特征乘以一个回归系数,然后将所有的结果值相加,将总和带入Sigmoid函数中进行分类,整个过程也可以被看成概率估计。
1178 0
一文详解 ArrayDeque 双端队列使用及实现原理
deque(double-ended queue)双端队列,是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。
0 0
keep-alive的使用场景跟原理分析(超详细讲解)
keep-alive的使用场景跟原理分析(超详细讲解)
0 0
+关注
甩锅侠
精通Centos、Ubuntu、Redhat、Windows 开机和重启
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Patroni原理分享
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载