LogoLogo Light

RouterOS主路由+纯Linux旁路由配置教程 配置环境

~ RouterOS主路由+纯Linux旁路由配置教程2026-06-28 18:16#Tech #Network #RouterOS #Linux #OpenSUSE

一.配置环境

物理环境

1.不同运营商多WAN接入
移动(后简称CM)
电信(后简称CT)
联通(后简称CU)
2.x86物理机RouterOS(后简称ROS)
主板信步Q6761工控主板
CPU i5-13500TE
内存32G DDR4 3200MHz
网卡除去板载为两张CX512F
版本为最新稳定版7.22
3.x86物理机Linux(OpenSUSE Tumbleweed,后简称OSS,也可使用Debian等)
SuperMicro E302-9D
内存16G DDR4
网卡为4*10G+4*1G
4.12口全万兆交换机(4电8光)
5.连接方式为ROS LAN口-交换机-OSS 4*10G口两两LACP聚合

目前已实现功能

1.V4V6双栈完整配置
2.无公网IPV4,触发式进行IPv6 DDNS(纯脚本)
3.通过paopaodns+singbox(因为我是MJJ,使用机场的话Mihomo会方便许多可平替singbox)部署dns解析服务+去广告(可选)+代理
4.通过nftables进行透明代理
5.抛弃传统通过Mangle表进行PBR分流改用OSS端进行BGP广播实现运营商分流+fakeip分流(分流全部在主路由完成,全网络只使用一个网关),使用脚本每日实时更新相关IP并实时广播至ROS端,降低性能损耗,不再影响fasttrack
6.多WAN故障转移、源进源出
7.WireGurad
8.Nginx反向代理[最新版本ROS(7.22stable及7.22以上testing/development)已支持反向代理,感兴趣的可以使用ROS试试,但因为主路由V4默认是无法使用80&443端口且尚不支持V6,访问域名要带端口号,我这里就不尝试了]

网络拓扑

网络拓扑.png
这里详细说一下PaoPaoDNS.我修改了默认的解析逻辑改为:

1.拒绝qtype65请求&去广告
2.若域名存在于force_forward_list.txt,则强制使用sing-box fakedns解析
3.若域名存在于force_dnscrypt_list.txt,则强制使用dnscrypt加密查询,使用socks5连接singbox进行代理查询
4.若域名存在于force_recurse_list.txt,则强制使用本地递归服务器查询
5.若域名不存在于以上三表,则尝试请求本地递归服务器,如果返回CNIP,则接受并返回到客户端;如果返回非CNIP,则把结果抛弃并转发到sing-box fakedns解析,sing-box生成对应fakeip并返回到客户端

分流逻辑(这样分流是无法叠加带宽的,需要叠加带宽必须使用传统PBR通过PCC等叠加带宽,也不推荐不同运营商叠加带宽):

1.OSS端BGP宣告目的地址为三网IP及对应虚拟下一跳的路由,宣告目的地址为TG等直接使用IP的下一跳为OSS
2.虚拟下一跳设置网关为三网pppoe client
3.添加对应fakeip段下一跳指向OSS
4.在mangle表中添加规则让ROS自身流量走bgp表
5.添加保底路由目的地址为0.0.0.0和::/0的虚拟下一跳为你想三网外的CNIP走的线路
6.使用netwatch监测三网网关,默认情况下虚拟下一跳指向对应三网网关,发现故障即刻转移,即直接修改15/16/17的指向(也就是虚拟下一跳的网关),就能直接达成故障转移,不需要大规模的迁移网关(三网IP网关依然是各自对应的虚拟下一跳).虽然不比直接使用check gateway来的及时(因为禁ping无法使用),但我认为已经是够完美的解决方案了
情况1:终端设备/ROS/OSS访问CM/CT/CU IP,流量自动走各自运营商
情况2:终端设备/ROS/OSS访问非CM/CT/CU CNIP,流量自动走保底路由对应的网关
情况3:终端设备/ROS访问fakeip,流量自动转移至OSS端进行透明代理
特别注意:OSS访问fakeip,流量会先到ROS再回到OSS自己,所以这里ROS端需要进行snat/masquerade(不仅仅是这个原因,这是只是原因之一,还有一个原因欢迎大家讨论),否则OSS会判断这是自己发给自己的包而丢弃.这里我没有让OSS自己劫持output链相关流量进代理,而是统一交由ROS管理流量.

如何安装这里就不赘述了,网上应该有很多教程,可以使用虚拟机安装,但不能保证代码全部可行.
若使用虚拟机安装,请尽量直通网卡,尤其是ROS.

PVE安装ROS可参考:
PVE安装ROS

所有代码默认是在多WAN环境进行配置,我尽量能够还原单WAN相关配置,但仍有可能会有遗漏,欢迎大家指出.
默认已经ROS能够正常连接WinBox全默认设置,默认OSS端为两个网口,分别用于内网服务与外网访问