Estas en:

Catálogo de servicios
Autentia (PDF 6,2MB)

tríptico de Autentia
En formato comic...

Acceso de usuarios registrados:

Deseo registrarme

He olvidado mis datos de acceso

Registra tu empresa:

Descubre las ventajas de registrar tu empresa en AdictosAlTrabajo...

Registrar mi empresa

Listado de empresas ya registradas

Google

Últimos tutoriales

+Noticias Destacadas

+Comentarios Cómic

  2009-08-28 - 11:17:42 AM
   rcanales escribío:
    Completamente de acuerdo contigo. Yo no se quien hace las cuentas en tu empresa [...]
  2009-08-28 - 07:01:44 AM
   Anonimo escribío:
    pues yo tengo el cuello rigido como una piedra porque el aire acondicionado esta [...]
  2009-07-23 - 10:32:12 PM
   Jaime escribío:
    definitivamente la parte mas divertida es la de programar, y la explotacion lo v [...]
  2009-05-13 - 11:26:33 PM
   williarim escribío:
    Quiero felicitar al autor de estas historietas! Gracias por compartir con todos [...]
  2009-05-13 - 04:40:59 PM
   rcanales escribío:
    Hola Brunoise: Todo tiene perspectiva. El función de tus forma de ser y ver e [...]

+Enlaces


Tutorial desarrollado por

Alejandro Pérez García

Alejandro es socio fundador de Autentia y nuestro experto en J2EE, Linux y optimización de aplicaciones empresariales.

Ingeniero en Informática y Certified ScrumMaster

Si te gusta lo que ves, puedes contratarle para impartir cursos presenciales en tu empresa o para ayudarte en proyectos (Madrid). Puedes encontrarme en Autentia

 

Catálogo de servicios de Autentia

Descargar (6,2 MB)

Descargar en versión comic (17 MB)

AdictosAlTrabajo.com es el Web de difusión de conocimiento de Autentia.

Catálogo de cursos

Fecha de creación del tutorial: 2007-10-22

Como hacer visible en toda la red nuestra máquina virtual con KVM, en Debian GNU/Linux

Como hacer visible en toda la red nuestra máquina virtual con KVM, en Debian GNU/Linux

Creación: 13-10-2007



Índice de contenidos

1. Introducción
2. Entorno
3. Instalación
4. Creando el bridge
5. Configurando la red en KVM
6. Un script para lanzar todo el "tinglado"
7. Comprobando que todo funciona según lo esperado
8. Conclusiones
9. Sobre el autor



1. Introducción

En el tutorial http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=debianKvm hemos visto como conseguir una máquina virtual con KVM.

Incluso vimos cono configurar la red para acceder desde la máquina que hace de anfitrión o host (la máquina física) a la máquina que hace de invitado o guest (la máquina virtual). Pero esta configuración se nos queda corta si lo que queremos es acceder a la máquina virtual como si se tratar de otra máquina cualquier en nuestra red, o como si se tratara de un servidor para explotar sus servicios.

Este tutorial sería la continuación de aquel, y vamos a ver como conseguir que la máquina virtual se vea como otra máquina más en nuestra red. Para ello usaremos un bridge que, básicamente, se encarga de pasar paquetes de una interfaz a otra (en nuestro caso pasará paquetes de la interfaz del host a la interfaz del guest, y viceversa).

Este tutorial está inspirado en el que ya publico mi compañero Germán (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=qemuIntranetDebian) sobre como hacer lo mismo en el Qemu (veréis que se muy similar). Aquí vamos a ver como hacerlo para el KVM.



2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Asus G1 (Core 2 Duo a 2.1 GHz, 2048 MB RAM, 120 GB HD).

  • Sistema Operativo: GNU / Linux, Debian (unstable), Kernel 2.6.22, KDE 3.5

  • kvm 36-0.1

  • bridge-utils 1.2-1



3. Instalación

Sólo necesitamos instalar el paquete bridge-utils:

# apt-get -u install bridge-utils



4. Creando el bridge

Modificamos el fichero /etc/network/interfaces y añadimos:

iface br0 inet dhcp
bridge_ports eth1
bridge_stp off

Con estas líneas estamos creando una nueva interfaz llamada br0, que será el bridge.

Nótese que no tenemos ninguna línea del estilo auto br0, esto es porque no queremos que el bridge se levante siempre que se arranque la máquina, el bridge sólo lo vamos a levantar cuando usemos el KVM (la interfaz la levantaremos con ifup br0, pero eso lo veremos un poco más adelante).

Con bridge_ports eth1, lo que estamos haciendo es añadir al bridge el puerto eth1. Podríamos decir que estamos definiendo uno de los extremos del bridge (luego veremos como definimos el el otro extremo).

STP (Spanning Tree Protocol) es un protocolo para correr múltiples bridges, o bridges redundantes. Como no es nuestro caso lo desactivamos lo desactivamos con bridge_stp off. Como no usamos STP no hace falta que tengamos líneas del estilo: bridge_fd 9, bridge_hello 2, o bridge_maxage 12, ya que esto lo que hace es definir parámetros del STP.



5. Configurando la red en KVM

Ahora vamos a editar el fichero /etc/kvm/kvm-ifup, y cambiamos su contenido por (quitamos lo que habíamos puesto en el otro tutorial y lo sustituimos por esto):

ifconfig $1 0.0.0.0 promisc up
brctl addif br0 $1
exit 0

Aquí vemos como con brctl addif br0 $1 estamos añadiendo el otro extremo del bridge. Nuestro bridge ya está completo y pasará los paquetes de eth1 (el sistema host) a tap0 (el sistema guest) y viceversa.



6. Un script para lanzar todo el "tinglado"

Vamos a mostrar un sencillo script para lanzar nuestras imágenes. Podría ser algo así:

#!/bin/sh

# Para ejecutar con qemu
#VIRTUALIZATION_MODULE=kqemu
#VIRTUALIZATION_PROGRAM=qemu


# Para ejecutar con kvm. Recomendable si el HW lo soporta.
VIRTUALIZATION_MODULE=kvm-intel
VIRTUALIZATION_PROGRAM=kvm

# Parámetros para lanzar qemu o kvm
QEMU_PARAMS="-m 1024 -net nic -net tap"

# Los siguientes parámetros del qemu permiten arrancar la imagen como un demonio. Es decir, sin
# salida gráfica. Esto puede resultar muy útil para arrancar la imagen en un servidor. Si dentro
# la imagen tienes instalado un VNC, puede ser el complemento perfecto para administrar la imagen.
#--nographic --daemonize


# El nombre de la imagen que vamos a lanzar
IMAGE="windowsXP.qcow2"

# Levantamos el módulo del kernel (qemu o kvm)
modprobe $VIRTUALIZATION_MODULE

echo 1024 > /proc/sys/dev/rtc/max-user-freq

# Levantamos el bridge
ifup br0

# Ejecutamos la imagen
$VIRTUALIZATION_PROGRAM $QEMU_PARAMS $@ -hda $IMAGE

# Tiramos el bridge
ifdown br0



7. Comprobando que todo funciona según lo esperado

Después de arrancar la imagen con el script que presentábamos en el apartado anterior, podemos ejecutar:

# brctl show

y deberíamos ver algo como:

bridge name     bridge id               STP enabled     interfaces
br0 8000.001a928d3dd1 no eth1
tap0

Podemos apreciar como el bridge br0 está levantado y "enganchado" a eth1 y tap0.

Si entramos en nuestra imagen (el XP que estamos corriendo como sistema guest) deberíamos tener acceso a Internet, pero ojo, debemos acordarnos de configurar el XP para que esté dentro de nuestra red. Ya sea con DHCP o con IP fija, debemos configurar el Windwos XP. Una vez configurado adecuadamente nuestro sistema guest, deberíamos poder hacerle ping o acceder a sus servicios desde cualquier punto de nuestra red.



8. Conclusiones

Veis que prácticamente hemos hecho lo mismo que nos proponía Germán en su tutorila, pero un poco adaptado a KVM.

Además hemos presentado un posible script para lanzar las imágenes que, cambiando un par de variables, nos sirva tanto para usarlo con qemu como con kvm.

Y en definitiva hemos conseguido lo que queríamos, poder acceder desde cualquier punto de la red a nuestra máquina virtual.



9. Sobre el autor

Alejandro Pérez García, Ingeniero en Informática (especialidad de Ingeniería del Software)

Socio fundador de Autentia (Formación, Consultoría, Desarrollo de sistemas transaccionales)

mailto:alejandropg@autentia.com

Autentia Real Business Solutions S.L. - "Soporte a Desarrollo"

http://www.autentia.com



¿Qué te ha parecido el tutorial? Déjanos saber tu opinión y ¡vota!

Muy malo Malo Regular Bueno Muy bueno
 


(Sólo para usuarios registrados)

» Registrate y accede a esta y otras ventajas «

Anímate y coméntanos lo que pienses sobre este tutorial

Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.


(Sólo para usuarios registrados)

» Registrate y accede a esta y otras ventajas «

Autor Mensaje de usuario registrado

Creative Commons License Esta obra está licenciada bajo licencia Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5

Recuerda

Autentia te regala la mayoría del conocimiento aquí compartido (Ver todos los tutoriales). Somos expertos en: J2EE, Struts, JSF, C++, OOP, UML, UP, Patrones de diseño ... y muchas otras cosas.

¿Nos vas a tener en cuenta cuando necesites consultoría o formación en tu empresa?, ¿Vas a ser tan generoso con nosotros como lo tratamos de ser con vosotros?

Somos pocos, somos buenos, estamos motivados y nos gusta lo que hacemos ...

Autentia = Soporte a Desarrollo & Formación.

info@autentia.com

Tutoriales recomendados

Nombre Resumen
Fecha
Visitas Valoración Votos Pdf
Cómo generar versiones imprimibles de páginas web En este gran océano de textos, imágenes y enlaces que es Internet hay algunas cosas que merecen la pena ser impresas. Estoy seguro de que alguna vez has necesitado imprimir alguna página web y no has podido hacerlo directamente porque la impresión iba a q 2010-02-08 140 - -
Primeros pasos con Enterprise Architect y UML 2.x Introducción básica a la herramienta EnterpriseArchitec mediante el uso de diagramas UML 2 2010-02-04 261 - -
JMeter. Uso de funciones. En este tutorial tratamos el uso de las funciones más habituales de la herramienta JMeter. 2010-01-26 464 - -
Introducción a jQuery. jQuery es una librería javascript ligera, rápida y concisa que simplifica el tratamiento de documentos HTML, el manejo de eventos, la creación de animaciones y las interacciones vía Ajax, para agilizar el desarrollo de aplicaciones web. 2010-01-18 828 Bueno 1
Cómo consumir un servicio web RESTful con el soporte de Ajax y JSON de jQuery. En este tutorial vamos a seguir analizando cómo explotar las funcionalidades de jQuery. 2010-01-18 526 - -
jQuery: cómo crear nuestros propios plugins. En este tutorial vamos a ver cómo crear un plugin para jQuery sencillo, para sentar las bases, y otro un poco más elaborado. 2010-01-18 603 - -
Introducción a jQuery UI. En los tutoriales anteriores hemos hecho una introducción a jQuery y hemos visto cómo crear plugins para jQuery. Ahora se trata de seguir ampliando conocimientos, haciendo uso de una librería que se basa en la misma. 2010-01-18 812 - -
Autenticando los usuarios de Sonar contra un LDAP En este tutorial vamos a ver cómo podemos hacer que la autenticación de Sonar sea a través de un LDAP. 2010-01-18 441 - -
Introducción a Tapestry 5 Si estás cansado de programar con frameworks web con los que para hacer un simple holamundo tienes que tirar muchísimas líneas de código de XML o peor sigues trabajando con JSP donde además metes código Java en forma de snippets que son difícil de depurar 2010-01-17 502 - -
JMeter. Gestión de usuarios En este tutorial tratamos la simulación de distintos usuarios, en la herramienta JMeter, mediante el archivo externo users.xml o mediante la función Counter. 2010-01-14 698 - -

Nota:

Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento. Los contenidos y comentarios de los tutoriales son responsabilidad de sus respectivos autores. En algún caso se puede hacer referencia a marcas o nombres cuya propiedad y derechos es de sus respectivos dueños. Si algún afectado desea que incorporemos alguna reseña específica, no tiene más que solicitarlo. Si alguien encuentra algún problema con la información publicada en este Web, rogamos que informe al administrador rcanales@adictosaltrabajo.com para su resolución.