Curso de Redes Cisco – Parte 1 – Configuración de Dynamips/Dynagen

5 Ago

Hace un par de años, como parte de mi proyecto de pregrado, hice algunas pruebas con Dynamips para simular entornos de red con sistemas operativos IOS Cisco. Esta es una solución mucho más interesante que usar el Packet Tracer de Cisco, ya que al usar imágenes de sistemas operativos reales, se tiene acceso a funcionalidades que no están disponibles en PT. Mi intención entonces, para iniciar la colaboración con el blog, es recopilar la información y documentación que hice en ese momento de esos entornos de simulación y ejercicios prácticos para preparación de certificaciones CCNA y algunos niveles de CCNP.

Dynamips/Dynagen/GNS3

Aunque en la web oficial de Dynamips se dice que es un emulador, a mí me gusta decir que es un motor para virtualizar sistemas operativos de las familias 1700, 2600, 3600, 3700 y 7200, y me gusta decirlo porque es posible conectar los sistemas virtualizados a máquinas reales, y a otras máquinas virtuales como VirtualBox y VMWare. Es importante aclarar que desafortunadamente Dynamips no tiene soporte para virtualizar switches de la familia Catalyst -una lástima-, a pesar de incluir un switch con características (muy) básicas.

Para trabajar con Dynamips se puede usar el front-end de texto Dynagen, o el entorno gráfico de GNS3, que es bastante similar a Packet Tracer visualmente, y que no hace otra cosa más que generar los mismos archivos de texto que utliza Dynagen a partir de una interfaz gráfica. Tanto Dynamips, como Dynagen y GNS3 están disponibles en los repositorios de las principales distribuciones de Linux, y es por esto que voy a obviar la instalación de todos estos paquetes.

Por muchas razones que no vale la pena aclarar, no puedo poner aquí las imágenes de IOS que estoy usando, pero sí voy a listarlas, simplemente por referencia:

null   
c2600-ik2s-mz.121-27b.bin
c2800nm-advipservicesk9-mz.124-22.T.bin
c3640-jk9s-mz.124-16a.bin
c7200-ik9s-mz.123-17b.bin

Para trabajar con estas imágenes, es necesario descomprimirlas. Para esto unzip es más que suficiente:

null   
$ unzip -p c7200-ik9s-mz.123-17b.bin > c7200-ik9s-mz.123-17b.image

Cliente Telnet

Cuando se hace la instalación desde repositorios, el archivo de configuración de Dynagen se encuentra en /etc/dynagen.ini, y dentro de este archivo están estas líneas para seleccionar el cliente de Telnet que se usará para la configuración de los dispositivos:

null   
# Uncomment below for Linux
telnet = xterm -T %d -e telnet %h %p > /dev/null 2>&1 &

Como se puede ver, la instalación por defecto utiliza xterm como cliente para la consola de los dispositivos. En mi caso, uso XFCE como entorno de escritorio, entonces edité esa línea para usar xfce4-terminal (los parámetros funcionan exactamente igual):

null   
telnet = xfce4-terminal -T %d -e telnet %h %p > /dev/null 2>&1 &

Archivos de ejemplo

Cada topología de Dynagen se guarda como un archivo con extensión .net, en donde están descritos los dispositivos y las conexiones entre ellos. Con la instalación de Dynagen vienen algunos archivos de ejemplo para uso del programa en la carpeta /usr/share/doc/dynagen/examples/. De esta carpeta he tomado el archivo simple1.net y lo he editado de acuerdo a mi configuración y organización de archivos y carpetas:

null   
# Simple lab
 
[localhost]
 
  [[7200]]
    image = /home/juanp/Software/Cisco IOS/images/c7200-ik9s-mz.123-17b.image
    npe = npe-400
    ram = 160
 
  [[ROUTER R1]]
    s1/0 = R2 s1/0
 
  [[router R2]]

Explicando el archivo un poco más en detalle:

  • [localhost]: Indica la ruta del servidor de Dynamips, es posible direccionarlo a una IP local.
  • [[7200]]: Las instrucciones bajo esta describen el modelo de dispositivo.
    • image = : Especifica la ruta del archivo de imagen usado para el dispositivo
    • npe = : NPE significa Network Processor Engine, es el motor de procesamiento que usa Cisco en sus dispositivos.
    • ram = : Cantidad de RAM asignada. Para cada caso es recomendable consultar el mínimo de RAM para cada familia de dispositivos.
  • [[ROUTER R1]], [[ROUTER R2]]: Son las instancias de dispositivo.

En este ejemplo, debido a que solamente existe una clase de dispositivo definida, los enrutadores R1 y R2 automáticamente seleccionan la clase [[7200]]. En otros casos es necesario especificar el modelo a utilizar, cuando se están usando varios tipos de enrutadores. Para efectos prácticos voy a trabajar con el mismo modelo en todos los ejemplos.

Adicionalmente, la línea “s1/0 = R2 s1/0” describe la conexión entre ambos dispositivos, y solamente es necesario especificarla una vez, en cualquiera de las dos instancias. Más adelante haré ejemplos que incluyan más conexiones donde se verán las topologías más claramente.

Ejecución de un archivo

Un archivo .net se ejecuta en varios pasos. En primer lugar se ejecuta el motor de Dynamips, en este caso utilizando el puerto 7200:

null   
$ dynamips -H 7200
Cisco Router Simulation Platform (version 0.2.8-RC2-x86)
Copyright (c) 2005-2007 Christophe Fillot.
Build date: Sep 10 2010 23:14:58
 
ILT: loaded table "mips64j" from cache.
ILT: loaded table "mips64e" from cache.
ILT: loaded table "ppc32j" from cache.
ILT: loaded table "ppc32e" from cache.
Hypervisor TCP control server started (port 7200).

Después ejecutamos la consola de Dynagen, con el archivo de topología que hemos creado:

null   
$ dynagen simple1.net 
 
Reading configuration file...
 
*** Warning: Starting R1 with no idle-pc value
*** Warning: Starting R2 with no idle-pc value
Network successfully loaded
 
Dynagen management console for Dynamips and Pemuwrapper 0.11.0
Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa
 
=>

En este caso aparecen dos alertas relacionadas con el arranque de cada uno de los enrutadores, pero no hay que prestarles mucha atención. Adicionalmente, el comando list nos muestra los dispositivos contenidos en la topología, y el status general de cada uno de ellos:

null   
=> list
Name     Type     State     Server            Console 
R1       7200     running   localhost:7200    2000 
R2       7200     running   localhost:7200    2001 
=>

Finalmente, el comando console R1 ejecuta la consola para el dispositivo R1, abre una nueva ventana de comandos para esto, y allí podemos ver los mensajes de configuración normales de inicio de un IOS Cisco completamente funcional y en blanco:

null   
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connected to Dynamips VM "R1" (ID 0, type c7200) - Console port
 
--- System Configuration Dialog ---
 
Would you like to enter the initial configuration dialog? [yes/no]:

Conclusión

Para resumir rápidamente, en este post mostré la forma de configurar Dynamips y Dynagen para usar con una imagen de un IOS Cisco, a partir de aquí haré algunos ejemplos con ejercicios típicos dentro de la preparación de una certificación CCNA, de manera que este post será referencia para las configuraciones posteriores.

Aprovecho para saludar a mis buenos amigos DaPa y chesstrian, y para agradecerles por dejarme usar este espacio para publicar lo que tengo para compartir, y para no dejar que la documentación que tengo de tantos proyectos y cosas que se van atravesando, se pierda. Un abrazo.

Acerca del autor

Juan Pablo Caro ha escrito una publicación en este blog.

No hay comentarios aún.

Deja un comentario