miércoles, mayo 28, 2008

Netkit: Virtualizacion de red para los pobres

Hola de nuevo, ahora tocare un tema mas especifico, el cual es la virtulizacion de sistemas operativos, este se refiera a la posibilidad de correr una parte o todo un sistema operativo sobre otro, osea tener dos "computadores" en uno.

¿pero como se logra esto?

esto se logra engañando al sistema operativo virtualizado haciendole cree que corre sobre hardware. esto se logra tomando todas las señales que envia el sistema operativo virtualizado al hardware y desviarlas via un programa al sistema operativo local para que las realice, mejor vamos a una grafica para entender mejor la idea.

SOV


v
Interprete

v
SOL


v
Hardware

ahi se ve como el sistema operativo virtualizado envia las intrucciones que toma el interprete las traduce de forma que el sistema operativo local las entienda y este las envia al hardware. para las respuestas de hardware es lo mismo pero al reves.

¿Que sistema de virtulizacion usaremos?

Usaremos UML(user mode linux) el mejor sistema de virtulizacion y que ademas esta incluido en la fuentes del kernel desde las ultimas versiones 2.4. este sistema de virtulizacion solo sirve para correr Linux sobre Linux.
Aunque UML es muy facil de ocupar e instalar mejor usaremos una variante de este especialmente diseñado par virtulizar redes NetKit. Netkit es una serie de script que se ocupan en conjunto con UML para facilitar tanto la creacion de maquinas virtulaes(sistemas operativos virtulizados) como todo lo necesario para conectarlos en una red(switch virtuales).

¿pero que puedo hacer no esto?

de todo lo posible en redes, desde crear una red lan hasta multiples sistemas autonomos corriendo BGP(vease documentacion netkit.org) y esto corriendo solo en un computador normal(ejemplo el mio es solo un duron de 1.4GHz y 256MB de ram).

¿pero como lo hago?

Instalacion

la instalacion de Netkit es muy facil y las dependencias son comandos estardares de GNU/Linux:

-descarga las fuentes desde Netkit.org
-Descomprime todo.
-ahora en la cosola debes agregar esto al PATH para que puedas despues encontrar los comando(y se encuentren entre ellos)
export NETKIT_HOME=/home/foo/netkit2
export MANPATH=:$NETKIT_HOME/man
export PATH=$NETKIT_HOME/bin:$PATH

-luego corre el archivo de verificacion de la instalacion
./check_configuration.sh
y si todo esta bien estamos listos

¿pero que es todo esto?

Ahora te voy a explicar bien que es UML. UML es un kernel modificado para poder correr sobre otro kernel, pero para el kernel pueda hacer algo necesita un sistema de ficheros, archivos y programas. al descargar netkit-2.4.tar.bz2 descargas el kernel modificado y las herramientas para crear redes, ya l descargar netkit-filesystem-F3.0a.tar.bz2 descragas el sistema de ficheros.

¿como lo ocupo?

Bueno si la instalacion te sali perfecta, para crear una maquina virtual solo debes usar el comando
vstart [nombre_MV] [Interface_de_red]
y tendras otro "computador corriento. para detenerlo
vhalt [nombre_MV]

¿pero como creo una red?

eso es muy facil, supongamos que queremos conectar los maquinas virtuales pc1 y pc2

PC1<------switcha------>PC2

vstart pc1 eth0=A
vstart pc2 eth0=A


y listo puedes hacer ping y ver que las maquinas se comunican y listo.


¿y que hago despues?

bueno puedes crear redes mas complejas. mira la documentacion en netkit.org y podras ver un gran numero de posiblidades.

Espero incluir unas configuraciones mas complejas en el foro asi que esperen


pd: si quieren algun tema en especial de redes pidan haber si puedo hacer algo
_________________
Quienes son capaces de renunciar a la libertad esencial a cambio de una pequeña seguridad transitoria, no son merecedores ni de la libertad ni de la seguridad.