Совместимость трансиверов на 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» в ethtool | allow_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) | разбирает; без списка на большинстве SKU | up | — | OEM-прошивки (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
| Тип линка | AN | FEC | Примечания |
|---|---|---|---|
| DAC 25G | включён (Clause 73) на обоих концах | согласуется (RS или BASE-R по классу кабеля) | большинство случаев «нет линка на DAC» — AN выключен на одном конце |
| Оптика 25G SR / LR | выключен; принудительно 25000 | RS-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, низкая пропускная способность | ширина/скорость PCIe | lspci -vv (Порты и PCIe) |
| Модуль горячий, аварии по температуре | карта в выхлопном потоке | DDM через ethtool -m; переставить карту или улучшить обдув |
| Работает в Linux, не работает в Windows/ESXi | другая политика драйвера | квалифицированный модуль для этой ОС |
| Линк InfiniBand на пониженной ширине/скорости | кабель не в списке или слишком длинный | ibstat, mlxlink |
В CodingBox
Отказы на стороне сервера диагностируются по тем же байтам, что и на стороне коммутатора. Читайте имя вендора, PN, OUI, коды соответствия и контрольные суммы на Check transceiver; для парков только на Intel база кодов может хранить идентификации Intel, которые принимают драйверы.