Cómo configurar una máquina virtual clonada para evitar que entre en conflicto de red con su máquina origen. Si clonamos una máquina virtual con el sistema operativo que sea (es indiferente) y nos asigna la misma dirección MAC al adaptador de red de la máquina clonada que la original, puede que tengamos problemas de red entre ambas al iniciar la clonada. Mostramos cómo solucionar este problema de forma sencilla en el caso de equipos con Linux.

Escenario inicial para clonar con éxito una máquina virtual (Windows/Linux) y requisitos

Tendremos disponible la infraestructura de virtualización sobre VMware ESXi. El proceso es indiferente para el caso de virtualización en clúster vCenter o host ESXi independiente. Necesitaremos acceso a esta plataforma con usuario y contraseña con permisos suficientes para poder clonar máquinas y editar sus propiedades.

Para la gestión de las máquinas virtuales origen y clon podremos usar o bien el cliente de escritorio VMware vSphere Client o bien la consola web VMware vSphere Web Client. En ambos casos necesitaremos saber la IP del servidor VMware ESXi (o del servidor vCenter) al que nos conectaremos para clonar y editar las propiedades de la máquina virtual.

En el siguiente enlace explicamos cómo instalar VMware vSphere Client:

No explicaremos el procedimiento de clonación de máquina virtual, se puede consultar en el siguiente enlace:

En este artículo supondremos que la máquina virtual original ya ha sido clonada usando cualquier método (Veeam Backup, clonación nativa de VMware desde VMware vSphere Client, etc.).

Cambiar la MAC en un adaptador de red de una máquina virtual VMware ESXi

Cuando clonamos una máquina virtual en VMware ESXi es muy probable que se le asigne al adaptador de red de la máquina clonada la misma MAC que la máquina origen. Aunque cambiemos la IP en la máquina clonada muy posiblemente tendremos problemas de cortes de red tanto en la máquina origen como en la clonada.

El motivo es la tabla de enrutamiento, el protocolo ARP. Los router/switches pueden guardar una tabla de asignación de direcciones IP por MAC. Si hay dos dispositivos con la misma MAC en la red pueden generar problemas de conexión en ambos.

Para solucionar el problema explicamos a continuación cómo cambiar la dirección MAC asignada a un adaptador de red virtual, desde VMware ESXi.

Accederemos a las propiedades de la máquina virtual desde el cliente VMware vSphere que elijamos (web o escritorio). Pulsaremos con el botón derecho del ratón sobre la máquina virtual clonada y elegiremos «Edit Settings»:

Cambiar la MAC en un adaptador de red de una máquina virtual VMware ESXi

El proceso siguiente puede hacerse en caliente, con la máquina virtual clonada encendida, pero recomendamos hacerlo con la máquina apagada.

Tenemos dos opciones para establecer la MAC, una es modificando la MAC actual e introduciendo una de forma manual, como explicamos ahora y la otra (la que recomendamos), es eliminar el adaptador de red y crear uno nuevo para que asigne una MAC nueva de forma automática, que explicamos posteriormente.

Si decidimos modificar la MAC y establecer una manualmente, desplegaremos las propiedades del adaptador de red [1], en el desplegable de MAC Address [2] seleccionaremos «Manual» y en MAC Address VMware nos pondrá el inicio de la MAC (no modificable) en 00:50:56, es el valor que establece para direcciones MAC establecidas manualmente, el resto lo introduciremos nosotros, por ejemplo: 00:50:56:25:33:33, como se muestra en el paso [3] de la imagen siguiente:

Aceptaríamos los cambios y ya tendríamos la dirección MAC establecida para el adaptador, diferente de la MAC de la máquina origen de la clonación.

Otra forma de cambiar la MAC, quizá más drástica pero también la recomendable, es eliminar el adaptador actual de la máquina clonada y volver a agregar un adaptador nuevo (con asignación de MAC automática), como explicamos a continuación.

Si decidimos cambiar la MAC de forma automática en lugar de manual, desde la misma ventana anterior de propiedades de la máquina virtual. En el adaptador de red pulsaremos en el botón X, el que se indica con la flecha en la siguiente imagen, para eliminar el adaptador:

Recomendamos aceptar los cambios, pulsando en OK, en la ventana anterior para que aplique la eliminación del adaptador en la máquina virtual y volver a entrar en las propiedades:

Una vez aplicada la modificación en la máquina virtual (suele tardar unos pocos segundos), lo mostrará en la ventana «Recent Tasks»:

Volveremos a la ventana de propiedades de la máquina, como hemos hecho hasta ahora, para agregar un nuevo adaptador de red. Para ello, en la parte inferior de la ventana de «Edit Settings» de la máquina virtual clonada, en el desplegable de «New device», elegiremos «Network» [1] y pulsaremos en Add [2]:

Nos creará un nuevo adaptador de red. Podremos desplegar sus propiedades [1] para elegir la red a la que se conectará (si hay varias redes elegiremos la que le corresponda) [2]. Elegiremos también el tipo de adaptador (Adapter Type) [3], el recomendable es VMXNET 3, a no ser que queramos otro por motivos de compatibilidad y otros (E1000, VMXNET 2) y en MAC Address dejaremos seleccionado Automatic [3]. Pulsaremos OK para aplicar los cambios:

VMware ESXi asignará la MAC de forma automática una vez que iniciemos la máquina virtual clonada.

Tanto si hemos modificado la MAC de forma manual para el adaptador existente como si hemos agregado un nuevo adaptador tendremos que hacer algunas configuraciones en la máquina virtual clonada, que explicamos a continuación.

Modificaciones en equipos virtuales sobre VMware ESXi con sistema operativo Linux tras cambiar la MAC de un adaptador de red existente

Si hemos optado por cambiar la MAC del adaptador de red existente y establecer una diferente de forma manual seguiremos los siguientes pasos para configurar el adaptador de red en el sistema operativo Linux (en nuestro caso Linux CentOS 7).

Iniciaremos la máquina virtual clonada a la que le hemos modificado la MAC. Para ello pulsaremos con el botón derecho del ratón sobre la máquina virtual y elegiremos «Power on»:

Accederemos a la máquina virtual abriendo una consola desde el cliente web o desde el cliente vSphere de escritorio. Pulsando en «Lauch console»:

En este artículo explicamos cómo acceder a la consola de una máquina virtual desde VMware vSphere Web Client:

Por otro lado, necesitaremos saber la MAC que hemos asignado manualmente al adaptador de red. En cuanto tengamos ese dato accederemos a la consola de la máquina y mostraremos las opciones de red del adaptador. En este otro artículo explicamos cómo mostrar información del adaptador de red:

Editaremos el fichero de configuración del adaptador de red, en nuestro caso /etc/sysconfig/network-scripts/ifcfg-ens160, podremos abrir este fichero con nano o vi:

Si en las propiedades de red aparece el parámetro HWADDR y un valor debemos cambiar el valor por la MAC que hemos establecido manualmente para el adaptador de red. Debe coincidir, de lo contrario no funcionará la red. Si por ejemplo hemos establecido la MAC 00:50:56:25:33:33, tendremos que modificar la línea HWADDR y dejarla de la siguiente forma:

HWADDR=»00:50:56:25:33:33«

Guardaremos los cambios pulsando en Control + W y cerraremos la edición con Control + X. Para que los cambios se apliquen habrá que detener el servicio de red y volver a iniciar, con:

A partir de ahora tendremos el adaptador de red funcionando correctamente.

Modificaciones en equipos virtuales sobre VMware ESXi con sistema operativo Linux tras quitar un adaptador de red y añadir un nuevo adaptador de red con MAC diferente

Si para cambiar la MAC hemos optado por quitar el dispositivo actual de red de la máquina clonada y añadir uno nuevo, únicamente tendremos que iniciar la máquina virtual, como hemos explicado anteriormente, y conectarnos a su consola para comprobar que el adaptador de red ha sido detectado y la configuración de red es correcta.

Si tenemos DHCP en nuestra red, ejecutando el comando ipconfig podremos comprobar si se le ha asignado una IP:

Nota: podemos usar también el comando ip addr.

En este caso, si queremos mantener esta configuración de red, no habrá que hacer nada más, será suficiente con comprobar que las conexiones funcionan correctamente.

En cambio, si no usamos DHCP, podremos establecer la configuración IP manualmente. Comprobaremos que existe un fichero con el nombre ifcfg-… en la carpeta /etc/sysconfig/network-scripts. Podemos hacerlo con el comando:

En el siguiente artículo explicamos más en detalle cómo obtener información de los adaptadores de red y de la red de un equipo Linux CentOS 7:

En nuestro caso el fichero de configuración del adaptador de red es ifcfg-ens160:

Editaremos el fichero para establecer la configuración de red que deseemos:

La configuración por defecto de este fichero en un equipo con Linux CentOS 7 es:

TYPE=Ethernet
BOOTPROTO=dhcp
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=no
ONBOOT=yes

Que tiene activo el DHCP por defecto. Para establecer una IP estática podremos incluir el siguiente contenido en este fichero (un ejemplo de configuración de red con IP estática para Linux CentOS 7):

HWADDR=»00:50:56:11:22:33″
ONBOOT=»yes»

NAME=»ens160″
TYPE=»Ethernet»

BOOTPROTO=»static»
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DEFROUTE=»yes»
PEERDNS=»yes»
PEERROUTES=»yes»
IPV4_FAILURE_FATAL=»no»
IPV6INIT=»yes»
IPV6_AUTOCONF=»yes»
IPV6_DEFROUTE=»yes»
IPV6_PEERDNS=»yes»
IPV6_PEERROUTES=»yes»
IPV6_FAILURE_FATAL=»no»
DNS1=8.8.8.8
DNS2=8.8.4.4

Muy importante tener en cuenta en la configuración anterior que si hemos incluido el parámetro HWADDR, su valor debe coincidir con la MAC del adaptador de red. En caso contrario no funcionará la red del equipo. Y con el parámetro IPV6INIT a yes activamos el soporte para IPv6, en caso de que no lo vayamos a usar podemos desactivarlo cambiando yes por no.

En este artículo explicamos más en detalle esta configuración:

Guardaremos los cambios en el fichero ifcfg-ens160 (en el caso del editor nano pulsando en Control + W y cerraremos pulsando en Control + X).

Para aplicar los cambios tendremos que cerrar el servicio de red:

y volver a iniciarlo

O bien reiniciar el equipo con: