SSH verbindt, de prompt verschijnt, en de sessie sterft zodra een commando iets omvangrijks teruggeeft. Echo werkt nog even, daarna loopt de verbinding af terwijl de client de tunnel nog als actief toont. Een sessie die gezond is totdat er data komt, stuit meestal op een groottelimiet en niet op een SSH-defect. De controles hieronder zijn zo geordend dat de goedkoopste verklaring eerst wordt uitgesloten.

Lees de vorm van de storing voordat u het profiel aanraakt

Kleine pakketten komen door en volle niet. Een prompt, een banner of één toetsaanslag past gemakkelijk; een mapweergave, een download of een geplakt blok niet. De grootte waarbij het gedrag verandert is de aanwijzing, niet het feit dat SSH het betrokken programma is.

Het mechanisme is het ontdekken van de pad-MTU, dat van terugkoppeling afhangt. TCP kiest een segmentgrootte, en wanneer een router onderweg het resulterende pakket niet kan doorsturen, hoort hij dat met een ICMP-bericht te melden. Insluiting maakt het buitenste pakket groter dan het binnenste, dus de bruikbare grootte in een tunnel blijft altijd onder de fysieke verbinding. Filter die ICMP-berichten ergens en de afzender krijgt de correctie nooit, blijft volle segmenten sturen, en het buitenste pakket wordt zonder melding weggegooid.

Meet het plafond vanaf beide kanten

Vergelijk de MTU van de tunnel met de fysieke verbinding voordat u een van beide wijzigt. Een tunnel die de fysieke waarde heeft gekopieerd, heeft u al verteld waar de afwijking zit.

Peil van binnenuit de tunnel met een verzoek dat fragmentatie verbiedt, en verlaag de lading tot antwoorden terugkomen. Het grootteargument telt alleen de lading, dus het werkende getal blijft altijd onder de interface-MTU. Tel de kopgroottes er weer bij als u het interface-getal nodig hebt.

ip link show tun0
ping -M do -s 1380 10.9.0.1

Herhaal de peiling tegen het openbare adres van de server van buiten de tunnel. Als grote peilingen daar ook falen, zit de grens op de weg naar de server en geen tunneloptie zal die verplaatsen. Die vergelijking bespaart u het afstellen van een client die nooit het probleem was. Schrijf beide resultaten op voordat u een configuratiebestand opent.

mssfix en fragment doen verschillend werk

mssfix begrenst de segmentgrootte die TCP-verbindingen in de tunnel tijdens hun handdruk aankondigen. Het is de juiste hefboom voor SSH, HTTPS en bestandskopieën, daarom verdwijnt de blokkade vaak zodra hij is ingesteld. Het raakt UDP-ladingen helemaal niet aan.

Een tunnel die ook een UDP-dienst draagt, kan na het repareren van SSH blijven falen, en dat resultaat verwart iedereen die aanneemt dat één optie alles dekt.

fragment is het andere mechanisme en een ander gereedschap. Het splitst te grote pakketten vóór insluiting, geldt alleen voor UDP-transport, voegt overhead per datagram toe en is gedocumenteerd als laatste redmiddel bij kapotte ontdekking. Beide instellingen moeten overeenkomen bij de peers die de tunnel beëindigen. Eén kant die begrenst terwijl de andere fragmenteert levert logwaarschuwingen op en gedrag dat niemand uit de bestanden kan voorspellen.

De interface-MTU verlagen is de botte optie

De interface-MTU aan beide kanten verlagen is het botte gereedschap. Het vertelt elke inwendige afzender een kleiner getal, wat werkt, en het legt die kosten bij al het verkeer in plaats van bij de TCP-stromen die ze nodig hebben.

Kies hem wanneer de tunnel verkeer draagt dat u niet kunt begrenzen, of wanneer de client een apparaat is waarvan u het profiel niet beheert. Pas hem symmetrisch toe en noteer de waarde naast het profiel. Een half toegepaste wijziging is erger dan geen, omdat het op een oplossing lijkt.

Test opnieuw met de overdracht die vastliep

Verbind opnieuw zodat de instellingen laden, open een nieuwe verbinding en herhaal het commando dat bevroor. Segmentgrootte wordt bij de handdruk onderhandeld, dus een sessie die het herverbinden overleefde, draagt nog de oude waarde. Ping is hier een slechte test, omdat de hele storing is dat kleine pakketten doorkomen. Gebruik de weergave, de download of het plakwerk dat brak.

Als de blokkade bij een kleinere grootte aanhoudt, kijk elders: een stateful firewall die de stroom laat verlopen, een dubbel adres of een route die bij herverbinden verschuift. Noteer de peilgrootte die faalde en de instelling die u wijzigde, want dat paar maakt het volgende rapport bruikbaar.

Gerelateerde artikelen