SSH hang oor OpenVPN? Meet eers die pad-MTU
Eggo werk, dan laat 'n lys die sessie vir altyd hang. Peil die plafon van beide kante voordat jy mssfix, fragment of die koppelvlak-MTU wysig.
SSH verbind, die opdragteken verskyn, en die sessie sterf sodra 'n opdrag iets omvangryks terugstuur. Eggo werk nog 'n rukkie, dan loop die verbinding uit terwyl die kliënt steeds die tonnel as op wys. 'n Sessie wat gesond is totdat data opdaag, stuit gewoonlik op 'n groottelimiet eerder as op 'n SSH-fout. Die kontroles hieronder is so gerangskik dat die goedkoopste verklaring eerste uitgeskakel word.
Lees eers die foutpatroon voordat jy die profiel aanraak
Klein pakkies kom deur en volle een nie. 'n Opdragteken, 'n banier of 'n enkele toetsaanslag pas maklik; 'n gidslys, 'n aflaai of 'n geplakte blok nie. Die grootte waarop die gedrag verander, is die leidraad, nie die feit dat SSH die betrokke program is nie.
Die meganisme is pad-MTU-ontdekking, wat van terugvoer afhang. TCP kies 'n segmentgrootte, en wanneer 'n router onderweg nie die gevolglike pakket kan aanstuur nie, behoort hy dit met 'n ICMP-boodskap te sê. Inkapstering maak die buitenste pakket groter as die binneste, so die bruikbare grootte binne 'n tonnel is altyd onder die fisiese skakel. Filter daardie ICMP-boodskappe enige plek en die sender kry nooit die regstelling nie, hou volle segmente stuur, en die buitenste pakket word sonder kennisgewing weggegooi.
Meet die plafon van beide kante
Vergelyk die tonnel se MTU met die fisiese skakel voordat jy enigeen verander. 'n Tonnel wat die fisiese waarde gekopieer het, het reeds gesê waar die wanverhouding sit.
Peil van binne die tonnel met 'n versoek wat nie fragmenteer nie, en verlaag die loonvrag totdat antwoorde terugkom. Die grootte-argument tel net die loonvrag, so die werkende getal is altyd onder die koppelvlak-MTU. Tel die kopgrootte terug by as jy die koppelvlak-syfer nodig het.
ip link show tun0
ping -M do -s 1380 10.9.0.1Herhaal die peiling teen die bediener se publieke adres van buite die tonnel. As groot peilings daar ook misluk, sit die limiet op die pad na die bediener en geen tonnelopsie sal dit verskuif nie. Daardie vergelyking keer dat jy 'n kliënt fynstel wat nooit die probleem was nie. Skryf albei resultate neer voordat jy 'n konfigurasielêer oopmaak.
mssfix en fragment doen verskillende take
mssfix beperk die segmentgrootte wat TCP-verbindings binne die tonnel tydens hulle handdruk adverteer. Dit is die regte hefboom vir SSH, HTTPS en lêerkopieë, en daarom verdwyn die hanging dikwels sodra dit gestel is. Dit raak glad nie UDP-loonvragte nie.
'n Tonnel wat ook 'n UDP-diens dra, kan aanhou faal nadat SSH reggemaak is, en daardie uitkoms verwar elkeen wat aanneem een opsie dek alles.
fragment is die ander meganisme en 'n ander gereedskap. Dit verdeel oormaat pakkette voor inkapstering, geld net vir UDP-vervoer, voeg per-datagram oorhoofse koste by en word gedokumenteer as 'n laaste uitweg vir gebreekte ontdekking. Albei instellings moet ooreenstem by die eweknieë wat die tonnel beëindig. Een kant wat beperk terwyl die ander fragmenteer, lewer waarskuwings in die log en gedrag wat niemand uit die lêers kan voorspel nie.
Die koppelvlak-MTU verlaag is die bot opsie
Die koppelvlak-MTU aan albei kante verlaag, is die bot instrument. Dit sê vir elke binneste sender 'n kleiner getal, wat werk, en dit hef daardie koste op alle verkeer eerder as op die TCP-strome wat dit nodig het.
Kies dit wanneer die tonnel verkeer dra wat jy nie kan beperk nie, of wanneer die kliënt 'n toestel is wie se profiel jy nie beheer nie. Pas dit simmetries toe en teken die waarde langs die profiel aan. 'n Half toegepaste verandering is erger as geen, want dit lyk soos 'n regstelling.
Herhaal die toets met die oordrag wat vasgehaak het
Verbind weer sodat die instellings laai, maak 'n nuwe verbinding oop en herhaal die opdrag wat gevries het. Segmentgrootte word tydens die handdruk onderhandel, so 'n sessie wat die herverbinding oorleef het, dra nog die ou waarde. 'n Ping is 'n swak toets hier, want die hele fout is dat klein pakkies deurkom. Gebruik die lys, die aflaai of die plak wat gebreek het.
As die hanging by 'n kleiner grootte voortduur, kyk elders: 'n staatvolle vuurmuur wat die stroom laat verval, 'n duplikaatadres, of 'n roete wat by herverbinding skuif. Teken die peilgrootte wat misluk het en die instelling wat jy verander het aan, want daardie paar maak die volgende verslag bruikbaar.