mikrotik nat从当地重定向到当地

时间:2013-11-23 14:41:13

标签: routing nat mikrotik

我正在使用Mikrotik 750GL,我遇到了这样的问题:

我有subnet 10.0.0.0/16

路由器有local ip 10.0.0.1external ip (e.g. 1.1.1.1)

我将一些端口转发到我的本地主机(e.g. firewal nat dst-nat 1.1.1.1:444 -> 10.0.0.2:80)

当我从互联网上转到1.1.1.1:444时,我可以在10.0.0.2上访问我的网络服务器,但是 当我从LAN(例如10.0.0.3)转到1.1.1.1:444时,我坚持加载页面。

据我所知,10.0.0.2只能通过交换机路由回答10.0.0.3并且我通过使用新的src-nat规则(例如10.0.0.0/16 -> 2.2.2.2来修复它),但没有什么进展顺利

我错在哪里?

2 个答案:

答案 0 :(得分:4)

你的问题没有全面了解情况, 从控制台导出会很有用。

src-nat and dst-nat必须支持connection-mark的简单使用,然后您可以使用某些网络服务伪装从本地ips到特定本地IP的流量。

在示例中:

[admin@MikroTik] > ip address export
/ip address
add address=1.1.1.1/24 disabled=no interface=ether1-gateway network=1.1.1.0
add address=10.0.0.1/24 disabled=no interface=ether2-master-local network=10.0.0.0

[admin@MikroTik] > ip firewall mangle export
/ip firewall mangle
add action=mark-connection chain=prerouting disabled=no dst-address=1.1.1.1 dst-port=444 new-connection-mark=int_to_444 passthrough=no protocol=tcp src-address=10.0.0.0/24

[admin@MikroTik] > ip firewall nat export
/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-address=1.1.1.1 dst-port=444 protocol=tcp to-addresses=10.0.0.2 to-ports=80
add action=masquerade chain=srcnat disabled=no out-interface=ether1-gateway
add action=masquerade chain=srcnat connection-mark=int_to_444 disabled=no

您可以看到Mangle规则标记从本地子网寻址到int_to_444的连接(1.1.1.1:444),Nat Rule的最后一个伪装成connection-markExplanation of similar cheating without mikrotik

问候,我希望它会有用。

答案 1 :(得分:0)

您的情况:

  1. 客户端在端口tcp / 444上将源IP地址为10.0.0.3的数据包发送到目标IP地址为1.1.1.1,以请求某些Web资源。

  2. 路由器目标将数据包NAT转换为10.0.0.2,并相应地替换数据包中的目标IP地址。源IP地址保持不变:10.0.0.3。

  3. 服务器回复客户的请求。但是,请求的源IP地址与Web服务器在同一子网中。 Web服务器不会将回复发送回路由器,而是将其直接发送回带有源IP地址10.0.0.2的10.0.0.3。 解决方案是伪装从局域网接口到dst地址10.0.0.2的本地子网10.0.0.0/16的流量。

示例

/ip firewall nat
add chain=srcnat src-address=10.0.0.0/16 \
  dst-address=10.0.0.2 protocol=tcp dst-port=80 \
  out-interface=LAN action=masquerade

以下是有关这种情况的详细信息https://wiki.mikrotik.com/wiki/Hairpin_NAT