如何在多宿主 Linux 路由器中检测失效的 ISP 并通过备用 ISP 路由流量?

如何在多宿主 Linux 路由器中检测失效的 ISP 并通过备用 ISP 路由流量?

我目前使用 Linux 机器 (CentOS 5.9) 作为路由器。该路由器是多宿主的,使用两个 ISP 连接到互联网。来自 LAN 的互联网流量通过两条线路进行分配。

当某个 ISP 连接中断时,我必须手动将流量路由到其他 ISP。检测失效的 ISP 网关并通过备用 ISP 连接路由流量的最佳方法是什么?

答案1

我会通过一个简单的 cron 作业来实现这一点

#!/bin/sh

PING=$(ping $ETH0ISPGW -I eth0 -c1 -W5 | awk -F '[ /]*' '/rtt/ {print $8}')

if [ -z "$PING" ]; then
        echo "Line is dead"
        echo "do something"
else
        echo "everything ok"
        echo "$PING"
fi

如果线路断开,请删除特定规则,并让它向您发送电子邮件或类似内容。

使用专用的路由平台普富思,它会自行处理多个连接,无论两条线路的配置如何(负载平衡、备份等)。

答案2

您可以使用路线指标。

 route add default gw $gw1 metric 1
 route add default gw $gw2 metric 2

这样,如果链路 1 发生故障,系统将选择辅助路由。虽然不是平衡器,但应该可以完成工作。如果您也需要平衡,我会考虑硬件。

相关内容