moeblog

red en modo bridge en virtualbox

by moebius on Feb.29, 2008, under Ubuntu

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

:, ,

5 Comments for this entry

  • Jose Manuel

    En mi caso sigue sin funcionar, pero supongo que en tu explicación falta el sudo ifup br0 por si a alguien le sirve.

  • moebius

    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.

  • Gabriel

    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.

  • Daniel

    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

  • Jose Pablo Rojas

    Yo tengo el mismo problema de Daniel
    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

Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!