lunes, 23 de febrero de 2009

Simulando topologías de red con Dynamips

Bien, antes que nada es preciso contar con una herramienta de simulación adecuada.
Dynamips es, de las herramientas de simulaciíon que he usado, simplemente la mejor y la mas completa ya que es una máquina virtual de enrutadores Cisco, no obstante podria no ser tan amigable como otras herramientas de simulación (Packet Tracer, Simulink, etc).

Antes que nada es preciso saber que Dynamips solamente soporta y emula las siguientes plataformas de enrutadores Cisco 1700, 2600, 3600, 3700, and 7200.

Dynamips no emula IOSs de switches, no obstante si nuestra topología lo requiere se puede definir switches en el script de Dinagen, como se lo describe más adelante este blog

A continuación se describen los pasos para poner a funcionar Dynamips (sin modo gráfico)

Paso 1
Descargar Dynamips:
Para Windows
Para Linux o sistemas operativos basados en OS X Intel 10.4 o 10.5



Adicionalmente es preciso descargar winpcap para poder conectar nuestros enrutadores virtuales con la tarjeta de red de nuestra PC física.


Una vez que instalamos Dynamips y Winpcap se crean en nuestro escritorio los siguientes iconos



Dynamips consta de dos partes: Dynamips y Dynagen. Dynagen actúa como la interfaz de usuario de Dynamips brindando una CLI para ver los equipos que están corriendo e iniciar una consola de los mismos; Dynagen usa un archivo de texto de extensión .net en el cual definimos la topología de nuestra red. (conexiones entre enrutadores virtuales y con tarjetas físicas).

Bien vamos a simular la siguiente topología:


Nota: Hacer click en la imagen para verla con mejor resolución


Paso1
Dar doble click en Dynamips server. Debemos ver la siguiente ventana















Paso2
Luego procedemos a crear el script de dynagen para nuestra simulación, el script puede estar guardado en cualquier carpeta de la PC. A continuación se muestra el script que corresponde a la topología que estamos simulando.


# Simple lab
sparsemem = True
ghostios = True

[localhost]

[[2691]]
image = C:\Program Files\Dynamips\images\c2691-advipservicesk9-mz.124-17.bin
ram = 128

[[ROUTER R1]]
model = 2691
f0/0 = R2 f0/0

[[ROUTER R2]]
model = 2691
f0/1 = NIO_gen_eth:\Device\NPF_{00F8C8D0-76DB-42E6-89BA-79714EC73170}

Como se puede apreciar en el script estamos trabajando con dos enrutadores 2691 (R1 y R2). El IOS de los enrutadores se encuentra en la siguiente ubicación C:\Program Files\Dynamips\images\c2691-advipservicesk9-mz.124-17.bin

Notemos que no es necesario definir la conexión entre los enrutadores en ambos sentidos (solo fue necesario definir que R1 en la interfaz FastEthernet 0/0 se va a conectar con R2 en la interfaz FastEthernet 0/0 no fue necesario definir la misma conexión de R2 a R1)

Para poder conectar el enrutador R2 con la tarjeta física del PC fue necesario añadir la siguiente linea:

f0/1 = NIO_gen_eth:\Device\NPF_{00F8C8D0-76DB-42E6-89BA-79714EC73170}

Lo que está despues del igual corresponde al mapeo hecho hacia la tarjeta física. Para obtener la cadena hacemos click en el ícono "Network device list" de la lista que nos aparece seleccionamos la interfaz física del PC con la cual nos queremos conectar y la copiamos en el script. Es posible hacer que nuestros enrutadores virtuales se conecten con interfaces físicas y con interfaces de loopback












Una vez que tenemos listo el script lo guardamos con extensión .net y lo ejecutamos, teniendo abierto claro está Dynamips server.

Una vez ejecutado el script aparecerá la interfaz CLI de Dynagen












Con el comando list podemos ver el listado de enrutadores de nuestra simulacion.

Para iniciar la consola de los enrutadores podemos usar los siguientes comandos:

console R1
console R2

ó caso contrario si queremos iniciar la consola de todos los enrutadores:

console /all




A este punto tenemos dos enrutadores conectados entre si y con la tarjeta física del pc de acuerdo con nuestra topología, no obstante es necesario un paso mas.

Dynamips por defecto consume recursos de nuestra PC aún cuando los enrutadores no están ejecutando ninguna tarea, lo que escribo puede ser comprobado viendo el rendimiento de nuestra PC al momento de iniciar la simulación.


Para evitar esto Dynamips es necesario generar un valor de idlepc el cual permite que los enrutadores virtuales no consuman recursos del PC cuando no están ejecutando tareas (pasar tráfico a través de las interfaces, IGPs, etc.)

Para generar el valor de idlepc para el enrutador R1, ejecutar el siguiente comando desde la consola de Dynagen (la consola del enrutador debe haber sido previamente activada con el comando console R1):

=> idlepc get R1


A continuación se nos muestran 10 valores, introducimos en la consola el número que sale con asterisco.


Luego debemos guardar el valor de idlepc obtenido, para esto usamos el comando idlepc save R1 desde la consola de Dynagen. Luego de ejecutar este comando el valor de idlepc escogido fue guardado en el script.

[[ROUTER R1]]
model = 2691
f0/0 = R2 f0/0
idlepc = 0x60a3046c

Ahora podemos ver que el procesamiento de la CPU del PC ha disminuido considerablemente



El valor del idlepc obtenido es único para cada PC, el valor mostrado en este blog podría no funcionar bien en otra PC. En general el valor obtenido en la primera simulación para R1 puede ser apicado en los demás routers de cualquier simulación, para hacerlo simplemente nos fijamos en el valor de idlepc guardado en el script y lo copiamos en los scripts de nuestras futuras simulaciones.

Pufff !!!! bien finalmente hemos terminado.

Dynamips es una herramienta muy poderosa, lo descrito en esta primera publicación son simplemente los pasos básicos para poder levantar una simulación.

Bien espero les haya gustado, cualquier duda o sugerencia por favor dejen su comentario.








10 comentarios:

Anónimo dijo...

Robert buen comienzo.

Anónimo dijo...

Bien Robert, es la herramienta que estoy usando para mi tesis, pilas ahí que voy a usar tu blog en mi tesis, con tu permiso claro

@ndreko dijo...

Chevere mi pana que compartas tus conociemientos en internet. Sigue adelante.

Anónimo dijo...

Ningún problema Adrian hagale

Luis David dijo...

Hola man... que bueno que hayas creado un blog de networking, para que podamos entender un poco mas el tema...
Sigue asi.

Slds.

Luis Reyes

Unknown dijo...

ya pos haz otro ingreso en tu blog men

fede dijo...

Hola amigos,
"podria no ser tan amigablecomo PT", por eso yo utilizo GNS3(un front-end para dynamips)
Cuando recalculo el IDLE PC obtengo varios valores con asteriscos, ¿cual debo elegir?

¿¿Este valor cambia (en el misma PC y router) de un dia para otro o es siempre el mismo para ese modelo de router??

Gracias, saludos:D

Liz dijo...

no sirve el instalador para windows !! actualízalo si

Anónimo dijo...

en este blog esta como usarlo con linux http://dynamip-debian.blogspot.com/

Unknown dijo...

Genial ya lo probe y como es tan practico salio rapidito! el ejemplo! muuchas gracias