OpenVPN melder om inkonsekvent MTU-brug: hvad advarslen sammenligner
Advarslen sammenligner peer-indstillinger, ikke pakkestørrelser. Adskil en forældet link-mtu-værdi fra et reelt MTU-problem på ruten, og test derefter med en størrelsesbevidst sonde.
Advarslen rapporterer en sammenligning mellem peer-indstillinger, ikke en måling af ruten mellem dem. Folk læser den som «MTU er forkert» og ændrer tallet, indtil linjen forsvinder. Det behandler en konfigurationssammenligning som en netværksmåling, og det gør ofte tunnelen værre, mens loggen bliver mere stille. Det nyttige første skridt er at afgøre, hvilket af de to problemer du faktisk har.
Tre betingelser afgør svaret: hvad parterne sammenligner, om værdien er forældet, og hvilket symptom der findes ud over advarslen.
Advarslen sammenligner indstillinger, ikke pakker
OpenVPN-parter udveksler deres indstillingsstrenge under håndtrykket og sammenligner dem som del af konsistenskontrollen af indstillinger. Når den ene side rapporterer link-mtu eller tun-mtu anderledes end den anden, registreres uoverensstemmelsen med begge værdier. Den udveksling sender aldrig en stor pakke for at se, hvad der sker, så advarslen beskriver konfiguration frem for kapacitet. En tunnel kan bære trafik i fuld størrelse og stadig udskrive den, eller fejle på store pakker og slet ikke udskrive noget.
Gem hele advarslen med dens lokale og fjernværdi. Parret er beviset; det enkelte tal, du husker, er det ikke.
Hvorfor link-mtu er forældet
OpenVPN 2.6 erklærer link-mtu forældet, fordi variable headere og forhandlede cifre gør en fast linkværdi upålidelig. Indstillingen antog et pakkelayout, som protokollen ikke længere garanterer, så en gammel profil med en bogstavelig link-mtu beskriver en hensigt, som den nuværende kode ikke kan opfylde. At kopiere tallet til en ny profil spreder en forældet antagelse. Læs det som del af den gamle profils historie, ikke som en anbefaling.
Konsistenskontrollen har også en valgfri OCC-værdi knyttet til tun-mtu, som ændrer, hvad der sammenlignes, uden at ændre, hvad netværket bærer. At sætte den får ikke større pakker til at passe.
Reparer profilen, før du tester ruten
Ret en utilsigtet uoverensstemmelse via den, der ejer profilerne, og husk, at en ændring på serversiden påvirker hver klient. Rediger den profil, som instansen faktisk indlæser, ikke en eksport i en downloadmappe. Genopret derefter en testklient, og noter hvilken advarsel der overlever. Hvis meddelelsen skifter form i stedet for at forsvinde, sammenligner du andre indstillinger, end du tror.
En delt server skal have sin klientoversigt kontrolleret, før en global værdi flyttes, fordi den værdi, der passer til et sted, kan ødelægge et andet.
Test derefter det symptom, du faktisk har
Hvis store overførsler går i stå, mens små anmodninger lykkes, mål pakkestørrelsen mod en kontrolleret destination. En sonde, der sætter don't-fragment-bitten og øger nyttelastens størrelse, finder rutens brugbare MTU langt mere pålideligt end en ping, der blot lykkes. Medtag den fejlende applikation i testen: en ICMP-timeout kan afspejle filtrering, og en lille vellykket ping siger intet om en applikationspakke i fuld størrelse.
mssfix begrænser den MSS, der annonceres for TCP-sessioner inde i tunnelen, hvilket hjælper TCP og intet gør for en indre UDP-belastning. Fragmentering og offload-indstillinger har deres egne kompatibilitetsbetingelser. Vælg en mekanisme til det påviste problem i stedet for at ændre flere på én gang for at gøre en loglinje tavs.
Gem de effektive værdier sammen med resultatet
Noter de oprindelige og rettede effektive værdier ved siden af resultatet af en rigtig overførsel. Det par er det, der adskiller en forældet profilindstilling fra et MTU-problem på ruten, som findes uafhængigt. Uden det ser den næste læser en advarsel, der forsvandt, og antager, at netværket ændrede sig.
At undertrykke konsistenskontrollen forliger intet. Den fjerner observationen og lader begge konfigurationer være, som de var.