CentOS 7 – Renommer l'interface réseau sans redémarrer

Je renomme les interfaces réseau en modifiant les files dans /etc/sysconfig/network-scripts .

  • eth0 -> nic0
  • eth1 -> nic1

Le contenu des scripts réseau ressemble à ceci, après modification:

 # cat /etc/sysconfig/network-scripts/ifcfg-nic0 DEVICE=nic0 BOOTPROTO=static ONBOOT=yes HWADDR=xx:xx:xx:xx:xx:xx USERCTL=no IPV6INIT=no MASTER=bond0 SLAVE=yes 

Un redémarrage active la nouvelle configuration. Mais comment activer cette configuration sans redémarrer?

Un systemctl restart network ne fait pas l'affaire.

Je peux fermer une interface par son ancien nom ( ifdown eth0 ) mais ifup aboutit au message ci-dessous, peu importe si l'ancien ou le nouveau nom a été fourni:

ERREUR: [/ etc / sysconfig / network-scripts / ifup-eth] Le périphérique nic0 ne semble pas être présent, ce qui retarde l'initialisation.

/etc/init.d/network status affiche cette sortie:

 Configured devices: lo bond0 nic0 nic1 Currently active devices: lo eth0 eth1 bond0 

Les deux, ifconfig et ip a montrent les anciens noms d'interface.

Vous pouvez renommer le périphérique en utilisant la command ip:

 /sbin/ip link set eth1 down /sbin/ip link set eth1 name eth123 /sbin/ip link set eth123 up 

Edit :

Je laisse le commentaire ci-dessous par souci d'exhaustivité et de postérité (et à des fins informatives), mais j'ai confirmé le commentaire de Swill et la réponse de Marco Macuzzo que le simple changement du nom et du périphérique de l'interface / etc / sysconfig / network-scripts / ifcfg- eth0 (et renommer le file) entraînera le nom correct du périphérique tant que le champ hwaddr = est inclus dans le file de configuration. Je recommand d'utiliser cette méthode à la place de la mise à jour référencée.

Vous pouvez également vous assurer de configurer une règle udev, afin que cela fonctionne aussi lors du prochain redémarrage. Le path pour udev déplacé dans CentOS 7 à /usr/lib/udev/rules.d/60-net.rules mais vous êtes toujours capable de le gérer de la même manière. Si vous avez ajouté "net.ifnames = 0 biosdevname = 0" à la string de démarrage du kernel pour revenir à l'ancien schéma de nommage de vos nics, vous pouvez supprimer

 ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result" 

Et remplacez-le par

 ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:50:56:8e:3f:a7", NAME="eth123" 

Vous avez besoin d'une input par nic. Assurez-vous d'utiliser l'adresse MAC correcte et mettez à jour le champ NAME. Si vous n'avez pas utilisé "net.ifnames = 0 biosdevname = 0", faites attention car il pourrait y avoir des conséquences inattendues.

En fait, la meilleure réponse est la combinaison des deux réponses déjà affichées. Pour modifier le nom du périphérique sans redémarrer les services réseau, utilisez les commands ip link proposées par James Shewey (set de liens ip <ancien_nom_départ>, nom <nouveau_nom_déposé>).

Pour que les modifications survivent à un redémarrage dans Red Hat Linux, modifiez le file correspondant dans / etc / sysconfig / network-scripts /. Renommez le file ifcfg_ <ancien_device_name> en ifcfg_ <nom_départ_principal> et remplacez la variable DEVICE par <new_device_name>. Assurez-vous également que la variable HWADDR est définie et est correcte. Il n'est pas nécessaire de toucher les règles udev , puisque 60-net.rules est réellement là pour lire les files de configuration ifcfg dans / etc / sysconfig / network-scripts.

La réponse donnée par @ James Shewey semble être la bonne façon de le faire.

Si vous voulez simplement travailler avec les files de configuration dans /etc/sysconfig/network-scripts , puis triggersr un rechargement, décharger et charger le module du kernel comme mentionné par @Tom Hunt dans les commentaires fonctionne aussi:

 service network stop modprobe -r igb modprobe igb service network start 

Si vous accédez à la machine à distance, assurez-vous d'exécuter toutes les commands dans un nohup ou vous vous verrouillez:

 nohup sh -c "service network stop && modprobe -r igb && modprobe igb ; service network start" 

Bien sûr, le pilote à recharger dépend de votre interface.

Pour restaurer l'ancienne convention d'appellation, vous devez éditer le file /etc/default/grub et append ce qui suit

 net.ifnames=0 biosdevname=0 

à la fin de la variable GRUB_CMDLINE_LINUX