RouterOS实现多线按运营商分流:IPv4和IPv6配置详解
RouterOS实现多线按运营商分流:IPv4和IPv6配置详解
前言
在家中部署多条运营商宽带时,如何实现按运营商分流,以达到最优的传输路径和访问速度,是一个常见的需求。本文将详细介绍如何使用RouterOS实现这一目标,包括IPv4和IPv6的配置,以及入站端口映射的配置。
目的
为了充分利用三条宽带,实现按运营商分流,从而达到数据以最优的方式路径进行传输,提高传输访问速度。
配置步骤
IPv4配置
配置各条PPPOE线路的连接
首先需要将已有的线路,添加好PPPoE Client。在四个PPPoE Client中的【Dial Out】-【Add Default Route】需要最少勾选一个,建议全部勾选,防止个别线路掉线影响路由。并按照接入速率或者当地网络情况配置好Distance,优质线路配置的Distance小一点。
添加路由表
在【Routing】-【Tables】中,按照实际的宽带条数,配置好Routing Table条目,并勾选FIB。
添加策略路由规则
在【Routing】-【Rules】中,按照宽带实际条数,配置好Policy Routing Rule。源地址是内网IP网段,目的地址留空,Action为lookup。
生成运营商IP段列表
使用Python脚本自动更新三大运营商的IP段,用于匹配目的IP该走哪个线路。ROS实现按运营商分流,未知运营商默认走电信线路。
配置防火墙分流
在【IP】-【Firewall】中配置打标签分流:
- 将所有的出站流量,打上out_connection的connection mark。
- 按运营商将出站的流量,打上当前运营商的routing mark。
- 如果有多条同一运营商的宽带,可以使用PCC进行按比例分流。
配置路由列表
在【IP】-【Route Lists】中,按照线路的条数,新增Route。Gateway为PPPoE连接的名字,Distance按照线路情况递增。Routing Table选择当前运营商的表。
IPv6配置
生成IPv6运营商列表
使用脚本生成各个运营商的IPv6的Address List,并导入到RouterOS。
配置IPv6地址
配置好各个线路的IPv6地址,让局域网内的机器可以获得IPv6地址。
配置防火墙分流
在【IPv6】-【Firewall】的Mangle中,将所有的出站连接,打上out_connection的connection mark。将目的地址是各运营商的,按运营商打上Routing Mark。
配置路由
在【IPv6】-【Routes】中,添加Route,Distance根据宽带情况调整。
配置入站端口映射
为了避免出现请求从联通线路进来,却尝试从电信线路出的情况,需要配置端口映射的源进源出。
配置dst-nat规则
在Firewall中按照正常配置好dst-nat的规则。
标记连接
在Mangle中,将从pppoe-out-cu(联通的pppoe接口)进来的连接,打上dstnat_cu的标记。将有dstnat_cu的连接,标记上当前线路路由表的routing mark。
输出链标记
在output链上也要做mark routing。
参考文献
- IP Routing官方文档: https://help.mikrotik.com/docs/display/ROS/IP+Routing