Failover (WAN Backup)
本页说明如何在 MikroTik RouterOS 中使用递归路由为 WAN 连接配置故障转移,详细介绍了基本和增强监控配置的设置步骤,以实现可靠的链路切换。
故障转移(WAN 备份)
简介
本文介绍一种使用递归路由和路由 scope 的高级故障转移方法。当一条路由(静态或动态学习到的)的下一跳并非直接连接到本地路由器时,就会发生递归路由。有必要限制可用于查找直接下一跳的路由集合。例如,RIP 或 OSPF 路由的下一跳值应当是可直连到达的,因此只应使用已连接路由进行查找。这可以通过 scope 和 target-scope 属性来实现。
设置概述
假设我们的网关有两条公网上行链路("ISP1"、"ISP2")。第一条上行链路应优先使用,第二条则作为备份。
然后我们将流量标记为两部分,一部分命名为 "ISP1",另一部分为 "ISP2",分别通过 ether1 和 ether2。在此设置中,我们想要监控两台主机:Host1 和 Host2。我们将使用 IP 为 8.8.8.8(Host1)和 8.8.4.4(Host2)的 Google DNS 服务器,但并非必须使用这些特定地址。

配置
基本故障转移
在配置故障转移之前,我们必须对通过两条上行链路的 LAN 流量进行 masquerade。这使本地网络中的设备能够通过任一连接访问互联网:
/ip/firewall/nat
add chain=srcnat action=masquerade out-interface=ether1
add chain=srcnat action=masquerade out-interface=ether2
接下来,我们需要在互联网上定义两台可到达的主机,用于监控每条上行链路的状态。这些主机应当可靠并能响应 ICMP 请求。在本示例中,我们使用 Google 的 DNS 服务器(8.8.8.8 和 8.8.4.4):
/ip/route
add dst-address=8.8.8.8 scope=10 gateway=10.111.0.1
add dst-address=8.8.4.4 scope=10 gateway=10.112.0.1
最后,我们添加默认路由,它将通过这两台测试主机进行递归解析。ISP1 连接作为主链路(配置了较小的 distance 值):
/ip/route/
add distance=1 gateway=8.8.8.8 target-scope=11 check-gateway=ping
add distance=2 gateway=8.8.4.4 target-scope=11 check-gateway=ping
此配置确保当主上行链路不可用时,流量会自动故障转移到备用连接。
提升检测可靠性
目前我们依赖单台主机来监控链路可达性。虽然 Google 服务很少不可用,但我们可以通过在每条链路上添加第二台监控主机来提升可靠性。
/ip/route
add dst-address=208.67.222.222 gateway=10.111.0.1 scope=10
add dst-address=208.67.220.220 gateway=10.112.0.1 scope=10
add distance=1 gateway=208.67.222.222 target-scope=11 check-gateway=ping
add distance=2 gateway=208.67.220.220 target-scope=11 check-gateway=ping
此配置会创建一个 ECMP 默认路由。如果只有一台网关不可达,第一条链路上的默认路由仍保持活动状态。只有当所有网关主机都不可达时,才会完全故障转移到第二条链路。