martes, julio 10, 2007

Red multicast con qemu

En ciertas ocasiones, programación en red por ejemplo, nos interesa poder simular una red de computadoras con sóla maquina de manera segura y sin tener que modificar nuestro sistema operativo. Aquí les comento como hacerlo usando un emulador libre llamado qemu que interconectara tres terminales linux mediante una red multicast.

Como se pueden imaginar, en una red multicast si una estación envía un paquete este es recibido por todos por todas las demás al igual que ocurre en una topología de bus.

Primero vamos a descargar qemu para windows
A continuación replicaremos la imagen de linux.img que viene de serie en el directorio y las renombramos como linux1.img linux2.img y linux3.img
Seguidamente crearemos tres archivos .bat en el mismo directorio de la siguiente manera:

archivo uno.bat
qemu.exe -L . -m 128 -hda linux1.img -localtime -M isapc -net nic,macaddr=52:54:00:12:34:56 -net socket,mcast=224.0.0.1:1234

archivo dos.bat
qemu.exe -L . -m 128 -hda linux1.img -localtime -M isapc -net nic,macaddr=52:54:00:12:34:57 -net socket,mcast=224.0.0.1:1234

archivo tres.bat
qemu.exe -L . -m 128 -hda linux1.img -localtime -M isapc -net nic,macaddr=52:54:00:12:34:58 -net socket,mcast=224.0.0.1:1234

Resaltar que hemos cambiado el numero de direccion fisica de cada una de las tres interfaces que usaran los sistemas.

Tras arrancar los tres sistemas mediante la ejecución los .bat. Asignaremos una dirección ip a cada sistema de la siguiente forma:

sistema 1
ifconfig 192.168.0.1 netmask 255.255.255.0

sistema 2
ifconfig 192.168.0.2 netmask 255.255.255.0

sistema 3
ifconfig 192.168.0.3 netmask 255.255.255.0

Finalmente para comprobar que todo funciona probaremos a hacer ping entre cualquiera de los sistemas. Por ejemplo, desde el primero hacia el tercero mediante la orden:
ping -c 2 192.168.0.3

El procedimiento similar con otros sistemas operativos tanto el del host como de las maquinas virtuales a interconectar.

No hay comentarios: