Les fallades d'IPv6 s'atribueixen al protocol molt més sovint que a la mida del paquet que les ha causades. Les dues famílies tracten de manera realment diferent un paquet massa gran, i un túnel és el que fa que la diferència importi. Els encaminadors IPv4 poden fragmentar un paquet quan les regles ho permeten, mentre que els encaminadors IPv6 no poden fragmentar mai en trànsit. IPv6 ho diu a l'emissor, i s'espera que l'emissor hi reaccioni. Tot el que falla després depèn de si aquest missatge arriba.

Què fa cada família

La taula és el mecanisme en quatre línies, i una fila explica la major part de la confusió.

BehaviourIPv4IPv6
Router fragments an oversized packetAllowed while DF is clearNever
Signal returned to the senderICMP Fragmentation NeededICMPv6 Packet Too Big
Size that must always work68 bytes1280 bytes
Fragmentation possibleRouters or sourceSource only

IPv6 no té fragmentació en trànsit ni cap indicador DF per netejar, així que no hi ha res a què recórrer quan un paquet és massa gran. Cal dir-ho a l'emissor, i l'emissor s'ho ha de creure.

El túnel estreny el camí en silenci

Una VPN afegeix capçaleres externes, i en el cas xifrat també dades d'integritat, abans que el paquet surti de l'amfitrió. El paquet intern pot cabre a la MTU de la interfície que veu mentre el paquet extern supera el límit de l'enllaç següent, i per això això apareix primer en un túnel. Baixeu deliberadament la MTU de la interfície del túnel, o fixeu el MSS de TCP al camí, i anoteu quin número heu triat i per què.

La sobrecàrrega d'ESP depèn del mode i dels algorismes, així que la MTU correcta del túnel és un càlcul i no una convenció. Triïs el que triïs, ha de deixar lloc per a un paquet IPv6 intern complet de 1280 octets, perquè cada enllaç IPv6 ha de transportar això. Un túnel que no pot transportar 1280 octets d'IPv6 no és un problema d'ajust; és un camí trencat per a aquesta família. Aquesta restricció és la que desapareix quan es copia un valor de MTU d'una implantació només IPv4.

Per què el símptoma és un penjament

La fallada no és un error net, i per això es diagnostica malament. Un handshake TCP es completa, arriben respostes petites, i la connexió s'atura tan bon punt comença una resposta gran o una pujada massiva, perquè aquests són els primers paquets prou grans per ser descartats. SSH es connecta i després es penja a la primera sortida gran, i la capçalera d'una pàgina es carrega mentre el cos no s'acaba mai.

Si els missatges d'ICMPv6 de paquet massa gran es filtren, l'emissor no ho sap mai i continua reintentant la mateixa mida. Això és un forat negre i no un camí lent, i la seva signatura és una frontera de mida repetible i no una pèrdua aleatòria. Permetre el trànsit de control rellevant forma part d'una implantació IPv6 funcional, no és una cortesia.

No desactiveu els missatges dels quals depèn el vostre propi camí i després descriviu el resultat com una fallada d'IPv6. El mateix argument val per als missatges Fragmentation Needed d'IPv4, que són igual de poc populars entre els autors de tallafocs i igual de necessaris.

Mesureu la frontera i després arregleu la capa

Comproveu en lloc d'endevinar: feu servir l'indicador don't-fragment a IPv4 i mides de càrrega fixes a IPv6, i anoteu on s'aturen les respostes. ping -M do -s 1472 i ping -6 -s 1400 són prou per establir la forma del problema, i tracepath informa de la MTU de camí descoberta al llarg del camí.

Després arregleu la capa que posseeix el número: la MTU de la interfície del túnel, el clamp d'MSS per a TCP o el camí mateix. RFC 8200 és la referència per a la regla IPv6, i es llegeix més de pressa que l'incident que evita.

Proveu la família que l'aplicació fa servir realment, perquè un nom de doble pila pot respondre en una família i no en l'altra, i una aplicació pot canviar després d'un canvi de xarxa. Anoteu l'adreça que heu provat, perquè un resultat contra el registre A no diu res sobre el registre AAAA.

Tracteu la frontera de mida com una prova

Una frontera de mida repetible és una de les poques fallades de xarxa que es reprodueixen exactament, amb el mateix nombre d'octets, des de la mateixa font, cada vegada. Això la converteix en un regal i no en un misteri, i també vol dir que una correcció es pot verificar en lloc d'esperar-la.

Escriviu al tiquet la MTU descoberta, la MTU del túnel que heu configurat i la prova que va demostrar la diferència. La següent persona trobarà la mateixa aritmètica en un altre enllaç.

Articles relacionats