Nat

UDP NAT 流量,但在 MikroTik RouterOS 上沒有響應

  • November 1, 2020

我有一個安裝了 v7.1beta2 韌體的 MikroTik 路由器

它的 WAN (eth1) 的 IP 地址為192.168.7.122

有兩個設備連接到它的 LAN

  • 設備#1 是一個網路伺服器,在埠上通信80 TCP 192.168.88.254
  • 設備 #2 是在埠上通信的 PLC9999 UDP 192.168.88.250

我已經成功設置了一個 dst-nat 以8080在 WAN 埠上公開設備 #1 網路伺服器。

但是,我無法讓 PLC 通過 NAT 進行通信。我已經配置了類似於網路伺服器的 dstnat,只更改了埠、地址和協議。這是我現在配置的:

Chain: dstnat
Protocol: 17 (udp)
Dst. Port: 9999
Action: dst-nat
Log: x
To Addressess: 192.168.88.250
To Ports: 9999

我已經禁用drops了防火牆上的所有功能。

當我使用通信實用程序時,我將它指向 WAN 地址和配置的埠:192.168.7.122:9999並蒐索設備,MikroTik RateGraph 顯示峰值(因此它正在進入)但實用程序將設備報告為“失去”(例如,它沒有得到一個回應)。

當我直接連接到 LAN 並直接指向192.168.88.250:9999設備時,設備會立即顯示為“可用”。

據我所知,PLC 設備並不關心 src 地址是否來自本地網路,因為我們過去通過 NAT 通信的模型相同(而且我不相信有任何特殊處理已完成)。該領域的其他硬體目前通過 Linux 機器(不是 NAT)使用 UDP 9999 的 socat,並且工作得非常好,所以我願意弄清楚如何配置一個類似 socat 的 NAT 進行測試。

我還嘗試配置 srcnat 以防 dstnat 沒有將流量反向通過。就是這樣:

Chain: srcnat
Src. Address: 192.168.88.250
Protocol: 17 (udp)
Dst. Port: 9999
Action: src-nat
To Addresses: 192.168.7.122
To Ports: 9999

其中,這也不起作用,並且此 srcnat 不會在速率圖上顯示任何流量。

我是RouterOS的新手,網路從來都不是特別強項(我是一名軟體工程師),所以我不熟悉正確調試這種情況的方法,尤其是RouterOS。

在直接連接到 LAN 時在主機上使用 WireGuard,我看到兩個流量都出去了,然後是響應。

使用它通過 WAN 監控它會熄滅,但我從未看到任何響應。

幫助?

最後,我找到的解決方案是使用 OpenWrt 刷新路由器(RB750Gr3),並以與 RouterOS 中完全相同的方式對其進行配置。一切都按預期完美執行。

雖然,我不一定認為“更改作業系統”是解決問題的可行方案,但我花了幾天時間試圖弄清楚我在簡單的 NAT 埠轉發中做錯了什麼,但能夠完成完全相同的事情在不到半天的時間內在相同的硬體上(包括弄清楚如何將不同的作業系統快閃記憶體到硬體上)。

很遺憾,因為我真的開始喜歡 RouterOS 的深入功能集,但 OpenWrt 也很不錯。

我有同樣的問題,但看起來在 Mikrotic wiki 上有一個解決方案: https ://wiki.mikrotik.com/wiki/Tips_and_Tricks_for_Beginners_and_Experienced_Users_of_RouterOS#Port_forwarding_on_RouterOS

除了我添加的 srcnat 規則

/ip firewall filter add chain=forward action=accept in-interface=wan_interface connection-nat-state=dstnat connection-state=established,related

FastTrack 規則之前,看起來它成功了

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