Prečo sa stránky OpenConnect zaseknú, kým neznížite MTU tunela
Malé odpovede dorazia, veľké umierajú. Zmerajte strop cesty pomocou DF sond, nastavte veľkosť na zariadení tunela a zariadte, aby hodnota prežila opätovné pripojenie.
Prihlásenie prebehne, úvodná stránka portálu sa vykreslí a potom widget na nástenke alebo zostava zostane na waiting for host, kým to prehliadač nevzdá. Verejné weby sa celý čas načítavajú normálne a žiadne prihlasovacie údaje sa nezmenili. To, že malé odpovede dorazia, zatiaľ čo veľké sa zasekávajú, je podpis stropu veľkosti paketu, nie prístupového pravidla. Potvrďte tento výklad, skôr než v profile zmeníte čokoľvek iné.
Oddeľte problém veľkosti od problému politiky
Začnite vylúčením odmietnutia. Keby vás brána odmietla, spojenie by zlyhalo hneď, namiesto toho aby stránku načítalo spolovice. Tunel, ktorý sa nadviaže a potom sa zasekne iba pri väčších prenosoch, vám hovorí, že vonkajšia cesta neunesie vnútorný paket.
Mechanizmom je zapuzdrenie. Každý vnútorný paket získa hlavičky tunela, takže užitočné zaťaženie, ktoré sa vmestilo do fyzického spoja, sa stane vonkajším paketom, ktorý sa už nevmestí, a všetko, čo nesie bit do-not-fragment, sa zahodí bez odpovede, ktorú by prehliadač mohol vyložiť.
Zmerajte strop pomocou DF sond
Strop zmerajte, namiesto toho aby ste ho hádali. Posielajte sondy, ktoré odmietajú fragmentáciu, a znižujte zaťaženie krok za krokom, kým sa nevráti odpoveď, začnite príkazom ako ping -M do -s 1472 host. Odpoveď, ktorá sa sťažuje, že je potrebná fragmentácia, kým je DF nastavené, znamená, že hodnota je stále príliš vysoká. Zopakujte na 1462, potom na 1452, a zastavte sa pri prvej veľkosti, ktorá odpovie. Zapíšte si číslo spolu s hostiteľom, ktorý ste testovali, pretože odpoveď patrí tej ceste a nie protokolu všeobecne.
Testujte adresu, na ktorú tunel skutočne posiela prevádzku. Vonkajšia sonda proti verejnému názvu brány a vnútorná sonda proti internému serveru merajú rôzne skoky a filtrovanie ICMP na ktorejkoľvek z nich môže zdravú cestu vykresliť ako rozbitú.
Aplikujte hodnotu na zariadenie tunela
Výsledok aplikujte na rozhranie, ktoré vytvoril klient, nie na adaptér Wi-Fi. Na linuxovom klientovi je to ip link set dev tun0 mtu 1300 a potom ip link show tun0 na potvrdenie, že sa hodnota prevzala. Použite názov zariadenia, ktorý hlási klient, pretože sa líši podľa implementácie a podľa toho, ako bol tunel zostavený.
Zníženie MTU tunela zmenšuje zaťaženie, ktoré každý paket nesie, takže celková priepustnosť mierne klesne, a to je cena za to, že veľké odpovede nezmiznú v čiernej diere. Menšie číslo nie je automaticky bezpečnejšie. Zmena fyzického adaptéra namiesto toho rozloží škodu na každé spojenie na tom spoji, zatiaľ čo prehnane veľké vnútorné pakety zostanú rovnako veľké.
Najprv použite vlastné požiadavky klienta na MTU
Keď volanie riadite vy, klient môže požiadať o veľkosť namiesto toho, aby bol dodatočne záplatovaný. --mtu žiada od servera MTU tunela a --base-mtu deklaruje MTU podkladovej cesty, aby brána mohla odvodiť číslo tunela. Obe sú požiadavky a príručka klienta nesľubuje, že brána niektorú z nich vypočuje.
Tento rozdiel určuje poradie práce. Najprv vyskúšajte požiadavku a prezrite si rozhranie, ktoré vytvorí, a potom sa vráťte k miestnemu nastaveniu zariadenia, ak hodnota, ktorú brána zvolila, stále viazne.
Overte to prenosom, ktorý zlyhal, a potom ho zaveďte trvalo
Miestna zmena ip link vydrží, kým klient tunel znova nezostaví, čo sa stane pri ďalšom opätovnom pripojení alebo obnovení. Umiestnite hodnotu tam, kde spojenie začína: obal, ktorý spustí klienta a potom upraví zariadenie, jednotka systemd s krokom ExecStartPost, alebo voľba klienta, keď ju brána prijme. Majte ju vedľa profilu vo verzovacom systéme, aby ďalší človek videl, prečo tam číslo je.
Testujte požiadavkou, ktorá zlyhala, nie úvodnou stránkou. Otvorte zostavu, stiahnite prílohu alebo spustite načítanie repozitára, ktoré sa zaseklo, a poznamenajte si presne, kde sa zastaví, ak sa stále zastavuje. Stránka, ktorá sa po zmene vykreslí, dokazuje málo, pretože sa vykresľovala aj predtým.
Ak rovnaký prenos viazne na rovnakom mieste, teória o MTU nie je preukázaná. Zachyťte prevádzku na tuneli a skontrolujte, ktorá strana prestane odosielať, skôr než číslo znova zmeníte, a predchádzajúcu hodnotu majte zapísanú, aby vrátenie zostalo jediným príkazom.