'n Kloon vanaf die kantoor werk, dieselfde kloon oor 'n selfoon-hotspot werk, en dieselfde kloon vanaf 'n hotelnetwerk hang totdat 'n VPN aangeskakel word. Die SSH-handskud voltooi en die sessie word stil op die eerste werklike oordrag. Een reël by die kliëntkonfigurasie genees git en ssh saam. Wanneer een kliëntinstelling verskeie gereedskap gelyktydig herstel, lê die fout in wat die kliënt stuur, nie in die skakel waardeur dit gestuur word nie.

Lees die simptoom as 'n roeteverskil

'n Tonnel wat 'n probleem genees, is selde 'n herstelling. Dit ruil die roete, die draer en die middelboks om, terwyl die skootrekenaar presies dieselfde pakkette bly produseer. As een roete 'n kop verkeerd hanteer en 'n ander dit onveranderd deurlaat, lê die verskil in die beleid van die middelboks, nie in die kliënt nie. Die tonnel is hier 'n getuie, nie 'n oplossing nie.

Die punt waar die sessie sterf, vernou dit verder. Niks wat by naamopsoeking of by sleuteluitruiling faal, lyk so nie. 'n Sessie wat verifieer, 'n banier druk en dan op die eerste groot skryf vries, het reeds bewys dat roetering, naamgewing en geloofsbriewe alles werk.

Die kliënt merk elke SSH-sokket met 'n QoS-greep

Elke OpenSSH-verbinding vanaf 7.8 dra 'n waarde in die IP-kop wat routers mag gebruik om verkeer te prioritiseer. Terminale kry een waarde en groot kopieë kry 'n ander, op die teorie dat 'n mens wat tik beter behandeling verdien as 'n lêeroordrag. Die meeste netwerke ignoreer die wenk heeltemal, en daarom bly dit jare lank ongemerk. 'n Minderheid van Wi-Fi-drywers, selfoondraers en VPN-konsentreerders reageer daarop, en sommige van hulle reageer sleg.

Wanneer daardie waarde herbewerk of midde-in die stroom weggegooi word, faal die verbinding nie, dit hou op om te vorder. Heruitsendings klim, die venster val ineen, en die toepassing rapporteer niks omdat niks 'n fout gegee het nie. Daardie stilte is waarom mense die simptoom as 'n hang beskryf eerder as as 'n fout.

Bevestig eers die kliëntbou met ssh -V. Enigiets op of bo 7.8 dra die gedrag by verstek.

Drie opdragte wat dit van MTU en DNS skei

Twee voorkomendes verdien uitsluiting voordat jy enige konfigurasielêer wysig. 'n MTU-fout laat klein uitruilings deur en vries op die eerste groot pakket, terwyl 'n naamfout nooit 'n sessie lewer nie.

ssh -o IPQoS=none -v [email protected]
ssh -G [email protected] | grep -i ipqos
sudo tcpdump -ni any -vv "tcp port 22"

Die eerste opdrag herhaal die mislukkende bewerking met die merking afgeskakel, en 'n suksesvolle loop is die sterkste enkele bewys beskikbaar. Die tweede druk die konfigurasie wat die kliënt werklik vir daardie bestemming gaan toepas, wat 'n verouderde inskrywing in 'n lêer wat jy vergeet het, uitvang. Die derde wys die TOS-greep in albei rigtings terwyl die oordrag vassteek, en die interessante patroon is 'n waarde op die gebreekte roete met geen op die werkende een nie.

Doen die opname op die skootrekenaar eerder as op die bediener, want die sender stel die waarde en enige rigting kan dit verander. Vergelyk 'n werkende roete en 'n mislukkende roete met dieselfde opname, en die verskil verskyn sonder giswerk.

Plaas die uitsondering in een lêer, een gasheer op 'n slag

'n Uitsondering hoort langs die gasheer waarop dit van toepassing is, met 'n kommentaar wat sê waarom dit bestaan.

Host gitlab.example.internal
    IPQoS none
    # direct route rewrites the marking; the tunnel route passes it

Die bestek maak meer saak as die waarde self. 'n Jokerinskrywing skakel die gedrag oral af, gooi 'n wenk weg wat op goedgedraende netwerke help, en laat niemand in staat om te sê wanneer dit verskyn het nie. 'n Inskrywing per gasheer is leesbaar, omkeerbaar en maklik om te verwyder sodra die netwerk herstel is. Gebruik die gebruikerlêer vir 'n persoonlike tydelike oplossing en 'n bestuurde lêer wanneer 'n hele vloot dieselfde uitsondering nodig het.

Wees duidelik oor wat die uitsondering nie dek nie. Dit geld vir SSH, so 'n HTTPS-afstand, 'n pakketspieël en 'n blaaier val almal buite dit, en 'n fout in enige van hulle benodig sy eie bewyse. Op 'n ketting deur 'n bastion gebruik elke sprong die kliëntkonfigurasie, en die sprong wat vassteek is die een wat die moeite werd is om te beperk.

Sluit die kring met die netwerkeienaar

Gee die bevinding oor as vier feite: kliëntweergawe, getoetste roete, VPN-kliënt in gebruik, en watter rigting die merking gedra het. Daardie vier is genoeg vir 'n netwerkeienaar om die behandeling te reproduseer en te besluit of dit doelbewus is.

As die uitsondering die vassteek nie genees nie, verwyder dit. 'n Tydelike oplossing wat 'n mislukte eksperiment oorleef, word folklore, en die volgende persoon spandeer 'n uur om te bewys dit doen niks. As dit die vassteek wel genees, is die pad steeds verkeerd vir elke ander gereedskap wat dit kruis, en die herstelling hoort by wie ook al die middelboks bedryf.

Die kliëntverandering is 'n noodoplossing met 'n vervaldatum. Skryf daardie vervaldatum in die kommentaar in.

Verwante artikels