Como adoptar un pingüino

BLOG de AZULcasiNEGRO, donde se cuentan básicamente las peripecias durante la migración a Kubuntu/Linux

Aviso Cookies

Categories

Contador

Eres el visitante

Hace poco que probé VirtualBox 2.0, y la verdad me gustó mucho. Trabajo con VMWare Server y tambien me gusta, pero eso de tener que parchearlo para que vaya, y repetir el proceso a cada cambio de kernel, por no decir que no es soft libre, me esta hartando un poco.


Una de los problemas de VirtualBox en un host Ubuntu es el modo bridge, que a diferencia de VMWare, lo tienes que configurar en el sistema a mano.


Un poco de conceptos
¿ Que es un bridge ? Un puente o bridge es un dispositivo de interconexión de redes de ordenadores, haciendo el pasaje de datos de una red hacia otra, con base en la dirección física de destino de cada paquete.
¿ Para que nos sirve con una máquina virtual ? Nos sirve para que la conexión de red de la mv se comporte como si fuera totalmente autónoma, pudiendo configurar cualquier IP y usar cualquier puerto. Para eso necesitaremos hacer un puente(bridge) con una conexión física existente.

Segundo, instalaremos los paquetes necesarios

sudo apt-get install vtun bridge-utils uml-utilities

Tenemos 2 maneras de configurarlo:
1. Creando el bridge en el arranque del ordenador.
2. Activando y desactivando el bridge con scripts.

Crear el bridge en el arranque


Es la manera más cómoda si no nos importan los inconvenientes.
Hay que editar el archivo /etc/network/interfaces

Para IP dinámica
auto lo
iface lo inet loopback

iface eth0 inet dhcp

# Bridge
auto br0
iface br0 inet dhcp
bridge_ports eth0


Para IP fija
auto lo
iface lo inet loopback

iface eth0 inet static

# Bridge
auto br0
iface br0 inet static
address 192.168.0.2 #ip de nuestro ordenador
netmask 255.255.255.0
gateway 192.168.0.1 #ip del router o servidor enrutador
bridge_ports eth0

Sólo nos faltará enlazar el bridge con el VirtualBox de esta manera
sudo VBoxAddIF vbox0 usuario br0

En usuario pondremos el usuario del host que vaya a ejecutar la máquina virtual.

Hay que tener en cuenta alguna cosillas. Con esta configuración, realmente la configuración de br0 es la que estará activa, y no la de eth0. Por ejemplo, si quereis aplicar alguna regla como la de limitación de la conectividad a un usuario debeis hacerlo sobre br0.
Otra limitación del modo bridge es que no podemos usar WOL (wake-on-lan). Es decir, no podremos arrancar remotamente nuestro ordenador a través de la red. Para esto mejor usaremos los scripts.

Crear el bridge con scripts


Tenemos otra manera de crear el bridge sin tener que tocar nuestra actual configuración de red, y es creandolo y destruyendolo con un script.
Pondré por ahora sólo la configuración para IP fija, pero para IP dinámica es aún más sencillo.
Creamos el archivo para crear el bridge como bridge-up.sh, y añadimos:
#!/bin/sh

# creamos el bridge
brctl addbr br0
brctl addif br0 eth0

# configuramos el bridge
ifconfig br0 192.168.0.2 netmask 255.255.255.0 #ip de nuestro ordenador
route add default gw 192.168.0.1 dev br0 #ip del router o servidor enrutador

# iniciamos/reiniciamos las conexiones implicadas
ifconfig eth0 down
ifconfig eth0 up
ifconfig br0 up

# enlazamos con VirtualBox
VBoxAddIF vbox0 usuario br0

Le damos permisos de ejecución.
sudo chmod 770 bridge-up.sh

Y lo ejecutamos como superusuario.
Esto se puede hacer via SSH, pero debeis poner la misma ip en el bridge que en eth0 para que no se corte la conexión. Igualmente, cuando ejecuteis el script tardará unos segundos en quedar la consola operativa. No os asusteis. Es normal. Si hemos iniciado la sesión SSH con modo gráfico (-X) podremos ejecutar nuestra máquinas virtuales normalmente. Sino, podemos acceder a ellas mediante RDP arrancandolas como VBoxHeadless y usando un cliente RDP.

Despues de apagar la máquina virtual, tendremos que ejecutar un script para dejarlo todo como estaba. Lo llamaremos bridge-down.sh
#!/bin/sh

# desenlazamos con VirtualBox
VBoxDeleteIF vbox0

# eliminamos la puerta de enlace del bridge
route del default gw 192.168.0.1 dev br0

# desconectamos el bridge y lo eliminamos
ifconfig br0 down
brctl delif br0 eth0
brctl delbr br0


#deberia ser suficiente con esto
# ifconfig eth0 up
#pero como tambien tenemos instalado el vmware tendremos
#que reiniciar todas las conexiones, al menos a mi me pasa
ifdown -a --force
ifup -a --force

Le damos permisos de ejecución.
sudo chmod 770 bridge-down.sh

Y lo ejecutamos como superusuario.

Conclusión


Podemos enlazar nuestras máquinas virtuales de VirtualBox en modo bridge de varias maneras, cosa que nos permitirá tener nuestro guest como si fuera un ordenador más de nuestra red.
Os recomiendo el primer método para máquinas virtuales que tengan que arrancar solas una vez iniciado el pc. El segundo es mejor para estaciones de trabajo en que habramos las mv en un momento dado.

Actualización (31/12/2008)


A partir de la versión 2.1 esto ya no es necesario. Se puede crear el bridge automáticamente y de manera transparente en la misma ventana de configuración de la máquina virtual. Así la versión de Linux se iguala a la versión Windows en este aspecto. Esperemos que a partir de ahora las mejoras vayan a la par.

Primero de todo. Lo siento. Actualmente no tengo tiempo de preparar artículos con la profundidad que me gustaría, así que a partir de ahora, os iré poniendo trucos que, al menos a mí, resultan útiles. Serán pequeñas soluciones a pequeños problemas que muchas veces nos bloquean un proyecto de más embergadura.
Hoy le toca al ocio.

Problema
Tenemos una repetición guardada de un nivel de juego de Wesnoth. Queremos jugar a partir de turno determinado de ese nivel que ya hemos pasado. ¿ Porqué ? Pues porque en el nivel siguiente necesitamos algo que perdimos o no cogimos en el nivel de la repetición.

Solución (Versión para Linux)

En realidad, la solución es mucho más simple de lo que parece.

1. Cargamos la repetición, y le vamos dando hasta llegar al turno que necesitamos revivir. Cuendo lleguemos, le damos a guardar turno. Lo que conseguimos es tener guardado un nivel en un turno de la repetición. Esto es casi lo que queríamos. Si recuperamos ese turno, no nos deja jugar, claro, porque es de una repetición.

2. Descomprimimos la partida guardada. Salta al paso siguiente si no guardas las partidas comprimidas.
Nos metemos en la carpeta donde se encuentran las partidas guardadas.
$ cd ~/.wesnoth/saves/
Descomprimimos la partida.
$ gunzip -dv TRoW-El_dragón_Turno_repetición_17.gz
Le ponemos un nombre decente.
$ mv TRoW-El_dragón_Turno_repetición_17 TRoW-El_dragón_Turno_17

3. Modificamos el archivo para poder jugar desde ese turno. El editor es lo de menos
$ nano TRoW-El_dragón_Turno_17
Aquí tenemos que modificar la linea que pone
completion="victory"
por
completion="running"
y guardamos. La linea está al principio del archivo.

4. Comprimimos la partida guardada. Salta al paso siguiente si no guardas las partidas comprimidas.
$ gzip TRoW-El_dragón_Turno_17

5. Cargamos normalmente la partida. Por arte de magia nos dejará seguir jugando.

Hasta pronto !!!

Cuenta atrás

Nuestros derechos

Recent Posts

Recent Comments