好的,我有一个带有一个有线 WAN 和 GPRS 调制解调器的 Linux 机箱(或者说另一个通常处于关闭状态的 WAN 连接)。
是否有任何选项可以将第二条链路(GMPR/以太网/其他)设为备用连接,仅当主链路无法正常工作时使用?
我可以通过在互联网上 ping 指定的服务器来检测主链路的状态(重要的是它不能是网关,因为有时网关可以访问,但互联网的其余部分则不能......)。
此外 - 我可以将此测试写入某些 bash 脚本中,以定期测试连接并在主连接断开时切换到备用链接。但是当更改时 - 默认路由会更改为第二个连接,并且我无法在后台检查主链接是否仍然处于断开状态...
那么 - 是否有任何解决方案可以将所有应用程序的默认路由设置为备份链接,并且仍然能够通过主链接路由 ping?是什么让事情变得更加复杂?我不能总是通过主链接将静态路由设置为测试服务器,因为在服务器上运行的那些“应用程序”也会尝试连接到此服务器,并且我希望它们在主链接关闭时使用备份链接...
我在 linksys RV042 双 WAN 路由器上看到了类似的东西。它可以监控主连接(当辅助连接关闭时),当主连接关闭时 - 它使用辅助链路,但当主连接再次启动时 - 辅助链路被禁用,所有流量再次通过主链路重定向。
答案1
我与我们的有线电视提供商也遇到了类似的问题 - 网关可能可以访问,但互联网的其余部分却无法访问。我使用 traceroute 在提供商网络边缘找到一个可以 ping 的主机作为 ping 的测试主机。您可以执行相同的操作来找到一个主机作为 ping 测试目标/静态路由候选。
答案2
使用策略路由,您可以根据 iptables 中设置的标记[ fwmark ]使用不同的路由表。您可以为同一主机但不同的端口号设置不同的标记[也许您可以在目标服务器的不同端口上运行几个测试服务]...
或者您可以将静态路由设置为目标服务器的几个邻居 IP 地址?
看着拉特克了解更多信息。
答案3
选择一些您永远不需要通过备份链接访问的服务器。它可能是网关之后的跟踪路由中的下一跳(反正您永远不会与该路由器通信)。或者只是您永远不会通过 GPRS 使用的服务(例如流媒体视频)。通过第一个链接创建到该服务器的静态路由。
答案4
这其实很容易。
假设 ISP1 是主 ISP,ISP2 是备份 ISP。
1.1.1.1是ISP1网关的IP地址。
2.2.2.2是ISP2网关的IP地址。
9.9.9.9 是 ISP1 上可访问的 IP 地址,您将使用它来检测 ISP1 是否已关闭。
首先,除了主表之外,还需要另一个路由表。我们使用表 10。
将 ISP1 网关 IP 地址的默认网关添加到表 10 中,如下所示:
# ip route add default via 1.1.1.1 table 10
并在路由策略数据库(RPDB)中添加一条规则:
# ip rule add to 9.9.9.9 table 10
您可以使用以下方法进行验证:
# ip route list table 10
# ip rule list
现在,您需要编写一个脚本来检测 ping 到 9.9.9.9 是否失败,并相应地更改默认网关。当 ping 到 9.9.9.9 失败时,您的脚本应该更改默认网关,以便将流量路由到备用链路。但是,由于我们刚刚添加的规则和表,ping(或任何流量)到 9.9.9.9 仍将通过主链路路由。
您可以通过更改默认网关进行测试(使用路由删除默认&&路由添加默认网关 2.2.2.2)并 tracroute 至 9.9.9.9