Windows L2TP laster bare noen nettsteder: fjern DF-biten på pfSense
En L2TP-klient som laster intranettet, men henger på noen offentlige nettsteder, har et MTU-problem. Fjern DF-biten eller begrens MSS, og bekreft det deretter med et opptak.
Den bærbare maskinen kobler til, intranettet lastes, og en håndfull offentlige nettsteder henger. Autentisering og ruting fungerer tydelig, noe som lar pakkestørrelsen stå igjen som forklaring. I en L2TP/IPsec-tunnel er den brukbare MTU-en mindre enn det adapteret fortsatt annonserer, og klienten fortsetter å sende pakker i full størrelse med «ikke fragmenter»-biten satt. En pfSense-gateway kan få beskjed om å fjerne den biten, og det er den raskeste måten å bekrefte diagnosen på før den rettes ordentlig.
Begynn med sidene som feiler
Noter hvilke destinasjoner som feiler og hvilke som lykkes, før du rører noen innstilling. Håndtrykk som holder seg under tunnelgrensen, fullføres normalt, mens overføringer som trenger et segment i full størrelse, stopper halvveis. Den delingen er signaturen på et størrelsesproblem og ikke et filter, fordi en blokkert destinasjon feiler ved oppkoblingen og ikke midt på siden. Begge observasjonene koster ingenting og snevrer inn søket med en gang.
Test med en ping som setter biten og styrer nyttelastens størrelse. Den største nyttelasten som kommer gjennom, forteller deg den reelle rute-MTU-en, og den annonserte verdien til adapteret viser hvor langt de to er fra hverandre.
Skriv ned begge tallene. Rettelsen avhenger av hvilket som er galt, og paret er det et opptak senere bekrefter.
Hva DF-biten gjør på vei ut
Innkapsling er grunnen til at tallene er forskjellige. IPsec legger til ESP, L2TP legger til nok en header, og tunnelen bærer derfor mindre nyttelast enn den fysiske lenken. Windows rapporterer fortsatt 1500 byte på adapteret og setter «ikke fragmenter» på det den sender. Når en slik pakke ikke får plass, er det riktige svaret fra gatewayen en ICMP-melding som ber avsenderen krympe seg. Derfor kan en tunnel som slipper gjennom små ping, fortsatt feile på en filnedlasting.
Den meldingen kommer ofte aldri fram. Et hopp kan filtrere ICMP, eller ingenting genererer den, og avsenderen gjentar samme størrelse til overføringen gir opp.
Stillhet er den normale presentasjonen her, og derfor leses symptomet som selektiv blokkering. Ingenting i klientloggen registrerer en manglende ICMP-melding.
pfSense-alternativet, og hva det ikke gjør
Alternativet ligger på siden System, Avansert, Brannmur og NAT, merket «Fjern ugyldige DF-biter i stedet for å forkaste pakkene». I stedet for å kaste en for stor pakke som bærer flagget, fjerner filteret flagget og lar pakken bli delt lenger ned. En pakke regnes som ugyldig når den ikke kan krysse det utgående grensesnittet i ett stykke.
Alternativet gjenoppretter tilkoblingen uten å røre klienten, og derfor er det populært. Det er også en omvei: fragmentering koster CPU og gjør hvert tapt fragment dyrere.
Det gjelder bare videresendt trafikk, ikke trafikk som brannmuren selv starter. Samme side tilbyr «Slå av brannmur-skrubbing», som slår av normalisering helt, og det er en mye bredere endring enn dette problemet trenger.
En smalere rettelse som holder TCP ufragmentert
Nesten alle de fastlåste strømmene er TCP, og TCP kan forhandle om et mindre segment i stedet for å stole på fragmentering. Begrensning av MSS på tunnelgrensesnittet skriver om den annonserte verdien under håndtrykket, slik at hver side sender det som faktisk får plass. Ruten oppfører seg da forutsigbart, og ingen pakke trenger å deles.
Det overlater UDP til oppdagelse eller til DF-alternativet. Når nettstedene som feiler er vanlige nettsider, er begrensningen den endringen man bør foretrekke.
Klienten kan rapportere sin egen adapter-MTU via netsh interface ipv4 show subinterfaces. Sammenlign tallet med det serveren tror er forhandlet, for de to er ikke alltid like. Den verdien er den operativsystemet faktisk bruker, uansett hva forhandlingen rapporterte.
Bekreft med et opptak, og nullstill deretter tilstanden
Ta opp på begge sider før du bestemmer deg: ett spor der tunnelen går, og ett der WAN-grensesnittet går. Pakker som forlater i full størrelse uten at ICMP kommer tilbake, peker på begrensningen som riktig lag. Svar som ankommer og deretter dør på vei tilbake, peker i stedet på tunnelens MTU.
Tøm tilstandstabellen før du prøver igjen, fordi eksisterende strømmer beholder sine gamle segmentstørrelser. Last deretter siden som feilet, og les tilstandsvisningen for toveis trafikk i stedet for ensidige tellere. Hvis den fortsatt stopper, ta opp igjen i stedet for å prøve en annen avkrysningsboks.