Kuskil juhendis on arv, tavaliselt kuuekümne ja kaheksakümne baidi vahel, mille keegi lahutas 1500-st, et saada liidese MTU. See arv kirjeldab ühte konkreetset kapseldust ühel konkreetsel teel. Muutke režiimi, välist aadressiperekonda, šifrit või NAT-i olemasolu ja aritmeetika ei kehti enam teie tunneli kohta.

Arv tuli teisest tunnelist

Ülekulu ei ole IPsec-i omadus abstraktselt. See on paketi omadus, mis tegelikult ehitatakse: läbi räägitud režiim, väline päis, kaitsepäis, täitmine, terviklikkuse väli ja võib-olla täiendav UDP-mähis.

IPv4-ga ja ilma NAT-ita transportrežiimi kohta öeldud arv kirjeldab väiksemat paketti kui tunnelirežiim IPv6-ga NAT-i läbimisel. Mõlemad on oma juhtumi jaoks õiged. Kummagi kopeerimine teise juurutusse viib selleni, et inimestel on MTU, mis lõhub suuri ülekandeid. Tõrge on vaikne, sest väikesed päringud töötavad edasi.

Liitke kokku kihid, mis tegelikult olemas on

Alustage välisest IP-päisest ja liikuge sissepoole. Tunnelirežiimis on algne pakett sees, seega on väline päis lisand, mitte asendus. RFC 4303 kirjeldab ESP-päist, täitmist ja terviklikkuse andmeid, mis sellele järgnevad.

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

Ükski neist ridadest ei ole juurutuste lõikes konstantne ja täitmise rida ei ole konstantne isegi ühe juurutuse sees. Just seetõttu valmistab üks avaldatud ülekuluarv pettumust.

Kaks kohta võivad sama tunneli osas eriarvamusel olla

Kaitstud pakett peab ikkagi ületama välise tee ja väline tee ei ole kõikjal sama. PPPoE juurdepääsuliin kannab vähem kui puhas Etherneti segment. Mobiilivõrk võib veelgi kitseneda ja oma liiklust tunnelisse panev teenusepakkuja lisab veel ühe kapselduse, mida keegi ei maininud. Tunnel, mis töötab ühel lingil ja ebaõnnestub teisel, kirjeldab teist linki, mitte protokolli.

Ka mõlemad suunad võivad erineda. Asümmeetriline marsruut võib anda töötava üleslaadimise ja takerdunud allalaadimise, mis loetakse rakenduse probleemiks seni, kui vaatate paketi suurusi, mitte kättesaadavust. Väikese pingi õnnestumine tõestab täissuuruses vastuse kohta väga vähe.

Mõõtke, mitte lahutage

Leidke suurim datagramm, mis tee läbib. Seejärel võrrelge seda väärtusega, mida liides teatab:

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'

Vähendage pingi suurust, kuni vastused saabuvad, ja pidage suurimat töötavat väärtust selle tee eelarveks. xfrm-i väljund ütleb, milline režiim ja millised algoritmid läbi räägiti, ning see on iga ausa arvutuse sisend. Püüdis kinnitab, kas juhtmel on ESP või UDP-sse pakitud ESP, ja see lahendab NAT-i küsimuse oletamata.

Jätke üks väärtus ka juhtimistasandile. IKE käepigistuse pakettide struktuur erineb andmepakettidest, seega käepigistuse püüdisest tuletatud suurus ei ole andmetasandi MTU.

Pange arv sinna, kuhu see kuulub

Tunneli kaudu TCP puhul on MSS-i piiramine sageli kõige vähem sekkuv kontroll, sest see vähendab seda, mida otspunktid saadavad, muutmata tunnelit ennast. Marsruudipõhise tunneli puhul seadke tunneliliidese MTU teadlikult ja dokumenteerige, miks. Mõlema korraga tegemine ja seejärel mõõtmine ei anna teile mingit teavet selle kohta, milline aitas.

Hoidke läbi räägitud režiim, väline perekond, NAT-i olek ja korratav sümptom piletil koos. Kirja pandud nelja fakti kogum on parem kui meelde jäetud konstant, ja see on ainus selle versioon, mis järgmise kliendi uuenduse üle elab.

Seotud artiklid