LVS的几种转发模型的基本原理
1、NAT模型
通过修改请求报文的目标IP地址(同时可能修改目标端口,支持端口映射),改为某Real Server的IP地址实现数据包的转发。
1)客户端将请求报文发往前端的负载均衡器,请求报文源地址为CIP目标地址为VIP
2)负载均衡器接受到报文,发现请求的是在ipvs规则里面存在的地址,那么它将客户端的请求报文的目标地址改为了后端服务器的RIP地址并将报文根据算法发送出去。
3)报文送到Real Server上,由于报文的目标地址是自己,所以会响应请求,并将响应报文返还给Director。
4)然后Director将此报文的源地址修改为本机ip并发送给客户端。
特点:
1)集群中各节点跟Directory必须在同一网段
2)DIP,RIP通常为私有地址,仅用于集群,且Real Server的网关要指向DIP
3)支持端口映射和转发
4)Real Server可以使用任意的OS
5)请求报文和响应报文都要经由Director,较大规模应用场景中Director可能成为系统瓶颈
2、DR模型
1)客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP
2)负载均衡器接收到报文后,发现请求的是在ipvs规则中存在的地址和端口,那么它将客户端请求报文的源MAC地址改为自己的MAC地址,目标MAC改为了Real Server的MAC地址,并将此包发送给Real Server
3)Real Server发现请求报文中的目标MAC地址是自己,就会把此报文接受下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡,直接发送给客户端。
注意:各real server的lo接口上配置的VIP不能响应外部请求。
特点:
1)集群节点跟Director必须在同一物理网络中
2)RIP可以使用公网地址,使用便捷的远程控制服务器
3)Direcotr只负责处理入站请求,响应报文由real server直接发往客户端
4)real server不能将网关指向DIP
5)Director不支持端口映射
6)real server支持应用在大多数OS
7)DR比NAT能处理更多的real server
VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP 的网络请求。
3、TUN
1)客户端将请求报文法网前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP
2)负载均衡器受到报文后,发现请求的是在IPVS规则中存在的地址和对应的端口,那么它将在客户端的请求报文的首部再封装一层IP报文,源地址为DIP,目标地址为RIP,并将此包发送给RS。
3)RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己lo接口上的VIP,所以会再次处理请求报文,并将响应报文通过lo接口送往eth0网卡直接发送给客户端。
注意:需要设置lo接口上的VIP不能出现在公网上。
特点:
1)各集群节点可以跨越不同的网络
2)RIP,DIP,VIP必须是公网地址
3)DIrector只负责处理入站请求,响应报文由real server直接发往客户端
4)real server网关不能指向Director
5)real server仅能搭建在支持隧道功能的主机上
6)不支持端口映射
原文地址:https://www.cnblogs.com/wf-aiyouwei/p/10632598.html