Slow NAT transfer speeds

When I go over a NATed port, my transfers don’t exceed 20Mbit/s. If I rsync from inside the network, I hit 60-70Mbit no problem, but from outside (port 11235 gets forwarded to 192.168.88.10:22 internally), I can’t get past 20Mbit.

/ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
...
2   chain=dstnat action=dst-nat to-addresses=192.168.88.10 to-ports=22 protocol=tcp dst-port=11235
...

What can possibly be imposing this limit?

I’m on RB2011UAS with RouterOS 5.24.

Which ports are you using on the RB2011 ?

For NAT you mean?

This is the current situation:

remote-host → rb2011:11235 → 192.168.88.10:22

rsync --verbose --progress --human-readable -e 'ssh -p 11235' 100MB gerhard@rb2011:/tmp/
100MB
     104.86M 100%    2.01MB/s    0:00:49 (xfer#1, to-check=0/1)

sent 104.87M bytes  received 31 bytes  2.08M bytes/sec
total size is 104.86M  speedup is 1.00

192.168.88.10 ↔ remote-host

rsync --verbose --progress --human-readable remote-host:/tmp/100MB .
100MB
     104.86M 100%    7.17MB/s    0:00:13 (xfer#1, to-check=0/1)

sent 30 bytes  received 104.87M bytes  5.99M bytes/sec
total size is 104.86M  speedup is 1.00

no, I mean physically which ethernet ports on the device ?

ETH1 - internet
ETH2 - wireless AP
ETH3 - fileserver (192.168.88.10)
ETH4 - fileserver backup
ETH5 - desktop

ETH6 - 3G hotspot

Single TCP can’t be so high because of nature of TCP. Try running multiple TCP connections at the same time, you will see that the total speed will be higher.

OK, so when I parallelize, it takes 7 connections to saturate my upstream:

104.86M 100%    1.76MB/s    0:00:56 (xfer#1, to-check=0/1)
104.86M 100%    1.75MB/s    0:00:57 (xfer#1, to-check=0/1)
104.86M 100%    1.72MB/s    0:00:58 (xfer#1, to-check=0/1)
104.86M 100%    1.71MB/s    0:00:58 (xfer#1, to-check=0/1)
104.86M 100%    1.71MB/s    0:00:58 (xfer#1, to-check=0/1)
104.86M 100%    1.69MB/s    0:00:59 (xfer#1, to-check=0/1)
104.86M 100%    1.65MB/s    0:01:00 (xfer#1, to-check=0/1)
----------------------------------------------------------
734.02M 100%    11.99MB/s   0:00:58

There still must be a limit in the router for single TCP connections when going through the NAT, otherwise there wouldn’t be a 3.5x difference vs going direct.

Oh well, at least I have an acceptable solution. Cheers!