Le but de l’article est d’expliquer comment changer de façon permanante le nom de l’interface réseau par rapport à la mac address enregistrée sur un serveur GNU/Linux.
Le noyau linux attribue de façon permanente un nom d’interface réseau associé à une mac address.
Si sur un serveur, l’interface réseau principale eth0 devient inopérente, il faut changer le branchement du cable réseau sur une interface libre, si disponible. Dans ce cas, le nom de l’interface réseau n’est plus eth0. Si la gestion du serveur se fait uniquement sur eth0, cette dernière n’est plus possible.
Pour rétablir le bon fonctionnement du serveur, il faut modifier de façon permanante le nom de l’interface réseau.
Lister toutes les interfaces avec les MacAdress associées
- Avec la commande ip :
ip link | awk '{ print $2}'
lo: 00:00:00:00:00:00 eth0: d8:9d:67:25:75:90 eth1: d8:9d:67:25:75:91 eth2: d8:9d:67:25:75:92 eth3: d8:9d:67:25:75:93
ifconfig -a| grep eth[0-9] | awk '{ print $1 " : " $5}'
eth0 : d8:9d:67:25:75:90 eth1 : d8:9d:67:25:75:91 eth2 : d8:9d:67:25:75:92 eth3 : d8:9d:67:25:75:93
Modifier les règles de nommage des interfaces réseau
nb: Ce qui suit est valable pour les distributions Debian et Ubuntu.
nano /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x14e4:0x1657 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d8:9d:67:25:75:91", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x14e4:0x1657 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d8:9d:67:25:75:92", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" # PCI device 0x14e4:0x1657 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d8:9d:67:25:75:93", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3" # PCI device 0x14e4:0x1657 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d8:9d:67:25:75:90", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Modifier en inversant les valeurs souhaitées pour changer le nom de l’interface avec la Mac Address associé.
Exemple avec l’inversion de eth0 et eth3.
Avant, vérifier que c’est l’interface eth3 qui est bien branché sur le cable avec l’aide de la commande ethtool :
ethtool eth3 | grep detected
Link detected: yes
Modificiation des règles de nommage des interfaces réseau, inverser NAME= »eth1″ et NAME= »eth3″ :
# PCI device 0x14e4:0x1657 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d8:9d:67:25:75:91", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x14e4:0x1657 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d8:9d:67:25:75:92", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" # PCI device 0x14e4:0x1657 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d8:9d:67:25:75:93", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x14e4:0x1657 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d8:9d:67:25:75:90", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
Enregistrer le fichier et redémarrer le serveur pour la prise en compte.
Une fois le serveur redémarré, lister les interfaces réseaux pour visualiser les changements effectués :
ip link | awk '{ print $2}'
lo: 00:00:00:00:00:00 eth0: d8:9d:67:25:75:93 eth1: d8:9d:67:25:75:91 eth2: d8:9d:67:25:75:92 eth3: d8:9d:67:25:75:90
Vérification de la connection au réseau de l’interface eth0 :
ethtool eth0 | grep detected
Link detected: yes