Je renomme les interfaces réseau en modifiant les fichiers 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 puis-je activer cette configuration sans redémarrer?
A systemctl restart network
ne fait pas l'affaire.
Je peux fermer une interface par son ancien nom ( ifdown eth0
) mais ifup
entraîne un 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, retardant l'initialisation.
/etc/init.d/network status
montre cette sortie:
Configured devices:
lo bond0 nic0 nic1
Currently active devices:
lo eth0 eth1 bond0
Les deux ifconfig
et ip a
affichent les anciens noms d'interface.
Réponses:
Vous pouvez renommer le périphérique à l'aide de la commande ip:
Modifier :
Vous pouvez également vous assurer que vous configurez une règle udev, afin que cela fonctionne également au prochain redémarrage. Le chemin pour udev a été déplacé dans CentOS 7 vers /usr/lib/udev/rules.d/60-net.rules mais vous pouvez toujours le gérer de la même manière. Si vous avez ajouté "net.ifnames = 0 biosdevname = 0" à votre chaîne de démarrage du noyau pour revenir à l'ancien schéma de dénomination de vos cartes réseau, vous pouvez supprimer
Et remplacez-le par
Vous avez besoin d'une entrée par nic. Assurez-vous d'utiliser la bonne adresse MAC et de mettre à jour le champ NAME. Si vous n'avez pas utilisé "net.ifnames = 0 biosdevname = 0", soyez prudent car il pourrait y avoir des conséquences inattendues.
la source
/etc/udev/rules.d/90-eno-fix.rules
car il remplace toutes les solutions fonctionnant précédemment pour renommer les périphériques réseau.eno########
valeur qui remplace toutes ces tentatives pour le renommer en quelque chose commeeth0
. Cela a-t-il du sens? Je devrai vérifier sur ma machine la version que j'utilise, mais j'ai mis à niveau vers le dernier CentOS 7.3 hier, donc je pense que j'aurai la version mentionnée.En fait, la meilleure réponse, je crois, est la combinaison des deux réponses déjà publiées. Afin de changer le nom de l'appareil sans redémarrer les services réseau, utilisez les
ip link
commandes suggérées par James Shewey (ip link set <old_device_name> name <new_device_name>
).Pour que les modifications survivent à un redémarrage dans Red Hat Linux, modifiez le fichier correspondant dans
/etc/sysconfig/network-scripts/
. Renommez le fichierifcfg_<old_device_name>
enifcfg_<new_device_name>
et changez laDEVICE
variable à l'intérieur en<new_device_name>
. Assurez-vous également que laHWADDR
variable est définie et correcte. Il n'est pas nécessaire de toucher aux règles udev , car il60-net.rules
est en fait là pour lire les fichiers de configuration ifcfg/etc/sysconfig/network-scripts
.la source
Pour restaurer l'ancienne convention de dénomination, vous devez modifier le
/etc/default/grub
fichier et ajouter ce qui suità la fin de la
GRUB_CMDLINE_LINUX
variablela source
biosdevname
paquet s'il est installéla source
La réponse donnée par @James Shewey semble être la bonne façon de le faire.
Si vous souhaitez simplement travailler avec les fichiers de configuration dans
/etc/sysconfig/network-scripts
puis déclencher un rechargement, le déchargement et le chargement du module du noyau comme mentionné par @Tom Hunt dans les commentaires fonctionne également:Si vous accédez à la machine à distance, assurez-vous d'exécuter toutes les commandes dans un nohup ou vous vous verrouillez:
Le pilote à recharger dépend bien sûr de votre interface.
la source
J'ai essayé ce qui précède avec Vagrant / VirtualBox et ansible, mais cela n'a pas fonctionné du tout sur mon environnement de développement.
Les anciens noms d'interface ont été conservés quoi que je fasse jusqu'à un redémarrage complet.
J'ai ajouté les règles suivantes dans
/etc/udev/rules.d/60-persistent-net.rules
(basé sur: https://access.redhat.com/solutions/112643 )Mon objectif était de donner à l'interface un nom spécifié basé sur l'adresse PCI.
Exemple:
Après avoir ajouté ces règles, j'ai exécuté les commandes suivantes:
Le message d'erreur était
Cannot find device "int0"
sur laip link set * up
commande. Et/var/log/messages
j'ai remarqué les messages suivantsMais ce qui suit a fonctionné en accédant à la machine virtuelle via VirtualBox et en exécutant les commandes suivantes pour supprimer et rajouter le module du noyau.
J'ai trouvé cela dans le fil suivant: https://www.centos.org/forums/viewtopic.php?t=54695
La chose étrange que j'ai remarquée est que cela
lsmod
me donne (notez leUsed by
)la source
ip link set eth0 down; ip link set eth0 name int0; ip link set int0 up
:? Aucuneudev...
commande!