CodingBox Q&A Ask question

O que o Catalyst 2960X calcula no dump do SFP: código de vendor, nome e MD5, e por que a cópia do dump não passa

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

Cuido da rede de uma operadora, o parque de módulos é misto, então regularmente preciso preparar módulos para switches específicos. Quero de uma vez entender a mecânica da checagem, em vez de ficar tentando dumps no chute.

Com o que estou trabalhando:

  • Cisco Catalyst 2960X-24PS-L, o mais exigente do parque
  • QTECH QSW-3750-28TX-AC e D-Link DGS-3420, neles os mesmos módulos sobem numa boa
  • módulos SNR-SFP+SR e SFP-10G-BX

No dump do módulo que é aceito no Catalyst, logo no início vejo o byte do código de vendor e em seguida o nome em ASCII:

0E 43 49 53 43 4F ...

O que já tentei: tirei o dump de um módulo que sobe no C2960X-24PS-L, e reescrevi em outro módulo só o nome do vendor desse dump. No QTECH e no D-Link, depois disso, tudo sobe, mas o Catalyst não aceita esse módulo, mesmo os bytes corrigidos batendo com o doador byte a byte.

Daí a pergunta sobre o mecanismo da checagem. O que exatamente o Cisco calcula e sobre quais bytes, onde no módulo fica o resultado, e por que reescrever o nome do vendor a partir de um dump funcional não é suficiente? Pra mim importa a lógica, o resto eu resolvo sozinho.

Comments 6

A mecânica ali é simples e já foi desvendada há tempos. Não se verifica um campo isolado, mas uma dupla: o byte do código de vendor mais os bytes do nome do vendor. Dessa sequência se calcula o MD5, e o resultado fica no próprio módulo; o switch calcula a mesma coisa e compara.

Reproduz com utilitários padrão, não precisa de nada especial:

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

Você substitui pelo seu código e pelo seu nome de vendor e chega no valor que deveria estar no módulo. Dos códigos que realmente aparecem nos dumps: 02 - Finisar, 0E - Methode, 11 aparece com regularidade, mas ninguém nunca identificou de quem é. Se o par código-nome está coerente e o hash bate com ele, o módulo passa no C2960X-24PS-L.

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

Complementando o anterior: mostra o que realmente está no receptor. Qual byte de código de vendor ficou ali e qual nome está do lado? Pelo que você descreveu, você transferiu o nome, mas deixou o código ou o próprio hash do módulo original, e aí a dupla desalinha e o Catalyst recusa isso com toda a razão. Confira as três coisas de uma vez, não só o campo que aparece na saída do switch.

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

Conferi, tudo bate com a sua versão. No doador é 0E e depois CISCO, e no receptor eu realmente reescrevi o nome, mas o código de vendor ficou o original, e o hash também era o antigo. Rodei as duas combinações por xxd -r -p e md5sum: no doador o valor bate com o que está no módulo, no meu montado à mão não bate.

Ou seja, é preciso transferir a dupla inteira, não campo por campo. Agora pelo menos ficou claro onde olhar e o que conferir antes de colocar o módulo na porta.

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

Uma consequência importante que sempre esquecem: se o código de vendor e o nome não estiverem coerentes, o módulo não passa no Catalyst nem mesmo quando o switch tem módulos não suportados liberados. É exatamente por isso que dumps de terceiros funcionam de vez em quando - foram corrigidos parcialmente, e a checagem olha para a dupla.

Daí uma conclusão prática sobre o volume: num dump de 256 bytes, os primeiros 128 bytes são os que importam, dali pra frente é a zona do fabricante. Não faz sentido carregar a imagem inteira, mas a primeira metade precisa ser transferida de forma coerente, incluindo campos que não aparecem a olho nu na saída do switch.

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

Aliás, nem tudo se resolve com dump. No Medick SFP-10G-BX não tem memória, e sim um microcontrolador C8051F392: ele emula A0 e A2 e perfeitamente pode guardar uma senha ou um handshake de vendor. Ali você pode conferir a dupla até o bit que quiser, por fora simplesmente não vão aceitar. De ferramenta viva eu uso SNR SFP Writer e SFPTotal Plus, e colegas meus ainda têm umas caseiras em cima do CH341.

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

Uma pequena correção, para não confundir quem chegar aqui depois. Esse MD5 não tem nenhuma relação com os checksums do MSA: CC_BASE e CC_EXT do SFF-8472 são calculados por soma simples de bytes e se recalculam num instante. A checagem do vendor vive por cima deles e segue regras próprias, e recusa o módulo bem no momento em que os checksums do MSA estão certinhos - daí a sensação de que o dump está correto e o módulo mesmo assim não é aceito.

A Cisco, aliás, está longe de ser o pior caso aqui: a mecânica pelo menos é compreensível e reproduzível. O mais difícil de todos é HP e Aruba, onde a memória se comporta de forma interativa e exige chaves - aí só com dump você não se vira mais.

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