MikroTik基于公网IP的源NAT(Source NAT)配置咨询(含多私有子网NAT池场景)
MikroTik基于公网IP的源NAT(Source NAT)配置咨询(含多私有子网NAT池场景)
兄弟,我太懂从FortiGate转MikroTik的那种陌生感了——毕竟两家的配置逻辑确实差不少。不过别慌,你的需求(把多段公网IP做成NAT池,对应不同私有子网做源NAT)在MikroTik里其实配置逻辑很清晰,我给你一步步拆解:
前提确认
首先得确保你已经搞定了基础配置:
- WAN口的/30 uplink已经正常连通ISP,能正常上网
- 私有子网(10.10.10.0/22、10.11.11.0/22、10.12.12.0/24)的VLAN、路由、DHCP(如果用的话)都已经配置完成,内网设备能正常访问MikroTik
步骤1:让MikroTik“认”这些额外的公网IP段
因为这三个公网段不是WAN口的直连段,我们需要告诉MikroTik这些IP属于本地设备,最简单的方式是创建一个虚拟dummy接口,然后把这些段的路由指向它:
- 创建dummy接口:
/interface dummy add name=dummy-public
- 添加静态路由,把三个公网段指向这个dummy接口:
/ip route add dst-address=123.123.3.0/24 gateway=dummy-public /ip route add dst-address=123.123.5.0/24 gateway=dummy-public /ip route add dst-address=123.123.7.0/28 gateway=dummy-public
这样MikroTik就会把这些公网段当作自己的IP资源,允许用来做NAT。
步骤2:创建NAT地址池
我们针对每个公网段单独创建地址池,这样可以精准对应不同的私有子网。注意要避开每个段的网络地址和广播地址:
# 对应123.123.3.0/24的地址池 /ip pool add name=nat-pool-24-3 ranges=123.123.3.1-123.123.3.254 # 对应123.123.5.0/24的地址池 /ip pool add name=nat-pool-24-5 ranges=123.123.5.1-123.123.5.254 # 对应123.123.7.0/28的地址池,/28的广播地址是.15,所以用.1到.14 /ip pool add name=nat-pool-28-7 ranges=123.123.7.1-123.123.7.14
如果需要预留某些公网IP做端口转发之类的特殊用途,直接在ranges里排除掉就行,比如123.123.3.1-123.123.3.100,123.123.3.105-123.123.3.254。
步骤3:配置源NAT规则
接下来要把每个私有子网和对应的NAT池绑定,注意MikroTik的NAT规则是从上到下匹配的,所以要把这些规则放在默认的源NAT规则(比如用WAN口IP做SNAT的那条)前面:
# 把10.10.10.0/22子网的流量NAT到nat-pool-24-3 /ip firewall nat add chain=srcnat src-address=10.10.10.0/22 action=src-nat to-pool=nat-pool-24-3 out-interface=你的WAN接口名称 # 把10.11.11.0/22子网的流量NAT到nat-pool-24-5 /ip firewall nat add chain=srcnat src-address=10.11.11.0/22 action=src-nat to-pool=nat-pool-24-5 out-interface=你的WAN接口名称 # 把10.12.12.0/24子网的流量NAT到nat-pool-28-7 /ip firewall nat add chain=srcnat src-address=10.12.12.0/24 action=src-nat to-pool=nat-pool-28-7 out-interface=你的WAN接口名称
记得把你的WAN接口名称替换成实际的WAN接口(比如ether1或者wan1)。
验证与关键注意事项
- 规则顺序检查:用
/ip firewall nat print查看规则,确保我们刚加的src-nat规则在默认的src-nat规则(通常是action=masquerade的那条)前面,不然会优先匹配默认规则。 - 出口IP验证:在内网设备上访问
ifconfig.me或者类似的查IP网站,看看出口IP是不是对应池里的公网IP。 - ISP路由确认:一定要跟ISP确认,他们已经把这三个公网段路由到你的/30 WAN IP了!不然即使你配置对了,外网的流量也找不到回来的路。
- 端口转发(如果需要):如果后续要给某些公网IP做DNAT端口转发,直接在
/ip firewall nat里添加chain=dstnat的规则就行,这些规则会自动在prerouting链生效,不会和src-nat规则冲突。
备注:内容来源于stack exchange,提问作者Sandman1091
相关产品推荐
相关产品推荐

