1. 理解LVS_DR的工作原理
1.1 LVS_DR数据包流向
为方便进行原理分析,将Client与群集机器放在同一网 络中,数据包流经的路线为
client-->调度器-->节点服务器-->client
-
Director Server: 调度器
-
Real Server: 节点服务器
-
响应报文
- 源 IP --> VIP
- 目的 IP --> CIP
- 客户端发送请求到Director Server (负载均衡器),请求的数据报文(源IP是CIP,目标IP是VIP)到达内核空间。
- Director Server和Real Server在同-一个网络中,数据通过二层数据链路层来传输。
- 内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源MAC地址为Director Server 的MAC地址,修改目标MAC地址为Real Server. 的MAC地址,源IP地址与目标IP地址没有改变,然后将数据包发送给Real Server
- 到达Real Server的请求报文的MAC地址是自身的MAC地址,就接收此报文。数据包重新封装报文(源IP地址为VIP,目标IP为CIP),将响应报文通过lo接口传送给物理网卡然后向外发出。
Real Server直接将响应报文传送到客户端。
注:如果跨网段,则报文通过路由Internet返回给用户
1.2 DR模式的特点
- Director Server 和Real Server必须在同一个物理网络中。
- RealServer可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对RIP进行直接访问。
- Director Server作为群集的访问入口,但不作为网关使用。
- 所有的请求报文经由Director Server,但回复响应报文不能经过Director Server。
- Real Server 的网关不允许指向Director Server IP,即Real Server发 送的数据包不允许经过Director Server。
- Real Server上的lo接口配置VIP的IP地址。
2. LVS-DR中的ARP问题
在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址
发送响应报文需要经过网关路由器的转发,就需要先对网关IP进行ARP请求获取网关接口的MAC地址(因为主机在发送报文给对目标主机首先需要查询本地的ARP缓存表中有没有目标IP和目标MAC的对应关系&#x