本文简单记录了 RouterOS 多线路由在进行端口映射后部分运营商无法访问的故障排错。

故障描述

RouterOS 多出口环境,WAN1 为中国电信网络,WAN2 为中国移动网络,基于中国移动路由表进行策略路由,局域网中有一台 NAS,在出口路由器进行了端口映射,防火墙以对 NAS 映射端口放行。但使用中国移动网络用户访问 NAS 提示超时。

故障分析

进行充分的测试,发现电信联通用户访问正常,只有移动用户访问超时。使用 WinBox 连接 RouterOS,在 IP->Firewall->NAT 找到进行映射的 dst-nat 条目,对该条目进行 Log 标记处理。
20200528100740
进入 Log,使用移动网络访问,发现有访问日志。
20200528101527
考虑到路由器中配置了基于路由表的策略路由,尝试对 NAS 流量进行标记路由,使得 NAS 访问流量只从电信接口流入流出。

配置过程

  • 标记的配置(Mangle)
    进入 IP->Firewall->Mangle 页面,点击 + 号,新建一个 Mangle 规则。
    在 General 标签中的 Chain 选择 prerouting,Src.Address 填写 NAS 的内网地址。
    在 Action 标签页中,Action 选择 mark routing,New Routing Mark 填写一个标记名称(可以随便填写,但是后面要用到,一定记住这个标记),勾选 Passthrough。
    对该规则进行保存。

  • 配置路由
    进入 IP->Routes 页面,点击 + 号,新建一个路由规则。
    在 General 标签中 Dst.Address 填写 0.0.0.0/0,Gateway 填写电信的出口接口(我这里是 pppoe 环境,直接选择了电信的 pppoe 接口),Check Gateway 选择 ping,Distance 置为 1,Routing Mark 下拉列表选择刚刚的路由标记。
    对该规则进行保存。

测试

使用移动网络对 NAS 进行访问,现已经可以正常访问。

参考资料

MikroTik Wiki - Manual:IP/Firewall/Mangle