2.4. 路由方法


红帽企业 Linux 使用网络地址转换( NAT 路由)或Keepalived 的直接路由。这样,管理员可以在利用现有硬件时提供巨大的灵活性,并将负载平衡器集成到现有网络中。

2.4.1. NAT 路由

图 2.3 “通过 NAT 路由实施负载均衡器”,演示了利用 NAT 路由在互联网和专用网络之间移动请求的负载平衡器。

图 2.3. 通过 NAT 路由实施负载均衡器

通过 NAT 路由实施负载均衡器
在该示例中,活动 LVS 路由器中有两个 NIC。互联网的 NIC 在 eth0 上具有实际的 IP 地址和浮动 IP 地址。专用网络接口的 NIC 在 eth1 上具有实际的 IP 地址和浮动 IP 地址。在故障转移时,面向互联网和面向虚拟接口的虚拟接口同时被备份 LVS 路由器接管。位于专用网络中的所有实际服务器都将 NAT 路由器的浮动 IP 用作其默认路由以与活动 LVS 路由器通信,以便它们响应来自互联网的请求的能力不会受到影响。
在本例中,LVS 路由器的公共浮动 IP 地址和专用 NAT 浮动 IP 地址分配到物理 NIC。虽然可以将每个浮动 IP 地址关联到 LVS 路由器节点上自己的物理设备,但并不要求拥有超过两个 NIC。
使用此拓扑时,活动 LVS 路由器接收请求并将其路由到适当的服务器。然后,实际服务器处理请求并将数据包返回到 LVS 路由器,该路由器使用网络地址转换将数据包中实际服务器的地址替换为 LVS 路由器的公共 VIP 地址。此过程称为 IP 伪装,因为实际服务器的实际 IP 地址在请求的客户端中隐藏。
使用此 NAT 路由时,实际服务器可能是运行各种操作系统的任何机器。最大的缺点是 LVS 路由器可能会成为大型集群部署中的瓶颈,因为它必须处理传出和传入的请求。
ipvs 模块使用独立于 iptables 和 ip6tables NAT 自己的内部 NAT 例程。当为 NAT 配置真实服务器而不是 /etc/keepalived/keepalived.conf 文件中的 DR 时,这将有助于 IPv4 和 IPv6 NAT。

2.4.2. 直接路由

构建使用直接路由的负载平衡器设置可提高其他负载平衡器网络拓扑的性能优势。直接路由允许实际服务器直接处理数据包并路由到请求的用户,而不是通过 LVS 路由器传递所有传出数据包。直接路由通过委派 LVS 路由器的任务仅处理传入的数据包,从而减少了网络性能问题的可能性。

图 2.4. 使用直接路由实施负载均衡器

使用直接路由实施负载均衡器
在典型的直接路由负载平衡器设置中,LVS 路由器通过虚拟 IP(VIP)接收传入服务器请求,并使用调度算法将请求路由到实际服务器。实际的服务器处理请求并将响应直接发送到客户端,绕过 LVS 路由器。这种路由方法实现了可扩展性,这样可以添加实际服务器,而 LVS 路由器不会增加负担,将来自实际服务器传出的数据包路由到客户端,这可能会成为繁重网络负载下的瓶颈。

2.4.2.1. 直接路由和 ARP 限制

虽然在负载平衡器中使用直接路由有很多优点,但也存在限制。负载平衡器通过直接路由最常见的问题在于地址解析协议(ARP )。
在典型的情形中,互联网上的客户端发送请求到 IP 地址。网络路由器通常通过相关的 IP 地址将请求发送到其目的地,以使用 ARP 将计算机的 MAC 地址发送到其目的地。ARP 请求广播到网络上的所有连接的计算机,具有正确 IP/MAC 地址组合的计算机将接收数据包。IP/MAC 关联存储在 ARP 缓存中,该缓存定期清除(通常每 15 分钟一次)并重新填充 IP/MAC 关联。
直接路由负载平衡器设置中的 ARP 请求的问题在于,因为对 IP 地址的客户端请求必须与要处理的请求的 MAC 地址关联,负载平衡器系统的虚拟 IP 地址也必须与 MAC 关联。但是,由于 LVS 路由器和实际服务器都具有相同的 VIP,因此 ARP 请求将广播到与 VIP 关联的所有计算机。这可能导致几个问题,例如 VIP 直接与其中一个实际服务器关联并直接处理请求,完全绕过 LVS 路由器并消除负载平衡器设置的目的。
要解决这个问题,请确保传入的请求始终发送到 LVS 路由器,而不是实际的服务器之一。这可以通过过滤 ARP 请求或过滤 IP 数据包来完成。可以使用 arptables 实用程序和 IP 数据包过滤 ARP 过滤,可使用 iptablesfirewalld 进行过滤。这两种方法的不同之处如下:
  • ARP 过滤方法阻止到达实际服务器的请求。这可以防止 ARP 将 VIP 与实际服务器关联,让活动虚拟服务器能够响应 MAC 地址。
  • IP 数据包过滤方法允许将数据包路由到与其他 IP 地址相关的实际服务器。这完全消除了 ARP 问题,最初未在实际服务器上配置 VIP。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.