Iewers in 'n gids is daar 'n getal, gewoonlik tussen sestig en tagtig grepe, wat iemand van 1500 afgetrek het om 'n koppelvlak-MTU te kry. Daardie getal beskryf een spesifieke kapseling op een spesifieke pad. Verander die modus, die buitenste adresfamilie, die kriptoalgoritme of die teenwoordigheid van NAT, en die rekenkunde pas nie meer op jou tonnel nie.

Die getal kom van 'n ander tonnel

Oorhoofs is nie 'n eienskap van IPsec in die abstrakte nie. Dit is 'n eienskap van die pakkie wat werklik gebou word: 'n onderhandelde modus, 'n buitenste opskrif, 'n beskermingsopskrif, opvulling, 'n integriteitsveld en moontlik 'n ekstra UDP-omhulsel.

'n Syfer wat vir transportmodus met IPv4 en sonder NAT aangehaal word, beskryf 'n kleiner pakkie as tonnelmodus met IPv6 onder NAT-traversering. Albei is korrek vir hul eie geval. Om een van hulle in 'n ander ontplooiing te kopieer, is hoe mense uiteindelik 'n MTU kry wat groot oordragte breek. Die fout is stil, want klein versoeke bly werk.

Tel die lae bymekaar wat werklik daar is

Begin by die buitenste IP-opskrif en werk na binne. In tonnelmodus is die oorspronklike pakkie binne, so die buitenste opskrif is 'n toevoeging eerder as 'n vervanging. RFC 4303 beskryf die ESP-opskrif, die opvulling en die integriteitsdata wat daarop volg.

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

Nie een van daardie rye is konstant oor ontplooiings nie, en die opvullingsry is nie eers konstant binne een ontplooiing nie. Dit is die hele rede waarom 'n enkele gepubliseerde syfer vir oorhoofs teleurstel.

Twee terreine kan oor dieselfde tonnel verskil

Die beskermde pakkie moet steeds die buitenste pad oorsteek, en die buitenste pad is nie oral dieselfde nie. 'n PPPoE-toegangslyn dra minder as 'n skoon Ethernet-segment. 'n Mobiele netwerk kan verder krimp, en 'n verskaffer wat sy eie verkeer tonnel, voeg nog 'n kapseling by wat niemand genoem het nie. 'n Tonnel wat op een skakel werk en op 'n ander faal, beskryf die tweede skakel, nie die protokol nie.

Albei rigtings kan ook verskil. 'n Asimmetriese roete kan vir jou 'n werkende oplaai en 'n gestopte aflaai gee, wat soos 'n toepassingsprobleem lyk totdat jy na pakkiegroottes kyk eerder as na bereikbaarheid. 'n Klein ping wat slaag, bewys baie min oor 'n antwoord van volle grootte.

Meet eerder as om af te trek

Vind die grootste datagram wat die pad oorleef. Vergelyk dit dan met die waarde wat die koppelvlak rapporteer:

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'

Stap die ping-grootte af totdat antwoorde aankom, en behandel die grootste werkende waarde as die begroting vir daardie pad. Die xfrm-uitset vertel jou watter modus en watter algoritmes onderhandel is, wat die insette vir enige eerlike berekening is. Die opname bevestig of ESP of UDP-omhulde ESP op die draad is, wat die NAT-vraag besleg sonder om te raai.

Reserveer ook een waarde vir die beheervlak. IKE-handdrukpakkies het 'n ander struktuur as datapakkies, so 'n grootte afgelei van 'n handdrukopname is nie 'n data-vlak-MTU nie.

Sit die getal waar dit hoort

Vir TCP deur 'n tonnel is 'n MSS-inklemming dikwels die mins indringende beheer, want dit verminder wat die eindpunte stuur sonder om die tonnel self te verander. Vir 'n roetegebaseerde tonnel stel jy die tonnelkoppelvlak se MTU doelbewus en dokumenteer hoekom. Om albei gelyk te doen en dan te meet, gee jou geen inligting oor watter een gehelp het nie.

Hou die onderhandelde modus, buitenste familie, NAT-toestand en die herhaalbare simptoom saam in die kaartjie. 'n Opgetekende stel van vier feite klop 'n onthoude konstante, en dit is die enigste weergawe hiervan wat die volgende kliënt-opgradering oorleef.

Verwante artikels