tcpdump को नेटवर्क स्टैक के किस स्तर से इसकी जानकारी मिलती है?


12

जैसा कि मैं यहाँ एक दोषपूर्ण ईथरनेट नियंत्रक को ठीक करने के लिए व्यर्थ कोशिश कर रहा था , एक चीज़ जो मैंने कोशिश की वह मशीन पर tcpdump चल रही थी।

मुझे यह दिलचस्प लगा कि tcpdump यह पता लगाने में सक्षम था कि आईसीएमपी के कुछ पैकेटों में पिंग एप्लिकेशन को लगा कि यह वास्तव में तार पर बाहर नहीं जा रहा है, भले ही वह उसी मशीन पर चल रहा हो। मैंने उन tcpdump परिणामों को यहाँ पुन: प्रस्तुत किया है:

14:25:01.162331 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 1, length 64
14:25:02.168630 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 2, length 64
14:25:02.228192 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 2, length 64
14:25:07.236359 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 3, length 64
14:25:07.259431 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 3, length 64
14:25:31.307707 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 9, length 64
14:25:32.316628 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 10, length 64
14:25:33.324623 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 11, length 64
14:25:33.349896 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 11, length 64
14:25:43.368625 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 17, length 64
14:25:43.394590 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 17, length 64
14:26:18.518391 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 30, length 64
14:26:18.537866 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 30, length 64
14:26:19.519554 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 31, length 64
14:26:20.518588 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 32, length 64
14:26:21.518559 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 33, length 64
14:26:21.538623 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 33, length 64
14:26:37.573641 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 35, length 64
14:26:38.580648 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 36, length 64
14:26:38.602195 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 36, length 64

ध्यान दें कि seq नंबर कई बार कैसे कूदता है ... जो पैकेट को इंगित करता है पिंग एप्लिकेशन उत्पन्न करता है जो वास्तव में बॉक्स को नहीं छोड़ रहे हैं।

जो मुझे मेरे सवाल पर लाता है: कैसे tcpdump यह पता लगाने में सक्षम था कि ICMP पैकेट वास्तव में बाहर नहीं जा रहे थे? क्या यह किसी तरह सीधे तार पर नज़र रखने में सक्षम है?

यदि यह इसे पूरा करता है, तो मुझे लगता है कि यह कर्नेल के कुछ हिस्से को इंटरफेस करके है, जो बदले में कुछ हार्डवेयर के लिए इंटरफेस है जो एक नेटवर्क नियंत्रक का एक मानक हिस्सा है।

फिर भी, यह बहुत अच्छा है! यदि वह वास्तव में tcpdump कार्य नहीं करता है, तो क्या कोई मुझे समझा सकता है कि उसने सॉफ़्टवेयर में लापता पैकेटों का पता कैसे लगाया?

जवाबों:


13

हाँ। नेटवर्क इंटरफेस को प्रोमिसस मोड में डालकर, tcpdump नेटवर्क इंटरफ़ेस को ठीक से देखने में सक्षम है (और) अंदर जा रहा है।

tcpdump लेयर 2 + पर काम करता है। इसका उपयोग इथरनेट, एफडीडीआई, पीपीपी और एसएलआईपी, टोकन रिंग और लीबकैप द्वारा समर्थित किसी भी अन्य प्रोटोकॉल को देखने के लिए किया जा सकता है, जो टीसीपीडंप के सभी भारी उठाने का काम करता है।

की pcap_datalink () खंड पर एक नज़र डालें PCAP आदमी पेज परत 2 प्रोटोकॉल की एक पूरी सूची है कि tcpdump (libpcap के माध्यम से) का विश्लेषण कर सकते हैं।

Tcpdump मैन पेज की एक रीडिंग आपको कच्चे डेटा लिंक लेयर फ्रेम को पढ़ने में सक्षम होने के लिए कर्नेल और नेटवर्क इंटरफेस के साथ वास्तव में कैसे, tcpdump और libpcap इंटरफ़ेस की अच्छी समझ देगी।


1
धन्यवाद टिम। एक बात, मैंने tcpdump मैन पेज पर एक नज़र डाली, और कर्नेल / नेटवर्क इंटरफेस के बारे में कुछ भी नहीं देखा। मैं इस बारे में और जानने के लिए उत्सुक हूं, अगर आपके पास कोई अन्य संकेत है।
एरिक

पेज मैन पेज जिसे मैंने ऊपर जोड़ा है, नेटवर्क इंटरफेस के बारे में अधिक बोलता है। tcpdump केवल डेटा प्रस्तुत करता है। यह libpcap है जो डेटा को कैप्चर करता है, और नेटवर्क डिवाइसेस को इंटरफेस करता है।
टिम कैनेडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.