我目前使用 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 发生故障,系统将选择辅助路由。虽然不是平衡器,但应该可以完成工作。如果您也需要平衡,我会考虑硬件。