首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在edgeroutx5端口中配置故障转移?

如何在edgeroutx5端口中配置故障转移?
EN

Server Fault用户
提问于 2023-05-09 13:40:28
回答 1查看 108关注 0票数 0

我已经连接到我的edgerouterx5端口,2个广域网(WAN1到eth0,WAN2到eth1在故障转移中)

问题: WAN1有10 Mbps,WAN2故障转移有8 Mbps。当WAN1下降,但还不够(例如:1或0.5MPB)时,WAN2故障转移不会进入。

我想要的是,当WAN1降到XX Mbps时,WAN2以故障转移模式运行,超过XX Mbps时返回到WAN1,恢复时间为XX分钟。

其中XX是我手动确定的值。

My外部x:

我没有在这个路由器这里这里这里的ubiquiti用户手册中找到这些信息。

我很感激你的帮助。

PS:如果这不是问这个问题的合适论坛,我很抱歉。我在stackexchange上搜索,但是没有找到任何硬件来发布这个问题

EN

回答 1

Server Fault用户

发布于 2023-05-09 14:18:36

不存在以2 2Mbps运行的以太网。如果您有其他可靠地获取带宽报告的方法(例如DSL或3G调制解调器状态页),您可以将此检查合并到bash脚本中,将其保存在/config/scripts中的某个地方,这样它将在固件升级后存活下来,然后在您的负载平衡分节中进行调用,如下面的示例所示。

在本例中,WAN2位于eth2上,是备份,而WAN1位于eth1及其主链接上。您还需要创建具有相应默认值的路由表10和20,并在防火墙修改规则中引用它们:

代码语言:javascript
运行
复制
load-balance {
group WAN2 {
    exclude-local-dns disable
    flush-on-active disable
    gateway-update-interval 20
    interface eth1 {
        failover-only
        route {
            table 10
        }
        route-test {
            initial-delay 180
            interval 60
            type {
                script /config/scripts/pinger
            }
        }
    }
    interface eth2 {
        route {
            table 20
        }
        route-test {
            initial-delay 180
            interval 60
            type {
                script /config/scripts/pinger
            }
        }
    }
    lb-local disable
    lb-local-metric-change disable
}
group WAN1 {
    exclude-local-dns disable
    flush-on-active disable
    gateway-update-interval 20
    interface eth1 {
        route {
            table 10
        }
        route-test {
            initial-delay 180
            interval 60
            type {
                script /config/scripts/pinger
            }
        }
    }
    interface eth2 {
        failover-only
        route {
            table 20
        }
        route-test {
            initial-delay 180
            interval 60
            type {
                script /config/scripts/pinger
            }
        }
    }
    lb-local disable
    lb-local-metric-change disable
}
}

调用脚本时有三个参数:

代码语言:javascript
运行
复制
#!/bin/bash
targets=(
    '192.168.10.1'
    '192.168.20.1'
    '192.168.30.1' )
if [ $# != 3 ]
then
  echo "Usages: $0   "
  exit 1
fi

group=$1
intf=$2
status=$3

for host in "${targets[@]}"
do
  /bin/ping -n -c 1 -W 1 -w1 -I $intf $host
  if [ $? == 0 ]
    then
      exit 0
  fi
done

# fail

exit 1

该脚本在脚本启动时通过EdgeOS提供的接口使用ping检查三个上行链路主机的可用性,如果其中至少有一个响应,则返回0 (ok),如果没有主机响应,则返回1 (failure)。

您可以使用同样的方法来实现一些逻辑,这样当$intf根据您的检查有一个良好的状态时,返回0exit 0,否则返回1exit 1

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1130742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档