Catalyst 2960X SFP dump'ında neyi hesaplıyor: vendor kodu, isim ve MD5, ve dump kopyası neden geçmiyor
Bir sağlayıcı ağı işletiyorum, modül parkı karışık, bu yüzden düzenli olarak modülleri belirli switch'lere göre hazırlamam gerekiyor. Sonunda kontrolün mekaniğini anlamak istiyorum, rastgele dump denemek yerine.
Elimdekiler:
- Cisco Catalyst 2960X-24PS-L, parktaki en titiz olan
- QTECH QSW-3750-28TX-AC ve D-Link DGS-3420, bunlarda aynı modüller sorunsuz kalkıyor
- SNR-SFP+SR ve SFP-10G-BX modülleri
Catalyst'in kabul ettiği bir modülün dump'ında, başında vendor kodu byte'ını, hemen ardından da ASCII olarak ismi görüyorum:
0E 43 49 53 43 4F ...
Ne denedim: C2960X-24PS-L'de kalkan bir modülden dump aldım, ve başka bir modüle bu dump'tan sadece vendor ismini yeniden yazdım. Bundan sonra QTECH ve D-Link'te her şey kalkıyor, Catalyst ise böyle bir modülü kabul etmiyor, düzeltilen byte'lar donörle birebir aynı olmasına rağmen.
Buradan kontrolün yapısıyla ilgili soru geliyor. Cisco tam olarak neyi ve hangi byte'lara göre hesaplıyor, sonuç modülde nerede duruyor, ve çalışan bir dump'tan yeniden yazılan vendor ismi neden buna yetmiyor? Benim için önemli olan mantık, gerisini kendim çözerim.
Comments 6
Oradaki mekanik basit ve uzun zaman önce çözülmüş. Tek bir alan değil, bir ikili kontrol ediliyor: vendor kodu byte'ı artı vendor isim byte'ları. Bu dizilimden bir MD5 alınıyor, sonuç modülün kendisinde duruyor, switch de aynısını hesaplayıp karşılaştırıyor.
Standart araçlarla tekrarlanabiliyor, özel bir şeye gerek yok:
Kendi kodunuzu ve kendi vendor isminizi koyuyorsunuz ve modülde durması gereken değeri elde ediyorsunuz. Dump'larda gerçekten karşılaşılan kodlardan: 02 - Finisar, 0E - Methode, 11 düzenli olarak çıkıyor ama kime ait olduğu hiç çözülemedi. Kod-isim çifti tutarlıysa ve hash ona karşılık geliyorsa, modül C2960X-24PS-L'de geçiyor.
Öncekine ek: alıcıda gerçekte ne durduğunu göster. Orada hangi vendor kodu byte'ı kaldı ve yanında hangi isim duruyor? Anlattığına bakılırsa ismi taşımışsın, kodu ya da hash'in kendisini ise orijinal modülden bırakmışsın, o zaman ikili birbirinden ayrılıyor ve Catalyst onu tamamen haklı olarak geri çeviriyor. Switch'in çıktısında görünen tek alanı değil, üç şeyi birden kontrol et.
Kontrol ettim, her şey sizin versiyonunuzla örtüşüyor. Donörde 0E ve devamında CISCO var, alıcıda ismi gerçekten yeniden yazdım, ama vendor kodu orijinal kaldı, hash de eskisiydi. İki kombinasyonu da xxd -r -p ve md5sum'dan geçirdim: donörde değer modülde duranla eşleşiyor, elle bir araya getirdiğimde eşleşmiyor.
Yani ikiliyi tek bir alan yerine bütün olarak taşımak gerekiyor. Şimdi en azından modülü porta takmadan önce nereye bakılacağı ve neyin karşılaştırılacağı anlaşıldı.
Sürekli unutulan önemli bir sonuç: vendor kodu ve isim tutarlı değilse, switch'te desteklenmeyen modüllere izin verilse bile modül Catalyst'te geçmez. Başkalarının dump'larının yarım yamalak çalışmasının sebebi de tam olarak bu - kısmen düzeltilmişler, kontrol ise ikiliye bakıyor.
Buradan boyutla ilgili pratik bir sonuç çıkıyor: 256 byte'lık bir dump'ta anlamlı olan ilk 128 byte, devamında üretici bölgesi geliyor. Tüm image'ı taşımaya gerek yok, ama ilk yarıyı, switch çıktısında gözle görünmeyen alanlar dahil, tutarlı şekilde taşımak gerekiyor.
Bu arada her şey dump ile çözülmüyor. Medick SFP-10G-BX'in içinde bellek değil bir C8051F392 mikrokontrolör oturuyor: A0 ve A2'yi emüle ediyor ve gayet bir parola ya da vendor sorgusu tutabiliyor. Orada ikiliyi byte'ına kadar karşılaştırsanız bile - dışarıdan onu zaten kabul etmezler. Elimde kullandığım canlı araçlardan SNR SFP Writer ve SFPTotal Plus var, meslektaşlarda da CH341 üzerine ev yapımı olanlar var.
Buraya sonra gelecek insanları karıştırmamak için küçük bir düzeltme. Bu MD5'in MSA checksum'larıyla hiçbir ilgisi yok: SFF-8472'deki CC_BASE ve CC_EXT basit byte toplamasıyla hesaplanıyor ve bir çırpıda yeniden hesaplanabiliyor. Vendor kontrolü bunların üstünde ve kendi kurallarına göre yaşıyor, ve modülü tam olarak MSA toplamlarıyla her şey yolundayken geri çeviriyor - dump'ın doğru olduğu, modülün yine de kabul edilmediği hissi de buradan geliyor.
Bu arada Cisco burada hiç de en kötü durum değil: mekanik en azından anlaşılır ve tekrarlanabilir. En zoru bellek interaktif davranıp anahtar isteyen HP ve Aruba - orada artık dump'larla iş bitmiyor.