/*Modificado el 14/08/2009*: Aclaración de conceptos/
/*Modificado el 20/08/2009*: Aclaración de conceptos/
Tirando de aquí y allí por fin he conseguido enterarme cómo configurar una máquina virtual integrada en la red nativa del host. Hago la correspondiente transferencia de conocimientos.
Tras instalar las utilidades pertinentes:
sudo apt-get install uml-utilities
sudo apt-get install bridge-utils
Utilizamos los comandos para crear y configurar la estructura virtual de red entre anfitrion y máquinas invitadas. La idea es crar un bridge que conmute las tramas hacia las interfaces de invitado. Hay que crear pues el bridge, las interfaces tap (nivel 2) y asociarlas a la interfaz del bridge:
sudo brctl addbr br0
sudo ip link set tap0 up
sudo ip link set tap1 up
sudo tunctl -t tap0
sudo tunctl -t tap1
sudo brctl addif br0 tap0
sudo brctl addif br0 tap1
Después, hay que configurar la(s) interfa(z)ces virtual(es) de red para la(s) máquina(s) . Para ello se edita el archivo correspondiente:
sudo gedit /etc/network/interfaces
Deberá quedar algo así:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user root
auto tap1
iface tap1 inet manual
up ifconfig $IFACE 0.0.0.0
down ifconfig $IFACE downn
tunctl_user root
auto br0
iface br0 inet dhcp
bridge_ports eth0 tap0 tap1
Si no quereis levantar la infraestructura de red como root, no hay mas que sustituirlo como usuario con derechos sobre cada interfaz por el que se quiera.
Yo utilizo 2 máquinas, una con Windos XP y otra con Scientific Linux; el host, Ubuntu. El archivo de configuración muestra la interfaz real eth0, el bucle local lo, dos interfaces virtuales, tap0 y tap1, y el bridge br0 que enlaza tap0, tap1 y la interfaz real del host eth0.
Entiendo que br0 es la interfaz anfitriona que, por delante de las otras interfaces de red, proporciona la capacidad de direccionamiento (de nivel 2) al host. De hecho, si cambiamos el archivo de configuración introduciendo esta variante:
auto br0
iface br0 inet static
address 192.168.0.15
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0 tap0 tap1
La máquina anfitriona asume la dirección IP del bridge, ya que eth0 sigue manteniendo la asignación manual de IP.
Si configuramos las interfaces virtuales tap con asignación manual de direccionamiento IP, tenemos la opción de asignar IPs fijas a las máquinas invitadas, y voila, nuestros servidores web, ftp, etc dentro de la red del anfitrión.
Modificado el archivo, lo que toca ahora es levantar las interfaces, y para ello no hay mejor que restablecer el servicio de red:
sudo /etc/init.d/networking restart
Lanzamos Virtualbox y procedemos a configurar el host; como ejemplo sirva la máquina con Windows XP.

Se trataría pues de asignar la interfaz tap1 (esa es la que tengo asociada, la tap0 va al otro Linux) a la máquina virtual correspondiente, una vez seleccionada la opción de compartir la interfaz del anfitrión en la correspondiente opción de configuración de la red.
Y listo. Es así de simple. Podemos asociar una IP fija, o que le sea asignada dinamicamente, esto reside en el archivo de configuración, al igual que la elección del protocolo de red IPv4 (inet) o IPv6. Ya podemos instalar nuestro servidor web, o ftp, o de correo…contemplen los resultados: un Apache levantado en el guest de Linux accesible desde la red del anfitrión…¡Qué bonito!

Saludos calamares.