在编写自己的软件之前,我正在寻找管理冗余互联网连接的软件。我确信很多人已经编写了快速技巧来做到这一点,但是有很多奇怪的极端情况......
我们工作时有两个 Internet 连接,并且(不幸的是)没有足够的地址空间来运行 BGP,因此不幸的是我们只能使用次优的解决方案。无论如何,其中一个连接比另一个连接快得多,因此我们将它们用作主连接和备份连接。
目前,它们是通过运行手动切换的,例如ip rule del pref 2500
(使用备份)或ip rule add pref 2500 from all lookup comcast
(将其添加回来)。
不幸的是,确定连接是否断开的唯一方法是通过 ping 或类似方法 - 两者都使用外部调制解调器桥或调制解调器路由器,因此以太网链路保持正常状态。外部设备有时知道它已关闭,但并非总是如此(而且我认为它们不会以任何有用的方式公开这一点,例如发送 ICMP 无法访问或通过 SNMP。
- 只需要添加/删除
ip rule
. NAT、fwmark等已经设置好并且运行良好。 (还有其他复杂性,包括 VPN 和通过 OSPF 进行内部动态路由,这使得让其他东西控制防火墙或路由表成为问题)。 - 需要设置一个已配置的源(本地)IP 以进行 ping 等连接检查,这将使其发送到正确的 ISP。
- 如果它可以 ping 几个 IP,其中一些 IP 比其他 IP 更频繁,那就太好了。例如,经常 ping 我们控制的主机来检查任何连接,很少会 ping 一些其他主机以最终捕获部分连接。
- 如果可配置的丢包率也算作下降,那就太好了。特别是如果它可以比较两个链路(因此,例如,远端附近的损耗被抵消)。
- 有一天我们可能会得到第三个链接(我们过去有过第三个)。如果也能使用两个备份链接那就太好了。
我知道网络 ISP 平衡,但它似乎想要控制防火墙并且只支持每个 ISP 一个 ping IP。