Jumbo kadrai nepaverčia VPN kelio 9000 baitų paketų nešėju
Didelis MTU yra vietinis jungties susitarimas. Prieš keldami vidinę sąsają, atimkite tunelio antkainį iš mažiausios maršruto jungties.
Įjungėte 9000 baitų kadrus LAN tinkle ir tikėjotės, kad VPN pagreitės. Jis sulėtėjo arba visiškai nustojo praleisti didelius perdavimus. Jumbo kadrai yra vietinis jungties susitarimas; jie nepadidina kelio, kurį kerta tunelis.
Naudojamą biudžetą nustato mažiausia maršruto riba, įskaitant inkapsuliavimą, kurį prideda tunelis.
Ką jumbo kadrai iš tikrųjų keičia
MTU yra vienos sąsajos savybė. Jo padidinimas serveryje ir jo komutatoriuje reiškia, kad tie du gali keistis didesniais kadrais be fragmentavimo. Tai nieko nesako apie maršrutizatorių už komutatoriaus, apie tiekėją ar apie kitą tunelio pusę. Tie įrenginiai turi savo ribas, o paketas, kuris viršija vieną iš jų, išmetamas arba fragmentuojamas pagal taisykles, kurių jūs nenustatėte.
Vietinis susitarimas, pasaulinės pasekmės. Tai ir yra visas sumišimas.
Inkapsuliavimo mokestis
Tunelis apvynioja jūsų paketą į kitą. WireGuard per IPv4 UDP prideda maždaug 60 baitų antkainį; OpenVPN UDP režimas yra toje pačioje riboje, o IPsec kinta priklausomai nuo režimo ir algoritmų. Tie baitai ateina iš išorinio kelio biudžeto, o ne iš niekur.
Taigi 1500 baitų išorinė jungtis negali perduoti 1500 baitų vidinio paketo, kai pridedama tunelio antraštė.
Aritmetiką verta atlikti vieną kartą. 1500 baitų kelyje WireGuard sąsaja nori maždaug 1420 MTU, kad inkapsuliuotas paketas tilptų. Nustatykite vidinę sąsają į 9000, ir kiekvienam dideliam paketui reikės fragmentavimo, kurio tunelis negali atlikti, arba jis bus išmestas.
Raskite mažiausią maršruto jungtį
Pereikite maršrutą ir raskite mažiausią MTU. LAN paprastai yra 1500 arba 9000, WAN paprastai 1500, o mobilioji ar PPP jungtis gali būti dar mažesnė. Tada atimkite tunelio antkainį. Jei rezultatas mažesnis už vidinės sąsajos MTU, atsakymas yra. Kelio MTU aptikimas gali tai rasti automatiškai, bet tik tada, kai praleidžiami ICMP pranešimai, nuo kurių tai priklauso.
Filtruojamas ICMP yra klasikinė priežastis, kodėl didelis perdavimas stringa, o mažos užklausos veikia puikiai.
Išbandykite priklausomybę nuo dydžio neplėsdami pakeitimo
Naudokite reprezentatyvų perdavimą ir išsaugokite pradines reikšmes, kad galėtumėte jas grąžinti. ping -M do -s 1472 tikrina 1500 baitų paketą su nustatytu DF bitu; mažinkite dydį, kol jis praeis. Jei nepavyksta tik dideli paketai, turite dydžio, o ne maršrutizavimo problemą.
Saugokitės offload hosto pusėje skaitydami įrašus. Segmentavimo offload gali rodyti daug didesnius kadrus nei tie, kurie iš tikrųjų praėjo laidu, todėl veikiantis kelias atrodo sugedęs, o sugedęs – tvarkingas.
Kada didelis MTU yra teisingas sprendimas
Kontroliuojamas privatus tinklas gali teisėtai naudoti didesnius kadrus nuo galo iki galo, jei kiekvienas kelyje esantis įrenginys sutinka ir tunelio antkainis yra įskaičiuotas. Tai suderintas sprendimas su dokumentuota kiekvienos jungties verte, o ne vienas didelis skaičius, įvestas į klientą.
Įprastam viešam išėjimui manykite 1500 ar mažiau ir leiskite tuneliui pasirinkti saugų vidinį MTU. RFC 8201 apima kelio MTU aptikimą IPv6 atveju ir yra naudinga nuoroda, kaip turėtų veikti grįžtamasis ryšys.