RUTX50 - devices behind NAT get slower internet speed

I’ve setup RUTX50 with SIM card meant for a phone. I get about 250Mbps measured using the speed test on the administration page - that is good speed in my location. However, any computer connected to the LAN port gets only about 10Mbps.

To remove any doubt, I used two other methods to measure the speed from the RUTX50 itself and from my computer:

  • curl -o /dev/null https://myserver/to/big/file
  • iperf -c myserver

In both cases the speed from RUTX50 is much faster than from my computer. To be sure I also ran iperf between RUTX50 and my computer and I got ~100Mbit, which is rather low, the ethernet claims to be 1Gbit, but it’s still lot higher than the 10Mbit when accessing internet.

So it looks like my mobile operator is detecting “tethering” and throttling the speed. I searched how the operator may be detecting it:

  • It’s not APN issue, the operator has just one APN and it clearly gives good speeds on the RUTX50 itself.
  • I thought it could detecting using TTL, so I’ve run iptables -t mangle -I POSTROUTING -o qmimux0 -j TTL --ttl-set 64, but it didn’t help. I used tcpdump and wireshark to inspect the packets going out - they had TTL set to 64 in both cases.
  • I saw claims that the operator examines the User Agent header in HTTP, but my tests were using HTTPS and iperf, so no User Agent is visible to the operator.
  • I saw claims that the operator fingerprints the traffic to detect computers, but I also ran iperf from the RUTX50 and the computer at the same time and again the one from RUTX50 had much higher speed than the one from computer, so it must be some property of the stream, not of the connection as whole.

Is there some other way the operator could be detecting it? Or could it be that it’s not the operator, but the NAT on the device is just that slow?

More investigation: UDP seems to be fast from both the RUTX50 and computer. Measured using iperf3 -c myserver 5201 -u -f m -b 100M I get 100Mbit from both.

As one more experiment I used socat to forward tcp connections: socat TCP4-LISTEN:5201,fork TCP4:myserver:5201 and then I ran iperf thru that and it was fast. So there must be something about the TCP connections coming from the RUTX50 that is different than the ones coming from the computer and my operator doesn’t like it…

Sigh, it seems my switch has some effect on all that. When I connect my computer to the RUTX50 directly I get the same speeds from both of them. Possibly there is no issue with the RUTX50 at all.

Hello,

If you achieve the same speeds when your computer is connected directly to the RUTX50, but notice reduced speeds when connected via the switch, it indicates the issue is likely with the switch. There should be no problem on the router side.

Please keep us updated on your progress, and feel free to reach out if you have any further questions.

Best Regards,

So it most likely isn’t problem with RUTX50 at all, posting here in case it helps somebody.

My switch is Mikrotik and my computer and the RUTX50 are on different VLANs. Turns out I didn’t have l3-hw-offloading enabled. After enabling it I see:

~950Mbps (increase from ~100Mbps) from computer->switch->RUTX50 - perfect, that’s what I expect from Gbps ethernet.
~30Mbps (increase from ~10Mbps) from computer->switch->RUTX50->internet, better but still less than what I see from RUTX50->internet. Will keep investigating…

This topic was automatically closed after 15 days. New replies are no longer allowed.