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

Enlace para bookmark : Enlace permanente.

Un comentario

  1. Hi terrific website! Does running a blog similar to this take a great deal of work? I’ve virtually no understanding of coding but I had been hoping to start my own blog in the near future. Anyway, if you have any suggestions or tips for new blog owners please share. I know this is off topic but I simply had to ask. Thanks!

Deja un comentario