VPN MTU పుకార్లు: మీ ప్యాకెట్లు ఎందుకు కుంచించుకుపోతాయి మరియు స్థలం ఎక్కడికి పోతుంది
ఎన్క్యాప్సులేషన్ మరియు PPPoE ప్యాకెట్ స్థలాన్ని తింటాయి, కానీ తక్కువ MTU నిర్ధారణ కాదు. సంఖ్యను మార్చే ముందు లోపలి మరియు బయటి పరిమాణాలను వేరు చేయండి.
ఎవరో మీకు VPN "MTU కారణంగా ప్యాకెట్లను కోల్పోతోంది" అని చెబుతారు, మీరు సొరంగాన్ని 1400కి సెట్ చేస్తారు, బదిలీ మళ్లీ పని చేస్తుంది. ఆ ఫలితం నిర్ధారణలా అనిపిస్తుంది. సాధారణంగా ఇది గణితం యొక్క యాదృచ్ఛికం: మీరు ఎప్పుడూ గుర్తించని పరిమితి కింద ఇమిడేంత చిన్న సంఖ్యను ఎంచుకున్నారు, తదుపరి నెట్వర్క్లో వేరే బడ్జెట్తో అదే పరిమితిని మళ్లీ ఎదుర్కొంటారు.
దీనిలో ఎక్కువ భాగాన్ని రెండు పుకార్లు కలిగిస్తాయి. మొదటిది సొరంగ ఇంటర్ఫేస్ MTU మార్గం MTU అని. రెండవది ఎన్క్యాప్సులేషన్కు "ఒక శీర్షిక" ఖర్చవుతుంది, PPPoEకు లెక్కించదగిన ఏదీ ఖర్చు కాదని. రెండూ మీరు ఎంచుకున్న సంఖ్య నిర్ణయించబడినప్పటికీ అది ఏకపక్షంగా కనిపించే విధంగా తప్పు.
మొదటి పుకారు: సొరంగం MTU మార్గం MTU
సొరంగ ఇంటర్ఫేస్పై మీరు సెట్ చేసే విలువ, అమలు కిందకు అప్పగించే అతిపెద్ద లోపలి ప్యాకెట్ గురించి స్థానిక హామీ. మార్గం యొక్క నిజమైన సామర్థ్యం మీకు మరియు దూరపు చివర మధ్య ప్రతి లింక్ యొక్క లక్షణం, మరియు మార్గం మారినప్పుడు, మొబైల్ కనెక్షన్ అప్పగించబడినప్పుడు లేదా ట్రాఫిక్ మరొక పీరింగ్ తీసుకున్నప్పుడు అది మారవచ్చు. సెట్ చేసిన 1500 మీ హోస్ట్ ఏమి నిర్మిస్తుందో చెబుతుంది, నెట్వర్క్ ఏమి మోస్తుందో కాదు.
మార్గ-MTU అన్వేషణ రెండింటినీ సమన్వయపరచడానికి ఉంది, మరియు అది ప్రతిస్పందనపై ఆధారపడి ఉంటుంది. IPv4లో, పూర్తి పరిమాణ ప్యాకెట్ను పంపలేని రౌటర్ ICMP "fragmentation needed" సందేశాన్ని పంపాలి, పంపినవారు తమ అంచనాను తగ్గిస్తారు. IPv6లో సమానమైనది Packet Too Big సందేశం, రౌటర్లు ప్రయాణంలో ఫ్రాగ్మెంట్ చేయవు. ఆ ప్రతిస్పందన ఫిల్టర్ అయినప్పుడు, పంపినవారు మార్గం మోయలేని ప్యాకెట్లను ఉత్పత్తి చేస్తూనే ఉంటారు, ఎందుకో ఏదీ వారికి చెప్పదు.
రెండవ పుకారు: ఎన్క్యాప్సులేషన్కు ఒక శీర్షిక ఖర్చు
బయటి పొరలను నిజాయితీగా లెక్కించండి. బయటి IP శీర్షిక IPv4లో 20 బైట్లు లేదా IPv6లో 40. NAT దాటడానికి UDP ఎన్క్యాప్సులేషన్ 8 జోడిస్తుంది. సొరంగ ప్రోటోకాల్ తన స్వంత శీర్షిక, ప్రారంభ వెక్టర్ లేదా నాన్స్, సైఫర్ బ్లాక్ లేదా అమరిక పరిమితి వరకు ప్యాడింగ్, చివరి భాగం మరియు సమగ్రత తనిఖీ విలువను జోడిస్తుంది. ప్రోటోకాల్ మరియు సైఫర్ను బట్టి, లోపలి ప్యాకెట్ ప్రారంభం కాకముందే మొత్తం సౌకర్యవంతంగా పదుల బైట్లలో ఉంటుంది.
తర్వాత లోపలి ప్యాకెట్ యొక్క స్వంత శీర్షికల కోసం మళ్లీ తీసివేయండి. సొరంగం లోపల TCP విభాగం తన స్వంత 20 బైట్ IP శీర్షికను మరియు 20 బైట్ TCP శీర్షికను మోస్తుంది, TCP యొక్క MSS MTU నుండి వస్తుంది, సొరంగం యొక్క నామమాత్ర పేలోడ్ నుండి కాదు. అందుకే ping చిన్న పేలోడ్తో విజయవంతం కాగలదు కానీ ఫైల్ బదిలీ ఆగిపోతుంది: సాధనాలు వేర్వేరు విషయాలను పరీక్షిస్తాయి, వాటిలో ఒకటి మాత్రమే పూర్తి పరిమాణ TCP విభాగాన్ని ఉపయోగిస్తుంది.
ip link show tun0
ping -M do -s 1472 192.0.2.10
ping -M do -s 1400 192.0.2.10
మొదటి ఆదేశం సెట్ చేసిన సొరంగ MTUను నివేదిస్తుంది. రెండు ప్రోబ్లు 1472 బైట్ల పేలోడ్ను పంపుతాయి, అది IPv4 మరియు ICMP శీర్షికల 28 బైట్లతో 1500 బైట్ల ప్యాకెట్, తర్వాత చిన్నది. పెద్ద ప్రోబ్ పూర్తిగా విఫలమై చిన్నది విజయవంతమైతే, మీకు పరిమాణాధారిత లోపం ఉంది, సాధారణ రూటింగ్ సమస్య కాదు.
మూడవ పుకారు: PPPoE ఇప్పటికీ మీకు స్వచ్ఛమైన 1500 ఇస్తుంది
సాంప్రదాయ PPPoE యాక్సెస్ లింక్ 1500 బైట్ల IP ప్యాకెట్ను మోయదు. PPPoE శీర్షిక మరియు PPP ప్రోటోకాల్ ఫీల్డ్ ఈథర్నెట్ ఫ్రేమ్ లోపల 8 బైట్లు తీసుకుంటాయి, ఇది IP ప్యాకెట్కు 1492 మిగులుస్తుంది. ఇది RFC 2516లో వివరించిన సాంప్రదాయ పరిమితి. అలాంటి లింక్పై VPN నడిపితే, సొరంగం యొక్క అదనపు ఖర్చు ఆ 1492 నుండి వస్తుంది, 1500 నుండి కాదు.
RFC 4638 యాక్సెస్ కేంద్రీకరణ మరియు కస్టమర్ పరికరాలు రెండూ మద్దతిచ్చినప్పుడు పెద్ద PPP పేలోడ్పై చర్చించే మార్గాన్ని నిర్వచిస్తుంది, అందుకే "ఈ కనెక్షన్ PPPoE ఉపయోగిస్తుంది" మాత్రమే నిర్దిష్ట సంఖ్యను నిరూపించదు. స్థానిక సెట్టింగ్ ఎప్పుడూ కాన్ఫిగర్ చేయని ప్యాకెట్ను మధ్యస్థ పరికరం అంగీకరించేలా బలవంతం చేయలేదు, కాబట్టి ఉపయోగకరమైన ప్రశ్న లేబుల్ ఏమి చెబుతుందో కాదు, లింక్ నిజంగా ఏమి చర్చించిందో.
వైఫల్యం ఎందుకు ఎంపికగా కనిపిస్తుంది
చిన్న అభ్యర్థనలు విజయవంతం కావడం మరియు పెద్ద బదిలీలు ఆగిపోవడం మార్గ-MTU నల్ల బిలం యొక్క సాంప్రదాయ సంకేతం. హ్యాండ్షేక్, DNS ప్రశ్న మరియు API కాల్ అన్నీ ఇమిడిపోతాయి; బల్క్ బదిలీ ఒక లింక్పై మరణించే పూర్తి పరిమాణ విభాగాలను ఉత్పత్తి చేస్తుంది, సమస్యను నివేదించాల్సిన ICMP సందేశం ఎప్పటికీ రాదు. కనెక్షన్ బాగానే కనిపిస్తుంది, డౌన్లోడ్ వేలాడుతుంది, ఇది ప్రజలను మార్గానికి బదులు సర్వర్ వైపు చూసేలా చేస్తుంది.
రెండవ, సంబంధిత తప్పు మూడు సంఖ్యలను కలపడం: ఇంటర్ఫేస్ MTU, TCP MSS మరియు ప్రోటోకాల్ యొక్క స్వంత ఫ్రాగ్మెంటేషన్ లేదా ప్యాడింగ్ సెట్టింగ్. రౌటర్పై MSS క్లాంపింగ్ ప్రకటించిన MSSను తిరిగి రాస్తుంది, పంపినవారు చిన్న విభాగాలను నిర్మిస్తారు; అది సొరంగ MTUను మార్చదు, UDP ట్రాఫిక్కు సహాయపడదు. సంబంధితంగా కనిపిస్తాయని మూడింటికీ ఒకే సంఖ్య ఇవ్వడం, మంచి ఉద్దేశంతో చేసిన మార్పు పని చేస్తున్న సెటప్ను విచ్ఛిన్నం చేసే మార్గం.
ఏమి మార్చాలి, ఏ క్రమంలో
సాక్ష్యంతో ప్రారంభించండి. పై ప్రోబ్లతో లోపం పరిమాణాధారితమని నిర్ధారించండి, తర్వాత దాటే అతి చిన్న పరిమాణాన్ని మరియు విఫలమయ్యే అతి పెద్ద పరిమాణాన్ని కనుగొనండి. సొరంగాన్ని నిందించే ముందు యాక్సెస్ లింక్ యొక్క నిజమైన MTUను తనిఖీ చేయండి; PPPoE లింక్ మీ VPN దాన్ని తాకకముందే బడ్జెట్ను పరిమితం చేస్తుంది. మార్పును తిరిగి తీసుకోగలిగేలా అసలు విలువలను గమనించండి.
తర్వాత క్లయింట్ డాక్యుమెంట్ చేసే అతి చిన్న సర్దుబాటును వర్తించండి. అనేక క్లయింట్లు సొరంగ MTUతో పాటు MSS సరిదిద్దే ఎంపికను అందిస్తాయి, MSS ఎంపిక తరచుగా TCPకు మంచి పరపతి ఎందుకంటే అది ప్రతి ప్యాకెట్ను చిన్నదిగా చేయకుండా పంపినవారిని చేరుతుంది. అదే గమ్యాన్ని మరియు అదే బదిలీని మళ్లీ పరీక్షించండి, మీరు స్థిరపడిన సంఖ్యలను గమనించండి. ఒక యాక్సెస్ నెట్వర్క్లో పని చేసే సొరంగ విలువ సార్వత్రిక స్థిరాంకం కాదు, తదుపరి సైట్కు దాని స్వంత బడ్జెట్ ఉంటుంది.