MTU లేదా MSS? VPN మార్పు నిజంగా ఏమి సరిచేస్తుంది
MTU లింక్ ఎంత మోసుకుపోతుందో పరిమితం చేస్తుంది; MSS దానిలోని TCP పేలోడ్ను పరిమితం చేస్తుంది. సరైనదాన్ని పరిమితం చేయండి మరియు రెండూ కవర్ చేయని ప్రోటోకాళ్లను తెలుసుకోండి.
పింగ్లు విజయవంతమవుతాయి, పెద్ద బదిలీలు నిలిచిపోతాయి, మరియు టన్నెల్ తాను ఆరోగ్యంగా ఉన్నట్లు ప్రకటించుకుంటుంది. ఎవరో ఇంటర్ఫేస్ MTUని తగ్గిస్తారు, మరొకరు MSSని పరిమితం చేస్తారు, కొన్నిసార్లు ఎవరూ నమోదు చేయని కారణాల వల్ల సమస్య మాయమవుతుంది. ఆ రెండు సంఖ్యలు వేర్వేరు వస్తువులను వివరిస్తాయి, కాబట్టి తప్పుదాన్ని మార్చడం అదృష్టంలా కనిపించే పరిష్కారాన్ని ఇస్తుంది. ఇది విధానం: పొరను గుర్తించండి, సరిపోయే సర్దుబాటును వర్తించండి, ఆపై కొత్త కనెక్షన్లో పరీక్షించండి.
రెండు సంఖ్యలు, రెండు వస్తువులు
MTU లింక్ లేదా ఇంటర్ఫేస్కు చెందుతుంది: విభజించకుండా అందించగల అతిపెద్ద ప్యాకెట్ అది. MSS TCPకు చెందుతుంది: ఒక సెగ్మెంట్ మోసుకోగల అతిపెద్ద TCP పేలోడ్ మొత్తం అది, మరియు TCP మరియు IP హెడర్లను రెండింటినీ మినహాయిస్తుంది. IPv4 ఉన్న సాధారణ ఈథర్నెట్ లింక్లో 1500 బైట్ల MTU సుపరిచితమైన 1460 బైట్ల MSSని ఇస్తుంది. ఈ సంఖ్యలు వేర్వేరు పొరలను వివరిస్తాయి, వేర్వేరు యంత్రాంగాల ద్వారా మార్పిడి చేయబడతాయి. రెండూ బైట్లలో కొలవబడతాయి, రెండూ 1500కి దగ్గరగా ఉంటాయి కాబట్టి వాటిని గందరగోళపరచడం సులభం.
ఒకటి ఇంటర్ఫేస్ సెట్టింగ్గా వస్తుంది. మరొకటి SYN సెగ్మెంట్ లోపల ఎంపికగా వస్తుంది, మీ ఇంటర్ఫేస్ను ఎప్పుడూ చూడని చివరల మధ్య చర్చించబడుతుంది.
బయటి అదనపు భారం ఎక్కడ పడుతుంది
VPN లోపలి ప్యాకెట్ను మరొక దానిలో పెడుతుంది, బయటి ప్యాకెట్ భౌతిక మార్గంలో సరిపోవాలి. ఎన్క్యాప్సులేషన్ హెడర్లు, బయటి IP హెడర్, రవాణా హెడర్ మరియు ఏదైనా ప్రామాణీకరణ ట్యాగ్ లోపలి ప్యాకెట్ ఉపయోగించలేని బైట్లను ఖర్చు చేస్తాయి. టన్నెల్ ఇంటర్ఫేస్ను 1500 వద్ద ఉంచితే బయటి ప్యాకెట్ మార్గం మోయగలిగినదాన్ని మించిపోతుంది. 'విభజించవద్దు' బిట్ సెట్ చేస్తే రౌటర్ దాన్ని పడేస్తుంది మరియు ICMP లోపాన్ని తిరిగి పంపాలి; ఆ లోపం ఫిల్టర్ అయితే పంపినవారికి ఎప్పటికీ తెలియదు.
అందుకే వైఫల్యం ఎంపిక చేసినట్లు కనిపిస్తుంది. చిన్న అభ్యర్థనలు పూర్తవుతాయి, సెగ్మెంట్ను నింపే ఏదైనా నిలిచిపోతుంది, ఎందుకంటే పెద్ద ప్యాకెట్లు మాత్రమే పడేయబడతాయి. పింగ్ను దాటించే టన్నెల్ డేటాను మోసే టన్నెల్ కాదు.
MSS పరిమితం చేయడం, అది ఎక్కడ వర్తిస్తుంది
MSS క్లాంపింగ్ ఎంచుకున్న బిందువును దాటుతున్నప్పుడు SYN సెగ్మెంట్లోని విలువను తిరిగి రాస్తుంది, దాంతో రెండు చివరలు ఎందుకో తెలియకుండా చిన్న పేలోడ్ను ఎంచుకుంటాయి. Linuxలో ఇది స్పష్టమైన నియమంతో వర్తించే mangle పట్టిక లక్ష్యం, మరియు అది మీరు ఉద్దేశించిన దిశలో SYN ప్యాకెట్లను తాకాలి. టన్నెల్ ఇంటర్ఫేస్ మరియు చిరునామా పరిధికి పరిమితం చేయండి, ఎందుకంటే విస్తృత నియమం టన్నెల్లోకి ఎప్పుడూ ప్రవేశించని ట్రాఫిక్ ప్రవర్తనను మారుస్తుంది.
ప్రభావం TCPపై మాత్రమే. UDP అప్లికేషన్, QUIC సెషన్ మరియు తమ స్వంత డేటాగ్రామ్లను నిర్మించే ఏ ప్రోటోకాల్ అయినా ఇది తాకదు.
స్థిర మార్గంతో నిర్ధారణ చేయండి
ఒకసారి ఒక వేరియబుల్ ఉంచండి. మీరే పరిమాణం ఎంచుకునే ప్యాకెట్తో పరీక్షించండి, మరియు ఫలితాన్ని దాచకుండా కెర్నల్ నివేదించేలా 'విభజించవద్దు' జెండాను సెట్ చేయండి.
వైఫల్యం ఎక్కడ మొదలవుతుందో నమోదు చేయండి: టన్నెల్ లోపల, టన్నెల్ ఇంటర్ఫేస్ వద్ద, లేదా ఎన్క్యాప్సులేషన్ తర్వాత భౌతిక మార్గంలో. తర్వాత ఒక సంఖ్యను మార్చండి, మరొకటి కాదు, అదే పరీక్షను పునరావృతం చేయండి. ఉన్న కనెక్షన్లు చర్చించిన MSSని నిలుపుకుంటాయి, కాబట్టి విధాన మార్పు కొత్త కనెక్షన్లో మాత్రమే కనిపిస్తుంది, అందుకే కాష్ చేసిన పేజీ ఏ దిశలోనూ ఏమీ నిరూపించదు. ఒక పెద్ద అప్లోడ్ పని చేయడం మొదలైతే, మీరు ఆ మార్గం గురించి నేర్చుకున్నారు, దానిపై ఉన్న ప్రతి ప్రోటోకాల్ గురించి కాదు.
ప్రతి మార్పు ఏమి సరిచేయదు
ఇంటర్ఫేస్ MTUని తగ్గించడం ఇప్పటికే ఏర్పాటైన సెషన్ MSSని మార్చదు. MSS పరిమితి UDP ప్రవాహానికి సహాయపడదు, ICMP లోపాలు ఒక దిశలో మాత్రమే ఫిల్టర్ అయ్యే మార్గాన్ని సరిచేయదు. ప్రతి మార్పు ఒక రకమైన సమస్యను సరిచేసి మిగతావాటిని ఉన్నట్లుగానే వదిలివేస్తుంది.
మీరు ఏ సర్దుబాటును ఎక్కడ వర్తించారు, ఏ పరీక్ష తేడాను చూపింది అని రాయండి, లేకపోతే తదుపరి ఇంజనీర్ రెండింటినీ వర్తించి ఏది ముఖ్యమైనదో చెప్పే సామర్థ్యాన్ని కోల్పోతారు. పరిమితి నిజమైనది మరియు శాశ్వతమైనది అయితే, దాన్ని దాచే క్లాంప్ కంటే దాన్ని ప్రతిబింబించే టన్నెల్ MTUని ఎంచుకోండి. క్లాంప్ చేయాల్సిందే అయితే, నియమాన్ని పరిమిత పరిధిలో మరియు వ్యాఖ్యతో వదిలేయండి, ఎందుకంటే వివరించని mangle నియమం డిఫాల్ట్గా శాశ్వతమవుతుంది.