网络故障转移

网络故障转移

我有一个带有 2 个链接的基础设施,用于与我的服务器通信,有 2 根电缆,分别连接到 eth0(主)和 eth1(备份 - 连接到 4g 路由器)。我希望尽可能使用 eth0,但当它关闭时,我将切换到 eth1 连接。当我使用 eth1 时,我将在后台测试 eth0 是否再次工作,如果是,我将返回使用 eth1。

我的脚本使用“路由”在接口之间进行切换。

#!/bin/bash
...
//test main interface
if ping -c $N_PING -I $LAN0 $IP_TEST &>/dev/null ; then
    //connecting to main interface (remove backup routes)
    route del -net $BKP_HOST netmask $BKP_MASK $LAN1
    route del -net default gw $BKP_GW $LAN1
else 
//test backup interface
    if ping -c $N_PING -I $LAN1 $IP_TEST &>/dev/null ; then
        //connecting to backup interface (put backup route as default)
        ip route flush table main
        route add -net $HOST netmask $MASK $LAN0
        route add -net default gw $GW $LAN0
        route add -net $BKP_HOST netmask $BKP_MASK $LAN1
        route add -net default gw $BKP_GW $LAN1
        ...
    fi
fi

我的主要目标是尽量减少交易对系统的影响,因为这段代码会定期执行,每当主网络通信时它都会再次使用这段代码。

这是一个好方法吗?或者还有更好的方法吗?

谢谢

相关内容