DR 模式(直接路由模式)
Virtual server via direct routing (vs/dr)
DR 模式是通过改写请求报文的目标 MAC 地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。
同 TUN 模式一样,DR 模式可以极大的提高集群系统的伸缩性。而且 DR 模式没有 IP 隧道的开销,对集群中的真实服务器也没有必要必须支持 IP 隧道协议的要求。
但是要求调度器 LB 与真实服务器 RS 都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。
DR 模式是互联网使用比较多的一种模式。
DR 模式原理图:
DR 模式原理过程简述:
VS/DR 模式的工作流程图如上图所示,它的连接调度和管理与 NAT 和 TUN 中的一样,它的报文转发方法和前两种不同。DR 模式将报文直接路由给目标真实服务器。
在 DR 模式中,调度器根据各个真实服务器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标 IP 地址和目标端口,也不封装 IP 报文,而是将请求报文的数据帧的目标 MAC 地址改为真实服务器的 MAC 地址。
然后再将修改的数据帧在服务器组的局域网上发送。因为数据帧的 MAC 地址是真实服务器的 MAC 地址,并且又在同一个局域网。那么根据局域网的通讯原理,真实复位是一定能够收到由 LB 发出的数据包。
真实服务器接收到请求数据包的时候,解开 IP 包头查看到的目标 IP 是 VIP。(此时只有自己的 IP 符合目标 IP 才会接收进来,所以我们需要在本地的回环借口上面配置 VIP。
另:由于网络接口都会进行 ARP 广播响应,但集群的其他机器都有这个 VIP 的 lo 接口,都响应就会冲突。所以我们需要把真实服务器的 lo 接口的 ARP 响应关闭掉。)然后真实服务器做成请求响应,之后根据自己的路由信息将这个响应数据包发送回给客户,并且源 IP 地址还是 VIP。
DR 模式小结:
1、通过在调度器 LB 上修改数据包的目的 MAC 地址实现转发。注意源地址仍然是 CIP,目的地址仍然是 VIP 地址。
2、请求的报文经过调度器,而 RS 响应处理后的报文无需经过调度器 LB,因此并发访问量大时使用效率很高(和 NAT 模式比)
3、因为 DR 模式是通过 MAC 地址改写机制实现转发,因此所有 RS 节点和调度器 LB 只能在一个局域网里面
4、RS 主机需要绑定 VIP 地址在 LO 接口上,并且需要配置 ARP 抑制。
5、RS 节点的默认网关不需要配置成 LB,而是直接配置为上级路由的网关,能让 RS 直接出网就可以。
6、由于 DR 模式的调度器仅做 MAC 地址的改写,所以调度器 LB 就不能改写目标端口,那么 RS 服务器就得使用和 VIP 相同的端口提供服务。