red en modo bridge en virtualbox
Ultimamente soy un feliz usuario de virtualbox, pero había una cosa que me estaba haciendo la puñeta, no conseguía hacer funcionar la red de las máquinas virtuales en modo bridge con la red real, solo en modo NAT. Es un coñazo cuando quieres acceder a esas virtuales desde otras máquinas en tu red local. El error que me daba es:
Unknown error creating VM (VERR_HOSTIF_INIT_FAILED).
VBox status code: -3100 (VERR_HOSTIF_INIT_FAILED).
Result Code: 0x80004005
Component: Console
Interface: IConsole {1dea5c4b-0753-4193-b909-22330f64ec45}
Investigando un poco he llegado a esta solución. Es solo valida para la version ose (open source edition, virtualbox-ose en ubuntu).
Instalamos las herramientas de uml (para controlar las interfaces virtuales con tunctl) y las herramientas de bridge:
sudo apt-get install bridge-utils uml-utilities
Definimos una interfaz de bridge en /etc/network/interfaces
auto lo
iface lo inet loopback
auto br0
iface br0 inet dhcp
bridge_ports eth0
up chmod 0666 /dev/net/tun
auto eth0
iface eth0 inet manual
Y creamos 2 scripts que seran los encargador de conectar y desconectar las interfaces virtuales:
- /usr/local/sbin/tapup
#!/bin/bash
# TapUP
# Script to automaticlly add tap interface for VirtualBox requires gksu
# Also requires the the SUID bit is set on VBoxTunctl
# as root: chmod +s /usr/bin/VBoxTunctl
# Andrew Niemantsverdriet 12/23/07
function log {
echo "$1" >> /tmp/vboxtun.log
}
# Find the current user id
userid=`id -u`
# Create TAP interface for current user and add interface to bridge
log "Creando el tap con el usuario: $userid"
#tapdevice=`VBoxTunctl -b -u $userid`
tapdevice=`gksudo tunctl -u $userid 2>&1 | cut -f 2 -d " "| tr -d "'"`
log "Creado el dispositivo: $tapdevice"
gksudo /sbin/ifconfig $tapdevice up
gksudo /usr/sbin/brctl addif br0 $tapdevice
echo $tapdevice
- /usr/local/sbin/tapdown
#!/bin/bash
# TapDown
# Script to remove tap interface once virtual machine is closed
# Andrew Niemantsverdriet 12/23/07
# Remove interface from bridge and delete tap device
gksudo /usr/sbin/brctl delif br0 $2
gksudo tunctl -d $2
#VBoxTunctl -d $2"
Ahora solo nos queda, en VirtualBox editar la configuración de red de la máquina virtual, elegir conectar a: Interfaz Afitrión y en la parte de Configurar aplicación (menuda traducción
) poner: /usr/local/sbin/tapup y en terminal aplicación: /usr/local/sbin/tapdown
En mi caso sigue sin funcionar, pero supongo que en tu explicación falta el sudo ifup br0 por si a alguien le sirve.
Cierto, se me pasó por que por el camino yo reinicié la máquina.
Gracias por el apunte. Tengo que volver a hacerlo en otra máquina y aprovecharé para verificar y mejorar la receta.
Estoy pro probarlo, tengo un unico problema. necesito que funcione en modo bridge y con IP fija, me imagino que es posible teniendo en cuenta ese cambio en el /etc/network/interfaces, pero no estoy seguro al respecto. Si conoces como hacerlo te agradeceria me lo comentes.
De todas maneras, lo voy a probar (Necesito hacerlo SI o SI) y si lo saco funcionando comento, para ampliar.
Sdos.
por alguna razon no puedo aun dar con el resultado esperado. Segui las indicaciones al pie de la letra y me arroja el siguiente error
Failed to initialize Host Interface Networking.
VBox status code: -3100 (VERR_HOSTIF_INIT_FAILED).
Código Resultado:
0×80004005
Componente:
Console
Interface:
IConsole {d5a1cbda-f5d7-4824-9afe-d640c94c7dcf}
Alguna idea??
Gracias