Ferramentas e diagnóstico de NIC: como ler um módulo a partir do servidor
Um servidor não tem show interface transceiver, mas tem a mesma informação uma camada abaixo: o driver da NIC lê a EEPROM do módulo e a expõe através do ethtool, de utilitários de fabricante e, no Windows e no ESXi, através de comandos próprios. Esta página lista as ferramentas por sistema operacional e fabricante, o que cada uma mostra (identidade, DDM, contadores de FEC, estado do enlace, PCIe) e como interpretar a saída quando um enlace cai ou os erros se acumulam.
| Comando | Mostra |
|---|
ethtool eth0 | estado do enlace, velocidade, duplex, autonegociação, modos suportados/anunciados, tipo de porta (FIBRE/DA) |
ethtool -m eth0 (--module-info) | EEPROM decodificada: identificador, fabricante, PN, SN, data, conformidade, comprimento de onda, comprimentos; DDM (temperatura, Vcc, bias, potência Tx/Rx, limiares, flags de alarme) se o módulo tiver |
ethtool -m eth0 raw on hex on | dump bruto de A0h (e A2h) para comparação byte a byte (Mapa de memória) |
ethtool -m eth0 page 0x11 … (mais recente) | páginas CMIS em módulos 400G+ |
ethtool -i eth0 | driver, versão, versão de firmware/NVM, endereço do barramento |
ethtool -S eth0 | estatísticas, incl. erros de CRC, FEC corrigido/não corrigido em alguns drivers |
ethtool --show-fec eth0 / --set-fec eth0 encoding rs | modo de FEC configurado e ativo |
ethtool -s eth0 speed 25000 duplex full autoneg off | força a velocidade |
ethtool -p eth0 5 | pisca o LED da porta para identificá-la |
ethtool --show-priv-flags eth0 | flags específicas do driver (por exemplo, link-down-on-close) |
Outras fontes no Linux: dmesg filtrado por sfp, module e link (mensagens do driver sobre qualificação do módulo), lspci -vv -s <addr> (largura/velocidade do enlace PCIe em LnkSta), ip -s link show eth0 (contadores), /sys/class/net/eth0/ (portadora, velocidade).
Ferramentas de fabricantes
| Fabricante | Ferramenta | Usos principais |
|---|
| Nvidia / Mellanox | mlxlink -d <pci> -m -e -c | informações do módulo e DDM (-m), olho/BER e FEC (-e, -c), parceiro de enlace; mlxlink … --fec_override, --speeds |
| Nvidia / Mellanox | mlxconfig -d <pci> q / set | tipo de porta (IB/ETH), tipo de enlace, KEEP_ETH_LINK_UP, override de FEC, breakout |
| Nvidia / Mellanox | mst status, mlxfwmanager | lista de dispositivos, firmware |
| Nvidia / Mellanox | ibstat, ibportstate, iblinkinfo | estado, largura e velocidade da porta InfiniBand (fabric IB) |
| Intel | ethtool -m | principal; a Intel não tem ferramenta dedicada de dump do módulo |
| Intel | nvmupdate64e, epct64e | atualização de firmware NVM; configuração de porta (opções de porta do E810, por exemplo 2×100G vs 4×25G) |
| Intel | dmesg | mensagens ixgbe/i40e/ice: unsupported module (Compatibilidade de ópticas) |
| Broadcom | bnxtnvm, niccli | NVM, configurações de porta, FEC/AN, informações do transceptor |
| Marvell | qedctl | — |
| AMD Solarflare | sfupdate, sfboot | firmware, modos de porta |
| Chelsio | cxgbtool | — |
Windows
| Comando | Mostra |
|---|
Get-NetAdapter | estado do enlace, velocidade |
Get-NetAdapterAdvancedProperty -Name "Ethernet 2" | velocidade/duplex, modo de FEC, jumbo — ajustável com Set-NetAdapterAdvancedProperty |
Get-NetAdapterHardwareInfo | slot PCIe, largura/velocidade do enlace |
Get-NetAdapterStatistics | contadores |
Intel PROSet: Get-IntelNetAdapter, Get-IntelNetAdapterSetting | configurações específicas da Intel; informações do módulo no Gerenciador de Dispositivos → aba Link Speed |
Nvidia WinOF-2: mlx5cmd -Stat, mlxlink (build para Windows) | informações do módulo e diagnóstico de enlace |
| Visualizador de Eventos → Sistema | mensagens do driver sobre módulos não suportados |
Os drivers do Windows raramente expõem DDM; use ferramentas do fabricante ou leia o módulo na bancada.
VMware ESXi
| Comando | Mostra |
|---|
esxcli network nic list / get -n vmnic0 | enlace, velocidade, driver, firmware |
esxcli network nic stats get -n vmnic0 | contadores |
esxcli system module parameters list -m ixgben / set -m ixgben -p "…" | parâmetros de driver, quando suportado |
esxcli intnet … (plugin Intel), esxcli mellanox … / mlxlink (plugin Nvidia) | diagnóstico do fabricante, incl. informações do módulo |
vmkernel.log | “unsupported module”, oscilações de enlace |
esxcli hardware pci list | estado do enlace PCIe |
Interpretando a saída
| Observação | Significado | Próximo passo |
|---|
ethtool -m: “Cannot get module EEPROM information: Operation not supported” | o driver não expõe isso, a porta não tem módulo, ou o I²C do módulo não responde | verifique o dmesg, reencaixe, tente outra porta (Erros de leitura e escrita) |
Identidade legível, Link detected: no, potência Rx normal | incompatibilidade de velocidade/FEC/AN | ethtool --show-fec, compare com o switch (FEC e AN) |
| Potência Rx de −40 dBm / "-inf" | sem luz | fibra, extremidade remota, polaridade (Sem enlace) |
| Bias e potência Tx normais, Rx marginal | conector sujo, enlace longo | limpe, calcule o orçamento (Potência Rx e orçamento) |
| Contadores de FEC não corrigíveis subindo | enlace no limite | níveis de DDM, classe do cabo, temperatura (Métricas de VDM e FEC) |
| Temperatura > 70 °C em um servidor 1U | fluxo de ar | reposicione, slot OCP (Portas e PCIe) |
LnkSta: Speed 8GT/s, Width x8 em uma placa 2×100G | gargalo de PCIe | slot/bifurcação |
dmesg: unsupported module | lista de permissões do driver | Compatibilidade de ópticas em NICs |
Monitoramento a partir do servidor
- A saída de
ethtool -m é analisável; um cron job ou um node exporter com o coletor ethtool exporta o DDM para um monitoramento no estilo Prometheus (Monitoramento). - A saída JSON do
mlxlink da Nvidia (--json) e os contadores de FEC do ethtool -S da Intel são bons sinais de pré-falha (Confiabilidade e monitoramento de enlace). - Intervalos de sondagem de 30–60 s são suficientes; o próprio DDM atualiza no máximo a cada segundo.
No CodingBox
ethtool -m raw on hex on e o CodingBox leem os mesmos bytes: quando um módulo se comporta de forma diferente em uma NIC e na bancada, compare os dois dumps campo a campo — um driver que não reescreve nada vai mostrar dados idênticos, e qualquer diferença aponta para as páginas dinâmicas do próprio módulo ou para um erro de leitura (Check transceiver, Lendo DDM com ferramentas).