VPN లేకుండా Git ఆగిపోతుందా? OpenSSH IPQoS తో ప్యాకెట్లను గుర్తిస్తుంది
OpenSSH డిఫాల్ట్గా తన ప్యాకెట్లను QoS విలువతో గుర్తిస్తుంది. మార్గం ఆ గుర్తును పడేసిన చోట, సొరంగం ప్యాకెట్ల మార్గాన్ని మార్చే వరకు push ఆగిపోతుంది.
కార్యాలయం నుండి తీసిన క్లోన్ పని చేస్తుంది, ఫోన్ హాట్స్పాట్ ద్వారా అదే క్లోన్ పని చేస్తుంది, కానీ హోటల్ నెట్వర్క్ నుండి అదే క్లోన్ VPN ఆన్ అయ్యే వరకు వేలాడుతుంది. SSH చేతులు కలపడం ముగుస్తుంది మరియు మొదటి నిజమైన బదిలీలో సెషన్ నిశ్శబ్దమవుతుంది. క్లయింట్ కాన్ఫిగరేషన్కు జోడించిన ఒక లైన్ git మరియు ssh రెండింటినీ కలిసి నయం చేస్తుంది. ఒకే క్లయింట్ సెట్టింగ్ ఒకేసారి అనేక సాధనాలను సరిచేసినప్పుడు, లోపం క్లయింట్ పంపే దానిలో ఉంటుంది, అది పంపే లింక్లో కాదు.
లక్షణాన్ని మార్గ భేదంగా చదవండి
సమస్యను నయం చేసే సొరంగం అరుదుగా మరమ్మత్తు. అది మార్గం, క్యారియర్ మరియు మధ్యంతర పరికరాలను మారుస్తుంది, ల్యాప్టాప్ అదే ప్యాకెట్లను ఉత్పత్తి చేస్తూనే ఉంటుంది. ఒక మార్గం శీర్షికను తప్పుగా నిర్వహించి మరొకటి దానిని మార్పు లేకుండా పంపిస్తే, భేదం మధ్యంతర పరికరం విధానంలో ఉంటుంది, క్లయింట్లో కాదు. ఇక్కడ సొరంగం సాక్షి, పరిష్కారం కాదు.
సెషన్ చనిపోయే బిందువు దీన్ని మరింత సంకుచితం చేస్తుంది. పేరు అన్వేషణలో లేదా కీ మార్పిడిలో విఫలమయ్యే ఏదీ ఇలా కనిపించదు. ప్రామాణీకరించి, బ్యానర్ ముద్రించి, తర్వాత మొదటి పెద్ద రాతలో స్తంభించిపోయే సెషన్, మార్గం, పేర్లు మరియు ఆధారాలు అన్నీ పని చేస్తున్నాయని ఇప్పటికే నిరూపించింది.
క్లయింట్ ప్రతి SSH సాకెట్పై QoS బైట్ను ముద్రిస్తుంది
7.8 నుండి ప్రతి OpenSSH కనెక్షన్ IP శీర్షికలో రౌటర్లు ట్రాఫిక్కు ప్రాధాన్యత ఇవ్వడానికి ఉపయోగించగల విలువను మోసుకెళ్తుంది. టెర్మినల్ సెషన్లకు ఒక విలువ, పెద్ద కాపీలకు మరొకటి లభిస్తాయి, టైప్ చేసే మనిషి ఫైల్ బదిలీ కంటే మంచి ప్రవర్తనకు అర్హుడు అనే సిద్ధాంతం మేరకు. చాలా నెట్వర్క్లు ఈ సూచనను పూర్తిగా పట్టించుకోవు, అందుకే ఇది సంవత్సరాల తరబడి గమనించబడదు. కొన్ని Wi-Fi డ్రైవర్లు, మొబైల్ ఆపరేటర్లు మరియు VPN కేంద్రీకరణకారులు దాని ప్రకారం పనిచేస్తాయి, వాటిలో కొన్ని దురదృష్టకరంగా ప్రవర్తిస్తాయి.
ఆ విలువ ప్రవాహం మధ్యలో తిరిగి రాయబడినప్పుడు లేదా వదిలివేయబడినప్పుడు, కనెక్షన్ విఫలం కాదు, అది ముందుకు సాగడం ఆగిపోతుంది. పునఃప్రసారాలు పెరుగుతాయి, విండో కుప్పకూలుతుంది, మరియు ఏదీ లోపం ఇవ్వనందున అప్లికేషన్ ఏమీ నివేదించదు. ఆ నిశ్శబ్దమే ప్రజలు లక్షణాన్ని వైఫల్యం కాకుండా వేలాడటం అని వర్ణించడానికి కారణం.
మొదట ssh -V తో క్లయింట్ వెర్షన్ను నిర్ధారించండి. 7.8 లేదా అంతకంటే ఎక్కువ ఏ వెర్షన్ అయినా ఈ ప్రవర్తనను డిఫాల్ట్గా కలిగి ఉంటుంది.
దీన్ని MTU మరియు DNS నుండి వేరు చేసే మూడు ఆదేశాలు
ఏదైనా కాన్ఫిగరేషన్ ఫైల్ను సవరించే ముందు రెండు సమాన కారణాలను తొలగించాలి. MTU లోపం చిన్న మార్పిడులను దాటనిస్తుంది మరియు మొదటి పెద్ద ప్యాకెట్లో స్తంభిస్తుంది, అయితే పేరు లోపం ఎప్పుడూ సెషన్ను సృష్టించదు.
ssh -o IPQoS=none -v [email protected]
ssh -G [email protected] | grep -i ipqos
sudo tcpdump -ni any -vv "tcp port 22"
మొదటి ఆదేశం గుర్తును ఆఫ్ చేసి విఫలమవుతున్న చర్యను పునరావృతం చేస్తుంది, దాని విజయవంతమైన నిర్వహణ అందుబాటులో ఉన్న బలమైన ఒకే సాక్ష్యం. రెండవది క్లయింట్ ఆ గమ్యానికి నిజంగా వర్తింపజేసే కాన్ఫిగరేషన్ను ముద్రిస్తుంది, ఇది మరచిపోయిన ఫైల్లోని పాత నమోదును పట్టుకుంటుంది. మూడవది బదిలీ కష్టంగా ఉన్నప్పుడు రెండు దిశలలో TOS బైట్ను చూపిస్తుంది, ఆసక్తికరమైన నమూనా విరిగిన మార్గంలో విలువ ఉండటం మరియు పని చేసే మార్గంలో అది లేకపోవడం.
క్యాప్చర్ను సర్వర్పై కాకుండా ల్యాప్టాప్పై చేయండి, ఎందుకంటే విలువను పంపేవాడే పెడతాడు మరియు రెండు దిశలూ దాన్ని మార్చగలవు. పని చేసే మరియు విఫలమయ్యే మార్గాలను ఒకే క్యాప్చర్తో పోల్చండి, ఊహ లేకుండా భేదం కనిపిస్తుంది.
మినహాయింపును ఒక ఫైల్లో ఉంచండి, ఒకసారి ఒక హోస్ట్
మినహాయింపు వర్తించే హోస్ట్ పక్కన ఉండాలి, అది ఎందుకు ఉందో చెప్పే వ్యాఖ్యతో.
Host gitlab.example.internal
IPQoS none
# direct route rewrites the marking; the tunnel route passes it
విలువ కంటే పరిధి ముఖ్యం. వైల్డ్కార్డ్ నమోదు ప్రవర్తనను ప్రతిచోటా ఆపేస్తుంది, మంచి ప్రవర్తన ఉన్న నెట్వర్క్లలో సహాయపడే సూచనను పడేస్తుంది, మరియు అది ఎప్పుడు వచ్చిందో ఎవరూ చెప్పలేరు. ప్రతి హోస్ట్కు నమోదు చదవగలిగేది, తిరిగి మార్చగలిగేది మరియు నెట్వర్క్ సరిచేసిన తర్వాత తొలగించడం చాలా సులభం. వ్యక్తిగత పరిష్కారానికి వినియోగదారు ఫైల్ను, మొత్తం సమూహానికి అదే మినహాయింపు అవసరమైనప్పుడు నిర్వహిత ఫైల్ను ఉపయోగించండి.
మినహాయింపు ఏమి కవర్ చేయదో స్పష్టంగా చెప్పండి. ఇది SSH కి వర్తిస్తుంది, కాబట్టి HTTPS రిమోట్, ప్యాకేజీ అద్దం మరియు బ్రౌజర్ అన్నీ దాని బయట ఉంటాయి, వాటిలో ఏది విఫలమైనా దానికి సొంత సాక్ష్యం కావాలి. బాస్టియన్ గుండా వెళ్లే గొలుసులో ప్రతి దూకుడు క్లయింట్ కాన్ఫిగరేషన్ను ఉపయోగిస్తుంది, ఆగిపోయే దూకుడే పరిమితం చేయదగినది.
నెట్వర్క్ యజమానితో వృత్తాన్ని మూసివేయండి
ఆవిష్కరణను నాలుగు వాస్తవాలుగా అప్పగించండి: క్లయింట్ వెర్షన్, పరీక్షించిన మార్గం, ఉపయోగిస్తున్న VPN క్లయింట్, మరియు ఏ దిశ గుర్తును మోసింది. ఈ నాలుగూ నెట్వర్క్ యజమానికి ప్రవర్తనను మళ్లీ సృష్టించి అది ఉద్దేశపూర్వకమా అని నిర్ణయించడానికి సరిపోతాయి.
మినహాయింపు ఆగిపోవడాన్ని నయం చేయకపోతే, దాన్ని తొలగించండి. విఫలమైన ప్రయోగం నుండి తప్పించుకున్న పరిష్కారం పురాణంగా మారుతుంది, తదుపరి వ్యక్తి అది ఏమీ చేయదని నిరూపించడానికి ఒక గంట గడుపుతాడు. అది ఆగిపోవడాన్ని నయం చేస్తే, ఆ మార్గం దాన్ని దాటే ప్రతి ఇతర సాధనానికి ఇంకా తప్పే, మరమ్మత్తు మధ్యంతర పరికరాన్ని నిర్వహించేవారికి చెందుతుంది.
క్లయింట్లో మార్పు గడువు తేదీ ఉన్న తాత్కాలిక పరిష్కారం. ఆ తేదీని వ్యాఖ్యలో రాయండి.