SSH jumittuu OpenVPN:n yli? Mittaa ensin polun MTU
Kaiku toimii, sitten listaus jumittaa istunnon pysyvästi. Mittaa katto molemmilta puolilta ennen kuin kosket mssfixiin, fragmentiin tai liitännän MTU:hun.
SSH yhdistää, kehote ilmestyy ja istunto kuolee heti, kun komento palauttaa jotain runsasta. Kaiku toimii vielä hetken, sitten yhteys vanhenee, kun asiakas näyttää tunnelin yhä olevan pystyssä. Istunto, joka on terve siihen asti kun dataa saapuu, osuu yleensä kokorajaan eikä SSH:n vikaan. Alla olevat tarkistukset on järjestetty niin, että halvin selitys suljetaan pois ensin.
Lue vian muoto ennen kuin kosket profiiliin
Pienet paketit menevät läpi, täydet eivät. Kehote, banneri tai yksi näppäinpainallus mahtuu helposti; hakemistolistaus, lataus tai liitetty lohko ei. Koko, jossa käyttäytyminen muuttuu, on vihje, ei se tosiasia, että SSH on kyseessä oleva ohjelma.
Mekanismi on polun MTU:n löytäminen, joka riippuu palautteesta. TCP valitsee segmentin koon, ja kun reititin matkalla ei voi välittää syntynyttä pakettia, sen pitäisi kertoa siitä ICMP-viestillä. Kapselointi tekee ulommasta paketista suuremman kuin sisempi, joten tunnelissa käytettävissä oleva koko on aina fyysistä linkkiä pienempi. Suodata ne ICMP-viestit missä tahansa, niin lähettäjä ei koskaan saa korjausta, lähettää yhä täysiä segmenttejä ja ulompi paketti hylätään ilman ilmoitusta.
Mittaa katto molemmilta puolilta
Vertaa tunnelin MTU:ta fyysiseen linkkiin ennen kuin muutat kumpaakaan. Tunneli, joka kopioi fyysisen arvon, on jo kertonut, missä ero on.
Mittaa tunnelin sisältä pyynnöllä, joka kieltää pirstomisen, laskien hyötykuormaa, kunnes vastaukset palaavat. Kokoperustelu laskee vain hyötykuorman, joten toimiva luku on aina liitännän MTU:n alapuolella. Lisää otsikoiden koot takaisin, jos tarvitset liitännän luvun.
ip link show tun0
ping -M do -s 1380 10.9.0.1Toista mittaus palvelimen julkista osoitetta vastaan tunnelin ulkopuolelta. Jos suuret mittaukset epäonnistuvat myös siellä, raja on matkalla palvelimelle eikä mikään tunnelin asetus siirrä sitä. Se vertailu säästää sinut sellaisen asiakkaan virittämiseltä, joka ei koskaan ollut ongelma. Kirjoita molemmat tulokset muistiin ennen kuin avaat asetustiedoston.
mssfix ja fragment tekevät eri työt
mssfix rajoittaa segmentin kokoa, jonka tunnelin sisäiset TCP-yhteydet ilmoittavat kättelyssään. Se on oikea vipu SSH:lle, HTTPS:lle ja tiedostokopioille, siksi jumitus usein katoaa heti kun se asetetaan. Se ei kosketa UDP:n hyötykuormia lainkaan.
Tunneli, joka kuljettaa myös UDP-palvelua, voi yhä epäonnistua SSH:n korjaamisen jälkeen, ja se tulos hämmentää kaikkia, jotka olettavat yhden asetuksen kattavan kaiken.
fragment on toinen mekanismi ja eri työkalu. Se jakaa liian suuret paketit ennen kapselointia, koskee vain UDP-kuljetusta, lisää tietogrammikohtaista ylimääräistä kuormaa ja on dokumentoitu viimeisenä keinona rikkinäiselle löytämiselle. Molempien asetusten on oltava samat tunnelin päättävillä vastapuolilla. Kun toinen pää rajoittaa ja toinen pirstoo, syntyy lokivaroituksia ja käyttäytymistä, jota kukaan ei voi ennustaa tiedostoista.
Liitännän MTU:n laskeminen on karkea vaihtoehto
Liitännän MTU:n pienentäminen molemmissa päissä on karkea työkalu. Se kertoo jokaiselle sisäiselle lähettäjälle pienemmän luvun, mikä toimii, ja se laskee sen kustannuksen kaikelle liikenteelle sen sijaan, että se kohdistuisi sitä tarvitseviin TCP-virtoihin.
Valitse se, kun tunneli kuljettaa liikennettä, jota et voi rajoittaa, tai kun asiakas on laite, jonka profiilia et hallitse. Käytä sitä symmetrisesti ja kirjaa arvo profiilin viereen. Puoliksi sovellettu muutos on pahempi kuin ei mikään, koska se näyttää korjaukselta.
Testaa uudelleen siirrolla, joka jumittui
Yhdistä uudelleen, jotta asetukset latautuvat, avaa uusi yhteys ja toista komento, joka jäätyi. Segmentin koko neuvotellaan kättelyssä, joten uudelleenyhdistämisen kestänyt istunto kantaa yhä vanhaa arvoa. Ping on tässä huono testi, koska koko vika on siinä, että pienet paketit menevät läpi. Käytä sitä listausta, latausta tai liittämistä, joka rikkoutui.
Jos jumitus jatkuu pienemmällä koolla, katso muualle: tilatietoinen palomuuri, joka vanhentaa virran, kaksoisosoite tai reitti, joka siirtyy uudelleenyhdistämisessä. Kirjaa mittauksen koko, joka epäonnistui, ja asetus, jonka muutit, koska juuri se pari tekee seuraavasta raportista hyödyllisen.