• No results found

GNS3 es una aplicación realizada en Python que usa las librerías de Dynagen para crear la interfaz gráfica. Sus principales funciones son editar el archivo de texto .net y realizar las

operaciones de la interfaz por línea de comandos (CLI) de Dynagen y Dynamips [53].Este

software soporta tanto dispositivos emulados como simulados. Es posible copiar el IOS Cisco desde un router Cisco físico real y correr este en uno virtual emulado en GNS3.También simula las características y funcionalidades de dispositivos tales como un switch. En este caso no se corre un sistema operativo real, sino un dispositivo simulado desarrollado por GNS3 como es un switch capa 2. GNS3 puede ser considerado como un lugar de reunión para una variedad de emuladores de sistemas operativos. Estos emuladores son Dynamips, Quemu, Pemu, Virtual Box y VMWare [43].

2.1.1 Características de Dynamips

Dynamips es el motor de emulación, la máquina virtual que permite emular las diferentes plataformas hardware. Utiliza las imágenes de sistemas operativos de Cisco (IOS) para su funcionamiento. Además, puede emular conmutadores Ethernet, Frame Relay y ATM con funcionalidades básicas [53].

Hasta este momento, no es posible emular switches Catalyst con Dynamips debido a la imposibilidad de emular los procesadores ASIC usados en este tipo de dispositivos. Para el switching se recomienda usar imágenes IOU L2 o vIOS, ambas emuladas con Quemu. Sin embargo, se puede hacer uso de Dynamips con el módulo NM-16ESW (Módulo de switch Ethernet de 16 puertos) con las series de routers 2600s, 3600s y 3700s [43].

Inicialmente Dynamips consume gran cantidad de CPU del PC emulador. Esto se debe principalmente a que realiza la emulación de los routers instrucción por instrucción y a que no puede saber cuándo un router virtual está inactivo, de modo que ejecuta instrucciones como si la imagen del IOS estuviera realizando algún trabajo útil. Para resolver el problema del excesivo uso de CPU se crea un proceso llamado IDLE-PC [53].

El IDLE-PC es una herramienta que realiza un análisis en el código de una imagen IOS para determinar los puntos más probables que representen un bucle de inactividad, de modo que cuando se detecten, haga que los routers virtuales “duerman” durante ese instante. Es decir, IDLE-PC permite a Dynamips emular el estado inactivo de la CPU virtual de un router [53]. La aplicación de un mal valor de IDLE-PC hace que el CPU emulador trabaje entre 60% - 100% cuando emula solo un router, mientras que un buen valor hace que sólo trabaje entre 1% -10% de la capacidad. Estos valores dependen de lo potente que sea el CPU usado. Este valor será diferente para IOS de diferentes versiones y por supuesto para diferentes plataformas. Se aplicará a un router virtual cada vez que use esa IOS. Además, no es exclusivo de un PC o sistema operativo.

Dynamips también consume memoria RAM del PC emulador, ya que en teoría cada router virtual debe tener a su disposición, como mínimo, toda la cantidad de memoria RAM que necesita para poder trabajar. Esta cantidad se hace impráctica si se requieren emular redes con varios routers. Para resolver el problema del excesivo uso de memoria del PC emulador se usan herramientas que permiten compartir la memoria del mismo entre varios routers

emulados con la misma IOS, y herramientas que usan el disco en vez de la memoria del emulador [53].

Las herramientas que Dynamips usa para optimizar el uso de memoria, tanto real como virtual, del host emulador son Ghostios, Sparsemem y Mmap. Ghostios, se encarga de reducir la cantidad de memoria RAM que se necesita del host real para crear topologías con routers que corran a la vez, es decir, permite que la PC comparta una parte de su memoria entre todos los routers que usen una misma imagen IOS, de modo que cada router emulado no tenga que almacenar una copia idéntica de un mismo IOS en su memoria virtual. Sparsemem se encarga de reducir la cantidad de memoria virtual que usa un router emulado, es decir, la memoria necesaria para la ejecución de una IOS, ya que sólo asigna memoria virtual en el host que es actualmente usado por el IOS y no toda la memoria RAM configurada. Esto permite crear más routers virtuales por proceso Dynamips. Mmap realiza la correspondencia de archivos temporales del disco con la memoria virtual configurada en los routers emulados, para que cuando se requiera leer estos archivos, el sistema operativo ponga en caché sólo las secciones de los mismos que están siendo utilizados. Estas tres características se encuentran habilitadas por defecto en las últimas versiones del software (1.4.x) [43] [53].

2.1.2 Características de Dynagen

Dynagen es una interfaz escrita en Python que provee la gestión, mediante línea de comando, de las plataformas emuladas por Dynamips, haciendo más fácil su uso. Utiliza el modo Hipervisor para comunicarse con Dynamips y ambos pueden correr en la misma o en diferente PC. También simplifica la gestión de las redes virtuales ya que implementa comandos para listar, iniciar, parar, reiniciar, suspender y reanudar los diferentes dispositivos emulados. Además, determina los valores de IDLE-PC y realiza capturas de paquetes. Es capaz de conectar de forma transparente a Dynamips los diferentes dispositivos virtuales soportados [53].

Dynagen usa un archivo de texto llamado Network File, con extensión .net, para conocer todas las características de hardware de los dispositivos de red a emular y realizar las interconexiones entre ellos. Se trata de un archivo que almacena la configuración de todos los dispositivos de red de la topología virtual a simular como son los routers, switches y las interconexiones entre ellos. Este archivo puede especificar valores tan concretos como los

descriptores de los adaptadores de red (NIO) que se encargan de la conexión con equipos reales o los puertos en los que trabajan dichos adaptadores de red [53].

2.1.3 Utilización de GNS3 VM

GNS3 VM es recomendado cuando se utilizan los sistemas operativos Windows o Mac OS. El equipo de desarrollo ha estado trabajando para crear una forma de diseñar topologías en GNS3 que evite inconvenientes experimentados cuando se usa la instalación local de GNS3. Uno de estos problemas es el uso de imágenes Quemu con instalación local de GNS3 en Windows o MacOS. Cuando se crean topologías complejas en estos sistemas operativos es recomendable el uso de GNS3 VM, ya que al correr las imágenes de IOS en esta se optimiza apreciablemente el consumo de CPU y RAM. Esta máquina virtual está disponible en VMware y VirtualBox, pero la primera es la mejor opción porque es más rápida y soporta virtualización anidada (una máquina virtual dentro de una máquina virtual es acelerada por el CPU) [44]. En el Anexo # 5 se explica la instalación y configuración de GNS3 con esta característica. También en el Anexo # 6 se describen los softwares incluidos en el archivo de instalación.

Qemu es un emulador y virtualizador de máquinas genérico y de código abierto. Cuando es utilizado como emulador, Qemu puede ejecutar otros sistemas operativos o programas para otras arquitecturas diferentes a la de la máquina host. Cuando es utilizado como virtualizador, Qemu llega a tener un desempeño cercano al de la máquina real, ejecutando el código de la aplicación directamente en la CPU de la máquina host. El modo de virtualización requiere que los sistemas operativos invitados y virtualizados sean de la arquitectura x86 [43].

2.2 Emulación de dispositivos en GNS3 2.2.1 Emulación de routers

GNS3 ofrece diversas maneras para emular IOS. Para imágenes más antiguas se puede usar Dynamips. Este emulador puede correr imágenes IOS sin modificar. A partir de la versión 1.4 de GNS3 es posible correr una segunda categoría de switches y routers. Estos son clasificados como máquinas virtuales de Routing and Switching (R+Svms). Las imágenes de IOS usualmente trabajan en Dynamips, sin embargo, R+Svms están alojadas en una máquina virtual. Las imágenes de IOS tienen menos requerimientos de CPU y memoria, así que se

pueden emplear más de ellas en una topología. R+Svms son imágenes de todos los fabricantes que tienen un tamaño mayor, pero pueden ser importadas dentro de GNS3 para una emulación de red más cercana al mundo real. El principal inconveniente es que para algunas de ellas se requieren licencias [44].

En el Anexo # 1 se detallan los adaptadores de interfaces correspondientes a cada router emulado en GNS3. Las imágenes más recomendadas son c3640, c3660, c3725, c3745 y c7200, las cuales han probado ser las más estables brindando el uso de la cantidad correcta de memoria RAM y valor del Idle-PC.

2.2.2 Emulación de switches

Como se mencionó anteriormente, Dynamips no puede emular switches. Una alternativa para resolver esta deficiencia es emplear el módulo de switch NM-16ESW con las plataformas de routers c2600, c3600 y c3700. Se debe tener en cuenta que esta opción brinda solo algunas

funcionalidades de conmutación, admite las características de las VLANs (Virtual Local

Area Network, Red de Área Local Virtual), pero no las siguientes: Access Switch Device Manager (SDM) Template, DHCP Snooping, EtherChannel (Flexible PAgP), IEEE 802.1ab( Link Layer Discovery Protocol), IEEE 802.1s ( Multiple Spanning Tree (MST) Standard Compliance), IEEE 802.1s VLAN Multiple Spanning Trees, IEEE 802.3ad Link Aggregation (LACP), Private VLANs, VLAN Access Control List (VACL), entre otros [44].

La opción más recomendada para obtener todas las funcionalidades de un switch Cisco Catalyst es emplear las imágenes IOS vL2 que no son más que máquinas virtuales basadas en Quemu. En [44], en la sección “Import GNS3 appliance”, se detalla como configurar la última versión estable de esta imagen de switch. El único error que presenta este switch es que no guarda la pertenencia de los puertos a las VLAN configuradas.

GNS3 posee integrada la capacidad de emulación de switches Ethernet simples con funcionalidades básicas como la creación de VLANs o el funcionamiento del trunking 802.1q. Por defecto, un switch emulado con GNS3 tiene 8 puertos configurados en la VLAN1, pero se pueden añadir hasta 10000 puertos; cada uno de ellos puede ser de acceso o troncal. Esta opción puede ser útil cuando se despliega una topología con numerosos routers y donde no se requieren prestaciones avanzadas de conmutación, en aras de disminuir el uso de recursos.

2.2.3 Simulación y emulación de PC

GNS3 permite la conexión de topologías con hosts ya sean reales o virtuales. Se puede hacer un bridge o puente de la topología con la tarjeta de red ya sea cableada o inalámbrica. Las dos formas de simular PC en GNS3 son a través de Virtual PC Simulator y Qemu Host. Virtual PC Simulator es un programa que viene integrado a la interfaz de GNS3 y permite

simular PCs que soportan básicamente IPV6, DHCPv4 (Dynamic Host Configuration

Protocol for IPv4, Protocolo de configuración dinámica de host para IPv4), ping y traceroute. Sólo consume 2MB de RAM por nodo. Para agregar estaciones de trabajo solo se requiere arrastrar el ícono VPCS de la columna de dispositivos disponibles hacia el área de trabajo. Es preciso configurarle una dirección IP con máscara y un gateway. Para guardar la configuración se debe emitir el comando save [44].

Qemu Host es una imagen de línea de comando CLI (Microcore) o bien una imagen GUI (Tinycore). Es básicamente una imagen de Linux que puede ser utilizada para realizar algunas tareas básicas de conectividad como por ejemplo telnet, ssh, route, tcpdump y también soporta IPV6. En versiones anteriores de GNS3 “Qemu Guest” era una opción en el área de nodos disponibles, pero la instalación local de imágenes basadas en Qemu

desencadenaba molestos errores. En [44], en la sección “Adding VMWare VMs to GNS3

Topologies”, se describe la instalación y configuración de una máquina virtual Tinycore en VMWare y su asociación con GNS3.

Dado que GNS3 admite la integración con Virtual Box y VMware es posible añadir máquinas virtuales que funcionen con distintos sistemas operativos. Esto posibilita que GNS3 no solo sea útil para el entrenamiento en aras de conseguir una certificación Cisco, sino que también sea usado para obtener certificaciones de otros proveedores como Microsoft.