我有 2 个不同的家庭互联网连接,并且在我的私人服务器上配置了每个路由器 LAN 的 IP(例如 10.0.0.2/24 和 10.0.1.2/24,每个 ISP 的路由器是 .1),然后分配互联网访问到我的网络。
问题是,当我的其中一个 ISP 出现故障时,我必须手动将默认网关从 10.0.0.1 更改为 10.0.1.1,因为这些 IP 是在每个路由器中设置的,并且路由器不处于桥接模式。由于停机时间与我家的路由器无关,因此我的服务器无法知道路由表已关闭,因为路由器仍在应答 ICMP 数据包。
问题是,Linux 内核是否支持设置通过网关检查 IP 并使用该路由的状态来更改我的网关?例如,如果我将 8.8.8.8 设置为始终通过 10.0.0.1,并且如果该 IP 停止响应,则也关闭 10.0.0.1 默认路由,这对我来说很有效。
我知道将我的两台路由器设置为桥接模式并让我的服务器进行 PPPoE 握手效果最好,并且避免必须这样做,但至少我的一个路由器不支持桥接模式。
答案1
Linux 内核是否支持设置通过网关检查 IP 并使用该路由的状态来更改我的网关?
不。类似的事情不在内核的范围内。您应该在用户空间中执行此操作。
这通常负责控制和维护路由表的软件守护程序可能也不支持它,因为它运行基于标准的路由协议(例如 OSPF 和 BGP)来学习从相邻路由器安装的正确路由,而不是“ping 远程设备”如果成功的话,相应地设置默认路由”,但它可能有这样的功能......
我知道将我的两台路由器设置为桥接模式并让我的服务器进行 PPPoE 握手效果最好,并且避免必须这样做,但至少我的一个路由器不支持桥接模式。
FWIW 这也不是一个保证。仅仅因为 PPPoE 会话出现并不意味着(整个)互联网可以通过该路径访问。 ISP 网络中可能存在问题。