El ping respon, el DNS es resol, i cada pàgina que necessita un segment de mida completa s’encalla. En un enllaç que afegeix la seva pròpia encapsulació, el camí perd en silenci unes desenes de bytes de pressupost, i un perfil escrit per a Ethernet net continua demanant paquets que la línia no pot transportar. La connexió no és lenta; descarta exactament els paquets que importen.

Tres opcions poden solucionar-ho, i operen en capes diferents. Triar la incorrecta o no fa res o fa el túnel fràgil d’una manera nova, així que l’elecció comença pel que el camí realment admet.

Tres controls, tres capes diferents

link-mtu és el pressupost exterior: la càrrega xifrada més la capçalera d’OpenVPN, la capçalera UDP i la capçalera IP exterior. Descriu què surt de la màquina, i per això és el número que el camí físic limita.

tun-mtu és el pressupost interior: la interfície que veu el vostre trànsit. És més gran que el que el camí pot transportar exactament en la sobrecàrrega del túnel, i OpenVPN normalment el dedueix en lloc de fer-vos-el establir.

mssfix és un mecanisme completament diferent. Reescriu la mida màxima de segment anunciada durant les connexions TCP, perquè els iguals TCP triïn segments que hi càpiguen després de l’encapsulació. No canvia la MTU de la interfície i no té cap efecte sobre UDP.

Si establiu link-mtu explícitament, OpenVPN resta la seva pròpia sobrecàrrega per deduir la MTU interior. Aquesta sobrecàrrega no és una constant fixa; depèn del xifratge i de l’autenticació, i per això un valor copiat d’un missatge de fòrum pot ser incorrecte en un altre perfil. Establir alhora link-mtu i tun-mtu dona al client dues instruccions contradictòries.

Mesureu el camí abans de triar qualsevol número

Mesureu des de la interfície física, no des de dins del túnel, i recordeu que el ping informa de la càrrega, no de la mida del paquet. Afegiu 28 bytes per a les capçaleres IPv4 i ICMP abans de comparar la càrrega amb una trama de 1500 bytes, i tingueu present aquesta correcció quan un igual informi d’un número diferent.

En un client Linux, ping -M do -s 1472 prohibeix la fragmentació i falla si el paquet és massa gran. Baixeu la càrrega fins que passi, i després afegiu 28 per obtenir la MTU del camí. El PPPoE costa 8 bytes, així que 1492 és normal en DSL. DS-Lite i alguns camins mòbils costen 40 o més, i la resposta sol ser inferior al que suggereix la velocitat nominal de l’enllaç.

Si cada mida de ping té èxit però les transferències grans encara s’encallen, sospiteu un forat negre més aviat que un simple límit de mida. Un missatge ICMP de necessitat de fragmentació es filtra en algun punt del camí, així que l’emissor mai no aprèn a reduir-se, i només els fluxos que necessiten un segment gran se n’adonen.

Ajusteu primer TCP, reduïu el túnel després

Les connexions TCP són l’única cosa que toca mssfix, cosa que normalment el converteix en el control menys pertorbador per provar primer. Establiu-lo una mica per sota del pressupost real del camí, empenyeu el mateix valor des del servidor perquè els dos extrems coincideixin, i torneu a provar una descàrrega gran. Si l’encallament desapareix, el problema era la mida del segment TCP, i no cal canviar res més.

Baixeu la MTU interior quan el trànsit afectat no és TCP. Un servei UDP, un túnel dins del túnel, o una aplicació que envia datagrames de mida completa continuaran fallant després d’un ajust d’MSS perquè res no reescriu la mida del seu paquet. Reduïu tun-mtu per a aquest cas, o establiu link-mtu i deixeu que el client dedueixi el valor interior, però mai tots dos.

No recorreu a l’opció antiga de fragmentació. Partia els paquets dins del túnel, afegia sobrecàrrega i s’ha descontinuat per bones raons; l’OpenVPN modern espera en canvi que el camí es descrigui amb precisió.

Per què les sondes petites continuen funcionant

Les consultes DNS, els ecos ICMP i les connexions TCP són molt per sota de la mida que falla. El túnel, doncs, sembla sa en cada prova ràpida mentre les connexions TLS i les respostes HTTP fallen en silenci. Aquesta combinació, un traceroute que funciona i un navegador que s’encalla a la primera resposta gran, és la signatura que cal buscar. Recorreu a una sonda de mida completa abans de recórrer a un perfil nou.

Verifiqueu amb el trànsit que va fallar. Baixeu una pàgina gran, envieu un datagrama UDP de mida completa si aquest és el servei afectat, i repetiu-ho des d’un segon client en un altre enllaç. Anoteu la MTU del camí mesurada i el valor que heu triat, perquè la següent persona que toqui el perfil tractarà el número com a arbitrari si no.

No baixeu mai la MTU interior per sota de 1280 quan IPv6 va pel túnel, perquè aquest és el mínim que tot enllaç IPv6 ha de transportar. Una MTU més petita és un fet sobre el camí, no un paràmetre de rendiment per afinar a l’ull.

Articles relacionats