CodingBox Q&A Ask question

Co Catalyst 2960X liczy w dumpie SFP: kod vendora, nazwę i MD5, i czemu kopia dumpa nie przechodzi

Asked Active Viewed 25 AI translation from Русский
6

Obsługuję sieć operatora, park modułów jest mieszany, więc regularnie muszę przygotowywać moduły pod konkretne switche. Chcę wreszcie zrozumieć mechanikę weryfikacji, zamiast dobierać dumpy na oślep.

Czym operuję:

  • Cisco Catalyst 2960X-24PS-L, najbardziej wybredny w parku
  • QTECH QSW-3750-28TX-AC i D-Link DGS-3420, na nich te same moduły wstają spokojnie
  • moduły SNR-SFP+SR i SFP-10G-BX

W dumpie modułu, który Catalyst akceptuje, na początku widzę bajt kodu vendora, a zaraz po nim nazwę w ASCII:

0E 43 49 53 43 4F ...

Co próbowałem: zdjąłem dump z modułu, który wstaje na C2960X-24PS-L, i przepisałem do innego modułu tylko nazwę vendora z tego dumpa. Na QTECH i D-Link po tej zmianie wszystko wstaje, a Catalyst takiego modułu nie akceptuje, mimo że poprawione bajty zgadzają się z dawcą jeden do jednego.

Stąd pytanie o mechanizm weryfikacji. Co dokładnie Cisco liczy i po jakich bajtach, gdzie w module leży wynik i czemu przepisanej z działającego dumpa nazwy vendora do tego za mało? Zależy mi na logice, dalej sam sobie poradzę.

Comments 6

Mechanika jest tam prosta i dawno rozpracowana. Sprawdzane jest nie pojedyncze pole, tylko para: bajt kodu vendora plus bajty nazwy vendora. Z tej sekwencji liczony jest MD5, a wynik leży w samym module, switch liczy to samo i porównuje.

Odtwarza się to standardowymi narzędziami, nic specjalnego nie trzeba:

echo 0E 43 49 53 43 4F ... | xxd -r -p | md5sum

Podstawiasz swój kod i swoją nazwę vendora i dostajesz wartość, która powinna leżeć w module. Z kodów, które faktycznie trafiają się w dumpach: 02 - Finisar, 0E - Methode, 11 pojawia się regularnie, ale czyj jest, tak nigdy nie rozpoznano. Jeśli para kod-nazwa jest spójna, a hash jej odpowiada, moduł na C2960X-24PS-L przechodzi.

1 UkrainecoremonkUA Show original (Русский) AI translation

Do poprzedniego: pokaż, co naprawdę leży w odbiorniku. Jaki bajt kodu vendora tam został i jaka nazwa stoi obok? Sądząc po opisie, przeniosłeś nazwę, a kod albo sam hash zostawiłeś z modułu macierzystego, i wtedy para się rozjeżdża, a Catalyst odbija ją całkowicie zasadnie. Sprawdzaj wszystkie trzy rzeczy naraz, a nie tylko to pole, które widać w wyjściu switcha.

3 KazakhstanracknodeKZ Show original (Русский) AI translation

Sprawdziłem, wszystko zgadza się z waszą wersją. W dawcy 0E i dalej CISCO, a w odbiorniku nazwę faktycznie przepisałem, ale kod vendora został macierzysty, i hash też stary. Przepuściłem obie kombinacje przez xxd -r -p i md5sum: u dawcy wartość zgadza się z tym, co leży w module, w moim złożonym ręcznie nie.

Czyli przenosić trzeba parę w całości, a nie pojedyncze pole. Teraz przynajmniej jasne, na co patrzeć i co sprawdzać, zanim wstawi się moduł w port.

0 Kazakhstanlambdaowl20KZ Show original (Русский) AI translation

Ważny wniosek, o którym ciągle się zapomina: jeśli kod vendora i nazwa nie są spójne, moduł nie przejdzie na Catalyst nawet wtedy, gdy na switchu włączone jest zezwolenie na niewspierane moduły. Właśnie dlatego cudze dumpy działają co drugi raz - poprawiano je częściowo, a weryfikacja patrzy na parę.

Stąd praktyczny wniosek co do objętości: w 256-bajtowym dumpie znaczące jest pierwsze 128 bajtów, dalej idzie strefa producenta. Całego obrazu ciągnąć nie trzeba, ale pierwszą połowę trzeba przenosić spójnie, łącznie z polami, których gołym okiem w wyjściu switcha nie widać.

3 Russiaportrunner91RU Show original (Русский) AI translation

Nawiasem mówiąc, dumpem nie rozwiąże się wszystkiego. W Medick SFP-10G-BX siedzi nie pamięć, tylko mikrokontroler C8051F392: emuluje A0 i A2 i spokojnie może trzymać hasło albo zapytanie vendorskie. Tam choćby do bajtu zweryfikuj parę - z zewnątrz i tak jej nie przyjmą. Z żywych narzędzi mam w użyciu SNR SFP Writer i SFPTotal Plus, u kolegów jeszcze samoróbki na CH341.

1 Russialambdaops44RU Show original (Русский) AI translation

Drobna poprawka, żeby nie wprowadzać w błąd tych, którzy trafią tu później. Ten MD5 nie ma nic wspólnego z sumami kontrolnymi MSA: CC_BASE i CC_EXT z SFF-8472 liczone są prostym sumowaniem bajtów i przelicza się je od ręki. Weryfikacja vendorska żyje ponad nimi, według własnych zasad, i odbija moduł dokładnie w momencie, gdy z sumami MSA wszystko jest w porządku - stąd wrażenie, że dump jest poprawny, a moduł i tak nieprzyjęty.

Cisco, nawiasem mówiąc, wcale nie jest tu najgorszym przypadkiem: mechanika jest przynajmniej zrozumiała i odtwarzalna. Najciężej jest z HP i Arubą, gdzie pamięć zachowuje się interaktywnie i wymaga kluczy - tam dumpami się już nie załatwi sprawy.

3 RussiawaveadminRU Show original (Русский) AI translation
Log in to comment. Log in