Wednesday, 1 July 2009

Emulando redes con Dynamips

1. Introducción
Dynamips es un software que sirve para emular el funcionamiento de routers marca Cisco. El
software fue escrito por Christophe Fillot. Es capaz de emular routers de las gamas 1700, 2600, 3600, 3700 y 7200 a partir de una imagen de IOS que se debe conseguir de Cisco. Dynamips se basa en Dynagen, el cual es un front-end de modo texto. Sirve para poder construir las redes virtuales. Dynagen se caracteriza por:
• Usar un archivo de texto simple y fác
il de entender para especificar la configuración de los routers
• Usa una sintaxis simple para conectar los elementos de la red.
• Puede trabajar en modo cliente/servidor, con lo que puede configurar equipos en varias máquinas que trabajan con Dynamips.
• Provee de un CLI para gestionar dispositivos (encenderlos, apagarlos, reiniciarlos,
suspenderlos)

2. Ventajas
Dynamips es muy útil para:

• Perder el miedo de
ingresar comandos en un IOS, el cual es idéntico al que se encuentra en routers reales de una red en producción.
• Experimentar y probar características de un IOS
• Crear laboratorios de prueba para experimentar configuraciones con el objetivo de llevarlas
luego a redes en producción.
• Entrenamiento de personal y medición de habilidades. Es bueno aclarar que un emulador nunca podrá reemplazar un router real.

3. Consideraciones de riesgo en el host en donde se ejecuta Dynamips
Hay algunas consideraciones a tener en cuenta en lo que respecta al uso d
e la memoria y al uso del procesador. En lo que respecta a la memoria, Dynamips usa lo justo: la cantidad de RAM que usted especifique que va a usar su enrutador virtual será la RAM que el computador use, adicionando 64 MB para hacer caché de las transacciones JIT. Por lo regular será menos la cantidad de memoria usada debido a que Dynamips se apoya en archivos temporales en disco para simular la memoria virtual del router. Sobre el uso de CPU, Dynamips la explota totalmente, esto debido a que se emulan absolutamente todas las instrucciones que se ejecutan dentro de la CPU virtual del enrutador. Cuando el router inicia, no es posible para la máquina saber cuándo el router virtual está en estado idle, por lo que la máquina ejecuta todas las rutinas que se hacen cuando el router está idle. Se recomienda ejecutar el comando ‘idlepc’ (que se verá próximamente) con el objetivo que la máquina se dé cuenta de cuáles rutinas son las que corresponden cuando el router está en idle y se baje la prioridad de las mismas, con lo que el consumo de CPU baja ostensiblemente.

4. Instalación:
Dynamips puede ser ejecutado en Linux o en Windows.
Para Windows, debemos tener en cuenta que la librería WinpCap debe estar previamente in
stalada, se puede obtener de forma gratuita del siguiente link: http://www.winpcap.org/ Winpcap lo que provee es la capacidad de poder enlazar las interfaces virtuales de los routers con interfaces físicas. Igualmente, ofrece la capacidad de capturar datos.



La instalación de Winpcap no tiene nada del otro mundo, simplemente es ejecutar el instalador y
hacer click en ‘next’ o ‘I agree’ según sea el caso con el fin de completar la instalación.
Luego de esto, se debe instalar el programa, el cual se puede bajar de la siguiente ubicación:
http://sourceforge.net/project/showfiles.php?group_id=160317


En la ventana siguiente, hacemos click en ‘Next’

Aceptamos los términos de la licencia GNU

Luego, nos pide solicitar que insertemos el nombre de la carpeta del menú inicio donde va a quedar instalado el programa. El programa instala y queda listo para ser ejecutado

Ya podemos ir a ‘Mi Escritorio’ en donde aparecen varios accesos directos de las utilidades de las cuales consta el programa.

La carpeta llamada ‘Dynagen Sample labs’ contiene ejemplos de redes montadas con Dynamips. Se pueden usar como referencia a la hora de mirar cómo se puede configurar una red que contenga una nube Frame Relay, un switch Ethernet, un PIX, entre otros. ‘Dynamips Server’ es la consola principal de Dynamips, en donde podemos hacer gestión de la red que vamos a simular.
‘Network Device List’ es en script que nos muestra las interfaces que tiene la máquina
conectada. ‘Pemu server’ es un emulador de firewalls Cisco PIX, por ahora no se entra en detalles sobre esto.

Es importante tener en cuenta que en la ruta c:\Archivos de Programa\Dynamips\images\ se deben
copiar los archivos .bin que corresponden a las imágenes de los IOS que se vayan a utilizar en los
equipos de la red a emular. Dynamips no distribuye IOSs.


Un elemento de red importante dentro de una red son los hosts. Los host nos sirven como punto de
prueba para verificar que el laboratorio que se está emulando está funcionando bien.
Existe un programa (no viene con la instalación de Dynamips) que me permite emular hasta 9
hosts y conectarlos de forma virtual a cualquier interfaz de los elementos de la red que se va a
simular.
El programa se llama Virtual PC Simulator, no requiere instalación y se puede bajar en el URL:
http://www.freecode.com.cn/doku.php?id=wiki:vpcs
Esta utilidad no requiere instalación.
Al descomprimir el archivo que se baja de la página, el archivo de interés es el que se llama
startup.vpc, el cual establece las direcciones IP de los PCs a ser emulados, su default Gateway y
su máscara de subred.
A través de un ejemplo se explicará cómo se realiza la simulación de un laboratorio en Dynamips.
Se usará el laboratorio que viene en la instalación de Dynamips que se llama ‘simple1.net’, el cual
está ubicado en c:\Archivos de Programa\Dynamips\sample_labs\simple1\
Este laboratorio conecta dos enrutadores Cisco 7200 entre si.

El Archivo simple1.net tiene la siguiente estructura:


1 . encabezado que da a entender que los elementos de red a emular se pondrán a corren en
la máquina local.
2. Establece una instancia de un router 7200, el cual tiene una imagen llamada c7200.bin y
que está ubicada en la ruta mostrada
3. especifica parámetros físicos del enrutador. En este caso, especifica el tipo de NPE
(network Processing Engine) y la cantidad de memoria RAM que tiene el enrutador.
4. Crea el router que se llama R1 (éste no se relaciona en ningún momento con el hostname)
y especifica que se conectará la interfaz serial 1/0 con la interfaz S1/0 del router R2, el cual
es definido en la parte 5
5. Define el router llamado R2. Debido a que la interfaz S1/0 ya está conectada por lo
especificado en el punto 4, no es necesario especificarlo de nuevo.

Tenemos el archivo de configuración listo, podemos proceder a correr el entorno de emulación.
Ejecutamos el Dynamips Server (ubicado como acceso directo en el escritorio)
Nos saldrá una pantalla similar a esta:


Ya acá en este punto podemos ejecutar el archivo Simple1.net, haciendo doble click en él.
Nos aparece en la pantalla una consola que nos servirá para gestionar la red que se está
emulando.


Desde ese prompt se pueden ejecutar comandos. Con el comando Help podemos ver otros comandos que se pueden ejecutar.


Por ejemplo, para verlo los elementos que están en la red los podemos listar con el comando list


Ahí vemos que tenemos 2 enrutadores, que son de la familia Cisco 7200, están en ejecución.Ya podemos proceder a ingresar por ellos en modo consola. Esto se consigue con el comando console /all. El atributo /all permite extender el comando console a todos los enrutadores que están en ejecución
En consecuencia se abren 2 ventanas con la consola en las cuales se puede observar que el sistema empieza a bootear el equipo y a descomprimir el IOS, tal como lo hace un router real.
Tal como ilustra la figura, el procesamiento de la CPU del equipo en el que corre Dynamips se incrementa tan pronto se ponen a correr los enrutadores.

Eso pone en riesgo la estabilidad del equipo y la rapidez en la respuesta a los comandos que uno
inserta en el enrutador. Para solucionar esto, debemos establecer un valor de parámetro para la
opción de configuración idlepc. Esto se hace de la consola de Dynagen. Se usa el comando idlepc
get R1 (en este caso para el enrutador R1)
Este comando hace un análisis del ser de instrucciones en ejecución por parte de emulador.
Detecta qué comandos se ejecutan cuando el enrutador está en idle, con el fin de optimizar
procesamiento)
Cuando la consola termina de hacer el análisis, saca unos valores potenciales que podrían
seleccionarse para bajar el nivel de procesamiento.
En este caso, salió lo siguiente:

Esto nos indica que un valor potencial de idlepc es el 1 y el 6. Seleccionamos el 6.
Este mismo proceso se hace para el router 2.
Tan pronto elegimos el valor de idlepc para R2, el procesamiento cae inmediatamente.


Es importante decir que estos valores idlepc funcionan para esta configuración. Por lo tanto si hay
un cambio de topología (se añade otro equipo, por ejemplo) este proceso se debe hacer de nuevo.
Los valores que arroja luego de ejecutar el comando idlepc get R1 o R2 se deben escribir en el
archivo de configurtación simple1.net con el objetivo que la próxima vez que se ejecute la
topología, ésta ya cargue por default estos parámetros y este proceso no sea necesario de
realizarlo de nuevo.
El archivo de configuración simple1.net quedaría asi:


Los valores no necesariamente dan iguales, como en este caso.
Ya dentro del enrutador, podemos proceder a usar el CLI para configurar el equipo de la manera
más conveniente.

Y verificamos que haya conectividad entre los enrutadores


A partir de esto, se pueden hacer diseños más complejos e investigar cómo se pueden conectar
interfases físicas (reales) a algún router

5. Referencias:
Dynamips Homepage: http://dynagen.org/tutorial.htm
Cisco 7200 simulator http://www.ipflow.utc.fr/blog/
Vrtual PC Simulator http://www.freecode.com.cn/doku.php?id=wiki:vpcs

No comments:

Post a Comment