MTU is de grootste hoeveelheid data die in één pakket past. Op Ethernet is dat 1500 bytes, overal ter wereld hetzelfde omdat alles erop gebouwd is. Verander je er iets aan, of doet je provider dat voor je, dan krijg je een fout die lastig te herkennen is: kleine dingen werken, grote niet. Pingen lukt, een website laadt half, een bestandsoverdracht blijft hangen.
Daarnaast bestaat er L2 MTU: hetzelfde frame, gemeten zonder de MAC-koppen. Een VLAN-tag van vier bytes moet daar bovenop passen. Een poort met l2mtu=9000 en mtu=9000 gooit dus elk getagd pakket op volle grootte weg. Dat onderscheid is de reden dat dit hoofdstuk bestaat.
MTU op alle poorten
In geavanceerd, onder Bridge en poorten, staat het veld MTU op alle poorten (jumbo frames). Leeg laten betekent de standaard 1500, en dat is voor bijna iedereen het goede antwoord. Vul je 9000 in, dan krijg je jumbo frames op alle bekabelde poorten. Dat is zinvol in een opslagnetwerk of tussen virtualisatiehosts, waar grote blokken over de lijn gaan. Voor gewoon kantoorverkeer of internet levert het niets op en kost het alleen problemen zodra er één apparaat tussen zit dat niet meedoet.
Hoe het script het op de poorten zet
Hoe ver de L2 MTU van een poort gaat verschilt per model en zelfs per poort: 2026 op een hEX, 9578 op een RB4011. De catalogus in de configurator weet dat niet, en de browser ziet je hardware niet. Het script vraagt het daarom aan de router zelf. Per bekabelde poort komt er een regel die:
max-l2mtuvan die poort uitleest;- de L2 MTU op dat maximum zet;
- de MTU op wat je hebt ingevuld zet, tenzij die plus vier bytes voor een VLAN-tag niet meer binnen dat maximum past. Dan wordt de MTU verlaagd naar het maximum min vier, en schrijft het script een waarschuwing in het log van de router:
genconf: ether3 carries MTU 2022 at most (max-l2mtu 2026).
Een poort die zijn L2 MTU niet kan veranderen houdt die gewoon en krijgt alleen de MTU. Elke regel zit in een foutafhandeling, zodat één poort die tegenstribbelt de rest van het script niet stuk maakt. Kijk na het plakken dus even in /log print of er regels met genconf in staan, en controleer met /interface ethernet print detail wat er werkelijk op de poorten staat.
De MTU van de bridge
Daaronder staat een apart veld voor de MTU van de bridge. Leeg laten is het beste: de bridge volgt dan zijn poorten. Zet je hem hoger dan de poorten aankunnen, dan waarschuwt de tool, en terecht: de bridge geeft de pakketten door aan zijn poorten, en die gooien alles weg wat groter is dan hun eigen MTU. Zet dus eerst de poorten hoog en daarna pas de bridge, of laat de bridge leeg.
Een kabel tussen twee apparaten in een site
Werk je met meerdere apparaten en heb je op het netwerkbord kabels getrokken, dan controleert de configurator de MTU aan beide kanten van elke kabel. Verschillen ze, dan krijg je een waarschuwing met de twee apparaten, de twee poorten en de twee waarden erbij: pakketten groter dan de kleinste van de twee komen er niet door en verdwijnen zonder foutmelding. Dat laatste is het venijnige: er komt geen ICMP terug die je kunt zien, het verkeer is gewoon weg.
Daarnaast kijkt de tool naar groepen apparaten die met kabels aan elkaar hangen. Gebruiken die verschillende MTU's op hun bridge, dan zegt hij dat ook, met per waarde de apparaten erbij. Binnen één netwerk hoort de MTU overal gelijk te zijn.
Een uplink met een eigen MTU telt mee: heeft een WAN-poort in het onderdeel WAN een eigen MTU gekregen, dan gebruikt de controle die waarde voor die poort in plaats van de algemene poort-MTU.
PPPoE en 1492
PPPoE stopt je pakketten in een extra envelop van acht bytes. Op een lijn van 1500 blijft er dus 1492 over, en dat is de waarde die bij vrijwel elke DSL- of glasaansluiting met PPPoE hoort. Laat je het MTU-veld bij je uplink leeg, dan regelt RouterOS dat zelf.
Sommige providers ondersteunen RFC 4638, ook wel baby jumbo frames: de lijn draagt dan 1508 bytes, zodat er na de PPPoE-envelop weer volle 1500 overblijven. Vul je bij een PPPoE-uplink een MTU hoger dan 1492 in, dan zet het script op de WAN-poort, en als er een VLAN op zit ook op die VLAN, de MTU acht bytes hoger. Je krijgt er een melding bij die uitlegt wat er gebeurt. Ondersteunt je provider het niet, dan werkt dit niet en laat je het veld leeg of zet je 1492. Zie ook Providerpresets, want voor de bekende Nederlandse providers is dit al ingevuld.
MSS-clamping
Is de MTU naar internet kleiner dan 1500, door PPPoE of door een zelf ingevulde lagere WAN-MTU, dan verschijnt de schakelaar TCP MSS aanpassen op PPPoE/tunnels. Die staat aan en dat moet je zo laten.
In theorie vinden twee computers de juiste pakketgrootte zelf, via path MTU discovery. In de praktijk blokkeren veel servers en firewalls de ICMP-meldingen waar dat op leunt, en dan blijft een website hangen midden in het laden. MSS-clamping lost dat op door bij het opzetten van elke TCP-verbinding de afgesproken pakketgrootte naar beneden bij te stellen naar wat er werkelijk doorheen past. Het script zet daarvoor één regel in /ip firewall mangle: chain=forward protocol=tcp tcp-flags=syn action=change-mss new-mss=clamp-to-pmtu out-interface-list=WAN. Zet je hem uit terwijl hij nodig is, dan waarschuwt de tool.
Die regel werkt op de WAN-lijst. Verkeer dat alleen door een tunnel gaat en nooit langs WAN komt, valt er dus buiten. Heb je een tunnel met een kleine MTU tussen twee locaties, voeg dan een eigen mangle-regel op die tunnel toe na het plakken.
Tunnels
Elke tunnel plakt koppen op je pakketten, dus binnenin blijft er minder over. De configurator wijst je op de gevallen waar dat misgaat:
- WireGuard gebruikt standaard MTU 1420. Dat past over een PPPoE-lijn van 1492, maar niet als een peer via IPv6 binnenkomt; dan is 1412 nodig, op de interface en in de clientconfiguratie. Zie WireGuard.
- EoIP in een bridge krijgt MTU 1500 van de tool. De tunnelpakketten worden onderweg opgeknipt, maar volledige Ethernet-frames komen er wel doorheen. Zonder dat zou de bridge zijn MTU laten zakken naar 1458 en elk pakket op volle grootte wegvallen.
- VXLAN draagt frames van 1500 met 50 bytes eroverheen, dus de weg naar de andere kant moet 1550 aankunnen. Over gewoon internet is dat 1500, en met de DF-vlag gezet worden die pakketten weggegooid. De tool waarschuwt daarvoor zolang je poort-MTU onder 1550 staat.
Zie Tunnels tussen locaties voor het geheel.
Als het misgaat
- Kleine dingen werken, grote niet. Dit is het handtekeningpatroon. Test met
/ping 1.1.1.1 size=1472 do-not-fragment: komt dat niet door en een kleinere wel, dan zit je MTU-grens daartussen. Trek er 28 bytes af om bij de IP-MTU te komen. - Eén apparaat doet het niet na jumbo frames aanzetten. Niet elk apparaat kan 9000. Zet de MTU terug naar 1500 op alle poorten en werk van daaruit.
- Getagd verkeer valt weg, untagged niet. Dan past de VLAN-tag er niet meer bij. Kijk in het log van de router naar de
genconf-regels over max-l2mtu. - Websites laden half. Kijk of MSS-clamping aan staat en of de regel in
/ip firewall manglestaat.
Verder lezen: Bridge en poorten voor de poorten zelf, WAN en internet voor de uplink, en Meerdere apparaten voor de controles over een hele site.