Compatibilidade de transceptores em NICs: listas brancas de driver
Num switch, a política de módulos é uma linha no NOS; num servidor, é uma decisão tomada pelo driver e pelo firmware da NIC, e ela varia por fabricante, por sistema operacional e por versão de driver. Os adaptadores Intel são os que recusam módulos fora da lista; a maioria dos outros aceita qualquer coisa que seja interpretável. Esta página lista o comportamento por fabricante e SO, os contornos documentados, as regras de FEC/ autonegociação que decidem se o DAC e as ópticas estabelecem enlace, e o que uma identidade codificada precisa satisfazer do lado do servidor.
Comportamento por fabricante
| Fabricante / driver | Verificação | Em caso de falha | Contorno | Notas |
|---|---|---|---|---|
| Intel ixgbe (X520, X540, X550 SFP+) | lista de OUI/PN de fabricante dos SFP+ qualificados pela Intel | failed to load because an unsupported SFP+ or QSFP module type was detected, porta down | parâmetro de módulo allow_unsupported_sfp=1 (Linux); recarregar o driver | DAC geralmente aceito; SFPs de 1G limitados |
| Intel i40e (X710, XXV710, XL710) | qualificação do módulo em nível de firmware | unsupported module no dmesg, link down ou “module not qualified” no ethtool | allow_unsupported_sfp=1 no i40e mais novo; builds antigas nenhum | módulos XXV710 25G verificados de forma rígida |
| Intel ice (E810) | qualificação por NVM/firmware | Possible mis-configuration of the Ethernet port detected / módulo não qualificado | depende da versão de NVM e do driver; algumas builds respeitam uma configuração de SFP não suportado, outras rejeitam: consulte as notas de lançamento da Intel | o mais permissivo da linha Intel nas NVMs recentes |
| Intel no Windows (drivers PROSet) | as mesmas listas | o dispositivo mostra “Network cable unplugged”, aviso no log de eventos | nenhum contorno documentado | usar módulos listados pela Intel ou codificados pela Intel |
| Intel no VMware ESXi (ixgben, i40en, icen) | as mesmas listas | link down, “unsupported module” no vmkernel.log | parâmetros de módulo via esxcli system module parameters set onde o driver expõe allow_unsupported_sfp; não em todas as versões | preferir módulos qualificados em produção |
| Nvidia / Mellanox mlx5 (ConnectX) | interpreta a EEPROM; Ethernet: sem lista | link up; mlxlink mostra informações do módulo | não é necessário | modo InfiniBand: o fabric manager valida a identidade do cabo/módulo e pode sinalizar ou rebaixar (Cabos IB) |
| Broadcom bnxt_en (NetXtreme-E) | interpreta; sem lista na maioria dos SKUs | up | — | firmware com marca OEM (Dell, HPE) pode adicionar verificações |
| Marvell / QLogic qede | interpreta | up | — | — |
| AMD Solarflare sfc | interpreta | up | — | — |
| Chelsio cxgb4 | interpreta | up | — | — |
| Pensando ionic | interpreta | up | — | — |
| NICs OEM de fabricante de servidor (Dell, HPE, Lenovo, Cisco UCS VIC) | podem adicionar suas próprias listas, especialmente a Cisco VIC | “unsupported transceiver” no CIMC/UCSM | nenhum oficialmente | a UCS VIC aceita módulos codificados pela Cisco |
O comportamento muda conforme a versão de driver e firmware (NVM); verifique na combinação exata (Matrizes de compatibilidade e firmware).
Aplicando o contorno da Intel (Linux)
# temporary (until reload)
modprobe -r ixgbe && modprobe ixgbe allow_unsupported_sfp=1
# persistent
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 # or update-initramfs -u
# verify
cat /sys/module/ixgbe/parameters/allow_unsupported_sfp
dmesg | grep -iE 'sfp|module|unsupported'
ethtool -m eth0
Em placas multiporta, o parâmetro aceita uma lista separada por vírgulas (um valor por porta) em alguns drivers. A configuração não é suportada pela Intel para produção; ela remove a verificação, não os requisitos elétricos.
FEC e autonegociação em NICs
| Tipo de enlace | AN | FEC | Notas |
|---|---|---|---|
| DAC 25G | ligada (Clause 73) nas duas pontas | negociado (RS ou BASE-R conforme a classe do cabo) | a maioria dos casos de “sem enlace no DAC” é AN desligada numa ponta |
| Ópticas SR/LR 25G | desligada; forçado 25000 | RS-FEC para SR (obrigatório), LR: RS ou nenhum, precisa bater com o switch | ethtool --set-fec eth0 encoding rs |
| DAC 100G | ligada | RS-FEC | — |
| 100G SR4 / CWDM4 / DR | desligada | RS-FEC obrigatório | — |
| 100G LR4 | desligada | nenhum (RS em algumas plataformas) | bater com o switch (FEC e AN) |
| 200G / 400G | desligada para ópticas | RS(544) KP4 sempre | — |
| 10G | desligada | nenhum | — |
Comandos por SO: Ferramentas e diagnóstico de NIC; lado do switch: Receitas de configuração de porta.
O que um módulo codificado precisa satisfazer numa NIC
| Alvo | Mínimo |
|---|---|
| Intel ixgbe/i40e sem contorno | nome de fabricante e PN da lista qualificada da Intel (peças de marca Intel E10GSFPSR/E10GSFPLR/E25GSFP28SR ou as peças OEM que elas revendem), códigos de conformidade e checksums consistentes |
| Intel com contorno, todos os fabricantes permissivos | checksums e códigos de conformidade válidos, sem necessidade de codificação OEM |
| Cisco UCS VIC | identidade no estilo Cisco, igual para switches Cisco (Como cada NOS valida um módulo) |
| HCAs InfiniBand | identidade de cabo/módulo correta conforme a IBTA e a lista do fabricante do fabric |
Orientações de codificação: Bloqueio do fabricante e codificação, Numeração de peças.
Sintomas típicos do lado da NIC
| Sintoma | Causa provável | Verificação |
|---|---|---|
| Porta ausente ou “unsupported module” no dmesg | whitelist do driver | dmesg, ethtool -m, contorno ou módulo codificado |
| Link down, módulo reconhecido, níveis bons | incompatibilidade de FEC/AN, velocidade forçada errada | ethtool eth0, ethtool --show-fec eth0 (Velocidade e taxa) |
| Link up em velocidade errada | seleção automática escolheu 10G num módulo de taxa dupla | forçar a velocidade |
| Link up, throughput baixo | largura/velocidade do PCIe | lspci -vv (Portas e PCIe) |
| Módulo quente, alarmes de temperatura | placa no fluxo de ar de exaustão | DDM via ethtool -m; mover a placa ou melhorar a ventilação |
| Funciona no Linux, não no Windows/ESXi | política de driver diferente | usar módulo qualificado para aquele SO |
| Link InfiniBand com largura/velocidade reduzida | cabo fora da lista ou longo demais | ibstat, mlxlink |
No CodingBox
Rejeições do lado do servidor são diagnosticadas a partir dos mesmos bytes que as do lado do switch. Leia o nome do fabricante, PN, OUI, códigos de conformidade e checksums em Check transceiver; para parques só com Intel, o code database pode guardar as identidades Intel que os drivers aceitam.