Montar un laboratorio con máquinas virtuales en un host



Supongamos que queremos montar un laboratorio de máquinas virtuales para jugar con servidores y clientes. Varias máquinas virtuales que queremos:

  • que sean visibles desde el host o equipo físico,
  • que sean visibles entre ellas y
  • que además puedan salir al exterior a través del equipo físico. Y es más,
  • queremos que esas máquinas virtuales tengan IP fija ya que al ser servidores no queremos que las IPs bailen

Y Vamos a suponer que tenemos el siguiente escenario:

Un equipo físico conectado a un router por DHCP, cuya ip es 192.168.0.1 y cuyas asignaciones de ips dinámicas son de la red 192.168.0.0/24, con el VMWare player instalado. En VMWare Player por defecto se crea dos interfaces de red VMnet1 como Host-only y VMnet8 para hacer NAT Por defecto también VMnet1 y VMnet8 crean su propio servidor DHCP y si conectamos los interfaces de red de las máquinas virtuales en esos modos (host-only o nat) y en el sistema operativo virtual el interface usa DHCP, entonces tomará esas direcciones.

¿Qué configuración debemos especificar en el adaptador de red físico, en los dos que genera vmware y en los adaptadores de las máquinas virtuales?

Si no hacemos nada, por defecto VMWare nos proporciona una tarjeta de red que utilizará NAT. En un entorno con DHCP en la red física la máquina virtual VMWare lo que hará será solicitar una IP al servidor DHCP. El problema añadido es que queremos EVITAR eso porque vamos a suponer que no tenemos muchas direcciones DHCP libres para asignar. Veamos las opciones:

Los tipos de conexión que ofrecen los interfaces de red VMWare son:

  • Bridging: conecta el interfaz de red de la máquina virtual a la red física. Directamente.
  • Host-only: crea una red interna entre VM
  • Nat: la máquina virtual (o varias de ellas) comparten la IP del host (la máquina física) Puedes quitar el DHCP que se asigna y crear una red entre el host y las máquinas virtuales y se verán entre sí. Esto es lo que vamos a probar en este caso.
El -oculto- configurador de redes de VMWare

Lo que necesitamos es poder configurar esos interfaces virtuales de VMWare, ¿pero cómo? Si estás usando VMWare player por defecto no te saldrá el configurador de interfaces de red VMWare, así que para configurar los servidores DHCP de los interfaces tenemos que hacer la siguiente cosa: Ir a la carpeta de VMWare:


cd C:\Program Files (x86)\VMware\VMware Player>

Y ejecutar lo siguiente:


rundll32.exe vmnetui.dll VMNetUI_ShowStandalone

Eso ejecutará el configurador. Según tu versión del player esto puede variar, así que tendrás que ver artículos como este: http://rednectar.net/2011/07/20/finding-vmnetcfg-exe-in-vmware-player-3-1-4/ o buscar en google por tu caso concreto.

Este es el aspecto del configurador de interfaces de VMWare y ahí es donde podremos meter mano al VMNet8:

El configurador de redes de VMWare

¿Y qué vamos a hacer ahí? Lo primero quitar el DHCP en el caso del NAT. Vamos a configurar que está en una red 192.168.42.0/24 y vamos a hacer una cosa curiosa. Al adaptador VMNet8 le asignaremos 192.168.42.1 con gateway 192.168.42.2 en el configuración de nat diremos que el gateway es efectivamente 192.168.42.2. ¿quién es? pues aparentemente el propio host, la 42.2 no la verá el mismo pero las máquinas virtuales sí.

Detalles de la configuración NAT
Máquina virtual

Ahora en cada máquina virtual pondremos una IP fija de la red 192.168.42.0/24:


ip: 192.168.42.10

máscara: 255.255.255.0

gateway: 192.168.42.2

dns: : 192.168.42.2

Y con eso conseguiremos los objetivos marcados: que se vean entre las virtuales, que se vean con el host y que las virtuales puedan salir a internet a través del host. Nota: para comprobar esa visibilidad he utilizado pings. Si hubieramos usado el modo Host-only conseguiriamos lo mismo salvo la salida a internet. Todas las máquinas eran windows 2012 server y para que el ping respondiera les he bajado el firewall hasta los tobillos a todos, no me gusta pero...

by Pello Altadill 08/31/2013 00:50:13 - 3631 hits

Monitorizando un servidor Windows 2012

Otra cosa no sé pero si queremos monitorizar un servidor windows por herramientas no será. En comparación revisar un linux puede parecer una tarea sencilla porque el sistema es tan simple (todo son procesos y ficheros), que con unos comandos y una revisión del log nos hacemos una idea rápido. En el caso de windows, el sistema dispone de una monitorización gráfica de serie con todo lujo de detalles, cosa que para linux te obligaría a meter cosas tipo RRDtool, mrtg, etc... aunque obviamente, de nad...

by Pello Altadill 08/30/2013 00:55:09 - 669 hits

More »

Windows 2012 Server

Con eso de escribir acerca de linux y de hacer bromas sobre lo horrible que es windows es muy común que de forma inmediata te encasillen como talibán linuxero. Más aún si eres fiel a Debian y despotricas de Ubuntu por estar hecho para ser fácil. Pero lo cierto es que ante la típica pregunta de un comercial de ¿Qué sistema es mejor? o ¿qué lenguaje es mejor? para mí la re...

by Pello Altadill 08/28/2013 23:22:53 - 531 hits

More »

socket.io ...and websockets for all.

Otra de las novedades que trae HTML5 es la de los famosos websockets. El protocolo HTTP funciona de tal manera que no existe una conexión fija entre el cliente y el servidor; el navegador y el servidor se están continuamente lanzando piedras con mensajes, y a veces para simular que la conexión es permanente (una sesión) se acompaña de alguna marca como una cookie. Los websockets nos dan la posiblidad de establecer una conexión fija entre cliente y servidor como la que hay en un IRC o en los ...

by Pello Altadill 08/24/2013 23:11:46 - 543 hits

More »

Alojamiento gratuito de Node.js en openshift

A la hora de desarrollar aplicaciones web tenemos muchos lenguajes donde elegir. Todos ellos funcionarán perfectamente en nuestro equipo local pero claro, ¿qué pasa si queremos publicar nuestra aplicación? ¿Y si además queremos hacerlo gratis? Una de las cosas que más atractivas de lenguajes como php es que lo tienes disponible para todos los sistemas, para todos los sabores de linux y lo que es mejor en infinidad de alojamientos gratuitos, con mysql incluido. Además php funciona de manera muy s...

by Pello Altadill 08/24/2013 15:27:46 - 1368 hits

More »

Ejemplo simple de ContentProvider Android

Un ContentProvider de Android es una especie de BD que una aplicación abre al resto de aplicaciones. Por ejemplo, si hacemos una aplicación con una BD SQLite está solamente estará disponible para la propia aplicación pero la podriamos abrir/ofrecer al resto del sistema a través de un content provider. Pero ojo¿solamente bases de datos? No, los content providers pretenden como su nombre indica proveer contenido y lo mismo puede ser una BD que unos ficheros, que unos datos arbitrarios. Lo peculiar ...

by Pello Altadill 08/23/2013 22:14:09 - 537 hits

More »

ListView personalizado en Android

... que acaba siendo un lector RSS La idea de este proyecto era simplemente probar un poco la personalización de los elementos de un ListView. Pero como eso no es bastante y uno se lía y luego se viene arriba pues lo que he hecho es el típico lector de RSS que carga el contenido del ListView con las últimas noticias de una web. Y la petición y el parseo se hace a la manera de Android, con un AsyncTask. Esto es un poco como cuando haces una ensalada, que dices igual le añado esto, y esto ot...

by Pello Altadill 08/22/2013 21:19:24 - 770 hits

More »

Enviar emails desde php... y que funcione

Ya que acabo de hablar de mandar correos utilizando Spring voy a retomar el tema del envío de correos desde php. Recordaba que en su día había posteado algo al respecto, y debo pedir disculpas si en su día alguien confió de ese post y no le funcionó. Lo que puse ahí mejoraba ligeramente lo que se solía explicar habitualmente pero en muchos escenarios y en años posteriores eso es raro que funcione. De todas formas ese p...

by Pello Altadill 08/22/2013 11:47:19 - 385 hits

More »