संकट
मुझे आज उसी समस्या का सामना करना पड़ा, जहां शहीद पैकेट ने मेरी कर्नेल लॉग को भर दिया। सभी मार्टियन पैकेट एक ही सार्वजनिक आईपी पते के eth0समान सार्वजनिक आईपी पते से हैं eth0(वास्तविक आईपी और हेडर हटा दिया गया है)।
IPv4: martian source x.x.x.x from x.x.x.x, on dev eth0
ll header: 00000000: aa bb cc dd ee ff gg hh ii jj kk ll 08 00
कुछ शोध के बाद, मुझे एहसास हुआ कि इसका कारण ll headerशहीद पैकेट में छिपा है ।
सिद्धांत
इसे ईथरनेट कनेक्शन में मानते हुए, ll headerवास्तव में ईथरनेट टाइप II फ़्रेम का शुरुआती हिस्सा दिखाता है, जिसमें गंतव्य मैक पता, स्रोत मैक पता और एक आईडी पैकेट के बाकी हिस्से के प्रकार को इंगित करता है।
![ईथरनेट प्रकार II फ़्रेम प्रारूप [1]](https://i.stack.imgur.com/ZUrzv.png)
जैसा कि आप देखते हैं, पहले 6 बाइट्स गंतव्य मैक पते हैं, अगले 6 बाइट्स स्रोत मैक पते हैं, और अंतिम 2 बाइट्स में एक कोड है। आम कोड हैं:
08 00: आईपी पैकेट
86 dd: IPv6 पैकेट
08 06: एआरपी पैकेट
व्याख्या
वापस मेरे उदाहरण पर।
IPv4: martian source x.x.x.x from x.x.x.x, on dev eth0
ll header: 00000000: aa bb cc dd ee ff gg hh ii jj kk ll 08 00
यह हमें बताता है,
- वहाँ एक पैकेट SAME स्रोत और गंतव्य IP पते के साथ प्राप्त किया गया था।
- यह द्वारा भेजा गया था
GG:HH:II:JJ:KK:LL, जो एक मैक पता है जो मुझे नहीं पता है।
- इसका गंतव्य है
AA:BB:CC:DD:EE:FF, जो मेरा अपना मैक एड्रेस है।
- यह एक आईपी पैकेट (
08 00) था।
यदि किसी पैकेट में समान स्रोत और गंतव्य IP पते हैं, तो उसे उसी नेटवर्क इंटरफ़ेस द्वारा भेजा जाना चाहिए, लेकिन स्रोत और गंतव्य के लिए MACs भिन्न होते हैं! यह कैसे संभव हो सकता है?
इस प्रकार, यह स्पष्ट है कि पैकेट मंगल से आता है, या तो कुछ रूटिंग समस्याएं हैं, नेटवर्क के भीतर एक मशीन कॉन्फ़िगर की गई है, या कोई व्यक्ति आईपी / मैक पते को खराब करने की कोशिश कर रहा है। अगला चरण प्रश्न में स्रोत मैक पते की जांच कर रहा है।