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?

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:

WinPCAPRequeridoNecesario 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.
NpcapOpcionalEs 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.
WiresharkRecomendadoPermite capturar y ver el tráfico de red enviado entre nodos.
DynamipsRequeridoPaquete 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.
QEMUOpcionalEmulador de equipos (PC). Emula un equipo completo con varios sistemas operativos disponibles: Linux, Windows, etc..
VPCSRecomendadoEmulador de PC muy ligero que admite comandos básicos como ping y traceroute.
CpulimitOpcionalSe usa para evitar que QEMU use el 100% de la CPU (cuando se está ejecutando) en algunos casos, como con los dispositivos ASA antiguos.
GNS3RequeridoEl núcleo del software GNS3. Es obligatoria su instalación.
TightVNC ViewerRecomendadoCliente VNC para control remoto, para conectar con las interfaces gráficas de los appliances.
Solar-PuttyRecomendadoAplicación de consola PuTTY para conexión SSH, Telnet, etc. a los dispositivos.
Virt-viewerRecomendadoVisualizador alternativo de máquinas virtuales de escritorio Qemu que tienen qemu-spice preinstalado.
Intel Hardware Acceleration Manager (HAXM)OpcionalSolo 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:

Descarga e instalación de GNS3 en equipo Windows

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:

Descarga e instalación de GNS3 en equipo 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»:

Descarga e instalación de GNS3 en equipo Windows

Seguiremos los pasos del asistente de instalación de GNS3 en su versión 2.2.8:

Descarga e instalación de GNS3 en equipo Windows

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:

Descarga e instalación de GNS3 en equipo Windows

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:

Descarga e instalación de GNS3 en equipo Windows

Y algunos paquetes requerirán de la aceptación de los términos de licencia, como Solar-PuTTY:

Descarga e instalación de GNS3 en equipo Windows

Un vez finalizada la instalación pulsaremos «Next»:

Descarga e instalación de GNS3 en equipo Windows

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:

Descarga e instalación de GNS3 en equipo Windows

Pulsaremos en «Finish» y marcaremos «Start GNS3»:

Descarga e instalación de GNS3 en equipo Windows

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.

Descarga e instalación de GNS3 en equipo Windows

En el entorno GNS3, por defecto, dispondremos de ATM switch, Cloud, Ethernet hub, Ethernet switch, Frame Relay switch, NAT y VPCS:

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

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:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

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):

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

y accederemos al menú «Edit» – «Preferences»:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

Desplegaremos a la izquierda Dynamips y pulsaremos en IOS routers, en la parte derecha pulsaremos en New:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

Pulsaremos en Browse:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

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:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

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:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

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:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

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:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

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:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

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:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

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:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

Realizará la conexión con el servidor GNS3 para obtener el idle-pc:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

Si lo obtiene mostrará un mensaje indicando su valor para la IOS elegida:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

Continuaremos con el proceso de instalación del router de la serie C7200 de Cisco en GNS3 pulsando en Finish:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

Comprobaremos los valores establecidos para el dispositivo, si son correctos pulsaremos Apply y OK:

Instalar router de la serie C7200 de Cisco en GNS3 con versión de IOS 15.2

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»:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Introduciremos el nombre para el proyecto y la ubicación donde se almacenarán los archivos y pulsaremos en OK:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Pulsaremos en el botón «Browse routers» [1] y en el nuevo dispositivo c7200 [2] y lo arrastraremos al entorno de trabajo (parte central):

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Haremos lo propio para agregar dos VPC, desde el botón «Browse End Devices», arrastrando dos veces los endhosts VPCS:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Así va quedando nuestro proyecto:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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»:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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»:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Acto seguido haremos clic en el prime endhost VPCS y seleccionaremos su adaptador de red, el Ethernet0:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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):

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

La conexión quedará establecida con el Ethernet0 del PC2:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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»:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Nuestro proyecto quedará creado y ejecutándose. A partir de ahora trabajaremos igual que si estuviésemos en un entorno real:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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í:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Para que los cambios se guarden definitivamente hay que ejecutar el comando «wr», que nos solicitará confirmación:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Para guardar la configuración anterior hay que ejecutar el comando «save»:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Ahora podremos comprobar la correcta conectividad con el router haciendo ping desde el PC1 a la 192.168.1 del router:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Y también al revés, desde el router a la 192.168.1.2 del PC1:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

Y viceversa, del PC2 al router y al PC1:

Primer proyecto GNS3 con un router Cisco C7200 y dos VPCS conectados en subinterfaces (VLAN)

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.
This IOS image is for the c7301 platform/chassis and is not supported by this application!
  • 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.
This IOS image is for the c7301 platform/chassis and is not supported by this application!