Hacer visible en nuestra red una máquina virtual con VirtualBox (o comunicar entre si dos de estas)

herramientas Cuando creas una máquina virtual con VirtualBox, con las opciones de red por defecto, esta cuenta con conexión a cualquier recurso en la red al que tenga acceso la máquina anfitriona (conexión a Internet incluida) y puede compartir archivos con ella si configuramos la opción de «Directorios Compartidos», pero entre máquina anfitriona y máquina virtual no existe ninguna otra posible conexión. La máquina virtual tampoco es accesible de ninguna forma desde otra máquina de nuestra red local y si abrimos dos máquinas virtuales en la misma máquina anfitriona tampoco pueden verse entre si. Esto puede cambiarse fácilmente para que cualquier máquina virtual que creemos sea totalmente visible, tanto por la máquina anfitriona, como por cualquier otra máquina física (o virtual, en esta u otra máquina anfitriona configurada por este mismo método) como si se tratase verdaderamente de una máquina real conectada de forma independiente a nuestra red. Nos ponemos a ello.

Partimos de una máquina anfitriona con Debian o una distribución derivada (Ubuntu, Kubuntu, etc.), que ya tiene Virtualbox instalado y cuenta con una única interfaz de red (eth0). Lo primero que tenemos que hacer es instalar el paquete bridge-utils.

josemaria@valeria:~$ sudo apt-get install bridge-utils

Luego editamos la configuración de nuestro interface ethernet (/etc/network/interfaces) y lo dejamos de esta forma:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto br0
iface br0 inet dhcp
bridge_ports eth0 vbox0 vbox1

Las líneas en negritas son las que hemos añadido. En ellas estamos definiendo dos interfaces virtuales (vbox0 y vbox1) que están ligados a nuestro interfaz físico real (eth0) y que tomaran una IP de forma dinámica a través de un servicio DHCP que debemos de tener disponible en nuestra red. Esto no quiere decir que no podamos ponerles direcciones fijas a nuestras máquinas virtuales: Estas tendrán disponible este servicio, si existe, desde su arranque pero luego nosotros podremos configurarlas perfectamente mediante IP’s estáticas sin ningún problema, ya dentro del sistema operativo que hayamos elegido para ellas. Por cierto: hemos creado dos interfaces por que es lo que necesitamos (yo, en concreto, quiero hacer prácticas para los chicos con un windows 2003 server y un windows xp que deben de verse para que el segundo se conecte al dominio definido por el primero) pero, lógicamente, podríamos definir una sóla. O diez 🙂 .

Ahora editamos el archivo de configuración de interfaces de virtualbox (/etc/vbox/interfaces) y añadimos las siguientes líneas:

vbox0 josemaria br0
vbox1 josemaria br0

En ellas redefinimos los dos nuevos interfaces virtuales que hemos creado (vbox0 y vbox1) y declaramos el usuario de la máquina anfitriona que tiene permiso para usarlos.

Ya casi estamos. Ahora reiniciamos, por este orden, la interfaz de red física de nuesta máquina anfitriona y luego virtualbox:

josemaria@valeria:~$ sudo /etc/init.d/networking restart
* Reconfiguring network interfaces...
(...)
bound to 192.168.1.10 -- renewal in 39314 seconds.
[ OK ]
josemaria@valeria:~$ sudo /etc/init.d/virtualbox-ose restart
* Shutting down VirtualBox host networking
* done.
* Starting VirtualBox host networking
* done.

Luego iniciamos Virtualbox y configuramos la red de las máquinas que queremos hacer accesibles de esta forma:

Configurando VirtualBox con bridge-utils

Y con esto ya si que hemos acabado. En el siguiente pantallazo (ampliable si hacéis click en él) podéis ver como mis dos máquinas virtuales se ven perfectamente (la XP tomando su IP mediante DHCP, el 2003 server con IP estática configurada manualmente), la autenticación de dominio entre ellos se ha hecho perfectamente y ambas son visibles también desde la máquina anfitriona.

Configurando VirtualBox con bridge-utils

ACTUALIZACION: Si has llegado aquí a través de Google, olvídate de ello. Virtualbox tiene ya un modo bridge de forma automática con sólo escoger la opción adecuada en la configuración de red. Lo hemos contando aquí.

32 comentarios

  1. Hola amigo que tal??? Tengo una consulta a ver si me puedes ayudar, estoy en un proyecto y necito conectar mi maquina real(afitriona,Sist.Operativo XP) a un dominio que esta en la maquina virtual(Sist.Operativo Windows Server 2008), como deberia ser la configuración de virtualbox para lograr que haya red entre la local y la virtual y asi poderme unir al dominio.

    Gracias, ojala y puedas ayudarme me seria de mucha utilidad

  2. Hola. Es interesante estos pasos que has puesto. Te comento:
    Tengo un Packard Bell con Ubuntu Hardy instalado. Acabo de instalar Virtualbox 2.2 desde la pag oficial, no la de los repositorios. Tengo una vm con Debian eth y otra con win xp. He hecho los pasos que has indicado. En esta versión de virtualbox para ubuntu, en configuración de red de las vm, me sale para elegir la interfaz br0 pero no me aparece ninguna de las interfaces vbox0 ni vbox1. En las 2 vm tengo acceso a internet con la ip de la máquina anfitrion y configuradas las ip dinámicamente por defecto, y en la maquina anfitrion tambien.
    En la máquina anfitrión al ejecutar /etc/init.d/networking restart en una de las líneas aparece esto:
    vbox0: ERROR while getting interface flags: No such device
    vbox1: ERROR while getting interface flags: No such device
    ¿ Puedes explicar con más detalle para hacer que se vean las dos vm entre si y que tengan a la vez acceso a internet? Es que quiero hacer unas pruebas haciendo que Debian haga de servidor web, servidor ftp, etc, y el xp como cliente y que a la vez tengan acceso a internet. GRacias

  3. Saludos Jose, muy bueno el tuto antes que nada gracias por explicarlo bien, ahora tengo un inconveniente despuesd de instalar el bridge-utils modifique mi archivos interfaces y agregue lo del br0 (otra cosa en este archivo no me salen las interfaces eth0 solo tengo auto lo, iface lo inet loopback nada mas) guardo y cuando reinicio el servicio de networking me sale interface vbox0 vbox1 does not exist, … bound to xxx.xxx.xx.x(mi ip) renewal in 35536 seconds [ok] y para reiniciar el servicio del virtualbox fue en /etc/init.d/vboxdrv restart
    cuando fui a la configuracion de red de la maquina virtual en attach to: host interface solo me sale abajo una lista para escojer con eth0 wlan0 y br0 no me salen los vbox0 o 1 (otro detalle en mi /etc/vbox estaba vacio yo cree el archivo interfaces con las lineas que mencionaste en el tuto)
    ¿Qué podre hacer?

  4. Gracias José. Puede que la diferencia en el nombre del daemon sea debida a un cambio en la nomenclatura que han usado en Ubuntu (a veces pasa, como por ejemplo con el servicio DHCP) pero en este caso creo que se debe a que yo no uso el paquete que distribuye Ubuntu sino que descargo el instalador directamente de las páginas de Sun.

  5. Excelente articulo la verdad antes habia probado con otros tutos y nada de nada y todos raros pero con este sencillo al grano, solo aclaro que en la ultima version de vbox para debian la parte de reinicio de red virtual box es: /etc/init.d/vboxnet restart
    De ahi lo demás igual muchas gracias de verdad

  6. El problema de que no puedas navegar desde la máquina virtual y si desde la máquina anfitrión seguro que es por la configuración del cable modem, ya que por ejemplo en euskaltel que utiliza cable modem está limitado a una conexión, por lo que solo permite un ordenador, y al resto simplemente no les da salida a internet, por lo que si quieres tener salida a internet con ese cable modem y varios ordenadores tendrías que poner o bien un router o algo que le haga creer al modem cable que está dando acceso a internet a un solo ordenador.

    Esto lo tengo comprobado en varias ocasiones, y funciona.

    Espero que te sirva de ayuda, un saludo.

  7. Me alegro mucho Pablo y sigo pensando, por lo que cuentas, que el hecho de que tengas tantos inconvenientes se debe al cable modem. Yo no he trabajado nunca con esos chismes pero me da que no deben de ser muy buenos para estas cosas.

  8. Hola José María, despues de probar y probar y reiniciar y reiniciar… funciono!!! La maquina real tiene internet y hago ping a la virtual y anda.. de la virtual a la real y anda… lo unico es que no tengo internet en la maquina virtual ahora…
    Pero bueno, funciona para las pruebas que yo quiero asi que no me inteeresa tanto.
    Otra cosa, el tema ahora es que cada vez que el cablemodem cambia su ip, tengo que cambiar mi ip en la maquina virtual… y es medio engorroso cambiar todas las veces pero para pruebas me sirve bien…
    Gracias por la ayuda…
    Saludos

  9. Pablo: si la máquina virtual es un XP y tiene su cortafuegos instalado «de serie» es normal que no se pueda llegar a ella con un ping. Si es así, deshabilítale el cortafuegos y prueba.

    En cuanto al motivo por el que las máquinas virtuales no reciben una IP del DHCP puede que sea una limitación del cable modem porque si se la asignas manualmente puedes llegar a ella. Puedes hacerlo así y debería de servirte igual.

    Y nos queda el problema de porqué se te queda sin internet la máquina anfitriona… Pero podrías empezar por esto y a ver que tal.

  10. Hola José María
    Te voy respondiendo…
    ¿Te asigna IP el DHCP a la máquina real?
    – Al br0 si y al eth0 tambien
    ¿Y a las virtuales?
    – No
    ¿Están en el mismo rango?
    – Nose, el dhcp no tendria q configurarla automaticamente el rango? o estoy equivocado?

    Nose que pasara, el cablemodem me asigna la ip del eth0 que luego lo toma el br0, despues creo el vbox0, en un momento asigne una ip a la maquina virtual con mascara de red y todo… pero sin dns, hice ping a mi ip de la maquina real y andaba bien, pero desde mi maquina real a la virtual el ping no andaba, dentro de todas esas pruebas me habia quedado sin internet en la maquina real, pero haciendo ifconfig se veia q entraban y salian datos…
    Nose que mas decirte… soy un novato todavia

  11. Hola Pablo. No me das pistas para que pueda saber que es lo que te está fallando. El método este te aseguro que funciona tal y como se cuenta porque todo lo que ves son pantallazos de mis máquinas. ¿Te asigna IP el DHCP a la máquina real?¿Y a las virtuales?¿Están en el mismo rango?

  12. Senpai: lo que envías de vmware tiene muy buena pinta. Y no, no se si se puede hacer algo similar con VirtualBox, pero prometo investigar. Por cierto: tienes una web con un aire algo «añejo» pero con un contenido muy interesante.

  13. Hola
    Segui las instrucciones tal como lo pusiste, el tema es que no veo las maquinas virtuales y tambien me quedo sin internet en la maquina real. Yo tengo internet por cablemodem y me da la ip para eth0, lo que quiero es ver mis maquinas virtuales desde mi maquina real y mis maquinas virtuales tambien vean mi maquina real y que ambas, maquina virtual y real, tengan internet.
    Lei mucho y no encuentro solucion alguna…

    Saludos…
    Pablo

  14. Hola Jose Maria:
    Gracias por tu articulo, yo encontre otra forma de hacer algo similar en (http://danieljay20.wordpress.com/2007/12/26/configuracion-de-red-con-ips-estaticas-en-virtualbox/).
    Pero llevo tiempo buscando como hacer con VirtualBox algo que hace VMWare (http://www.marblestation.com/blog/?p=607), sería super interesante poder hacerlo, pues de esa manera se puede tener un usuario «windows» con muchos más recursos, ya que no carga el Gnome, ni otros servicios…

    Un saludo de Senpai

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies