Guida MikroTik
Interfacce, switching e VLANAvanzato

MTU, L2MTU e jumbo frame: dimensionare i frame end-to-end

Capire MTU L3 e L2MTU L2 su RouterOS v7, calcolare l'overhead di VLAN/QinQ/PPPoE/tunnel, abilitare i jumbo frame e usare MSS clamping per evitare i 'black hole' dei pacchetti grandi.

Il dimensionamento dei frame è una delle cause più subdole di malfunzionamenti in una rete WISP: il ping funziona, le pagine web si aprono, ma alcuni siti HTTPS, le VPN o i trasferimenti grandi si bloccano. Quasi sempre è un problema di MTU/L2MTU lungo il percorso. Questo articolo spiega come ragionare e come risolverlo a monte.

MTU (L3) vs L2MTU (L2): chi limita cosa

  • MTU = massimo payload IP (default 1500). È ciò che vede il routing/IP.
  • L2MTU = massimo frame Ethernet completo (header L2 inclusi). Deve essere ≥ MTU + overhead L2 (tag VLAN, ecc.).
  • Le interfacce VLAN, bridge, bonding, tunnel EREDITANO un L2MTU dal sottostante: se il fisico ha L2MTU basso, la VLAN sopra non può alzarlo.
  • Se L2MTU non basta per ospitare MTU+overhead, i frame grandi vengono scartati silenziosamente: ecco i 'black hole'.
Verificare la catena MTU/L2MTU end-to-end
# Vedere MTU e L2MTU di tutte le interfacce coinvolte
/interface print detail

# Solo le fisiche con il loro L2MTU massimo supportato
/interface/ethernet print detail where l2mtu>0

Jumbo frame: quando e come

I jumbo frame (MTU > 1500, tipicamente 9000) riducono l'overhead per byte su link interni ad alto throughput (es. tra switch core, verso storage/iSCSI). NON vanno propagati verso Internet o i clienti: lì il mondo è a 1500. Per abilitarli devi alzare L2MTU sulle interfacce fisiche e poi MTU sulle logiche, su TUTTI gli hop del percorso jumbo.

Abilitare jumbo frame su un link interno tra switch
# 1) Alzare L2MTU sulle porte fisiche del percorso jumbo
/interface/ethernet
set ether1 l2mtu=9000
set ether2 l2mtu=9000

# 2) Alzare MTU sull'interfaccia L3 (es. il bridge interno)
/interface/bridge
set bridge-core mtu=9000

# 3) Verificare che il path supporti 9000 (do-not-fragment)
/ping 10.0.0.2 size=8972 do-not-fragment count=5
# 8972 = 9000 - 28 (header IP+ICMP). Se passa, jumbo ok end-to-end.

PPPoE e il classico 1492

Il PPPoE aggiunge 8 byte di overhead, quindi l'MTU IP dentro una sessione PPPoE è tipicamente 1492. Se il link sottostante porta L2MTU a 1500, i pacchetti PPPoE da 1500 non ci stanno (servirebbe 1508). La soluzione pulita per i WISP è il baby-giant: alzare L2MTU a 1508/1520 su tutta la dorsale d'accesso così la sessione PPPoE può mantenere MTU 1500 reale per il cliente.

Baby-giant: PPPoE con MTU 1500 reale (no 1492)
# Alzare L2MTU sull'accesso per ospitare PPPoE a MTU 1500
/interface/ethernet
set ether1 l2mtu=1520
set ether2 l2mtu=1520

# Sul server PPPoE alzare max-mtu/max-mru a 1500
/interface/pppoe-server/server
set [find] max-mtu=1500 max-mru=1500

MSS clamping: la rete di salvataggio per TCP

Quando non puoi controllare l'MTU di tutto il percorso (Internet pubblica), il MSS clamping evita i black hole TCP: il router riscrive l'MSS nei pacchetti SYN in transito al valore giusto, così i due capi negoziano segmenti che ci stanno nell'MTU più piccolo del percorso. È quasi obbligatorio su uscite PPPoE/tunnel.

MSS clamping automatico su uscita PPPoE/tunnel
# Clamp MSS al Path MTU per tutto il TCP che attraversa pppoe-out/tunnel
/ip/firewall/mangle
add chain=forward protocol=tcp tcp-flags=syn \
    action=change-mss new-mss=clamp-to-pmtu \
    out-interface-list=WAN \
    comment="MSS clamp to PMTU su uscita WAN/PPPoE"
DIAGNOSI MTU in 30 secondi: dal client esegui un ping con do-not-fragment aumentando la size finché smette di passare. L'ultima size che passa + 28 = MTU del percorso. Es. passa 1464, non passa 1465 -> MTU 1492 (PPPoE). Su RouterOS: /ping <ip> size=<n> do-not-fragment.
BEST PRACTICE: tieni L2MTU UNIFORME e abbondante su tutta la dorsale L2 (es. 1600+). Frame leggermente più grandi del normale (baby-giant) non costano nulla, ma un L2MTU basso su un solo hop intermedio rompe VLAN/QinQ/PPPoE in modo difficilissimo da trovare.
MTUL2MTUjumbo frameMSSmss-clampingpath MTU discoveryframmentazionePPPoE MTUoverhead1492black holebaby giant

Configura senza fatica con l'AI

In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.

Prova WispOS