Linux 上的多上行链路路由

Linux 上的多上行链路路由

客观的

我正在尝试为 Linux 机器设置某种“不间断互联网供应”。为此,我使用两个上行链路:一个通过 的标准有线连接eth0,以及一个通过 提供的 3G 连接eth1。有线eth0连接应为默认连接,而eth1连接应仅在出现连接问题时使用eth0。两个接口均通过 DHCP 配置。

当前设置

eth0我分别通过和设置了两个默认路由eth1,并且我为分配了更高的度量值,eth1因此eth0默认情况下优先选择该路由。基本上,这工作正常:当从端口拔下以太网电缆时eth0,系统可以无缝地继续使用eth1任何 Internet 访问,因为它检测到eth0电缆被拔出,因此可以立即eth0从路由表中删除无效条目(这似乎是默认行为)。

问题

然而,当有线连接不是直接在eth0接口本身中断,而是在网络的某个稍后点中断时,我遇到了一个问题。在这种情况下,Linux 机器当然无法检测到某些电缆已被拔出,保留eth0路由表中的条目,并且任何互联网连接尝试都会失败,并出现“目标网络无法访问”错误。

eth0那么,如果路由无法用于到达目标网络,是否有某种方法可以告诉 Linux 立即丢弃该路由?如果是,我该如何检测eth0连接何时再次可用,以便我可以再次切换回来eth1eth0这可能吗?

非常感谢您的任何提示!!

答案1

路由协议旨在解决内部网络中的这个问题。OSPF 等协议会找到相邻邻居并实施“保持活动”系统 - 如果他们没有收到保持活动的确认,他们就会认为该路由已失效并实时重写路由表。

如果您控制了超出范围的任何内容eth0,请考虑设置类似的东西。我认为quagga您可能需要研究软件包/软件。可能有更简单的解决方案,不涉及路由协议。

如果eth0直接连接到互联网(这是您无法控制的网络),您将需要进行某种计划任务检查以确保真正的连接(ping 外部服务器等),并在发现不可达时手动关闭您的接口或重写您的路由。

相关内容