Outils et diagnostic NIC : lire un module depuis le serveur
Un serveur n’a pas de show interface transceiver, mais dispose de la même information un niveau plus bas : le pilote NIC lit l’EEPROM du module et l’expose via ethtool, des utilitaires constructeur et, sous Windows et ESXi, via leurs propres commandes. Cette page recense les outils par OS et par constructeur, ce que chacun montre (identité, DDM, compteurs FEC, état de la liaison, PCIe), et comment interpréter la sortie quand une liaison est down ou que les erreurs s’accumulent.
| Commande | Affiche |
|---|
ethtool eth0 | état de la liaison, débit, duplex, autonégociation, modes pris en charge/annoncés, type de port (FIBRE/DA) |
ethtool -m eth0 (--module-info) | EEPROM décodée : identifiant, constructeur, PN, SN, date, conformité, longueur d’onde, longueurs ; DDM (température, Vcc, bias, puissance Tx/Rx, seuils, indicateurs d’alarme) si le module en dispose |
ethtool -m eth0 raw on hex on | dump brut A0h (et A2h) pour une comparaison octet par octet (Plan mémoire) |
ethtool -m eth0 page 0x11 … (plus récent) | pages CMIS sur les modules 400G et plus |
ethtool -i eth0 | pilote, version, version du firmware/NVM, adresse de bus |
ethtool -S eth0 | statistiques, dont erreurs CRC, FEC corrigées/non corrigées selon le pilote |
ethtool --show-fec eth0 / --set-fec eth0 encoding rs | mode FEC configuré et actif |
ethtool -s eth0 speed 25000 duplex full autoneg off | forcer le débit |
ethtool -p eth0 5 | faire clignoter la LED du port pour l’identifier |
ethtool --show-priv-flags eth0 | indicateurs propres au pilote (p. ex. link-down-on-close) |
Autres sources sous Linux : dmesg filtré sur sfp, module et link (messages du pilote sur la qualification du module), lspci -vv -s <addr> (largeur/débit de la liaison PCIe sous LnkSta), ip -s link show eth0 (compteurs), /sys/class/net/eth0/ (carrier, speed).
Outils constructeur
| Constructeur | Outil | Usages clés |
|---|
| Nvidia / Mellanox | mlxlink -d <pci> -m -e -c | infos module et DDM (-m), diagramme de l’œil/TEB et FEC (-e, -c), partenaire de liaison ; mlxlink … --fec_override, --speeds |
| Nvidia / Mellanox | mlxconfig -d <pci> q / set | type de port (IB/ETH), type de liaison, KEEP_ETH_LINK_UP, FEC override, éclatement (breakout) |
| Nvidia / Mellanox | mst status, mlxfwmanager | liste des périphériques, firmware |
| Nvidia / Mellanox | ibstat, ibportstate, iblinkinfo | état, largeur, débit du port InfiniBand (Fabric IB) |
| Intel | ethtool -m | principal ; Intel n’a pas d’outil dédié de dump de module |
| Intel | nvmupdate64e, epct64e | mise à jour du firmware NVM ; configuration des ports (options de port E810, p. ex. 2×100G vs 4×25G) |
| Intel | dmesg | messages ixgbe/i40e/ice: unsupported module (Compatibilité des transceivers) |
| Broadcom | bnxtnvm, niccli | NVM, réglages de port, FEC/AN, infos transceiver |
| Marvell | qedctl | — |
| AMD Solarflare | sfupdate, sfboot | firmware, modes de port |
| Chelsio | cxgbtool | — |
Windows
| Commande | Affiche |
|---|
Get-NetAdapter | état de la liaison, débit |
Get-NetAdapterAdvancedProperty -Name "Ethernet 2" | débit/duplex, mode FEC, jumbo — modifiable avec Set-NetAdapterAdvancedProperty |
Get-NetAdapterHardwareInfo | emplacement PCIe, largeur/débit de la liaison |
Get-NetAdapterStatistics | compteurs |
Intel PROSet : Get-IntelNetAdapter, Get-IntelNetAdapterSetting | réglages spécifiques à Intel ; infos module dans le Gestionnaire de périphériques → onglet Link Speed |
Nvidia WinOF-2 : mlx5cmd -Stat, mlxlink (version Windows) | infos module et diagnostics de liaison |
| Observateur d’événements → Système | messages du pilote sur les modules non pris en charge |
Les pilotes Windows exposent rarement le DDM ; utilisez les outils constructeur ou lisez le module sur l’établi.
VMware ESXi
| Commande | Affiche |
|---|
esxcli network nic list / get -n vmnic0 | liaison, débit, pilote, firmware |
esxcli network nic stats get -n vmnic0 | compteurs |
esxcli system module parameters list -m ixgben / set -m ixgben -p "…" | paramètres du pilote, là où c’est pris en charge |
esxcli intnet … (plugin Intel), esxcli mellanox … / mlxlink (plugin Nvidia) | diagnostics constructeur, dont infos module |
vmkernel.log | « unsupported module », flaps de liaison |
esxcli hardware pci list | état de la liaison PCIe |
Lire la sortie
| Observation | Signification | Étape suivante |
|---|
ethtool -m : « Cannot get module EEPROM information : Operation not supported » | le pilote ne l’expose pas, le port n’a pas de module, ou l’I²C du module ne répond pas | vérifier dmesg, réenficher, essayer un autre port (Erreurs de lecture et d’écriture) |
Identité lisible, Link detected: no, puissance Rx normale | désaccord de débit/FEC/AN | ethtool --show-fec, comparer avec le commutateur (FEC et AN) |
| Puissance Rx −40 dBm / « -inf » | pas de lumière | fibre, extrémité distante, polarité (Pas de liaison) |
| Bias et puissance Tx correctes, Rx marginale | connecteur sale, liaison longue | nettoyer, bilan (Puissance Rx et bilan) |
| Compteurs FEC non corrigibles en hausse | liaison à la limite | niveaux DDM, classe de câble, température (VDM et métriques FEC) |
| Température > 70 °C dans un serveur 1U | flux d’air | repositionner, emplacement OCP (Ports et PCIe) |
LnkSta: Speed 8GT/s, Width x8 sur une carte 2×100G | goulot d’étranglement PCIe | emplacement/bifurcation |
dmesg : unsupported module | liste blanche du pilote | Compatibilité des transceivers sur les NIC |
Surveillance depuis le serveur
- La sortie de
ethtool -m est analysable automatiquement ; une tâche cron ou un node exporter avec le collecteur ethtool exporte le DDM vers une supervision de type Prometheus (Surveillance). - La sortie JSON de
mlxlink (--json) chez Nvidia et les compteurs FEC d’ethtool -S chez Intel constituent de bons signaux avant défaillance (Fiabilité et surveillance des liaisons). - Des intervalles d’interrogation de 30–60 s suffisent ; le DDM lui-même se met à jour au mieux chaque seconde.
Dans CodingBox
ethtool -m raw on hex on et CodingBox lisent les mêmes octets : quand un module se comporte différemment sur une NIC et sur l’établi, comparez les deux dumps champ par champ — un pilote qui ne réécrit rien affichera des données identiques, et toute différence pointe vers les pages dynamiques propres au module ou vers une erreur de lecture (Check transceiver, Lecture du DDM avec des outils).