我想设置一个具有自动故障转移到 3G 链路的 Ubuntu 路由器。我可能可以设置路由和链路聚合,但我不知道如何监控链路状态并在 3G 链路发生故障时拨打该链路。非常感谢提供有用的资源。
答案1
我不确定有什么东西可以为你做到这一点...但是,你可以用一点脚本,一点谷歌搜索,拼凑一个脚本:
- 每 10 分钟 ping 一次 google,超时时间为 2 秒,并且只能从您的“固定”连接(而非 3G 连接)进行(使用标志
-I
)。 - 如果 ping 成功,并且您处于固定连接上,则不执行任何操作。
- 如果您使用的是 3G,并且固定连接上的 ping 通,请关闭 3G 适配器。
- 如果失败,请启动 3G 适配器。
这是我的快速尝试:
#! /bin/bash
CONNECTION=1
main()
{
if ping -q -c 1 -w 1 -I eth0 google.com > /dev/null ; then
echo "Connection is ok!"
if [ $CONNECTION -eq 0 ] ; then
# take the 3g connection down
ifconfig 3GADAPTERNAME down
CONNECTION=1
fi
else
echo "Connection is dead! Long live the connection!"
if [ $CONNECTION -eq 1 ] ; then
# turn the 3g connection on
ifconfig 3GADAPTERNAME up
CONNECTION=0
fi
fi
sleep 5
main
}
main
显然,请3GADAPTERNAME
用您的适配器名称替换。如果您的主连接不同,请切换eth0
。确保将其设置为自动连接(因此,当允许时,它会连接)。该脚本需要以 root 身份运行。