Windows L2TP încarcă doar unele site-uri: ștergeți bitul DF pe pfSense
Un client L2TP care încarcă intranetul, dar se blochează pe unele site-uri publice, are o problemă de MTU. Ștergeți bitul DF sau limitați MSS, apoi confirmați cu o captură.
Laptopul se conectează, intranetul se încarcă, iar câteva site-uri publice se blochează. Autentificarea și rutarea funcționează clar, ceea ce lasă dimensiunea pachetului drept explicație. Într-un tunel L2TP/IPsec MTU-ul utilizabil este mai mic decât cel pe care adaptorul îl anunță încă, iar clientul continuă să trimită pachete de dimensiune completă cu bitul „nu fragmenta” activat. Unui gateway pfSense i se poate ordona să șteargă acel bit, și este cea mai rapidă cale de a confirma diagnosticul înainte de a-l repara corect.
Începeți cu paginile care eșuează
Înainte de a atinge vreo setare, notați care destinații eșuează și care reușesc. Strângerile de mână care rămân sub limita tunelului se termină normal, în timp ce transferurile care au nevoie de un segment de dimensiune completă se opresc la jumătatea drumului. Această separare este semnătura unei probleme de dimensiune, nu a unui filtru, pentru că o destinație blocată eșuează la stabilirea conexiunii, nu la mijlocul paginii. Ambele observații nu costă nimic și restrâng imediat căutarea.
Testați cu un ping care setează bitul și controlează dimensiunea încărcăturii. Cea mai mare încărcătură care trece vă spune MTU-ul real al traseului, iar valoarea anunțată a adaptorului arată cât de departe sunt cele două.
Notați ambele numere. Corectarea depinde de care este greșit, iar perechea este ce va confirma mai târziu o captură.
Ce face bitul DF la ieșire
Încapsularea este motivul pentru care numerele diferă. IPsec adaugă ESP, L2TP adaugă încă un antet, iar tunelul transportă astfel mai puțină încărcătură decât legătura fizică. Windows raportează în continuare 1500 de octeți pe adaptor și setează „nu fragmenta” pe ce trimite. Când un astfel de pachet nu încape, răspunsul corect al gateway-ului este un mesaj ICMP care cere expeditorului să se micșoreze. De aceea un tunel care lasă să treacă ping-uri mici poate totuși eșua la descărcarea unui fișier.
Acest mesaj adesea nu ajunge niciodată. Un salt poate filtra ICMP, sau nimic nu îl generează, iar expeditorul repetă aceeași dimensiune până când transferul renunță.
Tăcerea este aici prezentarea normală, de aceea simptomul se citește ca o blocare selectivă. Nimic din jurnalul clientului nu notează un mesaj ICMP lipsă.
Opțiunea pfSense și ce nu face
Opțiunea se află pe pagina Sistem, Avansat, Firewall și NAT, cu eticheta „Șterge biții DF invalizi în loc să arunci pachetele”. În loc să arunce un pachet prea mare care poartă steagul, filtrul scoate steagul și lasă pachetul să fie împărțit mai departe. Un pachet este considerat invalid când nu poate traversa interfața de ieșire dintr-o singură bucată.
Opțiunea restaurează conectivitatea fără să atingă clientul, de aceea este populară. Este și o soluție de ocol: fragmentarea consumă CPU și face fiecare fragment pierdut mai scump.
Se aplică doar traficului redirecționat, nu traficului pe care firewallul îl generează el însuși. Aceeași pagină oferă „Dezactivează curățarea firewallului”, care oprește complet normalizarea, iar aceasta este o schimbare mult mai amplă decât are nevoie problema.
O corectare mai îngustă care ține TCP nefragmentat
Aproape toate fluxurile blocate sunt TCP, iar TCP poate negocia un segment mai mic în loc să se bazeze pe fragmentare. Limitarea MSS pe interfața tunelului rescrie valoarea anunțată în timpul strângerii de mână, astfel încât fiecare parte trimite ce încape cu adevărat. Traseul se comportă apoi previzibil și niciun pachet nu trebuie împărțit.
Asta lasă UDP descoperirii sau opțiunii DF. Când site-urile care eșuează sunt pagini web obișnuite, limita este schimbarea de preferat.
Clientul poate raporta propriul MTU al adaptorului prin netsh interface ipv4 show subinterfaces. Comparați cifra cu ce crede serverul că s-a negociat, pentru că cele două nu coincid mereu. Acea valoare este cea pe care sistemul de operare o va folosi efectiv, orice ar fi raportat negocierea.
Confirmați cu o captură, apoi resetați starea
Capturați pe ambele părți înainte de a decide: o urmă unde rulează tunelul și alta unde rulează interfața WAN. Pachetele care pleacă la dimensiune completă fără ICMP care să se întoarcă indică limita ca strat corect. Răspunsurile care sosesc și apoi mor la întoarcere indică în schimb MTU-ul tunelului.
Goliți tabelul de stări înainte de a reîncerca, pentru că fluxurile existente își păstrează dimensiunile vechi de segment. Apoi încărcați pagina care a eșuat și citiți vizualizarea stărilor pentru trafic bidirecțional, nu contoarele unilaterale. Dacă se blochează în continuare, capturați din nou în loc să încercați altă casetă.