我已经连接到我的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上搜索,但是没有找到任何硬件来发布这个问题
发布于 2023-05-09 14:18:36
不存在以2 2Mbps运行的以太网。如果您有其他可靠地获取带宽报告的方法(例如DSL或3G调制解调器状态页),您可以将此检查合并到bash脚本中,将其保存在/config/scripts
中的某个地方,这样它将在固件升级后存活下来,然后在您的负载平衡分节中进行调用,如下面的示例所示。
在本例中,WAN2位于eth2
上,是备份,而WAN1位于eth1
及其主链接上。您还需要创建具有相应默认值的路由表10和20,并在防火墙修改规则中引用它们:
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
}
}
调用脚本时有三个参数:
#!/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
根据您的检查有一个良好的状态时,返回0
与exit 0
,否则返回1
与exit 1
。
https://serverfault.com/questions/1130742
复制相似问题