开发者学堂课程【企业集群平台架构设计与实现:lvs/haproxy/keepalived:企业集群平台架构设计与实现lvs篇2】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/391/detail/5010
企业集群平台架构设计与实现lvs篇2
内容介绍:
一、NAT/FULL NAT
二、IP TUNNEL模式
一、NAT/FULL NAT
接下来我们来看一下第二种模式,这个模式应用很多:
1.NAT模式
结构图:
请求是经过互联网之后,第一步请求转向到服务器上,之后他把请求通过负载调度算法分配到后端任意的算法,后端接收到请求之后,再把数据经过交换机返回到负载均衡器,最后再返回到客户端。所有的请求都是经过LB服务器进来,再通过LB服务器返回出去
NAT模式∶即 Virtual Server via Network Address Translation,也就是网络各地址翻译技术实现虚拟服务器。当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟 IP 地址)改写成选定的 Real Server 地址,同时将报文的目标端口也改成选定的 Real Server的相应端口,最后将报文请求发送到选定的 RealServer。在服务器端得到数据后,Real Server 将数据返回给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟 IP 地址和相应端口, 然后把数据发送给用户,完成整个负载调度过程。
下面是 NAT模式 IP包调度过程图∶
首先还是客户端发送请求,客户端对应的IP是CIP,Lb服务器对应的IP为DIP,发动相应请求之后,源IP保持不变,变得是目的IP地址,由原来的VIP,修改成RIP,即后端Realserver某一台服务器IP地址。修改完后,接再来操作和刚才一样,当接收到这包之后就会对包产生一个响应请求,响应完了之后对包做一个转发,转发格式把自己IP地址当作源IP地址,把目标IP地址当作VIP地址,端口还是保持不变,为80端口,然后把请求返回到LB负载均衡器上。第二块在做转发请求时对目的IP地址做了修改,负载均衡器对目的地址和源IP以及端口修改,回源地址把数据再次传回到LB负载均衡器上。
实现一个正常的链接通信,还需要把发送的源地址改成VIP地址,目的地址修改为CIP地址,所有的IP包进出操作都要经过负载均衡器,后端把请求返回给负载均衡器后,还会修改目的源地址。
流转环节最多的时负载均衡器,这种模式下LB工作是非常高的,当然他也有自己的好处,前端访问的端口通过映射的方法,外网映射到80端口,终端修改的是IP地址,对网络是没有要求的,不在一个网段也没有关系,只要能够互相通信即可,没有限制这两个一定要在一个网段
原理图简述∶
(1)客户端请求数据,目标IP为 VIP
(2)请求数据到达 LB 服务器,LB 根据调度算法将目的地址修改为 RIP 地址及对应端口(此RIP 地址是根据调度算法得出的。)并在连接 HASH 表中记录下这个连接。
(3)数据包从 LB 服务器到达 RS 服务器 webserver,然后 webserver 进行响应。Webserver的网关必须是 LB,然后将数据返回给 LB 服务器。
(4)收到 RS 的返回后的数据,根据连接 HASH表修改源地址为 VIP、目标地址为 aP,及对应端口 80.然后数据就从 LB 出发到达客户端。
(5)客户端收到的就只能看到 VIP\DIP信息。
2.NAT模式优缺点
最主要的缺点所有的请求都要经过LB返回,那么他的负载是很高的,也称为整个系统的故障点和屏障,在整体上来说他的性能是比较地下的。
最主要的有点是对IP地址没有限制,我们可以在一个服务器上配置公网地址即可,每台服务器上server服务器网关地址必须配置为LB内网IP地址
支持端口转发,用户请求的服务器端口可以不一致
NAT技术将请求的报文和响应的报文都需要通过 LB 进行地址改写,因此网站访问量比较大的时候 LB 负载均衡调度器有比较大的瓶颈,一般要求最多之能 10-20台节点
只需要在 LB 上配置一个公网IP地址就可以了。
每台内部的 realserver 服务器的网关地址必须是调度器 LB 的内网地址。
NAT模式支持对 IP 地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。
3.FULL NAT模式
在NAT模式的基础上又升级的一种模式,基本上和NAT模式是一样的。
FULNAT模式把源IP也进行修改了,当用户请求到LB负载均衡器,不但修改目标IP地址,把源IP修改为DIP,DIP和VIP是有区分的,最大的变化即修改IP.
目标IP重新改为DIP,才可发到LB负载均衡器,不但把目标IP做了修改变化,还能把源IP进行修改
整体性能来说,FULNAT模式比NAT模式低10%,他的工作量比NAT模式大,源IP的修改很繁琐
4.FULNAT模式注意事项
FULL NAT 模式也不需要 LBIP 和 realserverip在同一个网段;
FULL NAT 跟 nat 相比的优点是∶保证 RS 回包一定能够回到 LVS;因为源地址就是 ⅣS-> 不确定
FULL NAT 因为要更新 sorce ip 所以性能正常比 NAT模式下降 10%
二、IP TUNNEL模式
1.图解:
前端把用户发送请求,还是到LB服务器上,根据自身负载均衡器调度算法,把请求发送到后端,把数据包封装好到IP隧道,把数据发送到后端,后端server接到请求之后,进行处理数据,处理完成之后直接把数据直接后端服务器返回给用户。
2.TUN ∶
即 Virtual Server via IP Tunneling 也就是通过 IP 隧道技术实现虚拟服务器。在 VS/TUN 方式中,调度器采用 IP 隧道技术将用户请求转发到某个 Real Server,而这个 Real Server 将直接响应用户的请求,不再经过前端调度器。此外,对 Real Server 的地域位置没有要求,可以和 Director Server 位于同一个网段,也可以在独立的一个网络中。因此,在 TUN方式中,调度器将只处理用户的报文请求,从而使集群系统的吞吐量得到提高。
3.基于IP隧道模式:
负载均衡器首先将IP包结构进行改变,在IP封装一个IP包头,根据调度算法经过IP隧道,随机分到后端节点。根据隧道协议来实现,通过协议形式,请求过来后接收包,把相对于的隧道包头详细去掉,去掉后又变成源IP和目标IP,没有做任何修改。实现机制不同,在网络结构上,负载均衡器和server不要求两个服务器在同一个网段。
它和 NAT模式不同的是,它在 LB 和 RS 之间的传输不用改写IP 地址。而是把客户请求包封装在一个 IP tunnel 里面,然后发送给 RS 节点服务器,节点服务器接收到之后解开 1P tunnel 后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过 LB 服务器。
原理图过程简述
客户请求数据包,目标地址 VIP发送到 LB 上。
LB 接收到客户请求包,进行IP Tunnel 封装。即在原有的包头加上 IP Tunnel 的包头。然后会根据 LVS 设置的 LB 算法选择一个合适的realserver;并把 dient 发送的 package 包装到一个新的IP 包里面;新的 1P包的 dst是 realserver 的 IP。
RS 节点服务器根据 1P Tunnel 包头信息收到请求包,realserver 收到这个padkage 后判断dst ip 是目 □,然同解粉H来的】 package 中 dst 是 VIP;会和测手们1的【网-后上是经线邦定了VIp 的ip地址;如果绑定了就会处理这个包,如果没有直接丢掉。我们一般在 realserver上面 lo∶O 绑定了 VIP的 ip地址,就可以处理得到客户的请求包并进行响应处理。
响应处理完毕之后,RS 服务器使用自己的公网线路将这个响应数据包发送给客户端。源1P 地址是VIP 地址。
4.注意事项
优点:
不受网络限制,不要求在统一网段,实现比较灵活,可横向拓展
缺点:
隧道模式对网络管理有差别,传输方式性能很低
TUNNEL 模式必须在所有的 realserver 机器上面绑定 VIP的 IP地址
TUNNEL 模式的vip---->re alserver 的包通信通过TUNNEL模式,不管是内网和外网都能通信,所以不需要 lvs vip 跟 realserver 在同一个网段内
TUNNEL 模式 realserver 会把 packet 直接发给 client 不会给 Ivs 了