EEPROM रीकोडिंग: पासवर्ड और तरीक़ा
सालों की इंजीनियरिंग चर्चा से निकली मुख्य बात: ट्रांसीवर की संगतता फ़र्मवेयर नहीं है — यह EEPROM में मौजूद आइडेंटिफ़िकेशन स्ट्रिंग है, जो I²C पर पढ़ी जाती है। एक स्विच किसी मॉड्यूल को सिर्फ़ इसलिए रिजेक्ट कर देता है क्योंकि वह विक्रेता स्ट्रिंग को नहीं पहचानता। यही एक तथ्य “सब कुछ Cisco के तौर पर कोड करो — यह लगभग हर जगह काम करता है” वाली आम प्रैक्टिस और कोडिंग टूल के पूरे बाज़ार को समझाता है।
पासवर्ड कहाँ रहते हैं
मॉड्यूल मेमोरी के प्रोटेक्टेड एरिया में राइट करने के लिए राइट से पहले एक फ़िक्स्ड एड्रेस पर 4-बाइट पासवर्ड डालना ज़रूरी है:
| मॉड्यूल टाइप | मेमोरी ब्लॉक | पासवर्ड ऑफ़सेट |
|---|---|---|
| SFP / SFP+ | A2h (I²C एड्रेस 0x51) | 0x7B–0x7E |
| QSFP / XFP | A0h | 0x7B |
अक्सर बताए जाने वाले पासवर्ड
| पासवर्ड | नोट्स |
|---|---|
00 00 10 11 | MSA डिफ़ॉल्ट — सबसे पहले यही आज़माएँ |
00 00 00 00, FF FF FF FF | अक्सर दिखने वाले डिफ़ॉल्ट |
9B B0 3D FA | कई मॉड्यूल पर देखा गया |
4F 43 50 00 | ASCII “OCP” |
कुछ विक्रेताओं के QSFP-DD मॉड्यूल अपने ख़ुद के फ़िक्स्ड डिफ़ॉल्ट के साथ शिप होते हैं, और कुछ माइक्रोप्रोसेसर-आधारित मॉड्यूल एक बदलता हुआ पासवर्ड इस्तेमाल करते हैं — जो ब्रूट फ़ोर्स करने वाले किसी भी शख़्स के लिए एक जाल है।
ब्रूट फ़ोर्स जवाब क्यों नहीं है
पूरे मेमोरी मैप की सुरक्षा करने वाले मैन्युफ़ैक्चरर-लेवल पासवर्ड को ब्रूट-फ़ोर्स करने में क़रीब 100+ दिन लगते हैं; यहाँ तक कि एक होस्ट-लेवल ASCII पासवर्ड में भी क़रीब तीन दिन तक लग जाते हैं। असली तरीक़ा है असली मॉड्यूल से लिए गए जाने-पहचाने कोड और पासवर्ड के डेटाबेस का इस्तेमाल — यहीं पर किसी कोडिंग टूल की असली वैल्यू है, I²C हार्डवेयर में नहीं (जो सिंपल है)।
ख़ुद-से-बनाए प्रोग्रामर के नुक़सान
- सस्ते CH341A प्रोग्रामर SFP चेकसम कैलकुलेट नहीं करते। बिना वैध CC_BASE/CC_EXT के इमेज राइट करने से ऐसा मॉड्यूल बनता है जिसे स्विच रिजेक्ट कर देगा। आपको ऐसा टूल चाहिए जो चेकसम अपने आप दोबारा कैलकुलेट करे।
- कुछ स्विच सिर्फ़ एड्रेस 0x50 पर राइट करते हैं, इसलिए 0x51 पर मौजूद पासवर्ड तक ख़ुद स्विच से नहीं पहुँचा जा सकता — इसके लिए एक असली प्रोग्रामर बोर्ड चाहिए।
- EEPROM का राइट-प्रोटेक्ट पिन — कुछ फ़ैक्ट्री WP को Vcc से जोड़ देती हैं ताकि मॉड्यूल फ़ील्ड में राइटिंग के ख़िलाफ़ लॉक्ड रहे।
फ़ील्ड से मामले
- एक विक्रेता के तौर पर कोड किए गए मॉड्यूल दूसरे विक्रेता के स्विच पर ऑटोनेगोशिएट नहीं करते थे; स्विच की अपनी विक्रेता स्ट्रिंग में दोबारा कोड करने पर वे तुरंत ऊपर आ गए।
- कुछ ऑप्टिक्स विक्रेता जान-बूझकर अनकोडेड मॉड्यूल शिप करते हैं, यह उम्मीद करते हुए कि ख़रीदार उन्हें टारगेट प्लैटफ़ॉर्म के लिए कोड करेगा।
- DWDM मॉड्यूल को तरंगदैर्ध्य पर ट्यून किया जाता है उसी मैनेजमेंट इंटरफ़ेस के ज़रिए जो कोडिंग के लिए इस्तेमाल होता है।
CodingBox में यह कैसे करें
- मॉड्यूल पढ़ें; यह अपने आप code database में सेव हो जाता है, और किसी भी राइट से पहले एक बैकअप ले लिया जाता है।
- राइट-प्रोटेक्टेड मेमोरी और पासवर्ड में टेबल एड्रेस, पासवर्ड एड्रेस और पासवर्ड वैल्यू सेट करें — डेटाबेस से जाने-पहचाने पासवर्ड अपने आप लागू हो जाते हैं।
- EEPROM editor में विक्रेता, पार्ट नंबर और दूसरी पहचान फ़ील्ड एडिट करें। CC_BASE और CC_EXT आपके लिए दोबारा कैलकुलेट हो जाते हैं।
- चुने गए पेज राइट करें, फिर वेरिफ़ाई करने के लिए वापस पढ़ें। स्विच पर मॉड्यूल को ऑप्टिक्स वेरिफ़ाई करना में दिए कमांड से जाँचें।
मॉड्यूल को सिर्फ़ उस इंटरऑपरेबिलिटी के लिए कोड करें जिसके आप हक़दार हैं, और अपने संगठन और विक्रेताओं की नीतियों का पालन करें।
एक साफ़-सुथरे रीकोड के पीछे के नियम — फ़ील्ड फ़ॉर्मैट, कौन-से बिट सेट करने हैं और कौन-से सम ठीक करने हैं — यहाँ हैं: विक्रेता फ़ील्ड, कंप्लायंस कोड और चेकसम।
उसी स्टेप पर फ़ैक्ट्री क्या करती है, और किन एरिया में वह कैलिब्रेशन रहता है जिसे एक लापरवाह राइट बर्बाद कर सकता है: मैन्युफ़ैक्चरिंग और टेस्टिंग, कंट्रोलर और फ़र्मवेयर।
एडिट करने से पहले कौन-सी बाइट में क्या है: SFF-8472 A0h मैप, SFF-8636 अपर पेज मैप, CMIS अपर पेज मैप, XFP मैप।
हर विक्रेता के हिसाब से टारगेट पार्ट नंबर और उनका व्याकरण: OEM पार्ट नंबर; राइट के बाद हर प्लैटफ़ॉर्म क्लास क्या जाँचता है: हर NOS मॉड्यूल को कैसे वैलिडेट करता है।