一、LVS-NAT模式
1.工作流程
(1)当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING
链;此时报文的源IP为CIP,目标IP为VIP
(2)PREROUTING
检查发现数据包的目标IP是本机,将数据包发送至INPUT
链;
(3)IPVS对比数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发送至POSTROUTING
链;此时报文的源IP为CIP,目标IP为RIP;
(4)POSTROUTING
链通过选路,将数据包发送给Real Server;
(5)Real Server对比发现目标为自己的IP,开始构建响应报文发送回给Director Server;此时报文的源IP为RIP,目标IP为CIP;
(6)Director Server 在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端;此时报文的源IP为VIP,目标IP为CIP;
2.NAT模式的特性
(1)RS和DIP都应该使用私网地址,且RS的网关要指向DIP
(2)请求和响应报文都要经由Director转发
(极高负载的场景,Director可能会成为系统瓶颈)
(3)支持端口映射
(4)RS可用使用任意操作系统
(5)RS的RIP和Director的DIP必须在同一IP网络
3.NAT模式的缺点
对Dierctor Server压力会比较大,因为请求和响应都需经由它
二、LVS-DR模式
1.工作流程
(1)当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING
链;此时报文的源IP为CIP,目标IP为VIP;
(2)PREROUTING
检查发现数据包的目标IP是本机,将数据包发送至INPUT
链;
(3)IPVS对比数据包请求的服务是否为集群服务,若是,将请求的报文的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改为RIP的MAC地址,然后将数据包发送至POSTROUTING
链;此时的源IP和目的IP均为修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址
(4)由于DS和RS在同一网络中,所以是通过二层来传输;POSTROUTING
链检查目的MAC地址为RIP的MAC地址,那么此时数据包就会发至Real Server;
(5)RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文;处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出;此时的源IP地址为VIP,目标IP为CIP;
(6)响应报文最终送达至客户端
2.DR模式的特性
(1)确保前端路由器将目标IP为VIP的请求报文发送Director;
a.在前端网关做静态绑定;
b.在RS上使用arptables;
c.在RS上修改内核参数以限制arp通告及应答级别;
修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口上的别名上,并限制其不能响应对VIP地址解析请求
(2)RS的RIP可以使用私网地址,也可以是公网地址;
RIP与DIP在同一网络;
RIP的网关不能指向DIP,以确保响应报文不会经由Director
(3)RS和DS要在同一个物理网络
(4)请求报文要经由Dierctor,但响应不能经由Director,而是直接由RS法往客户端
(5)不支持端口映射
3.DR模式的缺点
RS和DS必须在同一机房中
三、LVS-TUN模式
1.工作流程
(1)当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING
链;此时报文的源IP为CIP,目标IP为VIP;
(2)PREROUTING
检查发现数据包的目标IP是本机,将数据包发送至INPUT
链;
(3)IPVS对比数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为DIP,目标IP为RIP;然后发至POSTROUTING
,此时,源IP为DIP,目标IP为RIP;
(4)POSTROUTING
链根据最新封装的IP报文,将数据包发送至RS(因为在外侧封装多了一层IP首部,所以可以理解为此时通过隧道传输);此时源IP为DIP,目标IP为RIP;
(5)RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆掉最外层的IP后,会发现里面还有一层IP首部,而且目标的自己的lo接口VIP,那么此时RS开始处理此请求,处理完成之后,通告lo接口发送给eth0网卡,然后向外传递;此时的源IP地址为VIP,目标IP为CIP;
(6)响应报文最终送至客户端
2.TUN模式的特性
(1)DIP,VIP,RIP都应该是公网地址;
(2)RS的网关不能,也不可能指向DIP;
(3)请求报文要经由Dierctor,但响应不能经由Director
(4)不支持端口映射
(5)RS的OS得支持隧道功能
四、总结
企业中最常用的是DR实现方式,但NAT配置上比较简单和方便