LVS 架构
Linux Virtual System
模式
NAT
原理
(a). 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
(b). PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
(c). IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP
(d). POSTROUTING链通过选路,将数据包发送给Real Server
(e). Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP
(f). Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP
实际上就是客户端请求vip服务器是CIP–VIP 转换成 CIP-RIP,RS返回数据时RIP–CIP转换成VIP–CIP
原理图
实战规划
服务器 | ip地址 |
---|---|
DS服务器LVS | vip:192.168.1.220 DIP:172.16.10.10 |
RS1 | RIP:172.16.10.221 |
RS2 | RIP:172.16.10.222 |
LVS-DS
1 | yum install ipvsadm |
LVS-RS
1 | ip route add default via 172.16.10.10 |
总结
LVS dr服务器需要两张网卡,DIP网卡和VIP网卡
CIP和VIP,RIP要互通
RS必须把网关指向DIP
DR
原理
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、 响应报文最终送达至客户端
原理图
实战规划
服务器 | ip地址 |
---|---|
DS | VIP:172.16.10.250 DIP:10.23.23.10 |
RS1 | RIP:10.23.23.20 |
RS2 | RIP:10.23.23.30 |
centos路由器配置
1 | echo "1" > /etc/sys/net/ipv4/ip_forward |
DS配置
1 | ifconfig eno16777736:0 172.16.10.250 broadcast 172.16.10.250 netmask 255.255.255.255 up |
RS配置
1 | ifconfig lo:0 172.16.10.250 broadcast 172.16.10.250 netmask 255.255.255.255 up |
IP-TUN
原理
原理图
实战规划