网络拓扑如图所示
现在 Mikrotik RouterOS 下有两个不同的客户网络,分别是 LAN_1(10.1.1.0/24,允许访问公网) 和 PPP_1(172.16.1.0/24,只允许访问工作网络) ,而远端网络也有两个,分别是公网(xxx.xxx.xxx.xxx)和工作网络 (192.168.1.0/24) ,现在要实现的功能就是,让 PPP_1 的流量全部走工作网络,不走公网。
设置路由标记
为了让 PPP_1 的流量走指定的线路,按照路由和交换的设计,我们要对网络路由表进行修改,为不同网段指定不同网关。所以,首先我们要给 PPP_1 地址池做一个路由标记,并且一定要将其设置为 Enable
。
IP > Firewall > Mangle > Add
添加一个 Chain = prerouting
,Src.Address = 172.16.1.0/24
,action = mark routint
,New Routing Mark = Working_Network
,Disable = No
的路由标记。
此路由标记的作用就是给匹配规则的流量打上标记,跟普通三层交换里面的 ACL 的 if-match 其实是一样的。
设置路由表
在路由表中增加一条指向 0.0.0.0/0 也就是全局的路由信息,其网关为 20.20.0.253 即办公网络 VPN 网关,并将匹配了 Working_Network 标记的流量都指向这条路由信息。
IP > Routes
添加一条 Dst.Address = 0.0.0.0/0
,Gateway = 20.20.0.253
,Routing Mark = Working_Network
,Disable = No
的路由信息。
此路由表的作用就是给匹配了指定路由信息的网段指定网关,即可实现流量分流,跟三层交换里面的 traffic policy 和 classifier XXX behavior XXX 其实是一样的
多线分流只有两条规则,为需要分流的不同网段增加不同的路由标记,然后给不同的标记指定不同的网关即可。