今天给伙伴们分享一下LVS 负载均衡FULL-NAT模式,希望看了有所收获。
我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!
如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。
一、LVS FULLNAT模式工作原理
- 当用户请求到达 Director Server,此时请求的数据报文会先到内核空间的 PREROUTING 链。 此时报文的源 IP 为 CIP,目标 IP 为 VIP
- PREROUTING 检查发现数据包的目标 IP 是本机,将数据包送至 INPUT 链
- IPVS 比对数据包请求的服务是否为集群服务,若是,修改数据包的源IP地址分发服务器IP,目标 IP 地址为后端服务器 IP,然后将数据包发至 POSTROUTING 链。 此时报文的源 IP 为 DIP,目标 IP 为 RIP
- POSTROUTING 链通过选路,将数据包发送给 Real Server
- Real Server 比对发现目标为自己的 IP,开始构建响应报文发回给 Director Server。 此时报文的源 IP 为 RIP,目标 IP 为 DIP
- Director Server 在响应客户端前,此时会将源 IP 地址修改为自己的 VIP 地址,然后响应给客户端。 此时报文的源 IP 为 VIP,目标 IP 为 CIP
-
vlvs-fullnat(双向转换)
-
通过请求报文的源地址为DIP,目标为RIP来实现转发:对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发:
- CIP --> DIP VIP --> RIP
-
架构特点:这是一种对nat模型的改进,是一个扩展,使得RS与Director可以处于不同网络。
- RIP,DIP可以使用私有地
- RIP和DIP可以不再同一个网络中,且RIP的网关未必需要指向DIP;
- 支持端口映射;
- RS的OS可以使用任意类型;
- 请求报文经由Director,响应报文也经由Director
二、LVS 四种模式的区别
-
lvs-nat与lvs-fullnat:请求和响应报文都经由Director
- lvs-nat: RIP的网关要指向DIP
- lvs-fullnat: RIP和DIP未必在同一IP网络,但要能通信
-
lvs-dr与lvs-tun:请求报文要经由Director,但响应报文由RS直接发往Client
- lvs-dr:通过封装新的MAC首部实现,通过MAC网络转发
- lvs-tun:通过在原IP报文外封装新IP头实现转发,支持远距离通信
-
LVS NAT, DR模式中,RS跟DS必须在同一个VLAN中,当集群规模较小时,使用 NAT、DR 模式都是没有问题的,当集群内有几十台以上时,那么这些服务器通常都不在同一个 VLAN/网段 内了。这时,必须再研发出一种能支持跨 VLAN/网段 通信的模式,FULLNAT 模式就是