Вендор-лок и «unsupported transceiver»
Самая массовая проблема с трансиверами. Вендоры коммутаторов и сетевых карт — Cisco, Intel, HPE/Aruba, Juniper, Mellanox и другие — проверяют строки идентификации, которые модуль сообщает из EEPROM, и отвергают или помечают модули, которых не узнают.
Главное, что инженеры узнают на собственном опыте: «unsupported» не означает «не будет работать». На большинстве платформ статус информационный, и порт можно поднять.
Симптомы
| Платформа | Что вы видите |
|---|---|
| Cisco IOS | Порт notconnect — unsupported; в логе %C4K_TRANSCEIVERMAN-3-INCOMPATIBLE |
| Cisco IOS после апгрейда | Порт уходит в errdisable, причина gbic-invalid |
| Mellanox | EEPROM читается, но линка нет: speed and type: Not supported |
| Intel X520 / ixgbe | no carrier с неродным SFP |
Что помогает
Cisco. Две команды традиционно «запекают» в базовые конфиги, чтобы разрешить сторонние модули на всех портах:
service unsupported-transceiver
no errdisable detect cause gbic-invalid
Особенности платформ: на некоторых сборках Catalyst 9200 первая команда возвращает % Ambiguous command — вводите её целиком; на Nexus 9000 она скрытая, без автодополнения, но принимается.
Intel X520 (Linux). Загрузите драйвер с опцией, разрешающей неродные модули:
modprobe ixgbe allow_unsupported_sfp=1
Есть и постоянный вариант — правка бита в собственном EEPROM сетевой карты; он описан в источниках ниже. Обращайтесь осторожно: неверная запись в EEPROM карты в поле не восстанавливается.
Серия ASR 9000. Модуль, вставленный в уже поднятый порт, может не определиться: shut порта, вставить модуль, затем no shut.
Радикальное решение — перекодировать модуль. Переписать Vendor ID и парт-номер модуля, чтобы он представлялся родным. Именно это делает CodingBox в редакторе EEPROM — с пересчётом CC_BASE/CC_EXT и резервной копией перед записью. Механика — в Перекодировке EEPROM.
Совет, который повторяют все
Держите на полке по одному оригинальному OEM-модулю каждого типа. Подменяйте его перед открытием тикета в поддержку, чтобы вендор не списал проблему на стороннюю оптику.
Проверка на коммутаторе
После любого из этих шагов убедитесь, что модуль виден и читается: команды по NOS — в материале Проверка оптики на коммутаторе; сравните с идентификацией, которую CodingBox прочитал на столе.
Источники
- Cisco Community —
service unsupported-transceiver - Cisco TAC — Unsupported GBIC/SFP in sub-module (документ 200296)
- nickcharlton.net — Intel X520
allow_unsupported_sfpи бит EEPROM - Обсуждения сообщества на r/networking, форумах MikroTik и Ubiquiti