6 . LVS/DR 原理和特点
(a) 当用户请求到达 Director Server,此时请求的数据报文会先到内核空间的 PREROUTING 链. 此时报文的源 IP 为 CIP,目标 IP 为 VIP
(b) PREROUTING 检查发现数据包的目标 IP 是本机,将数据包送至 INPUT 链
(c) IPVS 比对数据包请求的服务是否为集群服务,若是,将请求报文中的源 MAC 地址修改为 DIP 的 MAC 地址,将目标 MAC 地址修改 RIP 的 MAC 地址,然后将数据包发至 POSTROUTING 链. 此时的源 IP 和目的 IP 均未修改,仅修改了源 MAC 地址为 DIP 的 MAC 地址,目标 MAC 地址为 RIP 的 MAC 地址
(d) 由于 DS 和 RS 在同一个网络中,所以是通过二层来传输.POSTROUTING 链检查目标 MAC 地址为 RIP 的 MAC 地址,那么此时数据包将会发至 Real Server.
(e) RS 发现请求报文的 MAC 地址是自己的 MAC 地址,就接收此报文.处理完成之后,将响应报文通过 lo 接口传送给 eth0 网卡然后向外发出. 此时的源 IP 地址为 VIP,目标 IP 为 CIP
(f) 响应报文最终送达至客户端
DR 特点
DR------》直接路由 通过修改数据包目的 mac 地址,注意 RS 的 arp 抑制问题
集群节点跟 director 必须在同一个物理网络中
real server 可以使用公网地址,实现便捷的远程管理
director 仅负责处理入站请求,响应报文直接由 real server 发给客户端,不经过 director.
real server 不能将网关指向 DIP
不支持端口映射
可以处理更多的用户请求
7 . LVS/Tun 原理和特点
(a) 当用户请求到达 Director Server,此时请求的数据报文会先到内核空间的 PREROUTING 链. 此时报文的源 IP 为 CIP,目标 IP 为 VIP .
(b) PREROUTING 检查发现数据包的目标 IP 是本机,将数据包送至 INPUT 链
(c) IPVS 比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层 IP 报文,封装源 IP 为为 DIP,目标 IP 为 RIP.然后发至 POSTROUTING 链. 此时源 IP 为 DIP,目标 IP 为 RIP
(d) POSTROUTING 链根据最新封装的 IP 报文,将数据包发至 RS(因为在外层封装多了一层 IP 首部,所以可以理解为此时通过隧道传输). 此时源 IP 为 DIP,目标 IP 为 RIP
(e) RS 接收到报文后发现是自己的 IP 地址,就将报文接收下来,拆除掉最外层的 IP 后,会发现里面还有一层 IP 首部,而且目标是自己的 lo 接口 VIP,那么此时 RS 开始处理此请求,处理完成之后,通过 lo 接口送给 eth0 网卡,然后向外传递. 此时的源 IP 地址为 VIP,目标 IP 为 CIP
(f) 响应报文最终送达至客户端
TUN 特点
集群节点可以跨越 internet
real server IP 必须是公网地址
director 仅处理入站请求,响应报文由 real server 直接发往客户端
不支持端口映射
企业中常用的还是 DR 直接路由
来源: http://www.bubuko.com/infodetail-2469164.html