47 votes

Comment détecter automatiquement une nouvelle carte réseau dans CentOS 6 / RedHat ?

J'utilise CentOS 6 dans un environnement virtuel. Lors du clonage d'une version virtuelle de CentOS, les anciens adaptateurs eth sont "supprimés" et remplacés par de nouveaux adaptateurs et des adresses MAC nettes. Cependant, les fichiers ifcfg-ethn existent toujours. J'essaie de comprendre comment faire pour que CentOS rescanne et recrée automatiquement les adaptateurs réseau / fichiers eth, comme il l'a fait lors de l'installation.

Sinon, je dois me contenter de la procédure fastidieuse décrite ici : http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

Je sais qu'il existe un moyen rapide de le faire dans l'interface graphique, mais nous utilisons un serveur et l'interface graphique ne s'applique donc pas dans ce cas. Vous avez besoin d'aide ?

Editer : @OldWolf a suggéré Kudzu, mais Kudzu a été supprimé à partir de Centos 5 et je préfère donc l'éviter. Il y a une procédure que Linux exécute lors de l'installation initiale - quelqu'un peut-il m'aider à comprendre de quoi il s'agit pour que je puisse la déclencher manuellement ?

54voto

Brandon Ryan Points 21

Avec CentOS 6, tout est géré par udev. Allez dans /etc/udev/rules.d et supprimer le 70-persistent-net.rules et redémarrer. Si vous l'ouvrez avant, vous verrez très probablement le MAC du NIC d'origine répertorié comme suit eth0 et le nouveau comme eth1 .

Vous devez maintenant modifier /etc/sysconfig/network-scripts/ifcfg-eth0 et mettez à jour manuellement le MAC de votre nouvelle carte NIC.

La suppression du fichier oblige le processus de détection à s'exécuter à nouveau au démarrage sans les bagages laissés par le processus de clonage, à savoir l'ancienne adresse MAC du NIC.

Je dois le faire avec mes clones CentOS 6 sur VMware ESXi 4.1 tout le temps. C'est une plaie que kudzu aurait pu gérer par le passé avec les versions antérieures.

5voto

Andrius Points 785

Supprimer le fichier de règles persistantes :

rm /etc/udev/rules.d/70-persistent-net.rules

Modifier ifcfg-eth0 :

nano /etc/sysconfig/network-scripts/ifcfg-eth0

RETIRER le HWADDR (ou modifiez-la pour qu'elle corresponde à l'adresse MAC de votre nouveau NIC).

Redémarrez votre système :

reboot

Si vous changez à nouveau de carte d'interface réseau, répétez les étapes 1 et 3.

5voto

Ori Points 1287

Vous pouvez également utiliser cet outil (il ne s'agit pas d'un outil GUI, mais d'un outil TUI, Text-based User Interface).

[root@localhost ~]# system-config-network-tui

Tapez la commande ci-dessus et appuyez sur Entrée

L'écran suivant apparaît alors

enter image description here

Sélectionnez Configuration de l'appareil et appuyez sur Entrée

L'écran suivant apparaît alors

enter image description here

Ici, eth0 fait référence à /etc/sysconfig/network-scripts/ifcfg-eth0

Quelle que soit la modification apportée en eth0 qui affectera les ifcfg-eth0 fichier

4voto

undertakeror Points 621

Modifier les fichiers après le clonage ne fonctionnerait pas dans mon cas d'utilisation, j'ai donc résolu le problème de la manière suivante.

Vous devez modifier deux fichiers en supprimant les références aux adresses Mac dans chacun d'eux :

/etc/sysconfig/network-scripts/ifcfg-eth0 - supprimer la ligne HWADDR=.

/etc/udev/rules.d/70-persistent-net.rules - supprimer de ATTR{address}== jusqu'à la virgule suivante incluse.

Maintenant, lorsque vous clonez la VM et que vous changez l'adresse Mac, la mise en réseau fonctionnera car l'adresse Mac n'est jamais écrite dans les deux fichiers.

3voto

Electrawn Points 226

Je crée et supprime tellement de machines virtuelles CentOS 6 que j'ai écrit quelques Bashfu pour corriger eth0 lors du clonage dans VirtualBox.

   [root@jp-xm-base ~]# cat fixeth0.sh
if grep -q eth1 /etc/udev/rules.d/70-persistent-net.rules; then
   sed -i '/eth0/d' /etc/udev/rules.d/70-persistent-net.rules;
   sed -i 's/eth1/eth0/g' /etc/udev/rules.d/70-persistent-net.rules;
   ETHERNET=`grep eth0 /etc/udev/rules.d/70-persistent-net.rules | awk -F"," '{print $4}' | awk -F"\"" '{print $2}'`;
   echo Ethernet Addr: $ETHERNET;
   sed -i 's/HWADDR=".*"/HWADDR="'$ETHERNET'"/' /etc/sysconfig/network-scripts/ifcfg-eth0;
   /sbin/start_udev
   /sbin/service network restart;
fi

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X