Any RouterOS version above 7.15.3 (7.16.x and 7.17) sees critical performance issues. Affected are all TCP streams, most noticeable is performance drop while attempting SMB file operations. Wireskark sees multiple duplicated ACKs and retransmissions. Config (working on 7.15.3), GRE addressing not redacted.
TL;DR how does the CPU load (/tool/profile cpu=all) look under the traffic load?
There have been some changelog notes in last few versions regarding hardware AES acceleration specifically on the Alpine SoC family being broken and fixed and fixed again, etc.
RB4011 has an Alpine chip, so this might be somehow related - even though the changelogs were specifically highlighting AES-GCM which is not what you have in your config.
@BartoszP - I don’t think this is really MTU issue. Autonegotiated MTU actually aligns with one I’ve calculated and lowering it does not help either. I may test it in direct connection with one of the peers to test against NAT-T or other potentially offending voodoo.
@wrkq - on 7.15.3 I see a spike during transfer up to 90% of single core utilization, more typical:
@mwisniewski, how do iperf3 tests for UDP or TCP with different packet sizes impact throughput and CPU usage? Have you tried different algorithms for IPsec Hardware acceleration? Is there an RB4011 on both ends?
I had the same issue and worked through it with Mikrotik support. The issue is that they broke how GRE does segment reassembly then egresses out an interface with a lower MTU. Their work around which works for me is:
Mikrotik will know more, but from what I gather the GRE-Tunnel is reassembling segments and ends up with a frame larger than 1370 and drops it.
I experimented with clamping mss to 1200 and running a GRE interface at 2000 so that there was never a reason to fragment, but I couldn't make it work. Mikrotik support says they will have a fix in an upcoming release and recognize it as a bug, but for now clearing the DF bit make GRE tunnels work on firmware newer than 7.15.3.
Just curious, what speeds do you get before / after the proposed fix?
I run a very similar setup to yours and I struggle with the poor tunnel throughput. I found no direct relation to the ROS version I use. And when I say poor - it's really poor, like Windows Samba file transfer speeds at around 300-600KBps (jumping up to about 1.5MBps on good days - with no obvious reason). That's on a 1G Internet connection at both ends...
Before the update speeds were kilobits a second as it fought through the drops. Afterwards I get 3.3MB/sec but that's through various other tunnels so that number doesn't mean much other than to say, fast enough for VPN stuff I do.