BULMA Bulma amb el projecta Defective by Desing
Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(09/02/2010 06:40:57)
    
Google


En bulma.net
En internet
Máquinas virtuales con user-mode-linux (28158 lectures)
Por Carles Bayés
phalangana (http://)
Creado el 12/09/2004 21:27 modificado el 12/09/2004 21:27

Pagina2/2

Configuración de la red

Ya tenemos una máquina virtual corriendo Linux 2.4.26 en nuestro sistema, pero sin red, es decir, estamos aislados del mundo. Y un Linux aislado... No me lo puedo imaginar. Me duele sólo con pensarlo!

Hay varias maneras de proporcionar conectividad a la instancia UML (podéis consultarlas en la sección de red de la web del proyecto). Una de las más sencillas es a través de la utilidad uml_net (UML se encarga de crearte un dispositivo TAP y asignarle una IP simplemente con pasar un argumento a la línea de comandos), pero yo me inclino por crear un dispositivo TAP en el host y crear un bridge donde añadiré este dispositivo (que se corresponderá con eth0 de la instancia UML) y la interfaz eth0 del host. De este modo la máquina virtual tiene acceso directo a la red local. No hace falta decir que necesitáis soporte en el host tanto para bridging como para dispositivos TUN/TAP.

Pero antes de todo esto hay que dar permisos de escritura sobre el dispositivo /dev/net/tun al usuario que ejecutará UML (de otro modo no tendría acceso a la red). Para hacerlo, creo que lo mejor es asignar al dispositivo un nuevo grupo, darle permisos de escritura e ir añadiéndole todos los ususarios que tengan que ejecutar instancias UML:

# addgroup umlnetwork
S'està afegint el grup umlnetwork (1001)...
Fet.
# chgrp umlnetwork /dev/net/tun
# adduser umluser umlnetwork
S'està afegint l'usuari umluser al grup umlnetwork...
Fet.
# chmod g+w /dev/net/tun

Ahora tenemos que ejecutar los pasos necesarios para hacer todo el montaje. Lo pongo en forma de script por simplicidad (el script hay que ejecutarlo como root y recordad que tenéis que tener instaladas las uml-utilities, así como bridge-utils):

#!/bin/bash
# Inici de l'uml en mode bridge. Basat en els exemples de 
#http://user-mode-linux.sourceforge.net/networking.html.
# S'ha d'executar com a root.

#carreguem el mòdul tun
modprobe tun

#creem un dispositiu per a l'usuari
tunctl -d umltap0 2>/dev/null
tunctl -u umluser -t umltap0

#afegim el bridge
ifconfig br0 down 2>/dev/null
brctl delbr br0 2>/dev/null
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc up
ifconfig umltap0 0.0.0.0 promisc up
ifconfig br0 192.168.0.5 netmask 255.255.255.0 up
brctl stp br0 off
brctl setfd br0 1
brctl sethello br0 1
brctl addif br0 eth0
brctl addif br0 umltap0
route add default gw 192.168.0.1

#arranquem la instància uml
su umluser -c './linux ubd0=root_fs ubd1=swap mem=32M eth0=tuntap,umltap0'

Una vez dentro de la máquina virtual hay que configurar la red:

(none):~# ifconfig eth0 192.168.0.100 up
(none):~# ifconfig
eth0      Link encap:Ethernet  HWaddr FE:FD:C0:A8:02:64
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:5

Y con esto ya tenemos la máquina conectada con el exterior:

(none):~# ping -c 1 192.168.0.5
PING 192.168.0.5 (192.168.0.5): 56 data bytes
64 bytes from 192.168.0.5: icmp_seq=0 ttl=64 time=1.0 ms

--- 192.168.0.5 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 1.0/1.0/1.0 ms

De todas maneras, para ir bien deberíamos introducir las entradas pertinentes en /etc/network/interfaces de modo que cuando arranquemos la máquina virtual ya tengamos red:

auto lo
iface lo inet loopback

iface eth0 inet static
        address 192.168.0.100
        netmask 255.255.255.0
        gateway 192.168.0.1

(Para ir aún mejor, habría que poner las entradas adecuadas en /etc/resolv.conf, para resolución de nombres).

Si todo ha funcionado, ya deberíamos tener un Linux plenamente funcional y conectado a la red. Ahora es cuando (después de asignar contraseña a root y crear una cuenta de usuario "normal") deberíamos actualizar el sistema y empezar a instalar aplicaciones o, como un servidor, pasarnos primero de todo a SARGE o SID.

Notas finales

Modo skas

Por razones de seguridad y rendimiento, es recomendable aplicar el patch skas al kernel del host. Yo no le he hecho porque todavía no ha salido el patch para la versión del kernel que uso actualmente y porque de momento no lo pongo en producción, donde sí que lo considero imprescindible. Para más información consultad la página sobre skas.

Acceso al host

Si queréis poder acceder al disco del host desde la máquina virtual, no necesitáis NFS ni FTP. Podéis hacerlo de manera muy cómoda por medio de hostfs, simplemente montando el sistema de ficheros como cualquier otro:

(none):~# mkdir /mnt/host
(none):~# mount -t hostfs none /mnt/host
(none):~# ls /mnt/host
bin   cdrom  etc     home     initrd  lost+found  mnt  proc  root-n  sys  usr  vmlinuz
boot  dev    floppy  include  lib     man         opt  root  sbin    tmp  var
(none):~#

Evidentmente, el acceso al sistema de ficheros del host se hará con los privilegios que tenga el usuario que ejecuta UML. De todas formas, hay entornos en los que seguramente no interese que los usuarios de la máquina virtual accedan al host (por ejemplo, en entornos de hosting). En este caso, podemos compilar el kernel UML sin soporte para hostfs.

Cómo compartir sistemas de ficheros

Como medida para ahorrar espacio en disco, podéis compartir sistemas de ficheros entre diferentes instancias UML a través de COW (copy-on-write). El sistema de ficheros original será de sólo lectura (si no, las instancias UML entrarían en conflicto) y es la capa COW la que da acceso de lectura-escritura a cada una de las instancias. Esto lo hace guardando y manteniendo los cambios en un dispositivo privado de cada una. Para entendernos: cuando desde una instancia UML se escribe en el sistema de ficheros compartido, se guardan los datos en un dispositivo de la propia instancia, mientras que cuando el acceso es de lectura la información se va a buscar a los dos dispositivos (al privado y, si no está allí, al compartido).

Información de depuración

Si seguís el artículo al pie de la letra os encontraréis con un ejecutable (./linux) extremadamente voluminoso puesto que contendrá información de depuración. Para eliminar esta información podéis ejecutar el comando:

~/uml$ strip linux

(Gracias ivaniclixx).

Enlaces


Paginas: <<Abreviatura Anterior  1  2 

Imprimir
Version para
imprimir

Imprimir
Version
PDF
Comentarios
1.  Re: Máquinas virtuales con user-mode-linux (21/09/2004 20:56, #23370)
  Por: MaF
Muy interesante!

Hace cosa de unos meses me pidieron hacer un servidor de "maquinas virtuales". Estuve barajando la posibilidad de hacerlo con UML, pero llegué a la conclusión es que esto es bueno para entornos de desarrollo, depurar nucleos, y esas cosas.

Para tener "servidores virtuales consolidados" en pleno desarrollo, a mi modo de ver, es mucho mejor la implementación de vservers. No es el mismo concepto de sistema pero sirven para lo mismo.

UML ejecuta un kernel en espacio de usuario. VServer "clona" el kernel actual de la máquina en un jail, aislandolo completamente de la madre. Es muy flexible a la hora de configurar las interfaces de red, y crear una nueva máquina virtual es facilisimo. Ahora mismo tengo un servidor madre con 10 vservers dando servicio (uno para mail, otro para webs, otro para bases de datos, otro para ciertos clientes, etc...) y va a la perfección

http://www.linux-vserver.org

Felicidades por el artículo. Saludos!
No es pot respondre
 
2.  Re: Máquinas virtuales con user-mode-linux (22/09/2004 14:53, #23380)
  Por: phalangana

Pues la verdad es que no había oído hablar de este proyecto.

Habrá que probarlo!

No es pot respondre
 
3.  Re: Máquinas virtuales con user-mode-linux (05/10/2004 23:43, #23699)
  Por: Fermín (http://www.dit.upm.es/galan)
Quien esté interesado en la tecnología de virtualización UML, quizás le interese también VNUML, un fron-end que simplifica la creación de redes virtuales complejas para la realización des simulaciones.

La herramienta se distribuye bajo licencia GPL.

Descarga y documentación en

http://www.dit.upm.es/galan
No es pot respondre
 
4.  Re: Máquinas virtuales con user-mode-linux (05/10/2004 23:44, #23700)
  Por: Fermín (http://www.dit.upm.es/galan)
Perdón, la URL estaba mal :) La correcta es:

http://www.dit.upm.es/vnuml
No es pot respondre
 
5.  Re: Máquinas virtuales con user-mode-linux (04/11/2004 00:01, #24097)
  Por: Anònim
A veces, recompilar el nucleo puede ser delicado, por eso, recomiendo usar SUSE como host de UML, que ya tiene aplicado el parche skas, fundamental como dices. Tambien se pueden encontrar UML compilados que funcionan perfectamente.

Ademas, para jugar, SUSE incluye FAUmachine, un software al estilo de VirtualPC con nucleo UML. Se puede ver mas informacion en la web de FAUmachine.

Por todo eso, para empezar (porque se trata de un proyecto en desarrollo), basta con el ISO de SUSE 9.1 personal (gratis), y actualizarlo con los paquetes de FAUmachine disponibles en cualquier mirror de suse, por ejemplo, en rediris.es.

En fin, muy interesante.
Saludos,
Javier
No es pot respondre
 
6.  Re: Máquinas virtuales con user-mode-linux (12/09/2006 19:16, #34961)
  Por: manou (http://govinda.ath.cx)
Hola,

Solo un pequeño comentario que no tiene que ver con el artículo. Cuando dices gratis, creo que estas creando confusion, ya que libre no tiene nada que ver con gratis.

Cualquiera que desee mas informacion por lo que significa que un software sea libre, puede consultar la pagina http://www.fsf.org y navegar un poco, o directamente en la wikipedia: http://es.wikipedia.org/wiki/Software_libre

En lo referente al artículo, aunque técnicamente en mi opinión está muy bien y espero aplicarlo cuando encuentre tiempo, en la redacción se cae en cosas como "evidentemente", "no hace falta decir",... que creo que pueden de alguna manera hacer sentir al lector ignorante por no conocer esas obviedades, cuando a mi parecer la única obviedad que existe es que nadie nacemos sabiendo.
No es pot respondre
 
7.  Re: Máquinas virtuales con user-mode-linux (11/11/2005 21:28, #29374)
  Por: Anónimo
Me sale un error cuando compilo!!! init/do_mounts.c:54: error: la declaración static de ‘root_device_name’ a continuación de una no static alguien sabe por que puede ser??? GRACIAS!!
No es pot respondre
 
8.  Re: Máquinas virtuales con user-mode-linux (19/04/2006 01:25, #32046)
  Por: andres
como instalo el programa para maquinas virtuales en linux
No es pot respondre
 
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
***0
Vots: 35
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
Relacionados
. Màquines virtuals amb user-mode-linux
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 27/11/2008 05:39:05 | Tiempo Total: 0.070 segs | Kernel: Linux - i686 - 2.6.26-1-686 | Last boot: 09/02/2010 07:31 CET
Powered by Apache    MySQL    PHP    Gimp