Cómo montar nuestro propio laboratorio para redes virtuales usando GNS3, una plataforma gratuita que permite simular dispositivos de red en un entorno virtual. Mostraremos cómo agregar dispositivos Cisco (router de la serie C7200) a GNS3 para su uso simulando estos dispositivos en real. Y montamos un entorno funcional de un router y dos endhost (PC) conectados mediante subinterfaces (VLAN) del router.
- ¿Qué es GNS3?.
- Requisitos para montar de un laboratorio GNS3 en un equipo con Windows.
- Descarga e instalación de GNS3 en equipo Windows.
- Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2.
- Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN).
- Posibles errores, su causa y su solución.
¿Qué es GNS3?
GNS3 es un simulador gráfico de red que permite diseñar topologías de red complejas y poner en marcha simulaciones sobre ellas, permitiendo la combinación de dispositivos tanto reales como virtuales.
Para permitir completar simulaciones, GNS3 puede incluir:
- Dynamips: un emulador de IOS que permite a los usuarios ejecutar binarios de imágenes IOS de Cisco Systems.
- Dynagen: front-end basado en texto para Dynamips, Qemu y VirtualBox. Permite utilizar máquinas virtuales como un firewall PIX.
- VPCS: emulador de PC con funciones básicas de networking (ping, traceroute, etc.).
- IOU (IOS on Unix): compilaciones especiales de IOS provistas por Cisco para ejecutarse directamente en sistemas UNIX y derivados.
Además, incluye otros paquetes/software que se puede integrar con GNS3. A continuación mostramos una lista de ellos, si son obligatorios o no en la instalación de GNS3 y su función:
WinPCAP | Requerido | Necesario para conectar GNS3 a la propia red del equipo anfitrión (a la red real). Es usado por los nodos Cloud y NAT para permitir que los proyectos GNS3 se comuniquen con el mundo exterior. |
Npcap | Opcional | Es el futuro sucesor de WinPCAP. Soluciona problemas conocidos de WinPCAP con Windows 10, aunque de momento no está 100% testeado en todos los sistemas. Es recomendable instalar Npcap con la opción «Modo compatible con API WinPcap», si se desea usar sin WinPcap. Npcap puede coexistir con WinPcap, si no se marca la opción anterior. |
Wireshark | Recomendado | Permite capturar y ver el tráfico de red enviado entre nodos. |
Dynamips | Requerido | Paquete requerido para ejecutar una instalación local de GNS3 con enrutadores Cisco. Si no se va a usar Cisco en este modo puede desmarcarse este paquete para que no se instale, se usarán entonces únicamente VM GNS3. |
QEMU | Opcional | Emulador de equipos (PC). Emula un equipo completo con varios sistemas operativos disponibles: Linux, Windows, etc.. |
VPCS | Recomendado | Emulador de PC muy ligero que admite comandos básicos como ping y traceroute. |
Cpulimit | Opcional | Se usa para evitar que QEMU use el 100% de la CPU (cuando se está ejecutando) en algunos casos, como con los dispositivos ASA antiguos. |
GNS3 | Requerido | El núcleo del software GNS3. Es obligatoria su instalación. |
TightVNC Viewer | Recomendado | Cliente VNC para control remoto, para conectar con las interfaces gráficas de los appliances. |
Solar-Putty | Recomendado | Aplicación de consola PuTTY para conexión SSH, Telnet, etc. a los dispositivos. |
Virt-viewer | Recomendado | Visualizador alternativo de máquinas virtuales de escritorio Qemu que tienen qemu-spice preinstalado. |
Intel Hardware Acceleration Manager (HAXM) | Opcional | Solo disponible en sistemas con CPU Intel (y VT-X habilitado), que no usan Hyper-V. Utilizado para la aceleración de hardware de la emulación de Android, así como QEMU. |
Requisitos para montar de un laboratorio GNS3 en un equipo con Windows
Únicamente necesitaremos disponer de un equipo con el sistema operativo Windows, a ser posible Windows 10 o superior. GNS3 también soporta Mac y Linux. En este tutorial explicaremos cómo montar un laboratorio con GNS3 sobre un equipo con Windows 10.
Deberemos disponer de usuario y contraseña de Windows con suficientes privilegios como para instalar software como administrador (con los privilegios más elevados).
Y necesitaremos conexión a Internet para poder descargar el software GNS3 y las IOS de Cisco necesarias.
Descarga e instalación de GNS3 en equipo Windows
Para descargar GNS3 deberemos crear una cuenta (es gratuito) en GNS3. Accederemos a la web oficial de GNS3 y pulsaremos en Free Download. Nos mostrará una ventana emergente donde podremos iniciar sesión con un usuario existente o bien rellenar los datos básicos que nos solicita para el registro:
A continuación, incluso sin validar la dirección mail, directamente, podremos descargar GNS3 para Windows, Mac o Linux. También dispone de máquina virtual para VirtualBox, VMware Workstation and Fusion, VMware ESXi o Microsoft Hyper-V. En nuestro caso pulsaremos en la descarga para Windows:
Ejecutaremos el fichero de instalación descargado GNS3-2.2.8-all-in-one-regular.exe como administrador, pulsando con el botón derecho del ratón sobre él y eligiendo «Ejecutar como administrador»:
Seguiremos los pasos del asistente de instalación de GNS3 en su versión 2.2.8:
Marcaremos los componentes que queramos instalar para GNS3. En el primer punto del artículo los enumeramos, así como su función y si son requeridos, recomendados u opcionales:
Muchos de ellos son componentes que se integran con GNS3, para su posterior uso interno.
Dejaremos los que vienen marcados por defecto, si necesitamos acceso a nuestro servidor GNS3 externo (desde otros equipos de la red) marcaremos el componente GNS3 WebClient, que permitirá el acceso externo.
Continuaremos con la instalación de GNS3. Algunos paquetes se instalarán por separado, como Npcap:
Y algunos paquetes requerirán de la aceptación de los términos de licencia, como Solar-PuTTY:
Un vez finalizada la instalación pulsaremos «Next»:
Si hemos marcado el paquete Solar-PuTTY nos mostrará una ventana para adquirir licencia, marcaremos «No» o «Yes» en función de lo que queramos hacer:
Pulsaremos en «Finish» y marcaremos «Start GNS3»:
Nos dará la opción de crear un nuevo proyecto, pero la cancelaremos pulsando en «Cancel», dado que aún no disponemos en el entorno GNS3 de routers y switches Cisco.
En el entorno GNS3, por defecto, dispondremos de ATM switch, Cloud, Ethernet hub, Ethernet switch, Frame Relay switch, NAT y VPCS:
Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2
Los IOS de Cisco son propiedad de Cisco Systems y requieren de licencia, por lo que no vienen preinstalados en GNS3. Si queremos usarlos deberemos adquirirlos previamente y luego instalarlos en el entorno, como explicamos a continuación.
Una vez adquirida la licencia de la IOS de Cisco descargaremos la imagen:
En el caso de no disponer de licencia existen varios repositorios desde los que se pueden descargar estas IOS, sin licenciar, aunque solo para usos restringidos. Podemos buscar en Google: intitle:index.of cisco ios parent directory bin.
Dejamos en nuestro sitio web disponible una IOS, solo a título educativo y de forma temporal, compatible con GNS3 2.2.8 y Dynamips:
Recomendación: es muy importante buscar la IOS compatible con GNS3 y con Dynamips, de lo contrario podremos tener problemas en la instalación y en el uso posterior en nuestros laboratorios.
Una vez descargada la imagen IOS del dispositivo Cisco que queramos agregar a GNS3, abriremos GNS3 (cuando vayamos a hacer alguna tarea de configuración de GNS3 recomendamos ejecutarlo como administrador):
y accederemos al menú «Edit» – «Preferences»:
Desplegaremos a la izquierda Dynamips y pulsaremos en IOS routers, en la parte derecha pulsaremos en New:
Pulsaremos en Browse:
Buscaremos y seleccionaremos la IOS del dispositivo Cisco descargada anteriormente (fichero con extensión .bin o .image), en nuestro caso el fichero c7200-advipservicesk9-mz.152-4.S5.bin:
GNS3 nos indicará si queremos descomprimir el fichero. GNS3 permite trabajar con IOS comprimidas o descomprimidas. En nuestro caso lo descomprimiremos, por lo que pulsaremos Yes:
Al descomprimirlo vemos que el fichero .bin, en realidad, es un comprimido que incluye un fichero .image (en nuestro caso c7200-advipservicesk9-mz.152-4.S5.image) y que descomprimirá para su uso en la carpeta C:\Users\usuario\GNS3\images\IOS. Pulsaremos Next para continuar:
El asistente comprobará que la IOS es compatible tanto con GNS3 como con Dynamips, si lo es no mostrará mensajes de advertencia. También puede que nos indique que la IOS es antigua (como lo haría un router real), advirtiendo del riesgo de seguridad que supone.
En nuestra instalación, al usar una IOS compatible y actual no mostrará mensajes de advertencia, directamente nos pedirá que introduzcamos el nombre del dispositivo (el que se verá al seleccionarlo en los proyectos) y la plataforma (Platform). Dejaremos los valores por defecto: c7200 y pulsaremos Next:
Para esta IOS en concreto la recomendación de memoria es de 512Mb mínimo, es recomendable respetarla para evitar posibles errores en su ejecución:
Elegiremos los slot que se cargarán en el router por defecto cuando lo agreguemos a un proyecto. Normalmente se suele dejar el slot 0 de tipo C7200-IO-FE, pero se puede elegir el que se necesite y requiera:
A continuación el asistente nos dará la posibilidad de agregar el Idle-PC. Se trata de un mecanismo de protección que incluye GNS3 de forma que si el dispositivo consume más de un umbral de CPU del equipo lo limitará para que no llegue a «colgar» el equipo consumiendo el 100%. Podremos obtener automáticamente el valor del Idle-PC pulsando en Idle-PC finder, puede que tarde unos minutos en obtenerlo:
Realizará la conexión con el servidor GNS3 para obtener el idle-pc:
Si lo obtiene mostrará un mensaje indicando su valor para la IOS elegida:
Continuaremos con el proceso de instalación del router de la serie C7200 de Cisco en GNS3 pulsando en Finish:
Comprobaremos los valores establecidos para el dispositivo, si son correctos pulsaremos Apply y OK:
A partir de ahora podremos usar este dispositivo router Cisco C7200 como si de uno real se tratara, como veremos a continuación.
Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)
Crearemos un proyecto simple para comprobar que el nuevo dispositivo agregado a GNS3 funciona correctamente. Para ello pulsaremos en el menú «File» – «New blank project»:
Introduciremos el nombre para el proyecto y la ubicación donde se almacenarán los archivos y pulsaremos en OK:
Pulsaremos en el botón «Browse routers» [1] y en el nuevo dispositivo c7200 [2] y lo arrastraremos al entorno de trabajo (parte central):
Haremos lo propio para agregar dos VPC, desde el botón «Browse End Devices», arrastrando dos veces los endhosts VPCS:
Así va quedando nuestro proyecto:

Podremos configurar el router antes de agregar las conexiones, pulsando con el botón derecho del ratón sobre el router (R1) y eligiendo «Configure»:
Veremos todas las opciones de configuración del router: nombre, plataforma, imagen IOS, midplane, NPE, tipo de consola (de momento telnet), memoria RAM y NVRAM, PCMCIA, slot y adaptadores, system ID, MAC, idle-pc, idlemax, idlesleep, exec area, power supply, temperatura, etc.. Prácticamente como si de un router real se tratara:
En nuestro caso y para este proyecto simple no necesitaremos modificar la configuración. Sobre todo la parte de los slot podríamos tener que modificarla si fuera necesario, cuando requerimos de más conexiones físicas (virtuales pero en el entorno como si fuesen físicas). Por ello cerraremos la ventana de configuración sin aplicar cambios.
Crearemos las conexiones entre los distintos endhosts y el router. Para ello pulsaremos en el botón «Add link»:
Haremos click con el ratón en el router, nos mostrará un menú emergente con los adaptadores disponibles, elegiremos uno, por ejemplo el FastEthernet1/0:
Acto seguido haremos clic en el prime endhost VPCS y seleccionaremos su adaptador de red, el Ethernet0:
De esta forma ya tendremos conectados el PC1 con el R1 (router). En realidad es como si los hubiéramos conectado con un cable de red desde el conector de la tarjeta de red del PC a una boca del router:
Repetiremos el proceso para el PC2, seleccionando en este caso el adaptador FastEthernet1/1 del router (veremos que el FastEthernet1/0 aparece en verde y no se puede seleccionar porque ya está usado por el PC1):
La conexión quedará establecida con el Ethernet0 del PC2:
A partir de ahora, para nuestra topología de red básica, ya podremos iniciar la simulación. Para ello pulsaremos en el botón «Start»:
Nuestro proyecto quedará creado y ejecutándose. A partir de ahora trabajaremos igual que si estuviésemos en un entorno real:
Es evidente que esta no es una configuración «habitual» en una organización, lo normal sería disponer de varios switches entre los PC (endhosts) y el router, para tener varios equipos conectados al switch y el switch, a su vez, al router.
Como ejemplo, definiremos una interfaz virtual con su VLAN en cada interfaz física del router al que están conectados ambos endhost.
Comprobaremos las interfaces disponibles en el router y su identificador. Para ello haremos doble clic sobre el router o bien botón derecho y «Console», para mostrar la CLI, la consola de comandos:
Desde la consola telnet (o SSH) podremos ejecutar los comandos que necesitemos en el router. De momento comprobaremos los adaptadores y su identificador con el comando:
show interfaces accounting
Que nos devolverá algo así:
Disponemos de tres adaptadores físicos: f0/0, f1/0 y f1/1 y en los router Cisco podremos crear tantos subadaptadores virtuales como necesitemos, esto será lo que hagamos a continuación.
Para establecer una VLAN en el router Cisco en el adaptador f1/0, donde tenemos conectado el endhost PC1, ejecutaremos los siguientes comandos en el CLI del router, estableciéndole la IP 192.168.1.1 a la VLAN 10 que definiremos en la subinterfaz f1/0.10:
config t
interface f1/0.10
encapsulation dot1q 10 native
ip address 192.168.1.1 255.255.255.0
end
config t
interface f1/0
no shutdown
end
wr
Para que los cambios se guarden definitivamente hay que ejecutar el comando «wr», que nos solicitará confirmación:
Además, con el comando «no shutdown» hemos iniciado la interfaz f1/0 y sus subinterfaces. Si ejecutamos ahora el comando:
show interface f1/0.10
Veremos que la subinterfaz virtual (VLAN en el mundo de los switch) está iniciada (up) y con la IP 192.168.1.1/24:
Configuraremos ahora el endhost VPCS con una IP estática de la misma subred que hemos definido para su subinterfaz del router (por ejemplo: 192.168.1.2) y como puerta de enlace (gateway) la IP del router. Para ello haremos doble clic en el VPC PC1 (o como hemos hecho con el router, botón derecho del ratón sobre el VPCS PC1 y pulsar en «Console».
Para establecer una IP estática al VPC ejecutaremos el siguiente comando:
ip 192.168.1.2/24 gateway 192.168.1.1
Para guardar la configuración anterior hay que ejecutar el comando «save»:
Ahora podremos comprobar la correcta conectividad con el router haciendo ping desde el PC1 a la 192.168.1 del router:
Y también al revés, desde el router a la 192.168.1.2 del PC1:
Vamos a configurar ahora, de la misma forma, la subinterfaz f1/1.10 para el PC2. En el router ejecutaremos los siguientes comandos (idénticos a los anteriores, cambiando los identificadores de la interfaz física por f1/1 y la subred e IP por 192.168.2.1):
config t
interface f1/1.10
encapsulation dot1q 10 native
ip address 192.168.2.1 255.255.255.0
end
config t
interface f1/1
no shutdown
end
wr
En el endhost PC2 configuraremos la IP 192.168.2.2 con el comando:
ip 192.168.2.2/24 gateway 192.168.2.1
Guardaremos los cambios con «save» y a partir de ahora ya tendremos conectividad entre ambos equipos a través del router y sus respectivas subinterfaces (VLAN).
Del PC1 al router y al PC2:
Y viceversa, del PC2 al router y al PC1:
Anexo
Posibles errores, su causa y su solución
- This IOS image is for the c7301 platform/chassis and is not supported by this application!: si descargamos un IOS de Cisco incompatible con la plataforma GNS3 es posible que nos muestre este error. Debemos pues instalar solo IOS compatibles y testeadas en GNS3.
- Dynamips error when running command vm start’ «AUTOIDLEPC»: unable to start VM instance «AUTOIDLEPC»: este error se suele producir cuando estamos intentando cargar una IOS en Dynamips que no es compatible o recomendable. Existe una tabla de compatibilidad de IOS que se puede consultar para evitar este error.