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 supportedAttention, 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 eth0Ce 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 helpIllustration 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: yesLa modification des paramétrages en ligne de commande se fait comme suit :
ethtool -s eth0 speed 100 duplex full autoneg offLà, 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 !