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 কীভাবে মডিউল যাচাই করে।