पिंग के जवाब के लिए कौन सी लिनक्स प्रक्रिया जिम्मेदार है?


39

मेरे पास एक लिनक्स आधारित प्रक्रिया नियंत्रक है जो कभी-कभी उस बिंदु तक लॉक हो जाता है जहां आप इसे पिंग नहीं कर सकते हैं (यानी मैं इसे पिंग कर सकता हूं, फिर यह नेटवर्क सेटिंग्स में बिना किसी संशोधन के पिंगेबल नहीं रह जाता है)।

मैं उत्सुक हूँ, क्या प्रक्रिया / प्रणाली वास्तव में पिंग्स का जवाब देने के लिए जिम्मेदार है? ऐसा प्रतीत होता है कि यह प्रक्रिया दुर्घटनाग्रस्त है।


क्या आप अभी भी इसे ssh कर सकते हैं जबकि यह पिंग्स का जवाब नहीं दे रहा है। या क्या मौजूदा एसएसएच सत्र बंद हो जाते हैं?
पीटर कॉर्ड्स

@PeterCordes पूरा सिस्टम लॉक हो जाता है और रिबूट के लिए मजबूर करने तक अनिवार्य रूप से एक ईंट है।
इज़ो

3
ठीक है, यह आमतौर पर एकमात्र तरीका है कि एक मशीन पिंग्स का जवाब देना बंद कर देगी। यह अजीब होगा यदि पिंग ने काम करना बंद कर दिया लेकिन अन्य सामान काम करते रहे, क्योंकि पिंग हैंडलिंग काम करता है, भले ही उपयोगकर्ता-स्पेस को बंद कर दिया गया हो और सब कुछ डिस्क I / O पर एक डेड डिस्क या NFS माउंट या जो भी हो, पर अवरुद्ध हो। मॉनिटर को अपने सिस्टम से कनेक्ट करने का प्रयास करें और देखें कि क्या कोई सांत्वना संदेश है क्योंकि यह लॉक हो गया है। (और यदि आप जानकारी को डंप करने के लिए जादू SysRQ कीबोर्ड अनुक्रम का उपयोग कर सकते हैं, या आसानी से रिमाउंट कर सकते हैं, तो डिस्क + रिबूट को बल-सिंक कर सकते हैं।
पीटर कॉर्ड्स

2
जबकि आपका प्रश्न दिलचस्प है, पिंग आपके सिस्टम की समस्याओं का स्रोत नहीं है, बल्कि एक अस्थिर प्रणाली का परिणाम है। गलत क्या है, यह समझने के लिए लॉग की जाँच करें।
पेड्रो लोबिटो

@PedroLobito विशेष रूप से क्या लॉग करता है?
इज़ो

जवाबों:


56

कर्नेल नेटवर्क स्टैक ICMP संदेशों को संभाल रहा है, जो pingकमांड द्वारा भेजे गए हैं ।

यदि आपको नेटवर्क समस्याओं या फ़िल्टरिंग के अलावा, और होस्ट आधारित फ़िल्टरिंग / रेट-लिमिटिंग / ब्लैक-होलिंग / आदि के जवाब नहीं मिलते हैं। इसका मतलब है कि मशीन शायद किसी चीज से ओवरलोड है, जो क्षणिक हो सकती है, या कर्नेल दुर्घटनाग्रस्त हो सकता है, जो दुर्लभ है, लेकिन ऐसा हो सकता है (दोषपूर्ण हार्डवेयर, आदि), आईसीएमपी ट्रैफिक के कारण जरूरी नहीं है (लेकिन इसे इस ट्रैफिक के साथ ओवरलोड करने की कोशिश की जा रही है) एक सर्वर के जीवन की शुरुआत में एक अच्छी परीक्षा हो सकती है यह देखने के लिए कि यह कैसे चीजों को बनाए रखता है)। कर्नेल क्रैश के बाद के मामले में आपको लॉग फ़ाइलों या कंसोल पर पर्याप्त जानकारी होनी चाहिए।

यह भी ध्यान दें कि pingएक सेवा ऑनलाइन है या नहीं यह जांचने के लिए लगभग हमेशा गलत उपकरण है। विभिन्न कारणों से, लेकिन अधिकतर क्योंकि यह वास्तविक अनुप्रयोग यातायात की नकल नहीं करता है, परिभाषा के अनुसार। उदाहरण के लिए यदि आपको यह जाँचने की आवश्यकता है कि एक वेबसर्वर अभी भी जीवित है, तो आपको इसके बजाय एक HTTP क्वेरी (टीसीपी पोर्ट 80 या 443) करनी चाहिए, यदि आपको एक एसएमईआरवी क्वेरी (टीसीपी पोर्ट 25) करने के लिए एक मेलसर्वर की जाँच करने की आवश्यकता है, तो एक DNS सर्वर, एक यूडीपी और 53 को पोर्ट करने के लिए एक टीसीपी क्वेरी, आदि।


4
@ किसी भी अन्य अनुप्रयोग सेवा परीक्षण को विफल करें या विफल हो जाएगा या एक समय समाप्ति में होगा इसलिए अंतिम परिणाम एक ही होगा। मुझे कभी pingभी इसका उपयोग करने के खिलाफ व्याख्यान देने का मौका नहीं मिला क्योंकि यह समस्या निवारण में बहुत अधिक गलत सकारात्मक बनाता है इसलिए मुझे लगता है कि उपयोगकर्ताओं को यह पता नहीं है कि पिंग क्या करता है और यह कैसे भ्रामक परिणाम दे सकता है जो किसी और चीज से चिपकना चाहिए।
पैट्रिक मेवज़ेक

2
अधिकांश अधिभार स्थितियों में केवल वही चीजें होती हैं जो अभी भी प्रतिक्रिया करती हैं जो कर्नेल द्वारा की जाती हैं। इसका मतलब यह है कि एक मशीन आमतौर पर पिंग का जवाब देगी चाहे वह कितना भी अधिक हो। एक बंद बंदरगाह तक पहुंचने का प्रयास टीसीपी के लिए आरएसटी और यूडीपी के मामले में एक आईसीएमपी त्रुटि के साथ जवाब देगा। और खुले टीसीपी पोर्ट तक पहुंचने के लिए पहले कुछ प्रयास हैंडशेक पूरा करेंगे। एक डिस्क विफलता बहुत अधिक समान लक्षण पैदा कर सकती है।
कास्परड

@kasperd मैंने देखा है (बहुत) अतिभारित सर्वर (विशेष रूप से स्वैपिंग) जो ICMP अनुरोधों का जवाब नहीं दे रहे हैं। और बेशक कुछ और भी नहीं। कर्नेल दुर्घटनाग्रस्त नहीं हुआ, यह सिर्फ डिस्क I / O सामान में व्यस्त था।
पैट्रिक मेवज़ेक

2
@ नच युप। एक नेटवर्क इंटरफ़ेस एक एचडब्ल्यू डिवाइस है; जैसे कि इसके साथ इंटरफेस करने के लिए एक कर्नेल ड्राइवर है। एक दूसरी परत फिर जेनेरिक प्रबंधन / संचार एपीआई प्रदान करती है। (यह नेटवर्किंग के लिए अद्वितीय नहीं है: ऑडियो देवों के लिए ALSA है, वीडियो KMS API का उपयोग करने के लिए वीडियो है, USB में {U, E, X} HCI है, फिर usb_storage, usbhid, आदि) नेटवर्क रूटिंग टेबल, फ़ायरवॉल नियम (iptables के माध्यम से) ), हैंडशेकिंग, पैकेट असेंबली, रिट्रांसमिट्स आदि सभी इन-कर्नेल हैं। चूंकि ICMP अपने आप में एक प्रोटोकॉल है, जिसमें कोई पेलोड नहीं है और "जवाब या नहीं" से परे कोई प्रसंस्करण नहीं है, कर्नेल ICMP प्रतिक्रियाओं को न्यूनतम ओवरहेड के लिए सीधे हैंडल करता है।
FeRD

5
@ बैच: यह वास्तव में मौलिक कंप्यूटर वास्तुकला के बारे में नहीं है; यह एक कार्यान्वयन विकल्प है। Microkernels एक OS प्रक्रिया में ICMP को हैंडल करेगा।
एमएसलर्स

11

पिंग्स के जवाब के लिए कोई उपयोगकर्ता प्रक्रिया नहीं है। पिंग सिर्फ ICMP इको पैकेट भेजने के लिए एक उपयोगिता है। ये कर्नेल के नेटवर्किंग स्टैक द्वारा प्राप्त और संसाधित किए जाते हैं


9

गिरी ही नहीं है (किसी भी उपयोगकर्ता प्रक्रिया) भेजने के लिए जिम्मेदार है ICMP गूंज जवाब के जवाब में संदेशों ICMP गूंज अनुरोध संदेशों। इसलिए, यदि कोई मेजबान पिंग का जवाब देना बंद कर देता है, तो यह आमतौर पर निम्नलिखित कुछ कारणों से होता है:

  • आपके और होस्ट के बीच नेटवर्क कनेक्टिविटी को विच्छेदित किया जा सकता है। यह अपने आप में कई कारणों से हो सकता है: केबल को शारीरिक क्षति, वायरलेस, टूटे हुए रूट टेबल के मामले में शोर, आप डीडीओएस हमले, समस्याग्रस्त राउटर / स्विच के बीच में रहना आदि। आप इस मामले में समस्या निवारण शुरू कर देंगे। का उपयोग करते हुए ethtool(8), iwconfig(8), route(8), ping(8)अपने रूटर, tcpdump(8)आदि लक्ष्य मेजबान पर।

  • लक्ष्य मेजबान पर फ़ायरवॉल सेटिंग (या आपके और लक्षित होस्ट के बीच कोई राउटर / फ़ायरवॉल) पिंग की राशि (या ट्रैफ़िक ट्रैफ़िक की राशि) सीमित कर सकती है। यह fail2ban(8)मांग पर फायरवॉल सामान जैसे उपकरणों के कारण भी हो सकता है । iptables(8)जांच करना देखें ।

  • लक्ष्य होस्ट में सॉफ़्टवेयर / हार्डवेयर खराबी है। लक्ष्य होस्ट पर नेटवर्क कर्नेल मॉड्यूल OOPSed हो सकता है और / या भ्रमित हो सकता है, या पूरे कर्नेल में PANICked हो सकता है। आपको dmesg(8)लक्ष्य होस्ट पर या भौतिक कंसोल पर स्क्रीन आउटपुट के रूप में संदेश दिखाई देंगे (यदि भौतिक पहुंच अव्यावहारिक है, तो सीरियल कंसोल के साथ एक और मशीन मदद कर सकती है।) यदि कर्नेल OOPS / PANIC समस्या है, तो बेहतर ड्राइवरों के साथ नए कर्नेल हो सकते हैं। मदद, या आप watchdog(8)ड्राइवर और सहायक चालकों के साथ सिस्टम लॉकअप के आसपास कीचड़ उछाल सकते हैं । या आप हार्डवेयर भागों को बदल सकते हैं।


2
रुचि के लिए, यहाँ ICMP इको अनुरोधों को संभालने के लिए संबंधित कर्नेल कोड दिया गया है।
रुस्लान

आपको बहुत अधिक भार (विशेष रूप से सीपीयू) का उल्लेख करना चाहिए
गुइलेरमे बर्नल

@GuilhermeBernal नहीं, यहां तक ​​कि अत्यधिक उच्च CPU उपयोगकर्ता लोड (हजारों में) ICMP हानि का कारण नहीं होगा (क्योंकि यह कर्नेल में सेवा की जाती है, इससे पहले कि उपयोगकर्ता प्रक्रियाओं को चलाने का मौका मिले)। कम अंत हार्डवेयर के साथ संयोजन में अत्यधिक उच्च नेटवर्क PPS दर पैकेट हानि का कारण हो सकता है, लेकिन इस तरह के DDoS "नेटवर्क कनेक्टिविटी" श्रेणी के अंतर्गत आता है
Matija Nalis
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.