Linux 中 NIC 故障时动态重新路由特定流量

Linux 中 NIC 故障时动态重新路由特定流量

这是我在这个论坛上的第一个问题。希望以后能帮助到其他人。

我有两个盒子,每个盒子都有两个网卡。我知道使用绑定可以实现一定程度的容错,但我觉得我还需要其他东西。我想要的是不同的流量(PING、LOGIN 等)沿着一条路径,而其他流量(DRBD、Web 等)沿着另一条路径。

万一其中一个链接发生故障,我希望其他流量的一部分(在我的情况下,只是心跳机制的 IP)遵循与 DRBD 和 Web 相同的路径。这可能吗?我需要监控链接状态并相应地进行处理吗?我知道如何静态地执行此操作(iproute 等),但需要动态地执行此操作...

答案1

负载平衡链接教程展示如何标记数据包并动态选择路由。不是标记每个第 n 个数据包,而是根据端口标记数据包。

我的直觉是,您不需要使用条件标记,而只需在每个表中输入冗余路线并正确设置路线优先级。示例:

默认:

default via 10.0.0.1 dev eth0 metric 100
default via 10.0.0.1 dev eth1 metric 110

DRBD 标记:

default via 10.0.0.1 dev eth0 metric 110
default via 10.0.0.1 dev eth1 metric 100

答案2

您不想要问题中要求的内容。使用单键接口。Bonding 有几种不同的模式,以适应各种吞吐量和容错能力的平衡. 请务必花时间根据您的网络功能和应用程序要求进行正确的配置。

也就是说,您可以创建两个绑定设备 Bond0 和 Bond1,它们都具有成员 Eth0 和 Eth1,Bond0 将 Eth0 作为主设备,Bond1 则相反,并将 Bond 接口配置为仅用于故障转移。然后为每个 Bond 接口分配 IP。最后将服务分配给特定 IP。这将导致流量优先使用一个 NIC 或另一个 NIC,但这会造成管理上的麻烦,并且可能会导致比您认为可以解决的问题更多的问题。

相关内容