Tunel završi rukovanje, mali zahtjevi se vraćaju, a prvi veliki prijenos zapne. Taj obrazac ukazuje na MTU putanje mnogo prije nego na propusnost. Svaka veza duž rute ograničava veličinu paketa, a enkapsulacija troši dio tog dopuštenja na vanjska zaglavlja, pa unutrašnji paket mora biti manji nego što bi sirova putanja sugerirala. Kvar je tih, i to ga čini skupim za dijagnostiku.

Šta MTU putanje zapravo mjeri

MTU putanje je najmanji MTU veze na ruti između dva hosta, a ne MTU ispisan na vašem lokalnom interfejsu. Lokalna vrijednost je mjesto gdje procjena počinje, a putanja odlučuje gdje mora završiti. Zato isti tunel može raditi na jednoj pristupnoj mreži, a zapeti na drugoj: promijenila se ruta, ne konfiguracija. Izmjeriti jednom i pretpostaviti svuda greška je koja ovaj problem održava živim.

Za tunel je važan broj unutrašnji MTU, odnosno dopuštenje vanjske putanje minus sve što enkapsulacija troši. WireGuard dodaje vanjsko IP zaglavlje i UDP zaglavlje; drugi transporti dodaju svoja. Postavite unutrašnju veličinu previsoko i svaki paket pune veličine treba fragmentaciju koja se možda nikada neće dogoditi.

Zašto tunel smanjuje upotrebljivi paket

Ako interfejs tunela zadrži MTU fizičke veze, svaki veliki paket zavisi od toga da je neko nizvodno voljan da ga fragmentira. IPv4 to u principu dopušta, ali ruter kojem je rečeno da ne fragmentira vraća grešku. IPv6 ruteri nikada ne fragmentiraju u tranzitu, pa se ista postavka ponaša različito prema porodici adresa. U oba slučaja pošiljalac ne sazna ništa dok nešto ne izvijesti.

Praktična posljedica je veličina koja odgovara rukovanju, ali ne i korisnom teretu. TLS ClientHello ili DNS upit dovoljno su mali da nesmetano pređu smanjenu putanju, dok masovni prijenos nije. Zato se simptomi grupišu oko određenih operacija, a ne određenih hostova.

Otkrivanje radi samo kada povratna informacija stigne

Otkrivanje IPv4 oslanja se na bit zabrane fragmentacije: ruter koji ne može proslijediti paket vraća ICMP fragmentation-needed s MTU-om sljedećeg skoka, a pošiljalac snižava svoju procjenu. IPv6 umjesto toga koristi poruke Packet Too Big, jer ruteri ne fragmentiraju u tranzitu. Oba mehanizma pretpostavljaju da poruka pronađe put natrag do pošiljaoca, kroz tunel i pored svakog firewall-a na povratnom putu. Kada ta pretpostavka padne, pošiljalac stalno iznova pokušava veličinu koju putanja ne može nositi.

Firewall koji dopušta echo request i echo reply nije nužno dopustio te vrste grešaka. ICMP je porodica, a članovi koji su ovdje važni su greške, a ne echo par. Provjerite politiku kontrolnog saobraćaja na oba kraja tunela i na putanji između njih, i slijedite podržane smjernice platforme umjesto da dopustite svaku vrstu ICMP-a svuda.

Isto filtriranje može biti unutar tunela. Ako unutrašnja putanja odbaci grešku, a vanjska je nosi, pošiljalac se može prilagoditi granici koju enkapsulirani saobraćaj zapravo nikada ne vidi.

Ispitajte putanju umjesto da nagađate broj

Držite odredište, pristupnu mrežu i tunel fiksiranima, pa mijenjajte samo veličinu paketa. Sonda zabrane fragmentacije koja padne s nagovještajem MTU-a daje vam granicu sljedećeg skoka; ponavljajte dok veličina ne prođe i zabilježite i veličinu i porodicu adresa.

ping -M do -s 1400 10.60.20.10
ping -M do -s 1300 10.60.20.10
ping -6 -M do -s 1300 2001:db8::10

Ping koji prođe ne dokazuje da segmenti pune veličine stvarne aplikacije prolaze, pa ponovite test s prijenosom koji je zaista pao. Uporedite najveću radnu sondu s MTU-om tunela koji ste konfigurisali i držite ta dva broja odvojeno u bilješkama. Ako se razlikuju za otprilike jedno zaglavlje, našli ste trošak enkapsulacije, a ne kvar.

PLPMTUD, opisan u RFC 4821, sondira prema gore i koristi transportne potvrde umjesto povjerenja u dostavljene greške. Pomaže na putanjama koje filtriraju ICMP, ali podrška varira po steku i aplikaciji. TCP tok može se sam oporaviti, dok UDP aplikacija s fiksnom veličinom datagrama nastavlja padati.

Odaberite vrijednost i zabilježite obrazloženje

Snižavanje MTU-a tunela je i dijagnostika i legitimna popravka kada znate putanju. Nije zamjena za znanje o tome koja je putanja i koji mehanizam povratne informacije bio uključen, jer će vrijednost podešena za mobilnu vezu biti nepotrebno mala na optičkom priključku. Zabilježite odabranu veličinu, sondu koja ju je opravdala i korak vraćanja.

Mehanizam IPv4 opisan je u RFC 1191, a smjernice za paketizaciju IPv6 u RFC 8201; imenovanje oba sprječava sljedećeg inženjera da ponovno izvodi pretpostavku. Ako se prijenos i dalje zaustavlja na veličini koju ste odabrali, prestanite snižavati broj i pogledajte sljedeći sloj. Putanja koja pada na svakoj veličini nije MTU problem.

Povezani članci