linux运维之LVS(一)

linux运维之LVS(一),第1张

关于LVS负载均衡

一、什么是负载均衡:

    负载均衡集群提供了一种廉价、有效、透明的方法,来扩展网络设备和

服务器的负载、带宽、增加吞吐量、加强网络数据处理能力,提高网络的灵活性

和可用性。

二、搭建负载均衡服务的需求:

1)把单台计算机无法承受的大规模的并发访问或者数据流量分担到多台节点设备上

分别处理,减少用户等待响应的时间,提升用户体验。

2)单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备结束后,

将结果汇总,返回给用户,系统处理能力得到大幅度提升。

3)7*24的服务保证,任意一个或多个有限节点设备宕机,要求不能影响业务。

三、LVS的介绍:

    LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器

集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能。

    该项目是在1998年5月由章文嵩博士组织成立的,是中国国内最早出现的自由

软件项目之一。

四、关于LVS的配置使用:

    LVS负载均衡调度技术是在Linux内核中实现的,因此,被称为Linux

虚拟服务器。我们使用该软件配置LVS时候,不能直接配置内核中的ipvs,

而需要使用ipvs的管理工具ipvsadm进行管理,ipvs的管理工具ipvsadm管理ipvs。

五、LVS技术点小结:

1)真正实现负载均衡的工具是ipvs,工作在linux内核层面。

2)LVS自带的ipvs管理工具是ipvsadm。

3)keepalived实现管理ipvs及对负载均衡器的高可用。

4)Red hat工具Piranha WEB管理实现调度的工具ipvs。

六、LVS体系结构与工作原理:

1)LVS集群负载均衡接收服务的所有入站客户端计算机请求,并根据调度算法决定哪个集群节点应该处理回复请求。

负载均衡(LB)有时也被称为LVS Director(简称 Director).

2)LVS虚拟服务器的体系结构如下图,一组服务器通过高速的局域网或者地理分布

的广域网相互连接,在他们的前端有一个负载调度器(Load Balancer)。负载调度器能

无缝地将网络请求调度到真正的服务器上,从而使得服务器集群的结构对客户是透明的,

客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。客户程序

不受服务器集群的影响不需做任何修改。系统的伸缩性通过在服务集群中透明地加入和删除

一个节点来达到,通过检测节点或服务进程故障和正确的重置系统达到高可用性。由于我们的负载调度技术在

linux内核中实现的,我们称之为linux虚拟服务器(Linux Virtual Server)。

七、LVS社区提供了一个命名的约定:

名称:                              缩写         

虚拟IP地址(Virtual IP Address)    VIP

说明:VIP为Director用于向客户端计算机提供服务的ip地址,

比如:www.etiantian.org 域名就解析到vip上提供服务。

-------------------------------------------------------------------------------

真实ip地址(Real Server ip Address)    缩写:VIP

说明:在集群下面节点上使用的ip地址,物理ip地址。

-----------------------------------------------------------------------------------

Director的ip地址(Director ip Adress)  缩写:DIP

说明:Director用于连接内外网络的ip地址,物理网卡上的IP地址,

是负载均衡上的ip。

-------------------------------------------------------------------------------------

客户端主机IP地址(Client IP Address)  缩写:CIP

说明:客户端用户计算机请求集群服务器的IP地址,该地址用作发送

给集群的请求的源ip地址。

----------------------------------------------------------------

LVS集群内部的节点称为真实服务器(Real server),也叫做集群节点。请求集群服务的

计算机称为客户端计算机。

与计算机通常在网上交换数据包的方式相同,客户端计算机、Director

和真实服务器使用IP地址彼此进行通信。

------------------------------------------------------------------------------------------

八、LVS集群的3种工作模式介绍与原理讲解

1)IP虚拟服务软件ipvs,在调度器的实现技术中,IP负载均衡技术是

效率最高的。在已用的ip负载均衡技术中有通过网络地址转换

(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,

我们称之为VS、NAT技术(Virtual Server Network Adress Translation)。

2)在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出通过IP隧道实现虚拟服务器的

方法VS/TUN(Virtual Server via IP Tunneling)和通过直接路由实现虚拟服务

器的方法VS/DR(Virtual Server via Director Routing),它们可以极大地提高系统的伸缩性。

3)淘宝开源的模式FULLNAT。

LVS的四种工作模式:

    缩写及全拼:

NAT(Network Adress Translation)、TUN(Tunneling)、

DR(Director Routing)、FULLNAT(FULL Network address Translation)

-------------------------------------------------------------------------------------------

九、什么是ARP协议:

1) ARP协议:全称"Address Resolution Protocol",中文名地址解析协议,使用ARP协议可

实现通过IP地址获得得对应主机的物理地址(MAC地址)。

  在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的ip地址,

  这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在

物理网路上传输,还必须要知道对方目的主机的物理地址(MAC)才行。这样就存在把IP地址变成

物理地址的地址转换的问题。

    在以太网环境,为了正确地目的主机传送报文,必须把目的主机的32位IP

地址转换成为目的主机48位以太网的地址(MAC地址)。这就需要在互联层有一个服务或功能将

IP地址转换为相应的物理地址(MAC地址),这个服务或者功能就是ARP协议。

    所谓的“地址解析”,就是主机在发送帧之前将目标IP地址转换成目标MAC地址的过程,

ARP协议的基本功能就是通过目标设备的ip地址,查询目标设备的MAC地址,以保证主机

间互相通信的顺利进行。

    ARP协议和DNS有点相像之处,不同点是:DNS是在域名和IP之间的解析,另外,ARP协议不需要

配置服务,而DNS要配置服务才行。

    ARP协议要求通信的主机双方必须在同一个物理网段(即局域网)!

2)关于ARP的小结:

1.ARP全称“Address Resolution Protocol”;

2.实现局域网内通过IP地址获取主机的MAC地址;

3.MAC地址48位主机的物理地址,局域网内唯一;

4.ARP协议类似DNS服务,但不需要配置服务。

5.ARP协议是三层协议。

--------------------------------------------------------------------------------------------------------

十、ARP缓存表:

1)每台安装有TCP/IP协议的电脑都会有一个ARP缓存表(windows 命令提示符里输入arp -a即可)。

  表里的ip地址与MAC地址是一一对应的。

arp常用命令:

    arp -a :查所有记录

    arp -d :清除

    arp -s :绑定IP和MAC

2)ARP缓存表是把双刃剑:

1.主机有了arp缓存表,可以加快ARP的解析速度,减少局域网内广播风暴。

2.正是有了arp缓存表,给恶意黑客带来了攻击服务器主机的风险,这个就是arp欺骗攻击。

3.切换路由器,负载均衡器等设备时,可能会导致短时网络中断。

3)为啥用ARP协议?

  OSI模型把网络工作分为七层,彼此不直接通信打交道,只通过接口。IP地址工作在第三层,

MAC地址工作在第二层。当协议在发送数据包时,需要先封装第三层IP地址,第二层MAC地址的报头,

但是协议只知道目的节点的ip地址,不知道目的节点的MAC地址,又不能跨第二、三层,所以得用ARP协议服务,

来帮助获取目的节点的MAC地址。

4)ARP在生产环境产生的问题及解决办法:

1.ARP病毒,ARP欺骗

2.高可用服务器对之间切换时要考虑ARP缓存的问题。

3.路由器等设备无缝迁移时需要考虑ARP缓存的问题,例如:更换办公室的路由器。

5)ARP欺骗原理:

  ARP攻击就是通过伪造IP地址和MAC地址对实现ARP欺骗的,如果一台主机中了ARP病毒,

那么它就能在网络中产生大量的ARP通信量,很快的进行广播以至于使网络阻塞,攻击者

只要持续不断的发出伪造的ARP响应就能更改局域网中目标主机ARP缓存中的IP-MAC条目,

造成网络中断或者中间人攻击。

LVS 是 Linux Virtual Server :Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。

负载调度器(load balancer) :它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器[多台LB IP]上执行,而client端认为是返回来一个同一个IP【通常把这个IP 称为虚拟IP/VIP】

服务器池(server pool) :一组真正执行client 请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS

共享存储(shared stored) :它为 server pool 提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务

常用术语

VS:Virtual Server #虚拟服务,一个抽象的服务,用于最开始接收 web 请求的服务

Director, Balancer #负载均衡器、分发器

RS:Real Server # 真正提供服务的服务器

CIP: Client IP #用户端IP,发起请求的客户端 IP,一般是公网 IP

VIP:Director Virtual IP #负载均衡器虚拟IP

DIP:Director IP #负载均衡器IP

RIP:Real Server IP #真正提供 web 服务的服务器的 IP

(1)直接路由模式(LVS-DR)

互联网使用比较多的一种模式

DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

DR模式特点

优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

(2)NAT模式(LVS-NAT)

NAT模式是通过网络地址转换的方法来实现调度的。首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),这样真实服务器(RS)就能够接收到客户的请求数据包了。真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器。)把响应后的数据包发送给LB,LB再接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

NAT模式特点:

1、NAT技术将请求的报文和响应的报文都需要通过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多之能10-20台节点

2、只需要在LB上配置一个公网IP地址就可以了。

3、每台内部的节点服务器的网关地址必须是调度器LB的内网地址。

4、NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。

(3)Full NAT模式(LVS-FullNAT)

客户端对VIP发起请求,Director接过请求发现是请求后端服务。Direcrot对请求报文做full-nat,把源ip改为Dip,把目标ip转换为任意后端RS的rip,然后发往后端,rs接到请求后,进行响应,响应源ip为Rip,目标ip还是DIP,又内部路由路由到Director,Director接到响应报文,进行full-nat。将源地址为VIP,目标地址改为CIP

请求使用DNAT,响应使用SNAT

Full NAT模式特点:

FULL NAT 模式也不需要 LBIP 和realserver ip 在同一个网段;

full nat 跟nat 相比的优点是:保证RS回包一定能够回到LVS;因为源地址就是LVS==>不确定

full nat 因为要更新sorce ip 所以性能正常比nat 模式下降 10%

(4)IP隧道模式(LVS-Tunnel)

采用NAT模式时,由于请求和响应的报文必须通过调度器地址重写,当客户请求越来越多时,调度器处理能力将成为瓶颈。为了解决这个问题,调度器把请求的报文通过IP隧道转发到真实的服务器。真实的服务器将响应处理后的数据直接返回给客户端。这样调度器就只处理请求入站报文,由于一般网络服务应答数据比请求报文大很多,采用VS/TUN模式后,集群系统的最大吞吐量可以提高10倍。

它和NAT模式不同的是,它在LB和RS之间的传输不用改写IP地址。而是把客户请求包封装在一个IP tunnel里面,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过LB服务器。

ip隧道模式特点:

负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

四种模式性能比较:

因为DR模式 IP TUNELL 模式都是在package in 时经过LVS ,在package out是直接返回给client,所以二者的性能比NAT 模式高,但IP TUNNEL 因为是TUNNEL 模式比较复杂,其性能不如DR模式;

FULL NAT 模式因为不仅要更换 DST IP 还更换 SOURCE IP 所以性能比NAT 下降10%

4种模式的性能如下:DR ==>IP TUNNEL ==>NAT ==>FULL NAT


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/105359.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-10
下一篇2023-03-10

发表评论

登录后才能评论

评论列表(0条)

    保存