RouterOS在配置nat规则时,大多管理员会不在意nat规则的接口(interface)参数,当然nat规则没配置interface接口参数的情况下也能正常工作,但它们也可能导致部分问题,例如,多内网IP的互访伪装,路由环路和资源消耗等等。

对于初学者来说配置一条能上网的nat规则,默认设置action= masquerade能用就好,但对于网络管理员来说,注意为srcnat 规则指定out-interface参数,为dstnat NAT规则指定in-interface参数。如有多个出接口,那么需要配置多个NAT规则,这些还能减少CPU的负载。

下面是一个不推荐的配置:

/ip firewall nat

add action=masquerade chain=srcnat

add chain=dstnat dst-port=1234 action=dst-nat protocol=tcp to-address=192.168.88.2 to-port=80

上面的srcnat规则是没有指定源地址和需要伪装的外网接口,会对任意IP地址,内口和外网口都做srcnat伪装,同时会导致srcnat更消耗CPU资源。

 

下面是正确的配置:

/ip firewall nat

add action=masquerade chain=srcnat src-address=192.168.88.0/24 out-interface=WAN

add chain=dstnat dst-port=1234 action=dst-nat protocol=tcp to-address=192.168.88.2 to-port=80 in-interface=WAN

精确的参数指定,能减少故障问题和CPU开销。多接口情况下,可以自定义interface list(接口列表)来简化nat规则配置