CodingBox Q&A Ask question

Catalyst 2960X tính gì từ dump SFP: mã vendor, tên và MD5, và vì sao bản dump sao chép không qua được

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

Mình phụ trách mạng của một nhà mạng, kho module lẫn lộn nhiều loại, nên thường xuyên phải chuẩn bị module cho đúng từng switch cụ thể. Muốn cuối cùng hiểu rõ cơ chế kiểm tra, thay vì mò dump theo kiểu đoán mò.

Những gì đang có trong tay:

  • Cisco Catalyst 2960X-24PS-L, khó tính nhất trong kho
  • QTECH QSW-3750-28TX-AC và D-Link DGS-3420, trên hai máy này cùng module lên bình thường
  • module SNR-SFP+SR và SFP-10G-BX

Trong dump của module được Catalyst chấp nhận, ở đầu thấy byte mã vendor rồi tiếp theo là tên ở dạng ASCII:

0E 43 49 53 43 4F ...

Đã thử: lấy dump từ module lên được trên C2960X-24PS-L, rồi ghi lại vào một module khác chỉ mỗi tên vendor lấy từ dump đó. Trên QTECH và D-Link sau đó mọi thứ đều lên, còn Catalyst thì không chấp nhận module đó, dù các byte đã sửa khớp với bản gốc từng chữ một.

Từ đó nảy ra câu hỏi về cơ chế kiểm tra. Cisco tính chính xác cái gì và dựa trên những byte nào, kết quả nằm ở đâu trong module, và vì sao chỉ ghi lại tên vendor lấy từ dump hoạt động thôi là chưa đủ? Mình cần hiểu logic, phần còn lại tự lo được.

Comments 6

Cơ chế ở đó đơn giản và đã được mổ xẻ từ lâu. Không phải một trường riêng lẻ được kiểm tra, mà là một cặp: byte mã vendor cộng với các byte tên vendor. MD5 được lấy từ chuỗi đó, kết quả nằm ngay trong module, switch tính đúng như vậy rồi so sánh.

Tái hiện được bằng tiện ích có sẵn, không cần gì đặc biệt:

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

Thay vào đó mã và tên vendor của bạn, sẽ ra đúng giá trị cần nằm trong module. Trong các mã thực sự gặp trong dump: 02 - Finisar, 0E - Methode, 11 xuất hiện khá thường xuyên nhưng vẫn chưa xác định được của hãng nào. Nếu cặp mã-tên khớp nhau và hash tương ứng đúng, module sẽ qua được trên C2960X-24PS-L.

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

Nối tiếp comment trước: cho xem thực sự cái gì đang nằm trong module đích. Byte mã vendor còn lại ở đó là gì và tên đứng cạnh nó là gì? Theo mô tả thì bạn đã chuyển tên sang, còn mã hoặc chính hash thì vẫn để nguyên từ module gốc, và khi đó cặp giá trị bị lệch nhau, Catalyst từ chối nó hoàn toàn hợp lý. Kiểm tra cả ba thứ cùng lúc, chứ không chỉ mỗi trường nhìn thấy trong output của switch.

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

Đã kiểm tra, mọi thứ khớp với cách giải thích của các bạn. Trong module gốc là 0E rồi tiếp theo CISCO, còn trong module đích thì mình đúng là đã ghi lại tên, nhưng mã vendor vẫn giữ nguyên bản gốc, và hash cũng vẫn là hash cũ. Chạy cả hai tổ hợp qua xxd -r -p và md5sum: ở module gốc giá trị khớp với những gì nằm trong module, còn ở bản mình tự ghép bằng tay thì không.

Nghĩa là phải chuyển nguyên cả cặp giá trị, chứ không phải từng trường một. Giờ ít ra cũng biết phải nhìn vào đâu và đối chiếu gì trước khi cắm module vào cổng.

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

Một hệ quả quan trọng mà người ta hay quên: nếu mã vendor và tên không khớp nhau, module sẽ không qua được trên Catalyst kể cả khi switch đã bật cho phép module không được hỗ trợ. Đó chính là lý do dump của người khác lúc chạy lúc không - chúng chỉ được sửa một phần, trong khi kiểm tra lại nhìn vào cả cặp.

Từ đó rút ra kết luận thực tế về dung lượng: trong một dump 256 byte thì 128 byte đầu mới có ý nghĩa, phần sau là vùng của nhà sản xuất. Không cần kéo cả image sang làm gì, nhưng nửa đầu thì phải chuyển đồng bộ với nhau, kể cả những trường mắt thường không thấy trong output của switch.

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

Nhân tiện, dump không giải quyết được tất cả. Trong Medick SFP-10G-BX không phải là bộ nhớ mà là một vi điều khiển C8051F392: nó giả lập A0 và A2 và hoàn toàn có thể giữ mật khẩu hoặc yêu cầu kiểu vendor. Ở đó có sửa khớp cặp giá trị tới từng byte cũng vô ích - từ bên ngoài đơn giản là không chấp nhận được. Về công cụ thực tế mình đang dùng thì có SNR SFP Writer và SFPTotal Plus, đồng nghiệp thì còn có đồ tự chế trên CH341.

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

Một đính chính nhỏ, để không gây nhầm lẫn cho người đọc sau này. MD5 này chẳng liên quan gì tới checksum MSA cả: CC_BASE và CC_EXT trong SFF-8472 được tính bằng phép cộng byte đơn giản và tính lại trong một nốt nhạc. Kiểm tra của vendor nằm chồng lên trên đó theo luật riêng của nó, và từ chối module đúng vào lúc các checksum MSA hoàn toàn ổn - đó là lý do có cảm giác dump đúng rồi mà module vẫn không được chấp nhận.

Nhân tiện, Cisco ở đây còn lâu mới là trường hợp tệ nhất: ít ra cơ chế còn hiểu được và tái hiện được. Nặng nhất là HP và Aruba, nơi bộ nhớ hoạt động kiểu tương tác và đòi khóa - ở đó thì dump thôi là không đủ.

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