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

¿Cómo se detecta automáticamente una nueva tarjeta de red en el CentOS 6 / RedHat?

Estoy usando el CentOS 6 en un entorno virtual. Al clonar una versión virtual de CentOS, los viejos adaptadores eth son “removidos” y reemplazados por nuevos y direcciones MAC de red. Sin embargo, los archivos ifcfg-ethn todavía existen. Estoy tratando de averiguar cómo hacer que CentOS vuelva a escanear y recrear automáticamente los adaptadores de red / archivos eth, como lo hizo en la instalación.

De lo contrario me quedo con el tedioso proceso como se describe aquí: http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

Sé que hay una manera rápida de hacer esto en la GUI, pero estamos usando un servidor así que la GUI no se aplica en este caso. ¿Ayuda?

Editar: @OldWolf sugirió Kudzu, sin embargo Kudzu ha sido eliminado a partir de Centos 5 así que prefiero evitarlo. Hay un procedimiento que Linux ejecuta en la instalación inicial, ¿puede alguien ayudarme a averiguar qué es para que pueda activarlo manualmente?

Respuestas (8)

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

Con el CentOS 6 todo está en manos de la UDV ahora. Entra en /etc/udev/rules.d y borra el archivo 70-persistent-net.rules y reinicia. Si lo abres antes de la mano, lo que más te gustará es ver el original NIC MAC listado como eth0 y el nuevo como eth1.

Ahora necesitas editar /etc/sysconfig/network-scripts/ifcfg-eth0 y actualizar manualmente al MAC de tu nueva tarjeta NIC.

Borrar el archivo obliga a que el proceso de detección se ejecute de nuevo en el arranque, sin que quede nada del proceso de clonación, es decir, la(s) vieja(s)

Tengo que hacerlo con mis clones CentOS 6 en VMware ESXi 4.1 todo el tiempo. Es un dolor kudzu sólo lo manejaría en el pasado con las versiones anteriores.

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

También puedes usar esta herramienta (No es una herramienta GUI, es una herramienta TUI, Interfaz de usuario basada en texto)

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

Escriba el comando de arriba y presione Enter

Luego aparecerá esta pantalla

Seleccione la configuración del dispositivo y presione Enter

Luego aparecerá esta pantalla

Aquí eth0 se refiere a /etc/sysconfig/network-scripts/ifcfg-eth0

Cualquiera que sea la edición hecha en eth0 que afectará al archivo ifcfg-eth0

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

Modificar los archivos después de clonar no funcionaría para mi caso de uso, por lo que resolví el problema de la siguiente manera.

Necesitas editar dos archivos, eliminando las referencias a las direcciones Mac en cada uno:

/etc/sysconfig/network-scripts/ifcfg-eth0 - eliminar la línea HWADDR=.

/etc/udev/rules.d/70-persistent-net.rules - eliminar de ATTR{address}== hasta e incluyendo la siguiente coma.

Ahora cuando clonas la VM y cambias la dirección Mac la red funcionará ya que la dirección Mac nunca se escribe en ninguno de los dos archivos.

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

Borre el archivo de reglas persistentes:

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

Editar ifcfg-eth0:

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

Elimine la línea HWADDR por completo (o cámbiela para que coincida con la nueva dirección MAC de su NIC).

Reinicie su sistema:

reboot

Si vuelve a cambiar la NIC, repita los pasos 1 y 3.

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

Creo y borro tantas máquinas virtuales CentOS 6 que escribí un poco de Bashfu para arreglar el eth0 sobre la clonación en 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

No estoy usando Vmware sino KVM con virsh - esto es lo que he hecho.

Creé una imagen ‘base’ con CentOS 6.4, esta es la fuente de todos mis clones. Después del primer arranque creé un script como este

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

Lo añadí a init con

chkconfig --add manglemac

Borré todas las referencias en /etc/sysconfig/network-scripts/ifcfg-eth0 de HWADDR o UUID, también borré las reglas udev de /etc/udev/rules.d/70-persistent-net.rules.

En este punto apagué la máquina y comencé a clonar. Todo funciona bien. El script que hice es muy simple pero funciona bien, sin embargo hace algunas suposiciones sobre su configuración para la red (sólo eth0).

Espero que ayude.

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

Si tu único problema es la dirección del mac, puedes ejecutar algo similar a

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

Para actualizar la entrada HWADDR.

Edit: Como parece que el problema es un cambio real en el hardware virtual puedes intentar lo siguiente. (no probado y referenciado desde aquí )

editar /etc/sysconfig/hwconf y eliminar toda referencia al NIC anterior y volver a ejecutar kudzu para ver si detecta el nuevo hardware. Puede que tengas que reiniciar.

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

Estaba tratando con múltiples NIC y nada de lo anterior me funcionaba (VMware Fusion 7/VMware 6 e inferior), así que escribí un guión. El tarball es aquí .

Aquí está el README que viene con él:

  • Este tarball y los scripts relacionados cambiarán la dirección MAC de su máquina recientemente clonada VMware CentOS 6 o inferior (no systemd. )
  • Todo lo que necesitas hacer en la máquina lo clonarás de una sola vez:

Problemas:

  • No estoy seguro de por qué, pero a veces necesitas reiniciar la red una segunda vez para que se reconozcan todos los NICs:

  • Esto no ha sido un problema para mí, pero el script se basa en que lshw devuelva los NICs en el mismo orden que ifcfg-eth?

  • Esto asume que tu(s) dispositivo(s) de NIC son e1000. ¿Estándar de VMware?

  • Podría valer la pena cambiar la numeración de vuestros archivos ifcfg-eth? para que coincidan con lo que lshw está devolviendo en el improbable caso de que no funcione y estéis haciendo muchas máquinas con muchos NICs.

  • Con un solo NIC debería funcionar.

  • Después del primer arranque el /usr/bin/change_mac_address.pl se mueve a /usr/bin/change_mac_address.pl.old

  • Esto evitará que se ejecute en cada reinicio aunque no hará nada si no hay un MACDADDY? en tu ifcfg-eth?

  • También puedes y probablemente deberías ejecutar