Mikrotik-大量 TCP 重传数据包

Mikrotik-大量 TCP 重传数据包

我有一台 ubuntu 服务器,ip 为 192.168.10.144,在这个服务器上我有一个使用 ip 范围 10.0.0.0/24 的 docker 网络。我需要将我的电脑连接到 docker 中运行的某些服务,因此我在 Mikrotik 中添加了一条路由:

#      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
0 ADS  0.0.0.0/0                          192.168.0.1               1
1 A S  10.0.0.0/24                        192.168.10.144            1
2 ADC  192.168.0.0/24     192.168.0.3     ether1-internet           0
3 ADC  192.168.10.0/24    192.168.10.1    ether2-proliant           0

但是我的电脑和docker服务之间的连接非常慢。我使用wireshark检查发生了什么,发现了一些tcp-restransmission消息:

wireshark

我虽然认为 nat 规则可以解决问题,但是当使用以下规则时,我的计算机和 docker 之间无法进行通信:

0    ;;; default configuration
  chain=srcnat action=masquerade out-interface=ether1-internet log=no 
  log-prefix="" 

1    chain=dstnat action=dst-nat to-addresses=192.168.10.144 to-ports=80 
  protocol=tcp dst-port=8000 log=no log-prefix="" 

2 X  chain=dstnat action=dst-nat to-addresses=192.168.10.144 protocol=tcp 
  dst-address=10.0.0.0/24 log=no log-prefix="" 

3 X  chain=srcnat action=src-nat to-addresses=10.0.0.0/24 protocol=tcp 
  src-address=192.168.10.144 log=no log-prefix="" 

我究竟做错了什么?

答案1

您的 PC 的 IP 地址是 192.168.10.53?您通过默认网关 192.168.10.1 向主机 10.0.0.77 发送流量。您的路由器会向您发回 ICMP 重定向数据包。您可以在此处阅读更多相关信息:https://www.cisco.com/c/en/us/support/docs/ip/routing-information-protocol-rip/13714-43.html

您可能会遇到与此处描述的问题类似的问题:https://forum.mikrotik.com/viewtopic.php?t=139465

可能的解决方案:在您的电脑上设置静态路由:10.0.0.0/24 via 192.168.10.144

答案2

我只是删除了 nat 规则并添加了伪装规则:

[admin@MikroTik] /ip firewall nat> print 
Flags: X - disabled, I - invalid, D - dynamic 
 0    ;;; default configuration chain=srcnat action=masquerade out-interface=ether1-internet log=no log-prefix="" 
 1    chain=dstnat action=dst-nat to-addresses=192.168.10.144 to-ports=80 protocol=tcp dst-port=8000 log=no log-prefix="" 
 2    chain=srcnat action=masquerade dst-address=10.0.0.0/24 log=no log-prefix="" 

现在一切都按预期进行。

相关内容