Nat

Mikrotik:將本地 ip 轉發到特定埠上的另一個本地 ip

  • February 17, 2017

我在 8090 埠的機器上執行 Docker 容器。假設那台機器的 IP 地址是192.168.0.3. 我想轉發192.168.0.4:80192.168.0.3:8090。該機器只能並且可能只能從本地網路中訪問。

我試過的:

/ip firewall nat export
add action=dst-nat chain=srcnat dst-address=192.168.0.4 dst-port=80 \
   src-address=192.168.0.0/24 to-address=192.168.0.3 to-port=8090 \
   protocol=tcp
add action=masquerade chain=srcnat dst-address=192.168.0.4 dst-port=80 \
   src-address=192.168.0.0/24 protocol=tcp

這行不通。

我是不是忘記了什麼?我有一種感覺,我忽略了一些簡單的東西,但無法弄清楚是什麼。

編輯:

該 IP 地址192.168.0.4無法解析為我網路中的任何內容。我只想“分配”並將其轉發給192.168.0.3:8090. 這樣做的原因是我想設置一個解析到 Docker 容器的本地域名,而無需指定埠。

您在本地網路中的電腦會嘗試直接訪問它們自己子網中的 IP 地址。因此,具有 IP 地址的電腦(“工作站”)在嘗試訪問並嘗試直接發送 tcp 包 192.168.0.105時將忽略預設網關。192.168.0.4

如果沒有其他電腦正在回答屬於 MAC 地址的工作站呼叫(“arp 請求”),這將失敗192.168.0.4- 並且沒有人會回答,因為此 IP 地址未在您的本地網路中使用。

對於如何解決它,您確實有多種選擇:

  1. 添加192.168.0.4到防火牆上的介面並使用防火牆重新路由這些包
  2. 添加192.168.0.4到 docker-host 上的介面並重定向 docker-host 本身的流量
  3. 在 docker-host 上添加流量重定向,192.168.0.3直接使用而不是192.168.0.4

可能存在其他選項。

引用自:https://serverfault.com/questions/833139