Strumenti e diagnostica NIC: leggere un modulo dal server
Un server non ha show interface transceiver, ma dispone della stessa informazione un livello più in basso: il driver della NIC legge l’EEPROM del modulo e la espone tramite ethtool, le utility del produttore e, su Windows ed ESXi, tramite i propri comandi. Questa pagina elenca gli strumenti per sistema operativo e produttore, cosa mostra ciascuno (identità, DDM, contatori FEC, stato del collegamento, PCIe) e come interpretare l’output quando un collegamento è down o gli errori si accumulano.
| Comando | Mostra |
|---|
ethtool eth0 | stato del collegamento, velocità, duplex, autonegoziazione, modalità supportate/annunciate, tipo di porta (FIBRE/DA) |
ethtool -m eth0 (--module-info) | EEPROM decodificata: identificatore, produttore, PN, SN, data, conformità, lunghezza d’onda, lunghezze; DDM (temperatura, Vcc, bias, potenza Tx/Rx, soglie, flag di allarme) se il modulo la possiede |
ethtool -m eth0 raw on hex on | dump grezzo A0h (e A2h) per il confronto byte per byte (Mappa della memoria) |
ethtool -m eth0 page 0x11 … (versioni più recenti) | pagine CMIS sui moduli 400G+ |
ethtool -i eth0 | driver, versione, versione firmware/NVM, indirizzo bus |
ethtool -S eth0 | statistiche incl. errori CRC, FEC corretti/non corretti su alcuni driver |
ethtool --show-fec eth0 / --set-fec eth0 encoding rs | modalità FEC configurata e attiva |
ethtool -s eth0 speed 25000 duplex full autoneg off | forza la velocità |
ethtool -p eth0 5 | fa lampeggiare il LED della porta per identificarla |
ethtool --show-priv-flags eth0 | flag specifici del driver (es. link-down-on-close) |
Altre fonti Linux: dmesg filtrato per sfp, module e link (messaggi del driver sulla qualificazione del modulo), lspci -vv -s <addr> (larghezza/velocità del collegamento PCIe sotto LnkSta), ip -s link show eth0 (contatori), /sys/class/net/eth0/ (carrier, velocità).
Strumenti del produttore
| Produttore | Strumento | Usi principali |
|---|
| Nvidia / Mellanox | mlxlink -d <pci> -m -e -c | informazioni sul modulo e DDM (-m), eye/BER e FEC (-e, -c), link partner; mlxlink … --fec_override, --speeds |
| Nvidia / Mellanox | mlxconfig -d <pci> q / set | tipo di porta (IB/ETH), tipo di collegamento, KEEP_ETH_LINK_UP, override FEC, breakout |
| Nvidia / Mellanox | mst status, mlxfwmanager | elenco dispositivi, firmware |
| Nvidia / Mellanox | ibstat, ibportstate, iblinkinfo | stato, larghezza e velocità della porta InfiniBand (Fabric IB) |
| Intel | ethtool -m | principale; Intel non ha uno strumento dedicato per il dump del modulo |
| Intel | nvmupdate64e, epct64e | aggiornamento firmware NVM; configurazione porte (opzioni porta E810, es. 2×100G vs 4×25G) |
| Intel | dmesg | messaggi ixgbe/i40e/ice: unsupported module (Compatibilità ottiche) |
| Broadcom | bnxtnvm, niccli | NVM, impostazioni porta, FEC/AN, informazioni sul ricetrasmettitore |
| Marvell | qedctl | — |
| AMD Solarflare | sfupdate, sfboot | firmware, modalità porta |
| Chelsio | cxgbtool | — |
Windows
| Comando | Mostra |
|---|
Get-NetAdapter | stato del collegamento, velocità |
Get-NetAdapterAdvancedProperty -Name "Ethernet 2" | velocità/duplex, modalità FEC, jumbo — impostabili con Set-NetAdapterAdvancedProperty |
Get-NetAdapterHardwareInfo | slot PCIe, larghezza/velocità del collegamento |
Get-NetAdapterStatistics | contatori |
Intel PROSet: Get-IntelNetAdapter, Get-IntelNetAdapterSetting | impostazioni specifiche Intel; informazioni sul modulo in Gestione dispositivi → scheda Velocità collegamento |
Nvidia WinOF-2: mlx5cmd -Stat, mlxlink (build Windows) | informazioni sul modulo e diagnostica del collegamento |
| Visualizzatore eventi → Sistema | messaggi del driver sui moduli non supportati |
I driver Windows raramente espongono il DDM; usa gli strumenti del produttore o leggi il modulo al banco.
VMware ESXi
| Comando | Mostra |
|---|
esxcli network nic list / get -n vmnic0 | collegamento, velocità, driver, firmware |
esxcli network nic stats get -n vmnic0 | contatori |
esxcli system module parameters list -m ixgben / set -m ixgben -p "…" | parametri del driver dove supportati |
esxcli intnet … (plugin Intel), esxcli mellanox … / mlxlink (plugin Nvidia) | diagnostica del produttore incl. informazioni sul modulo |
vmkernel.log | «unsupported module», instabilità del collegamento |
esxcli hardware pci list | stato del collegamento PCIe |
Interpretare l’output
| Osservazione | Significato | Passo successivo |
|---|
ethtool -m: «Cannot get module EEPROM information: Operation not supported» | il driver non la espone, la porta non ha modulo, oppure l’I²C del modulo non risponde | verifica dmesg, reinserisci, prova un’altra porta (Errori di lettura e scrittura) |
Identità leggibile, Link detected: no, potenza Rx normale | mancata corrispondenza velocità/FEC/AN | ethtool --show-fec, confronta con lo switch (FEC e AN) |
| Potenza Rx −40 dBm / "-inf" | nessuna luce | fibra, estremità remota, polarità (Nessun collegamento) |
| Bias e potenza Tx corretti, Rx marginale | connettore sporco, collegamento lungo | pulizia, bilancio di potenza (Potenza Rx e bilancio di potenza) |
| Contatori FEC non correggibili in aumento | collegamento al limite | livelli DDM, classe del cavo, temperatura (Metriche VDM e FEC) |
| Temperatura > 70 °C in un server 1U | flusso d’aria | riposiziona, slot OCP (Porte e PCIe) |
LnkSta: Speed 8GT/s, Width x8 su una scheda 2×100G | collo di bottiglia PCIe | slot/bifurcazione |
dmesg: unsupported module | whitelist del driver | Compatibilità ottiche sulle NIC |
Monitoraggio dal server
- L’output di
ethtool -m è analizzabile; un cron job o un node exporter con il collector ethtool esporta il DDM verso un monitoraggio in stile Prometheus (Monitoraggio). - L’output JSON di
mlxlink Nvidia (--json) e i contatori FEC di ethtool -S Intel sono buoni segnali di pre-guasto (Affidabilità del collegamento e monitoraggio). - Intervalli di polling di 30–60 s sono sufficienti; il DDM stesso si aggiorna al massimo ogni secondo.
In CodingBox
ethtool -m raw on hex on e CodingBox leggono gli stessi byte: quando un modulo si comporta in modo diverso su una NIC e al banco, confronta i due dump campo per campo — un driver che non riscrive nulla mostrerà dati identici, e ogni differenza indica le pagine dinamiche proprie del modulo oppure un errore di lettura (Check transceiver, Lettura del DDM con gli strumenti).