MTU vai MSS? Ko VPN izmaiņa patiešām salabo
MTU ierobežo, ko pārvada saite; MSS ierobežo TCP kravu tajā. Ierobežojiet pareizo un ziniet, kurus protokolus nenosedz neviena no tām.
Pingi izdodas, lieli pārsūtījumi iestrēgst, un tunelis ziņo, ka ir vesels. Kāds samazina saskarnes MTU, cits ierobežo MSS, un dažkārt problēma pazūd tādu iemeslu dēļ, kurus neviens nepieraksta. Šie divi skaitļi apraksta dažādus objektus, tāpēc nepareizā maiņa dod labojumu, kas izskatās pēc veiksmes. Lūk, procedūra: nosakiet slāni, piemērojiet atbilstošo regulējumu un pēc tam pārbaudiet jaunā savienojumā.
Divi skaitļi, divi objekti
MTU pieder saitei vai saskarnei: tas ir lielākais pakets, ko var nodot bez sadalīšanas. MSS pieder TCP: tas ir lielākais TCP kravas apjoms, ko segments var pārvadāt, un tas izslēdz gan TCP, gan IP galveni. Parastā Ethernet saitē ar IPv4 1500 baitu MTU dod labi zināmo 1460 baitu MSS. Šie skaitļi apraksta dažādus slāņus, un tos apmaina ar dažādiem mehānismiem. Tos sajaukt ir viegli, jo abi tiek mērīti baitos un abi ir tuvu 1500.
Viens nāk kā saskarnes iestatījums. Otrs nāk kā opcija SYN segmentā, kas tiek saskaņota starp galiem, kuri nekad neredz jūsu saskarni.
Kur nokrīt ārējā papildu slodze
VPN ievieto iekšējo paketu citā, un ārējam paketam jāiekļaujas fiziskajā ceļā. Ietvēruma galvenes, ārējā IP galvene, transporta galvene un jebkura autentifikācijas atzīme patērē baitus, ko iekšējais pakets nevar izmantot. Atstājiet tuneļa saskarni uz 1500, un ārējais pakets regulāri pārsniedz to, ko ceļš var pārvadāt. Kad iestatīts bits 'nesadali', maršrutētājs to nomet un tam būtu jāatgriež ICMP kļūda; ja šī kļūda tiek filtrēta, sūtītājs par to nekad neuzzina.
Tāpēc kļūme izskatās selektīva. Mazie pieprasījumi tiek pabeigti, un viss, kas piepilda segmentu, iestrēgst, jo tiek izmesti tikai lielie paketi. Tunelis, kas izlaiž ping, nav tunelis, kas pārvadā datus.
MSS ierobežošana, un kur tā attiecas
MSS ierobežošana pārraksta vērtību SYN segmentā, tam šķērsojot izvēlētu punktu, tāpēc abi gali izvēlas mazāku kravu, nezinot, kāpēc. Linux tas ir mangle tabulas mērķis, ko piemēro skaidrs noteikums, un tam ir jātrāpa SYN paketos vēlamajā virzienā. Ierobežojiet to ar tuneļa saskarni un adrešu diapazonu, jo plašs noteikums maina tā satiksmes uzvedību, kas nekad neiekļūst tunelī.
Ietekme attiecas tikai uz TCP. UDP lietojumprogramma, QUIC sesija un jebkurš protokols, kas veido savus datagrammas, paliek neskarti.
Diagnosticējiet ar fiksētu ceļu
Turiet vienu mainīgo vienlaikus. Pārbaudiet ar paketu, kura izmēru izvēlaties jūs, un iestatiet karodziņu 'nesadali', lai kodols ziņotu rezultātu, nevis to slēptu.
Pierakstiet, kur sākas kļūme: tuneļa iekšienē, tuneļa saskarnē vai fiziskajā ceļā pēc ietvēruma. Pēc tam mainiet vienu skaitli un atkārtojiet to pašu testu, nevis citu. Esošie savienojumi saglabā saskaņoto MSS, tāpēc politikas izmaiņas ir redzamas tikai jaunā savienojumā, un tāpēc kešatmiņā saglabātā lapa neko nepierāda nevienā virzienā. Ja viens liels augšupielāde sāk darboties, jūs uzzinājāt par to ceļu, nevis par katru protokolu tajā.
Ko katra izmaiņa nelabo
Saskarnes MTU samazināšana nemaina jau izveidotas sesijas MSS. MSS ierobežošana nepalīdz UDP plūsmai un nelabo ceļu, kurā ICMP kļūdas tiek filtrētas tikai vienā virzienā. Katra izmaiņa salabo vienu problēmu klasi un pārējās atstāj tieši tādas, kādas tās bija.
Pierakstiet, kādu regulējumu kur piemērojāt un kurš tests parādīja atšķirību, citādi nākamais inženieris piemēros abus un zaudēs spēju pateikt, kurš bija svarīgs. Ja ierobežojums ir reāls un pastāvīgs, dodiet priekšroku tuneļa MTU, kas to atspoguļo, nevis ierobežojumam, kas to slēpj. Ja jums tomēr jāierobežo, atstājiet noteikumu sašaurinātu un komentētu, jo neizskaidrots mangle noteikums pēc noklusējuma kļūst pastāvīgs.