Servidor Virtualizado con conexión NAT (VirtualBox y Windows)
————– Actualización ————–
Aunque el método usado en este artículo sigue siendo válido, con las nuevas versiones de VirtualBox ya es posible hacerlo todo desde el menu gráfico, cosa que se agradece bastante.
———————————————–
Últimamente, es bastante común montar servidores en máquinas virtuales y ese fue el caso que me ha llevado a crear este pequeño script que, en esta ocasión, es para sistemas Windows y con el conocido sistema de máquinas virtuales VIRTUALBOX.
En este mismo sistema, al igual que en muchos otros, existen varias opciones para la configuración de las tarjetas de red aunque para este caso en concreto nos centraremos en la opción por defecto y la tarjeta que, al menos antes, siempre se habilitaba por defecto, al menos en mi caso, que siempre es conexión mediante NAT y con la tarjeta PC NET.
Antes de nada diré que si ya está familiarizado con el NAT puede saltarse las siguientes lineas ya que, por si hay alguien a quien solamente «le suene» un poco o que directamente desconozca que es o como funciona, trataré de hacer una pequeña explicación.
Lo primero, como siempre es tener la maquina virtual funcionando (Evidentemente ;-)) y una vez tengamos la conexión mediante NAT, deberíamos poder conectarnos a Internet desde el sistema virtualizado sin ningún problema ni paso adicional que configurar la conexión en dicho sistema como si fuera una instalación física más, es decir, añadiendo una IP, máscara, puerta de enlace y DNS en el caso de que nos vayamos a conectar con una dirección estática o simplemente activando DHCP si tenemos algún dispositivo que nos permita una configuración de IPs dinámica. Sea cual sea el modo de conexión, nos es indiferente a la hora de montar el servidor virtualizado siempre y cuando la IP de nuestra máquina física, es decir, la que alberga la virtual tenga una IP fija o algún sistema que nos permita llamarla siempre de la misma forma aún siendo dinámica (Por ejemplo, algún sistema similar a DynDNS, NoIP de cara a internet o simplemente un router que de la posibilidad de asociar una dirección MAC a una direcc concreta de forma que aunque este configurado todo por DHCP siempre de la misma a la misma máquina ).
Se preguntará ¿¿Porque es necesario esto sobre todo cuando ya me conecto a internet?? pues bien, porque ahora mismo la máquina virtual conecta con «hacia fuera», por decirlo de alguna manera, pero no admite las peticiones que se le hagan desde la red como podrían ser las que se hacen a cualquier servidor así que es necesario realizar NAT (Network Address Translation) de forma que para acceder a este servidor virtualizado tendremos habilitar la correspondiente configuración en la maquina física que lo alberga para que al apuntar a esta (MAquina física) nos redirija a la máquina virtual. Como explicarme nunca fue mi fuerte, vamos con los ejemplos:
Tenemos los siguiente:
Máquina VIRTUAL:
– IP: 10.0.2.15
– Servidor WEB (Puerto 80)
– Servidor SSH (Puerto 22)
Máquina FISICA (Sobre la que corre la Virtual)
– IP: 192.168.1.10
http://192.168.1.10
ssh 192.168.1.10
VBoxManage setextradata MAQUINA "VBoxInternal/Devices/pcnet/0/LUN#0/Config/PROCESO/"PUERTO O PROTOCOLO"" PUERTO
VBoxInternal/Devices/pcnet/0/LUN#0/Conf...
VBoxManage list vms
- Nombre de servicio y puerto de la máquina fisica
- Nombre del servicio y puerto de la máquina virtual
- Nombre del servicio y PROTOCOLO usado (Normalmente TCP)
Como pequeña nota, solo queda añadir que si tenemos algun sistema de FIREWALL configurado ya sea en la maquina física como en la Virtual, tendríamos que hacer los pasos pertinentes para que no bloquease el tráfico por lo puertos que haya pensado utilizar.
Pues bien, esa fue la teoría y ahora, el como aplicarla ya es tarea suya. Puede simplemente experimentar por su cuenta con el comando basándose esta breve explicación y, como siempre, también tiene la opción cómoda de descargarse el SCRIPT que he creado para automatizar todo el proceso. He de decir que, al menos en mi caso, es lo que estoy usando siempre gracias a la comodidad y rapidez del mismo.
Este Script no tiene que editarlo para cambiar puertos, protocolo o el nombres de servicio ya que se lo preguntará durante la ejecución del mismo. Eso si, funciona teniendo en cuenta que VirtualBox estará instalado en la unidad C: y el directorio por defecto, es decir:
C:\Archivos de programa\Oracle\VirtualBox
Si ese no fuera su caso, entonces si tendría que editarlo para modificar las primeras lineas, pues son las únicas que hacen referencia a dicha carpeta. Por supuesto, tambien es totalmente libre de editarlo para ver como está hecho 😉
Enlace de descarga del SCRIPT: SCRIPT VIRTUALBOX a SERVER
Un saludo.
leer más