🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# LVS相关概念 [TOC] ## 一、LVS软件基础 ### 1.LVS是什么 LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以再unix/linux平台下实现负载均衡集群功能。是四层负载均衡软件 当并发超过了Nginx上限,就可以使用LVS了。日1000-2000W PV或并发请求1万以下都可以考虑用Nginx。大型门户网站,电商网站需要用到LVS。 LVS已经集成到linux内核中,不需要安装,只需要使用工具或命令进行配置即可 ### 2.LVS资料 官网:http://www.linuxvirtualserver.org/index.html **中文资料** LVS项目介绍 http://www.linuxvirtualserver.org/zh/lvs1.html LVS集群的体系结构 http://www.linuxvirtualserver.org/zh/lvs2.html LVS集群中的IP负载均衡技术 http://www.linuxvirtualserver.org/zh/lvs3.html LVS集群的负载调度 http://www.linuxvirtualserver.org/zh/lvs4.html ### 3.调度算法和工作模式 1. LVS调度算法: 固定调度算法:rr,wrr,dh,sh 动态调度算法:wlc,lc,lblc,lblcr 2. LVS的四种工作模式: NAT模式-TUN模式-DR模式-FULL-NAT模式 ### 4.LVS配置工具 * ipvsadm:命令行管理工具 * keepalive:配置文件管理工具 ### 5.名称概念 CIP:客户端主机IP地址 DIP:负载均衡器的IP地址 VIP:后端服务器对外的虚拟IP RIP:真实服务器的IP地址 ### 6.图解 ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200307/094405758.png) ## 二、工作模式简述 ### 1.DR模式简述: 1. 图说DR模式 ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200307/094414488.png) 2. DR模式原理过程简述: DR模式将报文直接路由给目标真实服务器。在DR模式中,调度器根据各个真实服务器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标IP地址和目标端口,也不封装IP报文,而是将请求报文的数据帧的目标MAC地址改为真实服务器的MAC地址。然后再将修改的数据帧在服务器组的局域网上发送。因为数据帧的MAC地址是真实服务器的MAC地址,并且又在同一个局域网。那么根据局域网的通讯原理,真实服务器是一定能够收到由LB发出的数据包。 真实服务器接收到请求数据包的时候,解开IP包头查看到的目标IP是VIP。(需要在本地的回环接口上面配置VIP和ARP抑制)然后真实服务器做出请求响应,之后根据自己的路由信息将这个响应数据包发送回给客户,并且源IP地址还是VIP。 3. DR模式小结: 1、通过在调度器LB上修改数据包的目的MAC地址实现转发。注意源地址仍然是CIP,目的地址仍然是VIP地址。 2、请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比) 3、因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面 4、RS主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。 5、RS节点的默认网关不需要配置成LB,而是直接配置为上级路由的网关,能让RS直接出网就可以。 6、由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么RS服务器就得使用和VIP相同的端口提供服务。 ### 2.NAT模式简述: 1. 原理简述: 1)客户端请求数据,目标IP为VIP 2)请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(此RIP地址是根据调度算法得出的。)并在连接HASH表中记录下这个连接。 3)数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver的网关必须是LB,然后将数据返回给LB服务器。 4)收到RS的返回后的数据,根据连接HASH表修改源地址VIP&目标地址CIP,及对应端口80.然后数据就从LB出发到达客户端。 5)客户端收到的就只能看到VIP\DIP信息。 2. NAT模式优缺点: 1、NAT技术将请求的报文和响应的报文都需要通过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多只能负载10-20台节点 2、只需要在LB上配置一个公网IP地址就可以了。 3、每台内部的节点服务器的网关地址必须是调度器LB的内网地址。 4、NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。 ### 3.TUN模式简述 原理过程简述: 1)客户请求数据包,目标地址VIP发送到LB上。 2)LB接收到客户请求包,进行IP Tunnel封装。即在原有的包头加上IP Tunnel的包头。然后发送出去。 3)RS节点服务器根据IP Tunnel包头信息(此时就有一种逻辑上的隐形隧道,只有LB和RS之间懂)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理。 4)响应处理完毕之后,RS服务器使用自己的出公网的线路,将这个响应数据包发送给客户端。源IP地址还是VIP地址。 ### 4.FULLNAT模式 LVS的DR和NAT模式要求RS和LVS在同一个vlan中,导致部署成本过高; TUNNEL模式虽然可以跨vlan,但RealServer上需要部署ipip隧道模块等,网络拓扑上需要连通外网,较复杂,不易运维。 为了解决上述问题,开发出FULLNAT,该模式和NAT模式的区别是:数据包进入时,除了做DNAT,还做SNAT(用户ip->内网ip),从而实现LVS-RealServer间可以跨vlan通讯,RealServer只需要连接到内网。 类比地铁站多个闸机。