Windows L2TP načíta len niektoré stránky: vymažte bit DF na pfSense
Klient L2TP, ktorý načíta intranet, ale na niektorých verejných stránkach zamrzne, má problém s MTU. Vymažte bit DF alebo obmedzte MSS a potom to potvrďte zachytením.
Notebook sa pripojí, intranet sa načíta a niekoľko verejných stránok zamrzne. Autentifikácia aj smerovanie zjavne fungujú, takže vysvetlením zostáva veľkosť paketu. V tuneli L2TP/IPsec je použiteľná MTU menšia, než akú adaptér ešte inzeruje, a klient ďalej posiela pakety plnej veľkosti s nastaveným bitom „nefragmentovať“. Bráne pfSense možno prikázať, aby tento bit vymazala, a to je najrýchlejší spôsob, ako diagnózu potvrdiť pred riadnou opravou.
Začnite pri stránkach, ktoré zlyhávajú
Skôr než sa dotknete akéhokoľvek nastavenia, poznamenajte si, ktoré ciele zlyhávajú a ktoré prechádzajú. Nadväzovanie spojenia, ktoré zostane pod limitom tunela, prebehne normálne, zatiaľ čo prenosy vyžadujúce segment plnej veľkosti sa zaseknú v polovici. Toto rozdelenie je podpisom problému s veľkosťou, nie s filtrom, pretože blokovaný cieľ zlyhá pri nadväzovaní spojenia, a nie uprostred stránky. Obe pozorovania nič nestoja a hľadanie okamžite zúžia.
Otestujte to pingom, ktorý nastaví bit a riadi veľkosť užitočného zaťaženia. Najväčšie zaťaženie, ktoré prejde, vám povie skutočnú MTU cesty a inzerovaná hodnota adaptéra ukáže, ako ďaleko sú obe od seba.
Zapíšte obe čísla. Oprava závisí od toho, ktoré je nesprávne, a práve dvojicu neskôr potvrdí zachytenie.
Čo robí bit DF na ceste von
Dôvodom rozdielu čísel je zapuzdrenie. IPsec pridáva ESP, L2TP pridáva ďalšiu hlavičku, a tunel preto nesie menej užitočného zaťaženia než fyzické spojenie. Windows stále hlási 1500 bajtov na adaptéri a na to, čo posiela, nastavuje „nefragmentovať“. Keď sa taký paket nezmestí, správnou odpoveďou brány je správa ICMP, ktorá odosielateľa žiada, aby sa zmenšil. Preto tunel, ktorý prepustí malé pingy, môže stále zlyhať pri sťahovaní súboru.
Táto správa často nikdy nedorazí. Niektorý skok môže filtrovať ICMP alebo ju nič nevytvorí, a odosielateľ opakuje rovnakú veľkosť, kým prenos nevzdá.
Ticho je tu bežný prejav, a preto sa symptóm číta ako selektívne blokovanie. V logu klienta sa chýbajúca správa ICMP nikde nezaznamená.
Voľba na pfSense a čo nerobí
Voľba je na stránke Systém, Rozšírené, Firewall a NAT s označením „Vymazať neplatné bity DF namiesto zahadzovania paketov“. Namiesto zahodenia príliš veľkého paketu s príznakom filter príznak odstráni a paket nechá rozdeliť ďalej po ceste. Paket sa počíta ako neplatný, keď nemôže prejsť odchádzajúcim rozhraním v jednom kuse.
Voľba obnoví konektivitu bez toho, aby sa dotkla klienta, a preto je obľúbená. Je to aj obchádzka: fragmentácia stojí CPU a každý stratený fragment je drahší.
Platí len pre preposielanú prevádzku, nie pre prevádzku, ktorú vytvára samotný firewall. Tá istá stránka ponúka „Vypnúť čistenie firewallu“, čo normalizáciu úplne vypne, a to je oveľa širšia zmena, než tento problém potrebuje.
Užšia oprava, ktorá udrží TCP bez fragmentácie
Takmer všetky zaseknuté toky sú TCP a TCP dokáže vyjednať menší segment namiesto spoliehania sa na fragmentáciu. Obmedzenie MSS na tunelovom rozhraní prepíše inzerovanú hodnotu počas nadväzovania spojenia, takže každá strana posiela to, čo sa naozaj zmestí. Cesta sa potom správa predvídateľne a žiadny paket sa nemusí deliť.
Tým zostáva UDP na zisťovanie alebo na voľbu DF. Keď sú zlyhávajúce stránky bežné webové stránky, obmedzenie je tou zmenou, ktorej treba dať prednosť.
Klient dokáže nahlásiť vlastnú MTU adaptéra pomocou netsh interface ipv4 show subinterfaces. Porovnajte to číslo s tým, čo server považuje za vyjednané, pretože obe nie sú vždy rovnaké. Práve túto hodnotu operačný systém skutočne použije, čokoľvek vyjednávanie nahlásilo.
Potvrďte zachytením a potom resetujte stav
Pred rozhodnutím zachyťte na oboch stranách: jedna stopa tam, kde ide tunel, a druhá tam, kde pracuje rozhranie WAN. Pakety odchádzajúce v plnej veľkosti bez vracajúceho sa ICMP ukazujú na obmedzenie ako správnu vrstvu. Odpovede, ktoré dorazia a potom zomrú na spiatočnej ceste, ukazujú namiesto toho na MTU tunela.
Pred ďalším pokusom vymažte tabuľku stavov, pretože existujúce toky si držia staré veľkosti segmentov. Potom načítajte stránku, ktorá zlyhala, a čítajte zobrazenie stavov pre obojsmernú prevádzku, nie jednostranné počítadlá. Ak sa stále zasekáva, zachyťte znova namiesto skúšania ďalšieho zaškrtávacieho políčka.