В ходе работы с активным сетевым оборудованием (коммутаторы, маршрутизаторы, медиаконвертеры и т. д.) пользователи сталкиваются с проблемой, когда съемный трансивер работает в оборудовании одной марки и не работает в другом. Например, модуль SFP 10km 1310 из коммутатора HP, по умолчанию не будет работать в коммутаторе Cisco. А вместо «Port Status: UP» в командной строке пользователь увидит сообщение «unsupported transceiver».
Модули Cisco GLC-LH-SMD и HP J4859C являются аппаратными аналогами. Вероятно проблема заключается в несовместимости внутреннего программного обеспечения модуля с коммутатором.
Для решения этой проблемы нужно сменить программное обеспечение трансивера на совместимое с конкретной маркой и моделью активного сетевого оборудования. Для смены ПО (прошивки модуля), понадобится:
Важно уточнить, что часто каждый производитель использует программатор модулей собственной разработки, но встречаются «универсальные программаторы».
Собрав все необходимое можно перепрошить модуль, процесс смены прошивки выглядит следующим образом:
На первый взгляд процесс перепрошивки прост, но в нем есть нюансы, ниже мы постараемся подробно объяснить, как прошить модуль.
Внутреннее программное обеспечение – прошивка модуля хранится в энергонезависимой памяти – EEPROM.
Общий объём памяти у модулей SFP и SFP+ составляет 512 байт, его можно условно разделить на 4 области:
С каждой областью памяти модуля нужно работать отдельно. Часто необходимая для совместимости информация, заложена в области А0 0-127, в которой содержится общая информация. Для каждого SFP или SFP+ модуля эта область будет отличаться, как минимум серийным номером. Оборудование некоторых производителей для определения совместимости обращается к области А2 128-255, но, как правило, информация в ней будет одинаковой для моделей одного типа.
Общий объём памяти у XFP модулей составляет 768 байт, его можно условно разделить на 5 областей, по 128 байт:
Как и в модулях SFP и SFP+, А0 0-127 в XFP – основной областью памяти является Table01h, в которой содержится информация. Сетевое оборудование некоторых вендоров обращается к области Table02h.
В высокоскоростных моделях, таких как QSFP+, CFP, QSFP28 и других, устройство внутренней памяти еще более сложное, но сохраняет общую логику: область с общей информацией, область с информацией для производителей, область со значениями DDM.
Файл-прошивка для модулей представляет собой бинарный файл с расширением .bin и размером 128 байт – для прошивки одной области и 256 байт – для перепрошивки нескольких областей.
Международный стандарт описывающий адресное пространство модулей:
Соглашения MSA четко определяют адресное пространство для каждого типа модулей, что позволяет производителям сетевого оборудования, добавлять в прошивку служебную информацию, проверив которую, коммутатор сделает заключение о совместимости конкретного устройства.
Для этой задачи потребуется специальное устройство – программатор (на англ. – programming board). Программатор модулей – это специализированное устройство для работы с внутренней памятью трансиверов различных форм-факторов, представляющее собой печатную плату:
Как правило, каждый производитель трансиверов использует программатор собственной разработки, но за счет стандартизации разметки внутренней памяти модулей обладая программатором одного производителя можно работать с трансиверами различных марок.
Важно понимать, что для каждого программатора в комплекте идёт собственное программное обеспечение, без которого с ним невозможно работать.
Функционал и возможности программного обеспечения отличаются. У некоторых производителей встречаются удобные программы, с большим набором настроек. Это делает их практичным выбором, но требует большей подготовленности персонала.
Другие программаторы дают меньше возможностей. Скрывая параметры записи, можно упростить пользовательский интерфейс. Это позволит избежать ошибки оператора, но сильно ограничит функционал программатора.
На рынке так же встречаются универсальные устройства сторонних разработчиков, которые позволяют работать с модулями разных производителей. В таких решениях больше настроек и шире возможности, но не стоит забывать, что это потребует от пользователя больших знаний и понимание процесса.
Некоторые поставщики OEM трансиверов предлагают «облачные» программаторы. Такие устройства оснащены портами для трансиверов распространённых форм-факторов – SFP, XFP, QSFP, CFP и требуют подключение к интернету. Их главная особенность заключается в том, что после установки модуля оператор выбирает производителя и модель (линейку) устройства, после чего программное обеспечение само генерирует прошивку и записывает её в память трансивера. Однако, у такого решения есть недостатки – они рассчитаны на работу с трансиверами только конкретного поставщика или с модулями без защиты от записи.
Процесс прошивки модулей всех форм-факторов выглядит одинаково:
Что бы убедиться, что перепрошивка прошла успешно и исключить ошибку считывания программатора, нужно извлечь модуль и установить его обратно. При чтении прошивки она должна совпадать с ранее записанной. Такой способ позволяет убедиться в корректности смены кода.
Проще всего перепрошить трансиверы форм-фактора SFP, так как они не защищены паролем и с ними можно работать любым программатором имеющим соответствующий разъем. Пароль на SFP устанавливается в редких случаях, например это может быть дорогостоящий модуль, предназначенный для работы на большое расстояние, более 100км. В остальном перепрошивка SFP модулей совпадает с описанным выше процессом.
Смена внутреннего кода трансиверов форм-факторов SFP+ или XFP сопряжена с одной проблемой – защитой от записи. Стандартом MSA зарезервированы байты для ввода пароля. Пароль состоит из четырёх байт в шестнадцатеричной системе, и выглядит таким образом: 5A 68 80 A4 или 11 22 33 44.
Пароль используется для защиты от случайной перезаписи или порчи трансивера. Каждый производитель использует свой пароль. Таким образом, для перепрошивки SFP+ или XFP модулей необходимо знать пароль для записи. После ввода пароля в дальнейшем перепрошивка совпадает с описанным выше процессом.
Прошивки могут предоставлять: поставщик программатора или производитель трансиверов, реже реселлер. Разумеется, прошивки можно найти в интернете, так как инженеры обмениваются ими на форумах и пытаются составлять базы прошивок. Иногда можно добиться совместимости самостоятельно, вписав в нужные поля прошивки необходимую информацию.