2

我正在使用 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)

当我从 Internet 访问 1.1.1.1:444 时,我可以访问 10.0.0.2 上的 Web 服务器,但是当我从 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,但没有什么进展

我哪里做错了?

4

2 回答 2

4

您的问题并未全面说明情况,从控制台导出会很有用。

src-nat 和 dst-nat的简单使用必须由connection-mark支持,然后您可以使用某些网络服务将来自本地 ip 的流量伪装成您的特定本地 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 Rule 标记连接(int_to_444),从本地子网寻址到1.1.1.1:444Nat Rule 的最后一个是伪装的connection-mark没有 mikrotik 的类似作弊的解释

问候,我希望它会有用。

于 2014-02-21T17:07:55.580 回答
2

这里你的情况:

  1. 客户端通过端口 tcp/444 向目标 IP 地址 1.1.1.1 发送源 IP 地址为 10.0.0.3 的数据包,以请求一些 Web 资源。

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

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

例子

/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://update.mikrotik.com/wiki/Hairpin_NAT

于 2018-10-24T10:43:48.667 回答