Qui tria l’MTU de WireGuard: wg-quick, el nucli o tu
WireGuard no negocia cap MTU. L’eina de configuració, un gestor de xarxa o la teva línia de configuració decideixen, i el valor per defecte és una conjectura sobre el camí, no una mesura.
WireGuard no té cap negociació d’MTU. Xifra tot el que la interfície li lliura i envia el resultat, i si el paquet encapsulat supera el camí, es descarta o es fragmenta en algun lloc que no pots veure. Algú ha de triar l’MTU de la interfície, i aquest algú és l’eina que va aixecar la interfície.
Hi ha tres candidats, i és fàcil confondre’ls.
Tres llocs d’on pot venir el valor
El valor es pot fixar explícitament a la configuració de la interfície, calcular-lo l’eina de configuració a partir de la informació de ruta, o fixar-lo qualsevol gestor de xarxa que posseeixi la interfície. Una crida corrent de wg no fa cap d’aquestes coses, perquè wg només gestiona claus i parells. L’MTU viu a la interfície de xarxa, i per això ip link show wg0 és on el llegeixes.
Si no tens clar quin cas s’aplica, llegeix primer l’MTU i després esbrina qui va iniciar la interfície.
Decideix segons qui executa la interfície
Si l’engega wg-quick, guanya una línia MTU explícita i, si no, calcula un valor. Si l’engega un gestor de xarxa, decideix el perfil d’aquest gestor. Si l’engega un entorn d’execució de contenidors o un client de proveïdor, llegeix la seva documentació en lloc de suposar el comportament de wg-quick.
La decisió no és quin número és millor en abstracte. És quin component pots configurar de debò.
Què fa el càlcul per defecte
wg-quick busca la ruta fins al punt final del parell, agafa l’MTU d’aquella interfície de sortida i resta la sobrecàrrega d’encapsulament. Amb una capçalera externa IPv4 són uns 60 bytes; amb IPv6, uns 80. El resultat es limita perquè un camí de 1500 bytes doni 1420 en lloc d’un valor que només funciona en una família d’adreces. Aquest és un valor per defecte raonable, no una mesura del teu camí.
No pot saber res d’un túnel posterior, d’un enllaç mòbil o d’un camí ICMP filtrat.
El límit amaga una pregunta real. Si el teu camí és de veritat 9000 bytes d’extrem a extrem, 1420 deixa rendiment sobre la taula, i si el camí és de 1400, 1420 ja és massa gran. El valor per defecte és un compromís, i s’ha de tractar com a tal.
Quan el camí canvia sota teu
Un portàtil que passa d’Ethernet a Wi-Fi i a un punt d’accés del mòbil conserva l’MTU de la interfície amb què va començar. El camí extern pot ser ara més petit, i res no renegocia. Els túnels imbricats ho empitjoren, perquè cada capa resta la seva pròpia sobrecàrrega del mateix pressupost. El valor que funcionava a l’oficina no és el valor que funciona a l’aeroport.
Un handshake recent demostra que les claus funcionen. No demostra res sobre si hi caben els paquets grans.
Prova un número alhora
Mantingues la mateixa aplicació i destinació, canvia un valor i mesura. ping -M do -s 1372 prova un paquet de 1400 bytes amb el bit DF activat, i aquesta és la forma de prova que vols. Si les peticions petites funcionen i les grans s’encallen, tens un problema de mida i no d’encaminament.
Canvia només l’MTU. Ajustar diverses opcions de paquet alhora no et diu quina era la important.
I no esperis que un canvi d’MTU arregli una ruta de retorn que falta, una regla de reenviament o un error de DNS. També produeixen símptomes de falta de trànsit, i tenen les seves pròpies proves. El manual de wg-quick documenta la selecció automàtica.