En algun lloc d’una guia hi ha un número, normalment entre seixanta i vuitanta bytes, que algú va restar de 1500 per obtenir una MTU d’interfície. Aquest número descriu un encapsulament concret en un camí concret. Canvieu el mode, la família d’adreces exterior, el xifratge o la presència de NAT, i l’aritmètica ja no s’aplica al vostre túnel.

El número ve d’un altre túnel

La sobrecàrrega no és una propietat d’IPsec en abstracte. És una propietat del paquet que realment es construeix: un mode negociat, una capçalera exterior, una capçalera de protecció, farciment, un camp d’integritat i potser un embolcall UDP addicional.

Una xifra citada per al mode transport amb IPv4 i sense NAT descriu un paquet més petit que el mode túnel amb IPv6 sota travessa de NAT. Totes dues són correctes per al seu cas. Copiar qualsevol de les dues a un desplegament diferent és com la gent acaba amb una MTU que trenca les transferències grans. La fallada és silenciosa perquè les peticions petites continuen funcionant.

Sumeu les capes que hi són de debò

Comenceu per la capçalera IP exterior i aneu cap endins. En mode túnel el paquet original és a dins, així que la capçalera exterior és un afegit i no un reemplaçament. RFC 4303 descriu la capçalera ESP, el farciment i les dades d’integritat que la segueixen.

LayerWhat it addsWhen it applies
Outer IP header20 bytes for IPv4, 40 for IPv6Always, and 40 rather than 20 if the outer path is v6
ESP header8 bytes of SPI and sequence numberAlways
Block cipher IV8 to 16 bytes depending on the transformWhen the negotiated cipher uses one
Padding and trailerPadding to the block size, plus two trailer bytesAlways, and the amount varies with payload length
Integrity data12 to 16 bytes for common authenticated ciphersWhen integrity protection is negotiated
UDP encapsulation8 bytesNAT traversal on port 4500, which is common for clients behind NAT

Cap d’aquestes files no és constant entre desplegaments, i la fila del farciment no és constant ni dins d’un sol desplegament. Aquesta és tota la raó per la qual una sola xifra publicada de sobrecàrrega decep.

Dos llocs poden discrepar sobre el mateix túnel

El paquet protegit encara ha de travessar el camí exterior, i el camí exterior no és igual a tot arreu. Un enllaç d’accés PPPoE porta menys que un segment Ethernet net. Una xarxa mòbil pot encongir-se més, i un proveïdor que tunelitza el seu propi trànsit afegeix un altre encapsulament que ningú no havia esmentat. Un túnel que funciona en un enllaç i falla en un altre està descrivint el segon enllaç, no el protocol.

Les dues direccions també poden diferir. Una ruta asimètrica us pot donar una pujada que funciona i una baixada encallada, cosa que es llegeix com un problema d’aplicació fins que mireu les mides dels paquets en lloc de l’abastabilitat. Un ping petit que té èxit demostra molt poc sobre una resposta de mida completa.

Mesureu en lloc de restar

Trobeu el datagrama més gran que sobreviu al camí. Després compareu-lo amb el valor que informa la interfície:

ip link show eth0 | grep -o 'mtu [0-9]*'
ip xfrm state list
ping -M do -s 1400 198.51.100.7
ping -M do -s 1372 198.51.100.7
tcpdump -ni any -c 20 'esp or udp port 4500'

Baixeu la mida del ping fins que arribin respostes, i preneu el valor més gran que funcioni com a pressupost per a aquell camí. La sortida d’xfrm us diu quin mode i quins algorismes s’han negociat, que és l’entrada de qualsevol càlcul honest. La captura confirma si a l’enllaç hi ha ESP o ESP encapsulat en UDP, cosa que resol la qüestió del NAT sense endevinar.

Reserveu també un valor per al pla de control. Els paquets d’encaixada de mans IKE tenen una estructura diferent de la dels paquets de dades, així que una mida derivada d’una captura d’encaixada de mans no és una MTU de pla de dades.

Poseu el número on li toca

Per al TCP a través d’un túnel, una limitació d’MSS és sovint el control menys invasiu, perquè redueix el que envien els extrems sense canviar el túnel mateix. Per a un túnel basat en rutes, fixeu la MTU de la interfície del túnel deliberadament i documenteu per què. Fer les dues coses alhora i després mesurar no us dona cap informació sobre quina va ajudar.

Mantingueu junts al tiquet el mode negociat, la família exterior, la condició de NAT i el símptoma reproduïble. Un conjunt registrat de quatre fets supera una constant recordada, i és l’única versió d’això que sobreviu a la propera actualització del client.

Articles relacionats