Jeden notebook sa zasekne pri nahrávaní tunelom, zatiaľ čo všetky ostatné zariadenia na tom istom serveri ďalej fungujú. Tento vzor ukazuje na jednu cestu, nie na konfiguráciu servera, a je to obvyklý vstup do otázky mssfix. Voľba môže pomôcť, ale len tým TCP spojeniam, ktoré skutočne prepisuje. Znalosť jej rozsahu vám zabráni meniť fungujúci server, aby ste zachránili jedného klienta.

Čo voľba prepisuje

mssfix upravuje maximálnu veľkosť segmentu oznámenú v TCP handshakeoch, ktoré prechádzajú tunelom, takže odosielajúca strana volí segmenty, ktoré sa zmestia do zapuzdreného rozpočtu. Pôsobí na handshake, čo znamená, že spojenie otvorené pred zmenou si ponechá dohodnutú hodnotu.

Nezmenšuje UDP datagramy a nenastavuje MTU tunela. Dva rôzne problémy dávajú rovnaký príznak: TCP odosielateľ, ktorý ignoruje limit cesty, a cesta, ktorá potichu zahadzuje veľké pakety akejkoľvek veľkosti. mssfix rieši prvý a pre druhý nerobí nič.

Tento rozdiel vysvetľuje sklamanie z pokusov. Nastavenie menšej hodnoty na ceste s čiernou dierou zmení veľkosť segmentu, ale nie nasledujúce zahadzovanie, takže prenos zlyhá v inom bode.

Rozsah je TCP vnútri tunela

Prepisuje sa len TCP prevádzka. QUIC relácia, hra alebo aplikácia, ktorá odosiela veľké UDP datagramy, si ponechá vlastné veľkosti paketov, a ak práve tieto prenosy zamŕzajú, oprava patrí skôr na MTU tunela alebo cesty. Prečítajte si, aký protokol používa zlyhávajúci prenos, skôr než siahnuť po voľbe TCP, pretože nesprávna vrstva má svoju vlastnú opravu.

Smer je tiež dôležitý. Nastavenie klienta ovplyvňuje prevádzku, ktorú tento klient posiela do tunela, zatiaľ čo server pokrýva toky, ktoré preposiela klientom. Ak zamŕzajú len prichádzajúce sťahovania, hodnota na strane klienta nie je celý príbeh.

Číslo a kľúčové slovo nie sú prenosné

Komunitná verzia OpenVPN 2.6 prijíma za hodnotou voliteľné kľúčové slovo. S mtu číslo opisuje veľkosť vonkajšieho paketu vrátane IP a UDP hlavičiek; bez neho argument sleduje inú účtovnú konvenciu. Riadok skopírovaný medzi verziemi preto neopisuje rovnaký rozpočet paketov. Pozrite si stránku manuálu, ktorá je súčasťou zostavenia, ktoré skutočne spúšťate, namiesto návodu pre iné vydanie.

Syntax vyzerá takto:

mssfix 1400 mtu

Berte 1400 ako zástupný údaj, nie ako odporúčanie pre vašu cestu. Hodnotu odvodte z meranej cesty a skutočne používaného zapuzdrenia a pamätajte, že klienti na starších verziách alebo iných implementáciách môžu kľúčové slovo odmietnuť alebo preinterpretovať.

Najprv to potvrďte u jediného klienta

Zmerajte cestu zo zlyhávajúceho stroja, skôr než čokoľvek zmeníte. Užitočné zaťaženie, ktoré cesta unesie bez fragmentácie, je číslo, ktoré hľadáte:

ping -M do -s 1472 10.8.0.1
ping -M do -s 1400 10.8.0.1

Prvá sonda sa zmestí do paketu s 1500 bajtmi, keď sa pridá 28 bajtov hlavičiek. Ak zlyhá s chybou fragmentácie a menšia uspeje, použiteľná veľkosť je niekde medzi nimi a réžia tunela sa odpočíta zhora.

Potom zopakujte prenos, ktorý zamrzol, na novom spojení a porovnajte. Ak sa jediný klient zlepší, zatiaľ čo ostatné zostanú nedotknuté, našli ste rozsah problému. Ak zamŕzajú všetci klienti, hodnota na strane servera je tá, ktorú treba preskúmať. Ani jeden z výsledkov neoprávňuje zmenu na hardvéri, ktorý nikdy nebol na zlyhávajúcej ceste.

Súvisiace články