2011-09-06 18:56:31 +0000 2011-09-06 18:56:31 +0000
46
46

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 d'eth sont “supprimés” et remplacés par de nouveaux et des adresses MAC nettes. Cependant, les fichiers ifcfg-ethn existent toujours. J'essaie de trouver comment faire en sorte que CentOS recalcule automatiquement les adaptateurs réseau et les fichiers eth, comme il l'a fait lors de l'installation

Sinon, je me retrouve avec le processus fastidieux décrit ici : http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

Je sais qu'il y a un moyen rapide de faire cela dans l'interface graphique, mais nous utilisons un serveur, donc l'interface graphique ne s'applique pas dans ce cas. De l'aide ? ]

Edit : @OldWolf a suggéré Kudzu, cependant Kudzu a été supprimé à partir de Centos 5, donc je préfère éviter cela. Il y a une procédure que Linux exécute lors de l'installation initiale - quelqu'un peut-il m'aider à comprendre ce que c'est pour que je puisse le déclencher manuellement ?

Réponses (8)

52
52
52
2011-09-08 19:34:54 +0000

Avec CentOS 6, tout est désormais géré par udev. Allez dans /etc/udev/rules.d, supprimez le fichier 70-persistent-net.rules et redémarrez. Si vous l'ouvrez avant la main, vous verrez l'original NIC MAC listé comme eth0 et le nouveau comme eth1.

Maintenant vous devez éditer /etc/sysconfig/network-scripts/ifcfg-eth0 et mettre à jour manuellement le MAC de votre nouvelle carte NIC.

La suppression du fichier force le processus de détection à se relancer au démarrage sans qu'il ne reste aucun bagage du processus de clonage, à savoir l'ancienne  NIC adresse(s) MAC.

Je dois tout le temps le faire avec mes clones CentOS 6 sur VMware ESXi 4.1. C'est un kudzu de la douleur qui ne ferait que le gérer dans le passé avec les versions précédentes.

5
5
5
2012-11-19 06:44:46 +0000

Vous pouvez également utiliser cet outil (Il ne s'agit pas d'un outil GUI, mais de son outil TUI, Interface utilisateur en mode texte)

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

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

Ensuite cet écran apparaîtra

Sélectionnez Configuration du périphérique et appuyez sur Entrée

Ensuite cet écran apparaîtra

Ici eth0 se réfère /etc/sysconfig/network-scripts/ifcfg-eth0

Quelle que soit la modification effectuée dans eth0 qui affectera le fichier ifcfg-eth0

4
4
4
2013-03-13 00:47:09 +0000

Modifier les fichiers après le clonage ne fonctionnerait pas dans mon cas d'utilisation, j'ai donc résolu le problème comme suit :

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

/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 modifiez l'adresse Mac, la mise en réseau fonctionne car l'adresse Mac n'est jamais écrite dans aucun des deux fichiers.

4
4
4
2012-11-19 06:21:11 +0000

Supprimez le fichier de règles persistantes :

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

Modifiez ifcfg-eth0 :

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

ENLEVEZ complètement la ligne HWADDR (ou modifiez-la pour qu'elle corresponde à l'adresse MAC de votre nouveau NIC).

Redémarrez votre système :

reboot

Si vous modifiez à nouveau le NIC, répétez simplement les étapes 1 et 3.

3
3
3
2013-05-21 15:57:29 +0000

Je crée et supprime tellement de machines virtuelles CentOS 6 que j'ai écrit du Bachfu pour fixer l'eth0 sur le 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
1
1
1
2013-09-01 01:17:52 +0000

Je n'utilise pas Vmware mais KVM avec virsh - c'est ce que j'ai fait.

J'ai créé une image “de base” avec CentOS 6.4, c'est la source de tous mes clones. Après le premier démarrage, j'ai créé un script comme celui-ci

cat /etc/init.d/manglemac 
#!/bin/bash
#
# manglemac This starts and stops mangle-mac
#
# chkconfig: 2345 11 88
# description: This obtains tha mac of eth0 and writes into ifcfg

mac=$(grep -H . /sys/class/net/*/address | grep eth0 | cut -d ':' -f2-10)
match_mac=$(grep $mac /etc/sysconfig/network-scripts/ifcfg-eth0)

if [-z "$match_mac"];
then
   echo HWADDR=$mac >> /etc/sysconfig/network-scripts/ifcfg-eth0
fi

Je l'ai ajouté à init avec

chkconfig --add manglemac

J'ai supprimé toutes les références dans /etc/sysconfig/network-scripts/ifcfg-eth0 de HWADDR ou UUID, j'ai également supprimé les règles udev de /etc/udev/rules.d/70-persistent-net.rules.

A ce stade, j'ai arrêté la machine et commencé à cloner. Tout fonctionne bien. Le script que j'ai fait est très simple mais fonctionne bien, cependant il fait quelques suppositions sur votre configuration pour le réseau (eth0 seulement).

J'espère que cela vous aidera.

1
1
1
2011-09-06 21:04:42 +0000

Si votre seul problème est l'adresse mac, vous pouvez exécuter quelque chose de similaire à

TEST=`ifconfig | grep eth | awk '{ print $5}'`; sed "s/HWADDR.*/HWADDR\=$TEST/g" ifcfg-eth0 > TMP; mv TMP ifcfg-eth0

Pour mettre à jour l'entrée HWADDR.

Edit: Comme il semble que le problème soit un changement réel de matériel virtuel, vous pouvez essayer ce qui suit. (non testé et référencé à partir de ici )

éditer /etc/sysconfig/hwconf et supprimer toute référence à la carte réseau précédente et relancer kudzu pour voir si elle détecte le nouveau matériel. Il se peut que vous deviez redémarrer.

0
0
0
2015-05-01 00:14:57 +0000

J'avais affaire à plusieurs NIC et rien de ce qui précède ne me convenait (VMware Fusion 7/VMware 6 et moins), alors j'ai écrit un script. L'archive est ici .

Voici le README qui l'accompagne :

  • Cette archive et les scripts associés modifieront l'adresse MAC de votre machine VMware CentOS 6 ou inférieure récemment clonée (pas de systemd. )
  • Tout ce que vous devez faire dans la machine que vous clonerez à partir d'une seule fois :

Problèmes :

  • Je ne sais pas pourquoi, mais parfois vous devez redémarrer le réseau une seconde fois pour que toutes les cartes d'interface réseau soient reconnues :

  • Cela n'a pas été un problème pour moi, mais le script repose sur le fait que lshw renvoie les cartes d'interface réseau dans le même ordre que ifcfg-eth?

  • Cela suppose que votre ou vos cartes d'interface réseau sont e1000. La norme VMware ?

  • Il pourrait être intéressant de changer la numérotation de vos fichiers ifcfg-eth? pour qu'ils correspondent à ce que lshw renvoie dans le cas peu probable où cela ne fonctionnerait pas et que vous faites beaucoup de machines avec beaucoup de cartes d'interface réseau.

  • Avec une carte d'interface réseau, cela devrait fonctionner. Après le premier démarrage, le /usr/bin/change_mac_address.pl est déplacé vers le /usr/bin/change_mac_address.pl.old

  • Cela l'empêchera de fonctionner à chaque redémarrage, même s'il ne fera rien s'il n'y a pas de MACDADDY ? dans votre ifcfg-eth?

  • Vous pouvez aussi et devriez probablement exécuter