我是 Mikrotik 环境的新手,需要针对以下场景的一些帮助:
我有一个 ADSL 路由器(主互联网连接),其 IP 范围为
192.168.1.0/24
,连接到以太网 1我的 Mikrotik 路由器(WAN 端口)我有另一台 ADSL 路由器(VPN 连接以连接到主分支),其 IP 范围为
172.200.1.0/24
,连接到以太网 2我的 Mikrotik 路由器我已经启用 WiFi 的 Mikrotik 作为 Ap 桥,其 IP 范围为
192.168.88.0/24
(每个人都使用 WiFi 和物理连接连接到此路由器)
我想要做的事情如下:
当人们想要访问互联网时,Mikrotik 路由器应该自动将数据包路由到以太网 1接口(第一个 ADSL)。
如果人们想去某个目的地(例如
221.35.12.x
),他们的数据包必须被路由到以太网 2,这是连接主分支的第二条 ADSL。
附加信息
第一台 ADSL 的网关是192.168.1.1
,第二台 ADSL 的网关是172.200.1.17
。
到目前为止,我已经设法访问第二个 ADSL 的网关,但是当我 ping 的实际目标地址时221.35.12.x
,它会返回unreachable
,而当我 pingtracert
该地址时,它显示数据包往返于192.168.88.1
那里并丢失。
有人可以为上述情况提供完整的解决方案吗?
答案1
初步设置:您需要设置两个 WAN 连接。假设IFC1
为第一个 WAN 端口(例如ether1
)接口,假设IFC2
为第二个 WAN 端口(例如ether5
)。
/interface list member add interface=IFC1 list=WAN
/interface list member add interface=IFC2 list=WAN
/ip dhcp-client add interface=IFC1 default-route-distance=1
/ip dhcp-client add interface=IFC2 default-route-distance=1
其中一些可能已配置。如果使用不同类型的 WAN 连接(如 PPPoE),则请进行相应调整。
当DHCP客户端连接时,需要添加路由,下面是示例。
[admin@mikrotik] > /ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 ADS 0.0.0.0/0 yyy.yy.yyy.1 1
1 ADS 0.0.0.0/0 xxx.xxx.xxx.1 1
2 ADC xxx.xxx.xxx.0/22 xxx.xxx.xxx.xxx IFC2 0
...
如果您没有看到0.0.0.0/0
具有正确网关的两条路由,则可以将它们创建为静态路由(/ip route add ...
)。这是 Mikrotik 的基本内容,超出了本答案的范围。
将使用策略路由来区分两个 WAN 连接。在每个默认 WAN 路由上设置一个路由标记。
/ip route set 0 routing-mark=unid2rm
/ip route set 1 routing-mark=unid3rm
值unid2rm
和unid3rm
是任意文本字符串。这意味着 Mikrotik 将通过给定的网关 IP 发送标有给定路由标记的数据包。
第二步,配置防火墙。查看链FORWARD
。这里的目标是排除辅助(非默认)WAN 的标记连接通过快速通道。
/ip firewall filter add 8 chain=forward action=fasttrack-connection connection-state=established,related connection-mark=!unid2cm
/ip firewall filter add 9 chain=forward action=accept connection-state=established,related
更改数字 8 和 9,以便规则位于FORWARD
链的开头。
现在在PREROUTING
链中,标记传入连接。如果您只引导出站连接,则可以跳过此步骤。
/ip firewall mangle add 3 chain=prerouting action=mark-connection new-connection-mark=unid2cm passthrough=no connection-mark=no-mark in-interface=IFC1
/ip firewall mangle add 4 chain=prerouting action=mark-connection new-connection-mark=unid3cm passthrough=no connection-mark=no-mark in-interface=IFC2
下一步涉及MANGLE
表格,这是您施展魔法的地方。在这里,您可以根据您设置的标准标记连接。
/ip firewall mangle add 5 chain=prerouting action=mark-connection new-connection-mark=unid2cm passthrough=yes dst-address=221.35.12.5 connection-mark=no-mark in-interface-list=LAN
这句话的意思是“当有一个221.35.12.5
尚未标记的连接时,用连接标记来标记它unid2cm
”。您可以根据源 IP、MAC 等进行设置,并根据需要添加尽可能多的 IP、MAC。然后配套的是:
/ip firewall mangle add 6 chain=prerouting action=mark-routing new-routing-mark=unid2rm passthrough=no connection-mark=unid2cm in-interface-list=LAN
/ip firewall mangle add 7 chain=output action=mark-routing new-routing-mark=unid2rm passthrough=no connection-mark=unid2cm
/ip firewall mangle add 8 chain=prerouting action=mark-routing new-routing-mark=unid3rm passthrough=no connection-mark=unid3cm in-interface-list=LAN
/ip firewall mangle add 9 chain=output action=mark-routing new-routing-mark=unid3rm passthrough=no connection-mark=unid3cm
unid2rm
注意和之间的区别unid2cm
。这些规则从标记的联系并给它们一个路由标记。然后,如前所述,该路由标记将用于 Mikrotik 的路由表中。
每个设置都有点不同,因此您可能需要尝试一下才能让它适合您。
补充:Mikrotik 通常会在接口列表上自动设置 NAT WAN
。答案顶部的第一步确保两个接口都在列表中。
[admin@mikrotik] > /ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; defconf: masquerade
chain=srcnat action=masquerade out-interface-list=WAN log=no
log-prefix=""