SSH heng over OpenVPN? Mål MTU-en på vegen først
Ekkoet virkar, så låser ei listing økta for godt. Mål taket frå begge sider før du rører mssfix, fragment eller MTU-en på grensesnittet.
SSH koplar til, ledeteksta dukkar opp, og økta døyr så snart ein kommando returnerer noko stort. Ekkoet virkar ei lita stund, så renn sambandet ut medan klienten framleis viser tunnelen som oppe. Ei økt som er sunn til data kjem, treffer vanlegvis ei storleiksgrense og ikkje ein feil i SSH. Kontrollane nedanfor er ordna slik at den billegaste forklaringa blir utelukka først.
Les forma på feilen før du rører profilen
Små pakkar slepp gjennom, fulle gjer det ikkje. Ei ledetekst, eit banner eller eitt tastetrykk får plass lett; ei kataloglisting, ei nedlasting eller ein limt inn blokk gjer det ikkje. Storleiken der åtferda endrar seg er sporet, ikkje det faktum at SSH er programmet som er involvert.
Mekanismen er oppdaging av MTU-en på vegen, som er avhengig av tilbakemelding. TCP vel ein segmentstorleik, og når ein ruter undervegs ikkje kan vidaresenda pakken som oppstår, skal han seie det med ei ICMP-melding. Innpakking gjer den ytre pakken større enn den indre, så den brukbare storleiken inne i ein tunnel ligg alltid under den fysiske linja. Filtrer desse ICMP-meldingane kvar som helst, og avsendaren får aldri korreksjonen, held fram med å senda fulle segment, og den ytre pakken blir kasta utan varsel.
Mål taket frå begge sider
Samanlikn MTU-en til tunnelen med den fysiske linja før du endrar nokon av dei. Ein tunnel som kopierte den fysiske verdien har allereie fortalt kvar avviket ligg.
Sondér innanfrå tunnelen med ei førespurnad som forbyr fragmentering, og senk nyttelasta til svar kjem tilbake. Storleiksargumentet tel berre nyttelasta, så talet som virkar ligg alltid under MTU-en på grensesnittet. Legg tilbake storleikane på hovuda om du treng talet på grensesnittet.
ip link show tun0
ping -M do -s 1380 10.9.0.1Gjenta sonderinga mot den offentlege adressa til tenaren frå utsida av tunnelen. Om store sonderingar også feilar der, sit grensa på vegen til tenaren, og ingen tunnelinnstilling flyttar henne. Den samanlikninga sparer deg for å justere ein klient som aldri var problemet. Skriv ned båe resultata før du opnar ei konfigurasjonsfil.
mssfix og fragment gjer ulike jobbar
mssfix avgrensar segmentstorleiken som TCP-samband inne i tunnelen annonserer under handtrykket. Det er rett spak for SSH, HTTPS og filkopiar, difor forsvinn henget ofte når han er sett. Det rører ikkje UDP-nyttelaster i det heile.
Ein tunnel som også ber ein UDP-teneste kan halde fram med å feile etter at SSH er retta, og det resultatet forvirrar alle som trur at éi innstilling dekkjer alt.
fragment er den andre mekanismen og eit anna verktøy. Det deler overstore pakkar før innpakking, gjeld berre UDP-transport, legg til overhead per datagram og er dokumentert som siste utveg ved broten oppdaging. Båe innstillingane må stemme hos partane som avsluttar tunnelen. Når den eine enden avgrensar medan den andre fragmenterer, gir det åtvaringar i loggen og åtferd ingen kan føresjå ut frå filene.
Å senke MTU-en på grensesnittet er det grove alternativet
Å redusere MTU-en på grensesnittet i båe endar er det grove verktøyet. Det fortel kvar indre avsendar eit mindre tal, noko som virkar, og det legg den kostnaden på all trafikk i staden for på TCP-straumane som treng han.
Vel det når tunnelen ber trafikk du ikkje kan avgrense, eller når klienten er ein eining du ikkje styrer profilen til. Bruk det symmetrisk og noter verdien ved sida av profilen. Ei halvvegs brukt endring er verre enn inga, fordi ho ser ut som ei retting.
Test på nytt med overføringa som hang
Kopla til på nytt slik at innstillingane blir lasta, opne eit nytt samband og gjenta kommandoen som fraus. Segmentstorleik blir forhandla ved handtrykket, så ei økt som overlevde attkoplinga ber framleis den gamle verdien. Ping er ein dårleg test her, sidan heile feilen er at små pakkar slepp gjennom. Bruk lista, nedlastinga eller innliminga som braut saman.
Om henget held fram ved ein mindre storleik, sjå ein annan stad: ein tilstandsbasert brannmur som lèt straumen renne ut, ei dobbel adresse eller ei rute som forskyv seg ved attkopling. Skriv ned storleiken på sonderinga som feila og innstillinga du endra, for det paret er det som gjer den neste rapporten nyttig.