VPN मोठ्या हस्तांतरणांवर का अडकतो पण लहानांवर नाही
लहान विनंत्या उत्तर देतात तर मोठी हस्तांतरणे गोठतात. निश्चित MTU कॉपी करण्यापूर्वी इंटरफेस मर्यादा, मार्ग मर्यादा आणि जाहीर केलेला TCP पेलोड यांची तुलना करा.
पान लोड होते, ping यशस्वी होते, आणि फाइलची प्रत प्रत्येक वेळी त्याच ठिकाणी अडकते। हा नमुना बँडविड्थ किंवा ओळखपत्रांऐवजी पॅकेटच्या आकाराकडे निर्देश करतो। एन्कॅप्स्युलेशन प्रत्येक पॅकेटमध्ये बाइट जोडते, त्यामुळे मूळ मार्गावर बसणारा पेलोड टनेलमधून गेल्यावर मर्यादा ओलांडू शकतो। या संभाषणांमध्ये तीन वेगवेगळ्या संख्यांना MTU म्हटले जाते, आणि त्या गोंधळल्यास एक अॅप दुरुस्त करणारी आणि दुसरी तोडणारी सेटिंग तयार होते।
लोक ज्यांना MTU म्हणतात त्या तीन संख्या
इंटरफेस MTU म्हणजे त्या लिंकवरील पॅकेटसाठी कॉन्फिगर केलेली मर्यादा। मार्ग MTU म्हणजे मार्गावरील सर्वात लहान मर्यादा, आणि ती कॉन्फिगर न होता शोधली जाते। TCP MSS म्हणजे समोरचा पक्ष स्वीकारू शकतो असे जाहीर करणारा पेलोड आकार, आणि तो इतर दोनांपासून निघतो, वेगळी भौतिक मर्यादा नाही।
टनेलला आतील आणि बाहेरील असे दोन दृश्य असते। बाहेरील पॅकेट एन्कॅप्स्युलेट केलेले पॅकेट आणि प्रोटोकॉलला आवश्यक ते हेडर घेऊन जाते, त्यामुळे वापरण्यायोग्य आतील आकार बाहेरील मार्ग परवानगी देतो त्यापेक्षा लहान असतो। VPN सर्व्हरपर्यंतचा मार्गही सर्व्हरपासून गंतव्यस्थानापर्यंतच्या मार्गापेक्षा वेगळा असतो।
मार्ग MTU शोधामुळे प्रेषकाला कार्यरत आकार कळतो, पण तो अभिप्राय पोहोचण्यावर अवलंबून असतो। जेव्हा मधले उपकरण संबंधित ICMP संदेश फिल्टर करते, तेव्हा प्रेषक कधीही पूर्ण न होणारे पॅकेट पाठवत राहतो, आणि हाच उत्कृष्ट ब्लॅक होल आहे। लक्षण माहीत असल्यास स्पष्ट असते: हँडशेक यशस्वी होतो, पहिला पूर्ण आकाराचा पेलोड गायब होतो, आणि शेवटी कनेक्शन रीसेट होते किंवा अडकते। अॅप्लिकेशन लॉगमध्ये नेटवर्क समस्येसारखे काहीही दिसत नाही।
तुमच्या नियंत्रणातील पेलोडने मार्ग तपासा
एक चाचणी एका मार्गाबद्दल आणि एका आकाराबद्दलचा पुरावा आहे, शिफारस केलेली सेटिंग नाही। उत्तर देणारा होस्ट वापरा, आणि फक्त पेलोडचा आकार बदला।
ping -M do -s 1372 -c 2 203.0.113.20 ping -4 -f -l 1372 vpn.example
पहिला आदेश फ्रॅगमेंटेशन बंद ठेवून 1372 बाइट पेलोडसह लिनक्स चाचणी पाठवतो, आणि दुसरा विंडोजवर तेच करतो जिथे पेलोड -l ने सेट होतो। उत्तर म्हणजे तो आकार मार्ग पार करून गेला। फ्रॅगमेंटेशन आवश्यक असल्याचा संदेश माहितीपूर्ण असतो, तर टाइमआउट संदिग्ध असतो कारण होस्ट किंवा मधले उपकरण फक्त ICMP टाकून देऊ शकते।
बाइटपर्यंत बायनरी शोध करण्याऐवजी काही टप्प्यांत आकार खाली आणा। तुम्ही आकाराची कमाल मर्यादा आहे का हे ठरवण्याचा प्रयत्न करत आहात, प्रत्येक नेटवर्कसाठी संख्या प्रकाशित करण्याचा नाही। तुम्हाला सापडणारी संख्या या मार्गाला, या प्रोटोकॉलला आणि या पत्ता कुटुंबाला लागू होते।
IPv4 आणि IPv6 वेगळ्या पद्धतीने फ्रॅगमेंट होतात, त्यामुळे एका कुटुंबाचा निकाल दुसऱ्याबद्दल काहीही सांगत नाही। अॅप प्रत्यक्षात वापरत असलेल्या कुटुंबाची चाचणी करा।
MSS क्लॅम्पिंग फक्त TCP ला मदत करते
TCP मध्ये प्रभावी पेलोड हँडशेकमध्ये वाटाघाटी केला जातो, आणि मार्गावरील राउटर ते मूल्य खाली पुन्हा लिहू शकतो जेणेकरून दोन्ही टोके लहान सेगमेंट पाठवतील। MSS क्लॅम्पिंग हेच करते, आणि ते क्लायंटला अजिबात स्पर्श न करता काम करते।
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu ip link show tun0
पहिला नियम फॉरवर्ड होणाऱ्या TCP हँडशेकसाठी जाहीर MSS मार्ग MTU वर क्लॅम्प करतो, आणि दुसरा टनेल इंटरफेसचे स्वतःचे MTU दाखवतो जेणेकरून तुम्ही ते मार्ग परवानगी देत असलेल्याशी तुलना करू शकता। हँडशेकनंतर अडकणाऱ्या TCP अॅपसाठी क्लॅम्पिंग हा सर्वात कमी हस्तक्षेपाचा उपाय आहे।
UDP साठी ते काहीही करत नाही। मोठे डेटाग्राम पाठवणारा व्हॉइस किंवा गेम क्लायंट MSS सेटिंग पूर्णपणे दुर्लक्ष करेल, कारण पुन्हा लिहिण्यासाठी हँडशेक नाही। अपयशी अॅप UDP असेल तर त्याऐवजी क्लायंटच्या स्वतःच्या पॅकेट आकार पर्यायांकडे पहा। दोन्ही प्रोटोकॉल वेगळ्या पद्धतीने अपयशी होतात आणि वेगळ्या साधनांनी दुरुस्त होतात, म्हणून प्रोटोकॉल तिकिटाच्या पहिल्या वाक्यात असायला हवा।
OpenVPN tun-mtu, mssfix आणि फ्रॅगमेंटशी संबंधित सेटिंग्ज असे पर्याय देते, आणि त्यांचे वर्तन आवृत्ती आणि डेटा चॅनेल AEAD आहे का यावर अवलंबून असते। वापरात असलेल्या आवृत्तीचे मॅन्युअल वाचा, आणि एका वेळी एकच पर्याय बदला।
एक समर्थित सेटिंग बदला आणि दोन्ही फेऱ्या पुन्हा करा
मूळ प्रोफाइल ठेवा, एक समर्थित मूल्य बदला, आणि जी लहान विनंती चालली तसेच जे मोठे हस्तांतरण अपयशी ठरले दोन्ही पुन्हा करा। फक्त मोठे बदलले तर तुम्ही आकारामागे होता। दोन्ही बदलले तर त्याबरोबर दुसरे काही सरकले।
कमी मूल्य लक्षण कमी करू शकते पण अतिरिक्त भार वाढवते, त्यामुळे शक्य तितकी लहान संख्या हे ध्येय नाही। ध्येय असे आकार आहे जे मार्ग सर्वात कमी नासाडीसह विश्वासार्हपणे वाहून नेतो। मूल्य, मार्ग आणि क्लायंट आवृत्ती तिकिटात नोंदवा, कारण तीच संख्या दुसरीकडे लागू करणे हा अंदाज आहे।
तेच प्रोफाइल दुसऱ्या विश्वासार्ह नेटवर्कवरून चालत असेल तर क्लायंट दुरुस्त झाला असे जाहीर करण्याऐवजी तो फरक निदानात ठेवा। बदललेला चल म्हणजे मार्ग, आणि चाचणीने मोजलेलेही मार्गच।