Manipulation de paramètres de carte réseaux : mii-tool, ethtool

Petit tip plus pour reminder, et qui tourne autour de la problématique d'affichage et de modification des paramètres d'une carte réseau, le tout en ligne de commande (vu qu'il n'est pas forcément désirable d'avoir sur chaque type de machine, un X11 qui tourne). Il existe historiquement 2 anciens packages qui font tous les deux presque exactement la même chose : mii-tool et ethtool. Selon l'âge de la carte et la durabilité voulue des manips, il faut se tourner soit vers l'un soit vers l'autre.

Mii-Tool

Mii-Tool est un outil déprécié, qui a laissé sa place à ethtool, mais comme celui-ci date, il est facilement supporté par d'anciennes cartes :
$ mii-tool
eth0: 100 Mbit, half duplex, link ok
SIOCGMIIPHY on 'eth1' failed: Operation not supported
Attention, normalement, sur les machines jeunes, le mode est auto-négocié. Il se peut que la liaison soit coupée si l'on force dans un mode qui n'est pas compris/opérationnel sur le switch. Modification en ligne de commande du paramétrage pour eth0 pour l'exemple, en 100 base Tx, full duplex :
# mii-tool -F 100baseTx-FD eth0
Ce paramétrage ne peut pas être permanent, sauf si, brute que l'on est, on force un run de la modification dans le /etc/rc.local, en tout dernier des initiations. Plus d'info ? Rendez-vous sur le man de Mii-Tool !

Ethtool

$ ethtool
ethtool version 6
Usage:
ethtool DEVNAME Display standard information about device
ethtool -s|--change DEVNAME     Change generic options
[ speed 10|100|1000|2500|10000 ]
[ duplex half|full ]
[ port tp|aui|bnc|mii|fibre ]
[ autoneg on|off ]
[ advertise %%x ]
[ phyad %%d ]
[ xcvr internal|external ]
[ wol p|u|m|b|a|g|s|d... ]
[ sopass %%x:%%x:%%x:%%x:%%x:%%x ]
[ msglvl %%d ]
ethtool -a|--show-pause DEVNAME Show pause options
ethtool -A|--pause DEVNAME      Set pause options
[ autoneg on|off ]
[ rx on|off ]
[ tx on|off ]
ethtool -c|--show-coalesce DEVNAME      Show coalesce options
ethtool -C|--coalesce DEVNAME   Set coalesce options
[adaptive-rx on|off]
[adaptive-tx on|off]
[rx-usecs N]
[rx-frames N]
[rx-usecs-irq N]
[rx-frames-irq N]
[tx-usecs N]
[tx-frames N]
[tx-usecs-irq N]
[tx-frames-irq N]
[stats-block-usecs N]
[pkt-rate-low N]
[rx-usecs-low N]
[rx-frames-low N]
[tx-usecs-low N]
[tx-frames-low N]
[pkt-rate-high N]
[rx-usecs-high N]
[rx-frames-high N]
[tx-usecs-high N]
[tx-frames-high N]
[sample-interval N]
ethtool -g|--show-ring DEVNAME  Query RX/TX ring parameters
ethtool -G|--set-ring DEVNAME   Set RX/TX ring parameters
[ rx N ]
[ rx-mini N ]
[ rx-jumbo N ]
[ tx N ]
ethtool -k|--show-offload DEVNAME       Get protocol offload information
ethtool -K|--offload DEVNAME    Set protocol offload
[ rx on|off ]
[ tx on|off ]
[ sg on|off ]
[ tso on|off ]
[ ufo on|off ]
[ gso on|off ]
ethtool -i|--driver DEVNAME     Show driver information
ethtool -d|--register-dump DEVNAME      Do a register dump
[ raw on|off ]
[ file FILENAME ]
ethtool -e|--eeprom-dump DEVNAME        Do a EEPROM dump
[ raw on|off ]
[ offset N ]
[ length N ]
ethtool -E|--change-eeprom DEVNAME      Change bytes in device EEPROM
[ magic N ]
[ offset N ]
[ value N ]
ethtool -r|--negotiate DEVNAME  Restart N-WAY negotation
ethtool -p|--identify DEVNAME   Show visible port identification (e.g. blinking)
[ TIME-IN-SECONDS ]
ethtool -t|--test DEVNAME       Execute adapter self test
[ online | offline ]
ethtool -S|--statistics DEVNAME Show adapter statistics
ethtool -h|--help DEVNAME       Show this help
Illustration avec ma petite eth0 :
$ ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes:   10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes:  10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: yes
La modification des paramétrages en ligne de commande se fait comme suit :
ethtool -s eth0 speed 100 duplex full autoneg off
Là, j'ai désactivé l'autonégociation et forcé en 100 full duplex. Par rapport à mii-tool, les modifications peuvent être appliquées systématiquement au démarrage de la carte réseau en modifiant notre /etc/sysconfig/network-scripts/ifcfg-eth0, grâce à la spécification d'un champ ETHTOOL_OPTS :
#
# File: /etc/sysconfig/network-scripts/ifcfg-eth0
#
DEVICE=eth0
IPADDR=192.168.12.11
NETMASK=255.255.255.0
BOOTPROTO=static
ONBOOT=yes
ETHTOOL_OPTS="speed 100 duplex full autoneg off"
Pour info, le man d'ethtool. Et voilà ! Ca de moins à faire !
Vus : 2278
Publié par K-Tux : 59