आपके पास एक MTU समस्या के लक्षण हैं : कुछ टीसीपी कनेक्शन फ्रीज, दिए गए कमांड या URL के लिए अधिक या कम प्रतिलिपि प्रस्तुत करने योग्य नहीं, लेकिन आसानी से समझ में नहीं आने वाले समग्र पैटर्न के साथ। एक टेल्टेल लक्षण यह है कि इंटरैक्टिव ssh सत्र अच्छी तरह से काम करता है लेकिन फ़ाइल स्थानांतरण लगभग हमेशा विफल रहता है। इसके अलावा pppoe घर उपयोगकर्ताओं के लिए MTU समस्या का नंबर एक लाने वाला है। इसलिए मैं एक एमटीयू जांच लिखता हूं।
यह क्या है? मीटर aximum टी ransmission यू निट की एक नेटवर्क लिंक पर एक पैकेट का अधिकतम आकार है। एमटीयू ट्रांसपोर्ट माध्यम से ट्रांसपोर्ट माध्यम में भिन्न होता है, जैसे वायर्ड ईथरनेट और वाईफाई (802.11) में अलग-अलग एमटीयू होते हैं, और एटीएम लिंक (जो ज्यादातर लंबी दूरी की बुनियादी संरचना बनाते हैं) प्रत्येक का अपना एमटीयू होता है।
PPPOE एक एन्कैप्सुलेटेड प्रोटोकॉल है, जिसका अर्थ है कि हर पैकेट में हेडर के कुछ बाइट्स होते हैं, उसके बाद अंतर्निहित पैकेट होता है - इसलिए यह हेडर के आकार के अनुसार अधिकतम पैकेट आकार को कम करता है।
IP राउटर को पैकेट को टुकड़े करने की अनुमति देता है यदि वे पता लगाते हैं कि वे अगले हॉप के लिए बहुत बड़े हैं, लेकिन यह हमेशा काम नहीं करता है। सिद्धांत रूप में उचित MTU की खोज की जानी चाहिएस्वचालित रूप से , लेकिन यह भी हमेशा काम नहीं करता है। विशेष रूप से googling से पता चलता है कि MTU खोज से प्राप्त MTU सूचनाओं पर नेटवर्क प्रबंधक हमेशा ठीक से काम नहीं करता है, लेकिन मुझे नहीं पता कि कौन से संस्करण प्रभावित हैं या समस्याग्रस्त उपयोग के मामले क्या हैं।
इसे कैसे मापें।
यदि आपके पास tracepath
Linux iputils है , तो tracepath 8.8.8.8
Google के DNS सर्वर के पथ पर MTU देखने के लिए चलाएँ । यदि आपके संस्करण traceroute
में एक --mtu
विकल्प है, तो दौड़ें traceroute -n --mtu 8.8.8.8
। अधिक विकल्पों के लिए मेरे और गंतव्य IP के बीच डिस्कवर MTU देखें ।
स्वचालित टूल को खोना, आप मैन्युअल रूप से माप सकते हैं। किसी दिए गए आकार के पिंग पैकेटों को बाहर के मेजबानों पर भेजने की कोशिश करें जो उन्हें जवाब देता है, उदाहरण के लिए ping -c 1 -s 42 8.8.8.8
(लिनक्स पर, अन्य प्रणालियों पर, आपके ping
आदेश के प्रलेखन को देखें )। आपके पैकेट 42 के छोटे पर्याप्त मूल्यों के लिए प्राप्त करना चाहिए (यदि 42 काम नहीं करता है, तो कुछ पिंग को रोक रहा है।)। बड़े मूल्यों के लिए, पैकेट के माध्यम से नहीं मिलेगा। 1464 एक विशिष्ट अधिकतम मूल्य है यदि बुनियादी ढांचे का सीमित हिस्सा आपका स्थानीय ईथरनेट नेटवर्क है। यदि आप भाग्यशाली हैं, जब आप बहुत बड़ा पैकेट भेजते हैं, तो आपको एक संदेश दिखाई देगा Frag needed and DF set (mtu = 1492)
। यदि आप भाग्यशाली नहीं हैं, तो केवल तब तक मूल्य के साथ प्रयोग करते रहें जब तक कि आपको पता न चले कि अधिकतम क्या है, फिर 28 जोड़ें ( -s
पेलोड का आकार निर्दिष्ट करता है, और इसके अलावा हेडर के 28 बाइट्स हैं)। यह सभी देखेंUbuntu मंचों पर MTU और RWIN का उपयोग करके अपने इंटरनेट कनेक्शन का अनुकूलन कैसे करें ।
इसे कैसे सेट करें (आपके द्वारा निर्धारित MTU द्वारा 1454 को बदलें, और eth0
अपने नेटवर्क इंटरफ़ेस के नाम से:
- एक बार बंद (लिनक्स) के रूप में: भागो
ifconfig eth0 mtu 1454
- स्थायी रूप से (डेबियन और डेरिवेटिव जैसे कि उबंटू, अगर नेटवर्क मैनेजर का उपयोग नहीं कर रहे हैं): संपादित करें
/etc/network/interfaces
। अपने नेटवर्क इंटरफ़ेस ( iface eth0 …
निर्देश के बाद ) के लिए प्रविष्टि के बाद, बस के साथ एक पंक्ति जोड़ें pre-up ifconfig $IFACE mtu 1454
। वैकल्पिक रूप से, यदि आपका आईपी पता स्थिर है, तो आप mtu 1454
पैरामीटर को iface eth0 inet static
निर्देश में जोड़ सकते हैं ।
स्थायी रूप से (डेबियन और डेरिवेटिव जैसे कि उबंटू, नेटवर्क मैनेजर के साथ या उसके बिना): /etc/network/if-pre-up.d/mtu
निम्नलिखित सामग्रियों के साथ एक स्क्रिप्ट बनाएं और इसे विश्व-निष्पादन योग्य बनाएं ( chmod a+rx
):
#!/bin/sh
ifconfig $IFACE mtu 1454
आगे के संसाधन