Mtu seems like it has stuck

Hi. I tried to change the mtu at my lhgg lte6 from the winbox interface, so I went to the LTE interface and just changed the default value, from 1500 to 1372. Afterwards I saw that this seems not right, so I changed it back to 1500, but although it has changed at the lte interface, the speedguide.net keeps showing the same results, that the mtu continues to be 1372.
How can I change this back to 1500 again?

« SpeedGuide.net TCP Analyzer Results »
Tested on: 2023.04.04 08:54
IP address: 109.178.xxx.xx
Client OS/browser: Android (Firefox 111.0)

TCP options string: 020405340402080a012fb1ff0000000001030308
MSS: 1332
MTU: 1372
TCP Window: 87808 (not multiple of MSS)
RWIN Scaling: 8 bits (2^8=256)
Unscaled RWIN : 343
Recommended RWINs: 63936, 127872, 255744, 511488, 1022976
BDP limit (200ms): 3512 kbps (351 Kilobytes/s)
BDP limit (500ms): 1405 kbps (140 Kilobytes/s)
MTU Discovery: ON
TTL: 46
Timestamps: ON
SACKs: ON
IP ToS: 00111000 (56)
Precedence: 001 (priority)
Delay: 1 (low delay)
Throughput: 1 (high throughput)
Reliability: 0 (normal reliability)
Cost: 0 (normal cost)
Check bit: 0 (correct)
DSCP (DiffServ): AF13 001110 (14) - Assured Forwarding class 1, high drop precedence (RFC 2597).

This is tricky to test. Your test could be it’s finding the 1372 MTU based on “Path MTU discovery” – so even if LTE interface is 1500, the TCP client is still calculating out the network’s lowest MTU.

I can’t say how long MTU is cached within an OS… but would at least some time for the 1500 to be picked up and used for connections. That’s other possibility.

Just one /export can show if you forgot some settings…

Config worth a look… But this very well could be PMTUD working, and the LTE network has the lower MTU.

You want to check the logs, if your modem is MBIM (not all are), there might be a message like “mbim: network advertises lower mtu:” when you set MTU to 1500 – if that log message said 1372 that be telling.

But perhaps reboot everything (PC and Mikrotik) after LTE set to 1500, and then see if the speedtest thing you showed still using 1372… e.g. does your test ever show a higher MTU?

It seems that MTU is decreased on ISP side.
LTE interface on MT:
Screenshot 2023-04-04 at 19.56.39.png
Log:

lte,info lte1 mbim: network advertises lower mtu: 1358
lte,info lte1 IPv4: xxx.xxx.xxx.xxx, DNS: xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx, MTU: 1358

Speedguide.net report:
MTU = 1420
MTU is not fully optimized for broadband. Consider increasing your MTU to 1500 for better throughput. If you are using a router, it could be limiting your MTU regardless of Registry settings.
MSS = 1380
MSS is not optimized for broadband. Consider increasing your MTU value.

I think that’s why Mikroitk changed the default just be 1500 for LTE for newer V7 releases…

If MTU is lower, the theory is the PMTUD will fix it up, and so automatic getting “best possible”. The alternative is to use the MTU suggested by your carrier as the MTU since it possible that PMTUD may not work, and packets will starting getting fragemented. While fragmentation slows things down, things would still work, e.g. only speed is effected if MTU discovery fails AND MTU is too actually too high.

@Optio, did you try using the 1358 value as the MTU in the LTE interface, and see what happens with your speedtest report?

Same report from speedguide.net, but no longer in log

network advertises lower mtu: 1358

when connected.

Actually connection log also differs:

lte1 IPv4: xxx.xxx.xxx.xxx, DNS: xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx

no longer MTU value

Is this means that ROS sets MTU for LTE interface when it is differently advertized, but Actual MTU is not updated?

I think the “Actual MTU” is from RouterOS’s point-of-view so it matches the MTU you set - not related to the “network MTU”.

The log message does go away if it matches.

Whether the message is right…different question, and likely depend on your specific LTE carrier… In my cases, the value in the log does match US and different APN certainly produce different value even on the same carrier. But the do seem to be “correct”

e.g. BOTH a ping test and the SpeedGuide site match the “network advertises [lower/higher] mtu” in all cases I’ve seen.

So while SpeedGuide may not be wrong to suggest 1500 – you can’t fix the LTE network.

Thanks for your replies and tests you made. So then we conclude that whatever you put at LTE mtu interface on routeros, it doesn’t affect finally the mtu that carrier has set on this line, right? So from what I understand, there is not that the system has stack at the previous setting then, but it just can’t change at all, so I should not worry about what the speedguide.net shows.
Is that correct?

That’s correct

To clarify, basically, two choices:

  1. Leave it at 1500, in which case as you see, generally works to figure out the lower MTU use by the entire LTE network path (e.g. MTU is lower inside the LTE network, not on our router)
  2. Match the MTU value reported in the logs. You’d do this since the MTU is actually lower. And it’s possible the automatic MTU detection doesn’t work for IPv4.

I personally think it’s best to match the “network MTU” and use option 2. But in practice, as your tests show, the MTU gets calculated the same in either case. There are corner case where option 1 approach MAY be better, but you’d need to use more esoteric protocols to run into I think.

But lower MTU shown on the speedguide.net TCP page can NOT be fixed by any config changes on the Mikrotik side – it’s just how LTE works.