domingo, 19 de octubre de 2008

Instalar y configurar VirtualBox II: tarjeta de red anfitrión, compartir carpetas,...

Para acabar con el tema de configuración e instalación de VirtualBox iniciado en un artículo anterior copio a continuación, tan sólo con un par de modificaciones, el artículo creado por Samuel Calleros en el que explica, entre otras cosas, cómo añadir un interfaz anfitrión, es decir una tarjeta de red propia, a la máquina virtual empleando Virtual box.

Eso sí, como sólo ha sido probada en máquinas virtuales, a la espera de probar del todo las configuraciones en máquinas reales porque este año cualquier prueba fuera de entorno real de trabajo, lo más probable es que no funcione.

Además decir que este artículo está sujeto como el resto de los incluidos en este blog a la licencia creative commons cuyas normas podéis leer pulsando en el icono situado al final de la columna izquierda tras enlaces, blogs,...



Configurar la maquina virtual como Host Interface Networking (Interface Anfitrión)

A grandes rasgos lo que se tiene que hacer para configurar interfaces permanentes en el Host anfitrión con GNU/Linux es:
1.- Crear un puente a la interfaz real. Esto permite compartir la interfaz física entre la interfaz real y la virtual
2.- Por cada tarjeta de red virtual (invitada) usada, debe ser creado un nueva interfaz virtual en el Host padre (llamada tap0 o vbox0 o similar) y agregada esta interfaz al puente.
3.- Finalmente especificar la nueva interfaz en las configuraciones de la tarjeta de red virtual de la maquina virtual.

Ahora presentamos detalladamente los pasos para configurar interfaces permanentes en el Host Anfitrión con Debian y derivadas:

1.- Instalar el paquete "uml-utilities" en el Anfitrión, que contienen herramientas para crear tarjetas de red virtuales y el paquete de utilerías bridge "bridge-utils". Generalmente se instalan con el sistema base.
# apt-get install uml-utilities
# apt-get install bridge-utils

Para que el usuario que ejecutará la maquina virtual tenga acceso a la interfaz, el usuario tendrá que pertenecer al grupo "uml-net" por lo que hay que agregarlo:
# gpasswd -a usuario uml-net

Esto modificara el archivo "/etc/group/" quedando la linea del grupo uml-net así:

uml-net:x:NNN:usuario

2.- Editar el archivo "/etc/network/interfaces" para declarar la interfaz de red virtual a utilizar por el Host Invitado espeficando la interfaz a utilizar (tap0) y usuario que la usara, para ello agregamos las siguientes lineas:

auto tap0
iface tap0 inet manual

up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario

Modifique usuario por el usuario que ejecutará la maquina virtual.

Es importante que nuestra interfaz real (ejemplo eth0) este comentada o que no tenga asignada una IP del mismo rango, de lo contrario el Host Anfitrión no saldrá a Internet.

3.- La primera vez que se use, se debe activar el el bridge y la interfaz creada con los siguientes comandos:
# /sbin/ifup tap0
# /sbin/ifup br0

Esto solo es necesario la primera vez, las siguientes veces se activaran automáticamente.

4.- En el archivo "/etc/network/interfaces" hay que declarar el bridge (llamado br0) y agregar la interfaz creada al mismo:

auto br0
iface br0 inet dhcp
bridge_ports all tap0


También, se puede asignar una IP estática dependiendo de las necesidades.

Si hemos seguido correctamente los pasos del 2 al 4, en "/etc/network/interfaces" y deseamos unir a la red dos maquinas virtuales deberíamos tener el siguiente contenido (sino funciona ir al paso nueve y volver después aquí):

auto lo

iface lo inet loopback

#iface eth0 inet dhcp
#auto eth0

auto tap0
iface tap0 inet manual

up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario

auto tap1

iface tap1 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario

auto br0
iface br0 inet dhcp
bridge_ports all tap0 tap1

NOTA: las interfaces virtuales declaradas y que formen parte de un bridge no deben tener ninguna dirección IP asignada, por ello se pone "0.0.0.0" en vez de una IP real.

5.- Reiniciamos el servicio networking:
# /etc/init.d/networking restart

6.- Modifique la configuración de la maquina virtual. Esto se hace desde la aplicación VirtualBox, en "Configuraciones", "Red", “Attached to”, modificando un adaptador de red y especificando "Host Interface Networking"/"Interface Anfitrion" y en el campo “Interface name" tecleamos "tap0" o "tap1" dependiendo del nombre de interfaz virtual configurada en "/etc/network/interfaces".

7.- Finalmente vaya al Host Virtual (Invitado) y configure los paramentros de red apropiadamente.

8.- En caso de error en el dispositivo tun deberemos teclear

# chmod 0666 /dev/net/tun

9.- si no funciona la salida a internet en el equipo anfitrión prueba con la siguiente configuración "/etc/network/interfaces":

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down

auto tap0
iface tap0 inet manual

up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user profe

auto tap1

iface tap1 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user profe


auto br0
iface br0 inet dhcp
bridge_ports all tap0

Clonar una maquina virtual.

- Nos ubicamos donde estan guardados los vdi (/home/usuario/.VirtualBox/VDI) y clonamos el vdi con un UUID diferente:

$ cd /home/usuario/.VirtualBox/VDI
$ VBoxManage clonevdi NombreOriginal.vdi NuevoNombre.vdi

- Desde el administrador de VirtualBox creamos una nueva maquina; elegimos el mismo sistema operativo y otro nombre para la nueva maquina, asignamos memoria. En disco duro elegimos existente y elegimos el creado en el paso anterior (NuevoNombre.vdi) y listo ya tenemos una nueva maquina virtual identica.

Configuración

Para poder usar VirtualBox hay que darle permisos al usuario de que lo utilice, para ello editamos "/etc/group" y agregamos nuestro usuario al grupo vboxusers, quedando así:
vboxusers:x:xxxx:nuestro_usuario

A veces esto no es suficiente, por lo que al correr VirtualBox puede marcar un error de escritura en "/dev/vboxdrv". Esto se soluciona nombrando como propietario de "/dev/vboxdrv" a nuestro usuario:
# chown nuestro_usuario:nuestro_usuario /dev/vboxdrv

Reiniciamos el servicio:
# /etc/init.d/vboxdrv restart

Agregar maquinas virtuales

Desde consola, iniciamos VirtualBox con el comando VirtualBox y damos clic en el botón Nueva(new) para agregar una nueva maquina virtual:
- Especificamos el nombre de nuestra maquina virtual y el sistema operativo a instalar.
- Posteriormente seleccionamos la cantidad de memoria RAM a asignar.

- Luego le asignamos el disco duro virtual, como no tenemos ninguno creamos uno; damos clic en el botón Nuevo(new), seleccionamos "Imagen de expansión dinámica", luego el tamaño del disco duro virtual.
- Finalizamos el asistente y listo. Ya tenemos la maquina virtual creada

Ahora solo falta instalar el sistema operativo que deseen. Para ello inserte el CD en el CD-ROM, inicie la maquina creada y siga las instrucciones de instalación presentadas.

Compartir carpetas
Para poder compartir archivos entre el Host Virtual (Invitado) y el Anfitrión es necesario instalar en el Host Invitado la aplicación "virtual box Guest Additions".

Pasos a seguir:
- Instalar "virtual box Guest Additions". Cuando la maquina virtual se este ejecutando, hacer clic en el menú "Dispositivos" y luego en "instalar Guest Additions". Guest Additions es un conjunto de utilidades que mejoran las capacidades del sistema virtualizado, entre ellas el compartir carpetas.

- Apagar la maquina virtual
- Compartir la carpeta en el Host Anfitrión con el comando:
VBoxManage sharedfolder add "Nombre_Maquina_Virtual" -name "nombre_a_mostrar" -hostpath "/ruta/carpeta/compartida"
También se puede compartir desde La configuración de la maquina en La opción "Directorios compartidos"

- Iniciar la maquina virtual.

Para acceder a la carpeta compartida:
- En Windows ejecutar: vboxsvrcarpeta_compartida y luego vaya a "Mi PC" y ahí estará montada el directorio compartido.

También puede mapear la unidad de red con: net use z: vboxsrvNombre_Carpeta_compartida
- En Linux se monta la unidad con:
mount -t vboxsf [-o OPTIONS] Nombre_carpeta_Compartida /ruta/donde/se/desea/montar

Para ver las carpetas que tiene compartidas desde el Host Anfitrión se hace con: VBoxManage list vms o desde las configuraciones de la maquina en la Opción "Directorios compartidos"

Podrá leer y escribir en la carpeta compartida desde la maquina virtual.

Habilitar el Copy-Paste entre el Host Anfitrión y el Invitado

Para poder utilizar esta función es necesario instalar en el Host Invitado la aplicación "virtual box Guest Additions".

En un Host Invitado con Windows cuando la maquina virtual se este ejecutando, haga clic en el menú "Dispositivos" y luego en "instalar Guest Additions".

En un Host Invitado con GNU/Linux se requiere instalar los headers del kernel que se este usando. Para saber el kernel que usamos tecleamos "uname -r". Ejemplo: si tenemos el kernel "2.6.18-5-486" instalamos el paquete "linux-headers-2.6.18-5-486":

# aptitude install linux-headers-2.6.18-5-486
Ahora hacemos clic en el menú "Dispositivos" y luego en "instalar Guest Additions". Esto nos montara un CD-ROM virtual. Nos vamos a /media/cdrom/ e instalamos el paquete VBoxLinuxAdditions.run y luego reiniciamos o apagamos la maquina virtual:
# cd /media/cdrom

# sh VBoxLinuxAdditions.run
# poweroff

Ya que instalamos "virtual box Guest Additions" ahora nos vamos en el administrador de VirtualBox, entramos a la configuración de la maquina virtual, en la opción "General", en la pestaña "Avanzado" en la opción "Portapapeles Compartidos" seleccionamos: "Anfitrión a Huesped", "Huesped a Anfitrión" o "Bidireccional" según lo deseado.

Crear Imágenes de nuestra maquina virtual

Las instantáneas (snapshots) sirven para crear imágenes de la partición del disco duro virtual, la cual puede restaurarse en cualquier momento y regresar la partición y los datos como estaban cuando fue creada la imagen. Para crear una imagen vaya al Menú de la maquina virtual y elija "Maquina" y luego "Tomar instantánea".

Configurar la maquina virtual para que forme parte de la red local.

Para entender mejor como configurar la red es necesario una breve explicación de las posibles configuraciones de la red. Al configurar la red de la maquina virtual se pueden elegir entre las siguientes opciones:

- Not attached (No conectado).- Sirve para desactivar la tarjeta de red virtual, por lo que no tendrá acceso a ninguna red
- NAT .- Sirve básicamente para acceder a Internet, descargar archivos y enviar correos, pero las funciones avanzadas de red no están habilitadas. La maquina virtual obtiene una IP de un router que viene siendo VirtualBox y que funciona como DHCP asignando una IP 10.0.2.0 a la primera interface y 10.0.3.0 a la segunda interface, el trafico de la maquina virtual es transparente.

- Host Interface Networking (Interface Anfitrion) .- Simulación de una red real, el Host puede enviar datos al invitado y viceversa, se puede conectar a la red. Se tiene que crear una interface de red virtual en el Host anfitrión por cada tarjeta (interface) de red que use(n) la(s) maquina(s) virtual(es)
- Internal Networking (Red Interna) .- Similar a "Host Interface Networking", sin embargo el acceso a Internet es limitado, de esta manera se mejora la seguridad y velocidad.

La que nos interesa es "Host Interface Networking (Interface Anfitrion)". Esta configuración sirve para configurar la maquina virtual para forme parte de la red.


Fuentes:
http://virtualbox.org
http://virtualbox.org/download/UserManual.pdf
http://www.esdebian.org/articulos/24005/instalar-configurar-virtualbox
Autor: Samuel Calleros Sitio Web: TuxSoluciones.com.mx



2 comentarios:

Strike dijo...
Este comentario ha sido eliminado por el autor.
Strike dijo...

Les adjunto la informacion que me indica al intentar realizar la clonación del disco, aunque lo he copiado para intentar hacerlo funcionar correctamente, pero el UUID no se como cambiarlo ya que al realizar el VBoxManage clonehd NombreMaquinaOriginal NomBreMaquinaClonada no me quiere hacer caso..., lo he provado sin el ConvertSettings y todo sigue igual... ya no se que más hacer.

user@PRUEBAS-SVR1:~$ sudo VBoxManage clonehd XPPro.vdi convertSettings XPProClon.vdi
VirtualBox Command Line Management Interface Version 2.1.4_OSE
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

WARNING! The following VirtualBox settings files have been automatically
converted to the new settings file format version '1.6-linux':

/root/.VirtualBox/VirtualBox.xml (1.2-linux)

The current command was aborted to prevent overwriting the above settings
files with the results of the auto-conversion without your permission.
Please put one of the following command line switches to the beginning of
the VBoxManage command line and repeat the command:

-convertSettings - to save all auto-converted files (it will not
be possible to use these settings files with an
older version of VirtualBox in the future);
-convertSettingsBackup - to create backup copies of the settings files in
the old format before saving them in the new format;
-convertSettingsIgnore - to not save the auto-converted settings files.

Note that if you use -convertSettingsIgnore, the auto-converted settings files
will be implicitly saved in the new format anyway once you change a setting or
start a virtual machine, but NO backup copies will be created in this case.


Gracias de antemano

Atentamente,

Strike