UDP NAT 流量,但在 MikroTik RouterOS 上沒有響應
我有一個安裝了 v7.1beta2 韌體的 MikroTik 路由器
它的 WAN (eth1) 的 IP 地址為
192.168.7.122
有兩個設備連接到它的 LAN
- 設備#1 是一個網路伺服器,在埠上通信
80
TCP
192.168.88.254
- 設備 #2 是在埠上通信的 PLC
9999
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 規則之前,看起來它成功了