RouterOS配置双WAN并根据IP分流

隔离,融合

Views:  times Updated on March 19, 2024 Posted by elmagnifico on March 19, 2024

Foreword

两路电信宽带接入,做一个网络分流,能访问同一个内网,但是外网隔离开。这样就可以轻易把一些可能会有问题的客户端都放到另外一个公网域中,主网中就不会有问题被人骚扰了

Dual WAN

先配置双WAN口

image-20240319145449941

新建一个pppoe拨号,接口选择新WAN口所在的以太网口

image-20240319155714148

填写账号密码,此处需要注意默认路由距离改为2,WAN1的距离是1

image-20240319155546805

可能此时会提示Client is on slave interface 这是因为ether2还桥接在WAN上呢

image-20240319155301455

桥接中取消ether2的桥接,现在WAN2是独立口了

到这里其实WAN2已经可以了,插上光猫的线,此时可以看拨号的log,如果一直提示错误,可以重启一下光猫,就能看到已经可以正常拨号连接了

IP分流

这里通过mangle进行分流

首先进入Routing-Tables中新建一个路由表

image-20240319155919043

勾上FIB

image-20240319160029829

路由中新建一个静态表,网关选择刚才的pppoe-out2,下面的路由表选择刚才新建的表

image-20240319160250672

默认的NAT伪装是只给WAN口的,现在是双WAN口了,所以要去掉这个限制

image-20240319160525134

由于要允许内网访问,所以这里先新建一个Mangle,允许当前子网范围进行访问

image-20240319172124176

到这里总算是可以设置最终目标了,比如让这个ip的所有流量走向WAN2,这里设置他的路由标记到新路由表即可

image-20240319182318265

更进一步,可以通过地址列表,将需要的IP都加进列表里,然后一个规则就能把所有ip处理了

WAN性能问题

双WAN以后发现一个小问题,好像千兆跑不满了,任何一条单路千兆跑不满

经过技术支持的Debug,发现问题在于我之前设置的raw路由规则占据了大部分的cpu占用,导致实际1000M根本跑不满

性能Debug

image-20240319182641034

首先是查看CPU占用,System-Resources,很明显网速测试的时候CPU接近100%了,而且4核都跑满了,直接导致网速跑不上去。

然后就是看为什么CPU跑满了,具体哪里非常吃性能

image-20240319182820882

可以通过Tools-Profile工具,看到具体CPU是跑哪种任务消耗最多,实测中看到firewall占用最多。

那么就开始排除firewall中什么规则导致了cpu占用

image-20240319183104192

当把Raw规则中用来屏蔽windows更新的规则去掉以后,整个网速立马就上去了。

仔细看了下这个Raw基本就是基于封包底层的过滤,是要明文解析的匹配文本的,当流量一上去以后,每个包都要走8遍这个过滤,自然就非常慢了。

所以Raw规则是只有没有其他办法的情况下,不得不通过这种方式调用,才使用的,不然不推荐使用Raw过滤。

这种基于域名的过滤,也可以把域名加入到地址列表中,然后在Filter中直接对目标地址进行过滤就行了,这样不影响性能

Summary

难得遇到一个比较细的技术支持,之前总遇到半桶水,各种问题一知半解。

Quote

https://wiki.edcwifi.com/index.php?title=RouterOS_%E6%BA%90%E5%9C%B0%E5%9D%80%E7%AD%96%E7%95%A5%E8%B7%AF%E7%94%B1