尝试在 mikrotik1 上应用 Hairpin-nat 概念,我的配置如下:
/ip firewall nat
add chain=dstnat dst-address=1.1.1.1 protocol=tcp dst-port=80 \
action=dst-nat to-address=192.168.2.2
add chain=srcnat out-interface=WAN action=masquerade
add chain=srcnat src-address=192.168.1.0/24 \
dst-address=192.168.2.2 protocol=tcp dst-port=80 \
out-interface=LAN action=masquerade
但它对我来说不起作用,因为(我认为)192.168.2.2 是在另一个 mikrotik(我们称之为 mikrotik2)上定义的,而不是在应用配置的这个(mikrotik1)上定义的。Mikrotik1 仅路由 192.168.1.0/24 网络,而 mikrotik2 仅路由 192.168.2.0/24。但是,这两个 mikrotik 设备是桥接的,地址是可访问的。
有人能帮我吗?我不知道在这种情况下该怎么做。如何将我的互联网流量转发到 mikrotik1 上的端口 80,再转发到 mikrotik2 的 LAN 地址?
PS:两个 mikrotik 都是网关,分别来自一个提供商。
谢谢。
答案1
检查端口 80 是否未被 mikrotik1 使用(ip/services/disable http)
另外,您谈到了桥接两个 mikrotiks... 我认为这是一个错误,删除桥接并在 mikrotik1 上添加一条到 192.168.2.0/24 的路由,并在 mikrotik2 上添加一条到 192.168.1.0/24 的路由(如果它们尚不存在)。Mikrotik2 也必须将 mikrotik1 作为默认网关。
然后你只需要
/ip firewall nat
add chain=dstnat dst-address=1.1.1.1 protocol=tcp dst-port=80 \
action=dst-nat to-address=192.168.2.2
假设1.1.1.1是您的WAN地址。
[编辑]
如果 Mikrotik1 不是 Mikrotik2 的网关,则必须添加 scr-nat
/ip firewall nat
add chain=srcnat dst-address=192.168.2.2 protocol=tcp dst-port=80 \
action=src-nat to-address=[IP_LAN_MT1]
其中 IP_LAN_MT1 是 Mirotik1 的内部 IP