RouterOS 2.9中路由规则增加的两点功能:
1、在RouterOS 2.9路由规则中增加了check-gateway的功能,能检测到网关的线路状态,如果网关无法探测到,便认为网关无法连接,会自动禁止访问网关的数据通过,check-gateway功能的探测时间为10s一个周期。
2、在RouterOS 2.9中具备了对缺省网关的判断,在RouterOS 2.9的任何一个路由表中只能存在一个缺省网关,即到任何目标地址为0.0.0.0/0,没有做路由标记(routing-mark)的规则,如果存在另一个缺省网关则认为是错误,路由将不予以执行。如下图:
从上图我们可以看到,所有访问电信的IP段从10.200.15.1出去,其他的数据走网通的缺省网关出去,在我们可以这些网关的前缀都为“AS”,即确定的静态路由,而在第二排可以看到蓝色一行,他也是一个缺省网关,但因为一个路由表中只能存在一个缺省网关,所有前缀为“S”即静态但不确定的网关,被认为位非法的。如果当202.112.12.12.11网关断线,则10.200.15.1会自动启用,变为缺省路由,实现现在的切换,如下:
当202.112.12.11断线后,check-gateway在10s一个周期后探测到,并将10.200.15.11设置为缺省路由,如果202.112.12.11正常后,系统也将会将202.112.12.11设置为缺省路由,因为他是先于10.200.15.1添加入路由表中。
这是一个典型的通过一个路由器并使用两条ISP线路接入的环境(比如都是两条电线的ADSL或者LAN接入):
当然,你可以选择负载均衡!这里有多种方法可以选择,只是根据你的环境,选择最适合你解决方案。
基于用户端IP地址的策略路由
如果你有很多的主机地址,你可以通过IP地址将他们分组。这时,指定源IP地址,发送的传输通过ISP1或者ISP2的网关出去。让我们假设终端电脑的网络地址段为192.168.100.0/24,IP分配如下:
· 192.168.100.1-127分配到A组
· 192.168.100.128-253 分配到B组
· 192.168.100.254路由器本地IP地址(即内网的网关)
现在,我们通过子网划分的方式,将终端电脑进行分组:
· A组为192.168.100.0/25,地址范围:192.168.100.0-127
· B组为192.168.100.128/25,地址范围:192.168.100.128-255
如果你不能理解,请你查阅TCP/IP的相关教材或通过网上查找相关的子网划分资料!我们需要添加两个ip firewall mangle的规则,标记来至A组和B组终端电脑的数据包。
定义A组:
链表为chain=prerouting,源地址:src-address=192.168.100.0/25
操作为Action=mark routing并定义新的路由标记GroupA.
最好做一个注释,以便以后便于你自己或者别人查看和处理。
定义B组:
链表为chain=prerouting,源地址:src-address=192.168.100.128/25
操作为Action=mark routing并定义新的路由标记GroupB
所有来至终端电脑的IP传输都通过路由标记为GroupA或者GroupB。这样我们可以标记到路由表中(routing table)。
下面,我们需要定义两个默认路给相应的路由标记和网关:
到这里,如果你没有对路由器做NAT的伪装,请在/ip firewall nat里添加src- Address=192.168.100.0/24 action=masquerade,在终端电脑上测试一下跟踪路由是否正确定义两个分组的默认路由:
A组测试如下情况:
C:\>tracert -d 8.8.8.8
Tracing route to 8.8.8.8 over a maximum of 30 hops
1 2 ms 2 ms 2 ms 192.168.100.254
2 10 ms 4 ms 3 ms 10.1.0.1
...
B组测试如下情况:
C:\>tracert -d 8.8.8.8
Tracing route to 8.8.8.8 over a maximum of [...]
浙公网安备 33010602011771号