一、工作模式
1、NAT模式
-----主要是修改目标IP地址为RS的IP地址。即请求进入负载均衡器时做DNAT,响应出负载均衡器时做SNAT。
工作方式:
1)客户端请求网站,经过路由器到达负载均衡器,请求源地址是CIP(客户端IP),目标地址为VIP(负载均衡器地址)。(源地址:CIP,目标地址:VIP)
2)负载均衡器(VIP),将客户端请求的目标地址改为后端服务器的RIP地址。(源地址:CIP,目标地址:RIP)
3)RealServer收到请求后,将响应发送到LVS。(源地址:RIP,目标地址:CIP)
4)lvs将源地址改为VIP,并发送给客户端。(源地址:VIP,目标地址:CIP)
注意:在NAT模式中,RealServer的网关必须指向LVS,否则报文无法送达客户端。
1)当用户请求到达Director Server,此时请求的数据报文会先到达内核的PREROUTING链,此时报文的源IP是CIP,目标IP是VIP。
2)PREROUTING链检查发现数据包的目标IP是本机,将数据包送至INPUT链。
3)IPVS内核模块比对数据包请求的服务是否为集群服务,如果是,则修改数据包的目标IP为后端服务器的IP,然后将数据包发至POSTROUTING链,做DNAT转换。此时报文的源IP是CIP,目标IP是RIP
4)POSTROUTING链通过选路,将数据包发送到Real Server。
5)Real Server比对发现目标IP是自己的IP,开始建立响应报文发回给Director Server,此时报文的源IP是RIP,目标IP是CIP.
6)Director Server在响应客户端之前,此时会将源IP地址修改为自己的IP地址,然后响应给客户端,做SNAT转换。此时报文的源IP是VIP。目标IP是CIP。
---------------------------------------------------------------------------------------------------------------------------
2、DR模式
--- 将请求报文的目标MAC地址设定为RS的MAC地址。即做MAC地址转换。
1)客户端将请求发往负载均衡器。(源地址:CIP C-MAC,目标地址:VIP V-MAC)。
2)负载均衡器收到请求后,请求在规则里面存在的地址,将客户端源MAC改为DIP的MAC,目标MAC改为RIP的MAC,并将发送给RS。(源地址:CIP D-MAC,目标地址:VIP R-MAC )。
3)RS发现请求目的MAC是自己,先接受报文,并处理请求报文,将响应报文通过lo接口发送eth0网卡,eth0直接发送给客户端。(源地址:VIP V-MAC,目标地址:CIP C-MAC )。
注意:需要设置lo接口的VIP,不能响应本地网络内的arp请求(也叫ARP抑制)。
1.当用户请求到达Director Server,此时请求的数据报文huixiandao内核空间的PREROUTING链,此时报文的IP是CIP,目标IP是VIP。
2.PREROUTING链检查发现数据包的目标IP是本机,将数据包送至INPUT链,
3.IPVS内核模块比对数据包请求的服务是否为集群服务,如果是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改为RIP的MAC地址,然后将数据包发至POETROUTING链中,此时的源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。
src mac | dst mac | src ip | dst ip |
---|---|---|---|
00:0c:29:f3:1f:de | 00:0c:29:50:d5:63 | 192.168.188.111 | 192.168.188.120 |
src mac | dst mac | src ip | dst ip |
---|---|---|---|
00:0c:29:50:d5:63 | 00:0c:29:e4:4d:1f | 192.168.188.111 | 192.168.188.120 |
src mac | dst mac | src ip | dst ip |
---|---|---|---|
00:0c:29:e4:4d:1f | 00:0c:29:f3:1f:de | 192.168.188.120 | 192.168.188.111 |
---------------------------------------------------------------------------------------------------------------------------------------
3、.lvs-tun模式
在原有的IP报文外再次封装多一层IP首部,内部IP首部(源地址为CIP,目标地址为VIP)外部IP地址首部(源地址为DIP,目标地址为RIP)
-
当用户请求报文到达DS,此时请求的数据报文会先到内核的PREROUTING链。此时源IP是CIP,目标IP是VIP。
-
PREROUTING链检查发现数据包的目标IP是本机,将数据包送至INPUT链。
-
IPVS比对数据包请求的服务是否为集群服务,如果是,在请求报文的首部再次封装一层IP报文,封装源IP为DIP,目标IP是RIP,然后发至POSTROUTING链。此时源IP是为DIP,目标IP是RIP。
-
POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为外层封装多了一层IP首部,所以可以理解为此时通过隧道传输)。此时源IP是DIP,目标IP是RIP。
-
RS收到报文后发现是自己的IP地址,就会将报文接受下来,拆除最外层的IP后,会发现里面还有一层IP首部,而且目标地址是自己的lo接口VIP,那么此时RS开始处理此请求,处理完成滞后,通过lo接口送给eth0网卡,然后向外传递。此时的源IP地址为VIP,目标IP为CIP。