VMWare: Clonar VM Linux problema red

Dependiendo de la distribución de Linux que utilicemos, nos podemos encontrar con que al iniciar una máquina virtual Linux que ha sido clonada, no se inicien los interfaces de red de la misma.

Nos damos cuenta que al ejecutar ifconfig, solo aparece el interfaz correspondiente al loopback:

VMWare: Clonar VM linux NIC

El problema reside en el cambio de MAC (media access control) de la NIC (network interface controller):

Concepto importante: La MAC de la NIC cambia al clonar una VM:

Cuando procedemos a realizar una clonación de una VM desde VSphere Client conectado a nuestro Virtual Center, la máquina virtual clonada se le cambiará la MAC de los interfaces de red, de esta forma se consigue que al iniciar la VM clonada, no tengamos dos NICs con la misma MAC en la red.

También ocurre si realizamos una clonación "a mano", por ejemplo, utilizando este método:


También ocurre lo mismo, si hacemos un "copiar-pegar" de una VM con VMWare Workstation: Al iniciar la copia realizada, nos preguntará: "I moved it" o "I copied it", si contestamos "I copied it", la MAC, será cambiada, podemos ver el detalle en el siguiente enlace:


Consecuencias del cambio de la MAC en nuestro sistema operativo Linux:

1) Las reglas udev, en sistemas Linux:

Udev es un administrador de dispositivos que encontraremos en kernels Linux 2.6 o superiores.

Udev, utilizar reglas para identificar hardware nuevo en el sistema, las reglas residen en el directorio:  /etc/udev/rules.d

Si encontramos el directorio /etc/udev/rules.d en nuestro sistema operativo Linux, significa que este, está utilizando udev.

Si examinamos las reglas de los interfaces de red de una VM, veremos como figura la dirección MAC para cada interfaz de red.

Ejemplo de una VM con Linux y dos interfaces de red:

[root@LINUX1 rules.d]# cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a2:6e:f1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a2:6e:fb", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Si clonamos la VM, veremos dos nuevos interfaces dentro del fichero, con dos nuevas MACs.

Para solucionar el problema, basta con eliminar las reglas udev:

rm -f /etc/udev/rules.d/70-persistent-*

2) La MAC en los interfaces de red:

También dependiendo de la distribución de Linux que utilicemos, nos podemos encontrar con que la tengamos la MAC configurada en el fichero correspondiente al interfaz de red:

Por ejemplo, el sistemas Redhat/Centos, bastará con ejecutar:

cat /etc/sysconfig/network-scripts/ifcfg-eth* |grep HWADDR

Si nos devuelve MACs, significará que tenemos interfaz de red con la MAC apuntada.

Para solucionar el problema, bastará con comentar (utilizando: #) o borrar la dirección MAC del interior del fichero de configuración del interfaz.

Para levantar un interfaz de red, no es necesario que en la configuración del interfaz figure el parámetro HWADDR apuntando a una dirección MAC, pero si figura, la dirección MAC ha de ser la correcta.

Es por este motivo, que podemos eliminar o comentar la linea, sin problemas.

3) El UUID del interfaz de red:

Igual que con el parámetro HWADDR, debemos eliminar o comentar el parámetro UUID del interior del del fichero de configuración del interfaz de red.

Con estas tres acciones, conseguiremos que la VM clonada, inicie los interfaces de red sin problemas.

---

Si vamos a utilizar plantillas con sistemas operativos Linux, otras acciones que podemos realizar, serian:

Antes de clonar:

0) Eliminamos reglas udev // Eliminamos HWADDR y UUID de los interfaces de red (puntos 1,2 y 3 de este post).

1) Vaciamos la caché de yum (sistemas RedHat/CentOS):

yum clean all

2) Borramos claves SSH:

rm –f /etc/ssh/*key*

3) Borramos historial:

rm -f /root/.bash_history
unset HISTFILE

4) Borramos logs:

Decidimos los logs borrar dentro de:

/var/log/

Después de clonar:

1) Al iniciar la VM clonada, editar el nombre de máquina (sistemas RedHat/CentOS):

/etc/sysconfig/network

No hay comentarios:

Publicar un comentario