CodingBox Документация

Совместимость трансиверов на NIC: белые списки драйверов

На коммутаторе политика к модулям — строка в сетевой ОС; на сервере это решение драйвера и прошивки сетевой карты, и оно различается по вендорам, операционным системам и версиям драйвера. Отказывают неперечисленным модулям адаптеры Intel; большинство остальных принимают всё, что разбирается. Здесь — поведение по вендорам и ОС, документированные обходы, правила FEC/автосогласования, решающие, слинкуются ли DAC и оптика, и чему должна удовлетворять закодированная идентификация на стороне сервера.

Поведение по вендорам

Вендор / драйверПроверкаПри отказеОбходПримечания
Intel ixgbe (X520, X540, X550 SFP+)список OUI/PN квалифицированных Intel SFP+failed to load because an unsupported SFP+ or QSFP module type was detected, порт downпараметр модуля allow_unsupported_sfp=1 (Linux); перезагрузка драйвераDAC в целом принимается; SFP 1G ограниченно
Intel i40e (X710, XXV710, XL710)квалификация модуля на уровне прошивкиunsupported module в dmesg, линк down или «module not qualified» в ethtoolallow_unsupported_sfp=1 в новых i40e; в старых сборках нетмодули 25G XXV710 проверяются строго
Intel ice (E810)квалификация NVM/прошивкиPossible mis-configuration of the Ethernet port detected / неквалифицированный модульзависит от релиза NVM и драйвера; часть сборок учитывает настройку unsupported-SFP, другие отвергают — смотрите release notes Intelсамый терпимый в линейке Intel на свежих NVM
Intel в Windows (драйверы PROSet)те же спискиустройство показывает «Network cable unplugged», предупреждение в журнале событийдокументированного обхода нетиспользовать модули из списка Intel или закодированные под Intel
Intel в VMware ESXi (ixgben, i40en, icen)те же спискилинк down, в vmkernel.log «unsupported module»параметры модуля через esxcli system module parameters set, где драйвер отдаёт allow_unsupported_sfp; не во всех версияхв продуктиве предпочитать квалифицированные модули
Nvidia / Mellanox mlx5 (ConnectX)разбирает EEPROM; Ethernet: без спискалинк up; mlxlink показывает сведения о модулене нуженрежим InfiniBand: менеджер фабрики валидирует идентификацию кабеля/модуля и может помечать или понижать (Кабели IB)
Broadcom bnxt_en (NetXtreme-E)разбирает; без списка на большинстве SKUupOEM-прошивки (Dell, HPE) могут добавлять проверки
Marvell / QLogic qedeразбираетup
AMD Solarflare sfcразбираетup
Chelsio cxgb4разбираетup
Pensando ionicразбираетup
OEM-карты серверных вендоров (Dell, HPE, Lenovo, Cisco UCS VIC)могут добавлять свои списки, особенно Cisco VIC«unsupported transceiver» в CIMC/UCSMофициально нетUCS VIC принимает модули, закодированные под Cisco

Поведение меняется с версиями драйвера и прошивки (NVM); проверяйте на точной комбинации (Матрицы совместимости и прошивки).

Применение обхода Intel (Linux)

# временно (до перезагрузки драйвера)
modprobe -r ixgbe && modprobe ixgbe allow_unsupported_sfp=1
# постоянно
echo "options ixgbe allow_unsupported_sfp=1" > /etc/modprobe.d/ixgbe.conf
echo "options i40e allow_unsupported_sfp=1"  > /etc/modprobe.d/i40e.conf
dracut -f   # или update-initramfs -u
# проверка
cat /sys/module/ixgbe/parameters/allow_unsupported_sfp
dmesg | grep -iE 'sfp|module|unsupported'
ethtool -m eth0

Для многопортовых карт параметр у части драйверов принимает список через запятую (по значению на порт). Настройка не поддерживается Intel для продуктива; она снимает проверку, а не электрические требования.

FEC и автосогласование на NIC

Тип линкаANFECПримечания
DAC 25Gвключён (Clause 73) на обоих концахсогласуется (RS или BASE-R по классу кабеля)большинство случаев «нет линка на DAC» — AN выключен на одном конце
Оптика 25G SR / LRвыключен; принудительно 25000RS-FEC для SR (обязателен), LR: RS или без — должен совпадать с коммутаторомethtool --set-fec eth0 encoding rs
DAC 100GвключёнRS-FEC
100G SR4 / CWDM4 / DRвыключенRS-FEC обязателен
100G LR4выключенбез (RS на части платформ)совпадать с коммутатором (FEC и AN)
200G / 400Gвыключен для оптикиRS(544) KP4 всегда
10Gвыключенбез

Команды по ОС: Инструменты и диагностика NIC; сторона коммутатора: Рецепты настройки портов.

Чему должен удовлетворять закодированный модуль для NIC

ЦельМинимум
Intel ixgbe/i40e без обходаимя вендора и PN из квалифицированного списка Intel (брендированные Intel E10GSFPSR/E10GSFPLR/E25GSFP28SR или перепродаваемые ими OEM-детали), согласованные коды соответствия и контрольные суммы
Intel с обходом, все терпимые вендорывалидные контрольные суммы и коды соответствия — OEM-кодирование не нужно
Cisco UCS VICидентификация в стиле Cisco, как для коммутаторов Cisco (Как каждая NOS проверяет модуль)
HCA InfiniBandкорректная идентификация кабеля/модуля по IBTA и списку вендора фабрики

Руководство по кодированию: Вендор-лок и кодирование, Партномера.

Типичные симптомы на стороне NIC

СимптомВероятная причинаПроверка
Порт отсутствует или «unsupported module» в dmesgбелый список драйвераdmesg, ethtool -m, обход или закодированный модуль
Линк down, модуль распознан, уровни хорошиенесовпадение FEC/AN, неверно принуждена скоростьethtool eth0, ethtool --show-fec eth0 (Скорость и режимы)
Линк up на неверной скоростиавто выбрало 10G на двухскоростном модулепринудить скорость
Линк up, низкая пропускная способностьширина/скорость PCIelspci -vv (Порты и PCIe)
Модуль горячий, аварии по температурекарта в выхлопном потокеDDM через ethtool -m; переставить карту или улучшить обдув
Работает в Linux, не работает в Windows/ESXiдругая политика драйвераквалифицированный модуль для этой ОС
Линк InfiniBand на пониженной ширине/скоростикабель не в списке или слишком длинныйibstat, mlxlink

В CodingBox

Отказы на стороне сервера диагностируются по тем же байтам, что и на стороне коммутатора. Читайте имя вендора, PN, OUI, коды соответствия и контрольные суммы на Check transceiver; для парков только на Intel база кодов может хранить идентификации Intel, которые принимают драйверы.