RouterOS多线路由备份与技巧
官方视频介绍了通过ip route规则使用distance和check-gateway来作为多线路由备份的方法, distance值越小路由优先级越高,cheack-gateway可以通过ping或arp来判断网关是否连通。
也可以使用netwatch配合相应的监控策略和脚本完成网关中断的切换,MikroTik给了一个外部IP地址ping的检查技巧,通过递归路由查询方法,利用了scope路由查询范围的属性
scope 是一个关键属性,用于控制 路由的可达性 和 下一跳解析的层级关系,scope 是一个数值(如10、20、30…200),表示路由的“作用范围”或“有效距离”。数值越小,路由的优先级越高,且仅允许通过 scope ≤ target-scope 的路由解析下一跳,不同路由协议的scope值
路由类型 | 默认 scope | 用途 |
直连路由(接口UP) | 10 | 最优先,用于解析OSPF/RIP等协议的下一跳 |
OSPF/RIP/MME | 20 | 必须通过直连路由(scope=10)解析下一跳 |
静态路由 | 30 | 可被BGP引用,但不能引用OSPF(20>30不满足) |
BGP | 40 | 可引用静态路由(30≤40)和直连路由 |
直连路由(接口DOWN) | 200 | 失效状态,禁止被任何协议引用 |
如果我们要监测线路1出口DNS 223.5.5.5状态,如果223.5.5.5dns中断,就判断线路1出口中断,通常的做法是使用/tool netwatch的ping监控223.5.5.5并编写脚本执行线路1网关中断的规则替换到线路2,而使用scope属性,则通过递归路由查询完成:
思路:将223.5.5.5作为线路1的网关告诉路由器(网关通常是与线路接口IP在同一IP子网段,即直连路由),这样的路由是无法生效。需要配置另外一条路由将223.5.5.5指向线路1的实际网关,配置scope为10,通过递归查询让223.5.5.5走线路出去,此时223.5.5.5网关的路由规则生效,并配置check-gateway=ping监控223.5.5.5是否连通,distance=1。如果不通,路由失效,线路2的distance=2生效,实现线路备份切换,不需要netwatch+脚本实现出口dns监控的路由切换。
下面一个实例,也可以参考官方视频配置:
192.168.99.0/24段,网关192.168.99.1为出口线路1,distance=1,主线路
192.168.12.0/24段,网关192.168.12.254为出口线路2,distance=2,备用线路
1、配置备份线路的路由,设置distance=2,开启check-gateway=ping
2、添加用223.5.5.5 DNS作为网关的路由,设置target-scope范围15,开启check-gateway=ping,distance=1路由优先
3、添加223.5.5.5路由查询走线路1网关,配置scope=10,优先级高,相当于直连路由
路由配置完成结果,223.5.5.5奇迹的作为线路1的网关生效,线路2-192.168.12.254网关蓝色,distance=2作为备份,当223.5.5.5在线路1 ping中断,自动切换到线路2
基本的多线路路由备份配置
基于DHCP-Client出口的多线路配置