LVS负载均衡群集(DR直连路由模式)
LVS负载均衡群集(DR直连路由模式)
LVS-DR工作原理
1.1 LVS-DR数据包流向分析
- 客户端发送请求到Director Server(均衡服务器),请求的数据报文(源IP是CIP,目的IP是VIP)到达内核空间。
- Director Server和Real Server在同一个网络中,数据通过二层数据链路层来传输。
- 内核空间判断数据包的目的IP是VIP,集群服务器重新封装数据包**修改源MAC地址为Director Server的MAC地址,修改目的MAC地址为节点服务器的MAC地址,**源IP地址与目标IP地址没有改变,然后将数据包发送给Real Server。
- 到达Real Server的请求报文的MAC地址是自身的MAC地址,就接收此报文。数据包重新封装报文(源IP地址为VIP,目标IP为CIP),将响应报文通过lo接口传送给物理网卡然后向外发出。
- Real Server直接将响应报文传给客户端。
1.2 DR模式的特点:
(1)Director Server(调度器) 和 Real Server(节点服务器) 必须在同一个物理网络中。
(2)Real Server可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对RIP进行直接访问。
(3)Director Server作为群集的访问入口,但不作为网关使用。
(4)所有的请求报文经由Director Server, 但回复响应报文不能经过Director Server。
(5) Real Server 的网关不允许指向Director Server IP, 即Real Server发送的数据包不允许经过Director Server。(RS的网关地址只能指定真实的路由器网关)
(6) Real Server 上的 lo 接口配置VIP的IP地址。
二、LVS-DR中的ARP问题
2.1 问题一:VIP地址相同导致响应冲突
问题原因:
在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址,在局域网中具有相同的IP地 址,势必会造成各服务器ARP通信的紊乱。
- 当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会收到ARP广播。
- 只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播。
解决方法:
对节点服务器进行处理,使其不响应针对VIP的ARP请求
- 使用虚拟接口lo:0承载VIP地址
- 设置内核参数arp_ignore=1: 系统只响应目的IP为本地IP(物理网卡的地址,而不是lo网卡的虚接口地址)的ARP请求
2.2问题二:返回报文时源地址使用VIP,导致网关设备的ARP缓存表紊乱
问题原因:
-
RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路