Ethtool

ethtool est un outil permettant d’afficher et modifier certains paramètres de la carte réseau.
Avant d’utiliser cette commande il est utile de lancer, par exemple, un ifconfig pour connaitre les noms de vos interfaces réseau.

Faire des requêtes sur une interface réseau

Afficher les paramètres d’une interface

Simplement en lançant la commande ethool NomInterface

Une interface au hasard

# ethtool eno1
Settings for eno1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: on (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes

Une autre

# ethtool vethd42c42a
Settings for vethd42c42a:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
MDI-X: Unknown
Link detected: yes

Une interface créée par docker

# ethtool docker0
Settings for docker0:
Link detected: yes

Une interface créée par docker qui n’est plus utilisée

# ethtool br-ff9be142c42a
Settings for br-ff9be142c42a:
Link detected: no

Le fascinant loopback

# ethtool lo
Settings for lo:
Link detected: yes

Speed : la vitesse à laquelle l’interface est configurée
Duplex : le périphérique en mode duplex est configuré
Link detected : Indique si l’interface physique est réellement connectée au réseau
Informations sur les vitesses prises en charge et les modes Duplex Idée de savoir si l’interface prend en charge la négociation automatique ou non ou la correction d’erreur directe est prise en charge ou non

Débugage

La commande ethtool -S NomInterface est utile pour repérer les problèmes.

# ethtool -S enp2s1
NIC statistics:
tx_packets: 72761
rx_packets: 81459
tx_errors: 0
rx_errors: 0
rx_missed: 0
align_errors: 0
tx_single_collisions: 0
tx_multi_collisions: 0
unicast: 76717
broadcast: 3938
multicast: 804
tx_aborted: 0
tx_underrun: 0

Stats réseau

Pour obtenir les statistiques d’utilisation (du réseau par la carte et de la carte elle-même).

# ethtool -m enp2s1

Identifier : 0x11 (QSFP28)
Extended identifier : 0x00
Extended identifier description : 1.5W max. Power consumption
Extended identifier description : No CDR in TX, No CDR in RX
Extended identifier description : High Power Class (> 3.5 W) not enabled
Connector : 0x23 (No separable connector)
Transceiver codes : 0x88 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Transceiver type : 40G Ethernet: 40G Base-CR4
Transceiver type : 100G Ethernet: 100G Base-CR4 or 25G Base-CR CA-L
Encoding : 0x05 (64B/66B)
BR, Nominal : 25500Mbps
Rate identifier : 0x00
Length (SMF,km) : 0km
Length (OM3 50um) : 0m
Length (OM2 50um) : 0m
Length (OM1 62.5um) : 0m
Length (Copper or Active cable) : 2m
Transmitter technology : 0xa0 (Copper cable unequalized)
Attenuation at 2.5GHz : 5db
Attenuation at 5.0GHz : 7db
Attenuation at 7.0GHz : 9db
Attenuation at 12.9GHz : 14db
Vendor name : Mellanox
Vendor OUI : 00:02:c9
Vendor PN : MCP1600-C002
Vendor rev : A3
Vendor SN : MT1845VS01580
Date code : 181028
Revision Compliance : SFF-8636 Rev 2.0
Module temperature : 0.00 degrees C / 32.00 degrees F
Module voltage : 0.0000 V

Opérations sur les interfaces

Avant toutes choses il faut vérifier quels sont vos droits/possibilités de modification sur l’interface grâce à l’option -i (Les paramètres avec le préfixe “supports” donnent un aperçu des autres commandes prises en charge par ethtool) :

# ethtool -i vethd42c42a
driver: veth
version: 1.0
firmware-version:
expansion-rom-version:
bus-info:
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

Modifier l’adresse MAC

Pour changer l’adresse mac :

@todo : https://blog.kanbach.org/post/how-to-permanently-change-a-mac-address-using-ethtool/
@todo : https://wiki.evolix.org/HowtoEthtool

# ethtool -s NomInterface phyad 42:21:10:05:02:00

Modifier la vitesse

Permet de configurer la vitesse de l’interface en mode full (1000) duplex et en négociation automatique.
ethtool -s eth0 speed 10 duplex half autoneg off

# ethtool -s NomInterface speed 1000 duplex full autoneg on

RX et TX

Afiche les informations concernant les flux

# ethtool -g ethX
Ring parameters for eth2:
Pre-set maximums:
RX: 1048576
RX Mini: 0
RX Jumbo: 0
TX: 1048576
Current hardware settings:
RX: 1024
RX Mini: 0
RX Jumbo: 0
TX: 4096

Désactivé: pas de contrôle de flux.
RX et TX activés: la carte génère et répond aux trames de contrôle de flux.
RX activé: la carte interrompt la transmission lorsqu’elle reçoit une trame de contrôle de flux d’un partenaire de liaison.
Tx activé: la carte génère une trame de contrôle de flux lorsque sa file d’attente de réception atteint une limite prédéfinie.

Modifie la taille de la file

# ethtool -G eth2 rx 4096 tx 4096

Résumé en image

Erreurs rencontrées

Erreur de module

# ethtool -m enp2s1
Cannot get module EEPROM information: Operation not supported

A cause de supports-eeprom-access: no que renvoie la commande ethtool -i

Documentation

https://linux.die.net/man/8/ethtool
https://fr.wikipedia.org/wiki/Ethtool
https://explainshell.com/explain/8/ethtool
https://medium.com/@christina.jacob.koikara/useful-ethtool-commands-7f2b1bca55d1
https://www.intel.fr/content/www/fr/fr/support/articles/000005783/network-and-i-o/ethernet-products.html
https://blog.kanbach.org/post/how-to-permanently-change-a-mac-address-using-ethtool/
https://wiki.evolix.org/HowtoEthtool
Rappel half et full duplex : https://fr.wikipedia.org/wiki/Duplex_(canal_de_communication)
Rappel autonégociation réseau : https://fr.wikipedia.org/wiki/Auton%C3%A9gociation

> Partager <