Pingi uspejo, veliki prenosi se obesijo, tunel pa se razglasi za zdravega. Nekdo zniža MTU vmesnika, drugi omeji MSS, in včasih težava izgine iz razlogov, ki jih nihče ne zapiše. Ti dve števili opisujeta različne objekte, zato spreminjanje napačnega da popravek, ki izgleda kot sreča. Postopek je naslednji: prepoznajte plast, uporabite ustrezno prilagoditev in nato preizkusite na novi povezavi.

Dve števili, dva objekta

MTU pripada povezavi ali vmesniku: to je največji paket, ki ga je mogoče predati brez razdelitve. MSS pripada TCP: to je največja količina natovora TCP, ki jo segment lahko nosi, in izključuje glavi TCP in IP. Na običajni povezavi Ethernet z IPv4 MTU 1500 bajtov da znani MSS 1460 bajtov. Ti števili opisujeta različne plasti in se izmenjujeta z različnimi mehanizmi. Zamenjati ju je lahko, ker se obe merita v bajtih in sta obe blizu 1500.

Eno pride kot nastavitev vmesnika. Drugo pride kot možnost znotraj segmenta SYN, dogovorjena med koncema, ki vašega vmesnika nikoli ne vidita.

Kam pade zunanja dodatna obremenitev

VPN vstavi notranji paket v drugega, zunanji paket pa se mora prilegati fizični poti. Glave zapakiranja, zunanja glava IP, transportna glava in morebitna oznaka za preverjanje pristnosti porabijo bajte, ki jih notranji paket ne more uporabiti. Pustite vmesnik tunela na 1500 in zunanji paket redno preseže tisto, kar pot zmore. Ko je nastavljen bit 'ne razdeli', ga usmerjevalnik zavrže in bi moral vrniti napako ICMP; če je ta napaka filtrirana, pošiljatelj tega nikoli ne izve.

Zato se napaka zdi izbirna. Majhne zahteve se dokončajo, vse, kar napolni segment, pa se ustavi, ker se zavržejo le veliki paketi. Tunel, ki spusti ping, ni tunel, ki prenaša podatke.

Omejevanje MSS in kje velja

Omejevanje MSS prepiše vrednost v segmentu SYN, ko ta prečka izbrano točko, zaradi česar oba konca izbereta manjši natovor, ne da bi kateri vedel zakaj. V Linuxu je to cilj tabele mangle, ki ga uporabi izrecno pravilo, in mora zadeti pakete SYN v smeri, ki jo želite. Omejite ga na vmesnik tunela in obseg naslovov, ker široko pravilo spremeni vedenje prometa, ki v tunel nikoli ne vstopi.

Učinek je le na TCP. Aplikacija UDP, seja QUIC in vsak protokol, ki sestavlja lastne datagrame, ostanejo nedotaknjeni.

Diagnoza na fiksni poti

Držite eno spremenljivko hkrati. Preizkusite s paketom, katerega velikost izberete sami, in nastavite zastavico 'ne razdeli', da jedro poroča o rezultatu, namesto da ga skrije.

Zapišite, kje se napaka začne: znotraj tunela, na vmesniku tunela ali na fizični poti po zapakiranju. Nato spremenite eno število in ponovite isti preizkus, ne drugega. Obstoječe povezave obdržijo dogovorjeni MSS, zato je sprememba politike vidna le na novi povezavi, in zato predpomnjena stran ničesar ne dokaže v nobeno smer. Če en velik prenos začne delovati, ste se naučili o tisti poti in ne o vsakem protokolu na njej.

Česa nobena sprememba ne popravi

Znižanje MTU vmesnika ne spremeni MSS že vzpostavljene seje. Omejevanje MSS ne pomaga toku UDP in ne popravi poti, kjer se napake ICMP filtrirajo le v eno smer. Vsaka sprememba popravi en razred težav, ostale pa pusti točno take, kot so bile.

Zapišite, katero prilagoditev ste uporabili, kje in kateri preizkus je pokazal razliko, ker sicer naslednji inženir uporabi obe in izgubi zmožnost povedati, katera je bila pomembna. Če je omejitev resnična in trajna, raje izberite MTU tunela, ki jo odraža, kot omejevanje, ki jo skriva. Če morate omejiti, pustite pravilo ozko in komentirano, saj nerazloženo pravilo mangle privzeto postane trajno.

Sorodni članki