Tri postavke na Linux klijentu zvuče kao „napravi pakete manjim“, a djeluju na različitim slojevima. MTU interfejsa ograničava svaki paket koji uređaj pošalje. MTU rute ograničava pakete koji koriste tu rutu, što je često ono što zapravo želite za jednu VPN destinaciju. MSS ograničenje mijenja ono o čemu se dogovaraju dva kraja i ništa ne čini za UDP.

Tri kontrole koje izgledaju kao isto dugme

Stavite ih jednu uz drugu prije odabira, jer pogrešan red objašnjava većinu savjeta koji ne rade:

ControlScopeWhat it cannot fix
Interface MTUEvery packet the device sendsNothing, but it over-constrains unrelated traffic
Route MTUPackets using that routeA send that the lookup never routes there
MSS clampTCP handshake on that pathUDP payload sizes and ICMP

Snižavanje Ethernet MTU-a za cijelu mašinu je gruba verzija ovog rješenja. Radi, ali kažnjava i svaku drugu aplikaciju na hostu, uključujući one čiji su putevi bili u redu. Vrijednost po ruti izražava istu namjeru bez sporednog troška.

Poređenje vrijedi samo za saobraćaj koji host generiše. Prosljeđivanje paketa za drugog klijenta uključuje vlastiti put tog klijenta i vanjski budžet tunela, a metrika rute na ovom hostu ne dopire preko te granice.

Vežite budžet za rutu koja pobjeđuje u pretrazi

Ilustrativni zapis IPv4 rute izgleda ovako:

ip -4 route get 10.60.0.20
ip -4 route add 10.60.0.0/16 dev tun-office src 10.90.0.2 mtu 1380

Čitajte zapis kao opis namjere, a ne kao vrijednost za lijepljenje. Prefiks, uređaj i preferirani izvor moraju odgovarati stvarnoj konfiguraciji, i broj mora doći iz dokaza o inkapsuliranom putu, a ne iz blog posta. MTU rute ograničava unutrašnji IP paket, što nije isto kao TCP korisni teret od 1380 bajtova ili šifrirani vanjski paket od 1380 bajtova.

Pogledajte gdje se pretraga zapravo rješava prije nego što bilo šta dodate. Host s pravilima politike može usmjeriti datu destinaciju kroz tabelu koja nije main, a metrika koja postoji samo u main je nevidljiva za taj zahtjev. Uporedite ip -4 route show table all s odgovorom iz ip route get, uključujući kontekst oznake ili imenskog prostora kada ga pravila koriste. Ako se dvoje ne slažu, tabela koja je odgovorila je ta koja treba metriku, a ne ona koja izgleda urednije.

mtu nije mtu lock

Podrazumijevano jezgro još može ažurirati MTU puta iz ICMP povratne informacije, čemu služi otkrivanje MTU puta. Dodavanje lock to zaustavlja. To je druga odluka, a ne jači način da sačuvate isti broj, i za IPv4 mijenja dokumentovano rukovanje bitom „ne fragmentiraj“.

Zaključavanje je razumno kada ste izmjerili put i želite da vrijednost ostane nepromijenjena bez obzira na to što stiže. Loše je podrazumijevano kada mreža šalje legitimnu povratnu informaciju o veličini, jer jezgro više ne može da se prilagodi i kvar se seli u drugi simptom.

Ako se ICMP filtrira negdje na putu, nijedna postavka rute to ne popravlja. Popravka pripada filteru, a manji MTU je zaobilazno rješenje koje skriva pravi kvar do sljedeće promjene puta.

Softver tunela dodaje vlastita dugmad za veličinu

OpenVPN- mssfix reguliše veličinu TCP segmenata za svoj dokumentovani slučaj UDP tunela. Radi na TCP razgovoru, pa nije drugi pravopis MTU rute operativnog sistema i ne može pomoći UDP servisu koji ignoriše dogovor.

Ne slažite MTU rute, promjenu MTU interfejsa i MSS ograničenje u isti prozor promjena. Ako problem nestane, nećete znati šta je bilo važno, a ono što zadržite ograničavat će saobraćaj godinama bez razloga kojeg se iko sjeća.

Učinite to reverzibilnim, pa dokažite

Pravi vlasnik rute odlučuje da li promjena preživljava ponovno povezivanje. VPN klijent koji rutu instalira dinamički obično će je ponovo izgraditi bez vaše metrike, a ručna ip route add tada izgleda kao popravka koja je propala dan kasnije. Stavite vrijednost u konfiguraciju menadžera, i ako vam treba privremeni eksperiment, prvo zabilježite originalnu rutu.

Testirajte novom vezom koja izvršava operaciju koja se zaglavila, pa potvrdite da predviđena privatna ruta još pobjeđuje i da nepovezane destinacije nisu promijenjene. Ponovo povežite tunel i pročitajte rutu, jer vrijednost koja nestane pri ponovnom povezivanju nije popravka.

Ako dokazi ne podržavaju promjenu, uklonite nadjačavanje preko njegovog menadžera i vratite originalne atribute rute umjesto brisanja rute. Zatim zabilježite šta ste izmjerili i na kojem putu, kako bi sljedeća osoba razlikovala stvarno poboljšanje od eksperimenta koji je ostavljen da radi.

Povezani članci