Revisión 2° Semestre 2022 por Nicolás Miranda |
Revisión 2° Semestre 2020-21 por Loreto Romero |
Revisión 2° Semestre 2019 por Dayana Hernández |
Revisión 2° Semestre 2018 por Jesús Márquez |
Revisión 2° Semestre 2017 por Hans Lehnert |
GNS3 es un software emulador de redes (revisar diferencia entre simulador de redes y emulador de redes). Este programa trabaja principalmente con máquinas virtuales, permitiendo la emulación de equipos reales, como switches y routers. Si bien se trata de un emulador de redes, su sigla corresponde a "Graphical Network Simulator-3", por esto en este material se usará el término simulador para referirse a él. Es posible además conectar las redes simuladas con dispositivos externos. Estas características hacen que este simulador resulte muy útil para el estudio y práctica de la estructuración de redes de computadores.
Para la tarea no se realizará la emulación de equipos de red, sino que se utilizaran principalmente equipos terminales.
El software de GNS3 es distribuido por medio de la página web de GNS3. Basta con descargar la actual versión disponible en el sitio para Windows, y seguir la configuración por defecto del instalador, sin desmarcar ningún programa pues pueden ser de utilidad en la realización de la tarea. Al concluir la instalación, iniciar el programa y no continuar con la configuración de Setup Wizard hasta terminar los pasos descritos a continuación.
Para obtener un desempeño razonable de las máquinas virtuales en Windows, se recomienda utilizar la máquina virtual de GNS3, VMware Workstation and Fusion (también sirve VirtualBox), que puede ser descargada desde GNS3 VM. Es importante que sea de la misma versión que la aplicación de GNS3. Notar que al descomprimir este archivo, se obtiene un archivo con extensión ".ova" que se usará más adelante.
Para continuar con la configuración de la máquina virtual, es necesario descargar e instalar el software de VMware Workstation (VMware Workstation 14.1.8 Player, el cual es solo para uso no comercial), además de la biblioteca VMware-VIX (VMware VIX 1.17.0 API). Seguir la configuración por defecto de los instaladores. Se han seleccionado las versiones de VMware-player-14 y VMware-VIX 1.17.0 pues han mostrado buenos resultados de compatibilidad, sin embargo, el usuario puede escoger una versión más actualizada de los softwares en favor de su conveniencia.
Una vez concluidas las instalaciones, se debe ejecutar la aplicación de VMware Workstation, seleccionar "Open a Virtual Machine" e importar el archivo "GNS3 VM.ova" obtenido previamente, con los datos que vienen por defecto. De esta forma, queda cargada la máquina virtual de GNS3 VM.
En caso de existir problemas con las actualizaciones de Windows a la hora de abrir cualquier versión de VMware, puede seguir los pasos de este tutorial para evitar los errores de compatibilidad.
Ademas en caso de error al ejecutar la maquina virtual de GNS3 y tener algun otro entorno de virtualizacion instalado revisar siguiente guia.
Al concluir la configuración de la máquina virtual, continuar con la Inicialización.
Sugerencia: En lo posible, considere utilizar Linux para correr GNS3.
Para la instalación en distribuciones basadas en Ubuntu, basta con agregar el repositorio de GNS3 a apt y luego instalarlo con apt-get. Esto se puede realizar con los siguientes comandos:
sudo add-apt-repository ppa:gns3/ppa
sudo apt-get update
sudo apt-get install gns3-gui
Nota Agustín: Durante la instalación se consulta por configuraciones específicas, se sugiere aceptar las opciones por default.
Para otras distribuciones, el procedimiento es similar, cambiando el gestor de paquetes. Para más detalles revisar las instrucciones de GNS3, para las distribuciones soportadas.
Al iniciar la aplicación de GNS3 (ejecutando programa de igual nombre "gns3"), se presentará el asistente de inicialización. El primer paso es escoger en dónde se correrán los equipos simulados. Si utilizará la máquina virtual de GNS3, escoja la primera opción. Si los ejecutará de manera local, utilice la segunda opción.
Nota: Diferentes distribuciones del programa etiquetan de diferente forma las opciones, pero el orden y función se mantienen.
A continuación, se debe escoger la configuración del servidor de GNS3. No es necesario realizar cambios a la configuración entregada por defecto.
Para continuar, si escogió simular los dispositivos en la máquina virtual, ésta ya debe estar configurada. De estar correctamente cargada, al seleccionar la opción VMware (o VirtualBox, según cuál haya descargado), se detectará automáticamente.
Una vez terminado el proceso de inicialización, se presentará un cuadro de diálogo desde donde puede crear un nuevo proyecto de GNS3. De ser necesario acceder nuevamente al asistente de configuración, lo puede realizar mediante la opción del menú superior Help > Setup Wizard.
Tras haber creado un proyecto, el panel central de GNS3 nos muestra la configuración de nuestra topología de red, inicialmente vacía.
En la barra lateral se encuentran botones para abrir los "cajones" que contienen a los componentes disponibles, separados en routers, switches, dispositivos terminales y dispositivos de seguridad
Para agregarlos a nuestra red, basta arrastralos al área de trabajo. Cuando los soltemos en el área de trabajo, en caso que se trabaje con la GNS3 VM, le va a salir una ventana preguntando si quiere correr el dispositivo de forma local o en la máquina virtual.
Lo siguiente sería conectar los dispositivos. Esto se realiza activando la herramienta de "agregar enlaces" en la barra lateral. Al seleccionar los dispositivos a conectar, podemos elegir también cuales de sus interfaces se conectarán.
Habiendo configurado la topología, para comenzar la simulación se debe presionar el botón correspondiente en la barra superior. En GNS3, cada componente funciona independientemente, por lo que la función de este botón es la de iniciar cada uno de los dispositivos. No es necesario que todos los dispositivos se encuentren activados al mismo tiempo e incluso es posible agregar o quitar dispositivos mientras el resto corre.
GNS3 permite almacenar proyectos de simulación en un archivo comprimido único, pensado como una forma sencilla de compartir estas simulaciones, ya que además de almacenar la disposición de los equipos, es capaz de almacenar sus configuraciones. La extensión utilizada para estos archivos es gns3project.
Importar proyectos es bastante sencillo, ya que es bastante similar a la apertura de un archivo. El primer paso es ir a la barra de herramientas, ir al menú de Archivo y allí seleccionar la opción Importar Proyecto Portátil.
Seleccionada esa opción, se abrirá una ventana de selección de archivo, donde se debe buscar la ubicación del proyecto a importar y una vez que se localiza, se selecciona y se abre con un doble click sobre éste o con un click y apretando luego el botón inferior derecho de Abrir.
Elegido el archivo, se abrirá una ventana que se encarga de generar el proyecto de forma local, por lo que solicitará el nombre a asignar al proyecto y su ubicación.
Terminado esto, ya se dispondrá del proyecto importado, para su posterior modificación o para ejecutar la simulación en sí.
Ethernet switch: Cumple las funcionalidades básicas de un switch, es decir, conmutación de paquetes a nivel de la capa de enlace.
VPCS: Simula un dispositivo terminal muy simple. En particular, podemos asignarle una dirección IP y realizar pings a otros hosts. Una vez que se encuentra corriendo, es posible abrir una terminal haciendo doble-click sobre su símbolo o por el menú contextual. Se pueden usar los comandos que se detallan a continuación.
ip 192.168.16.10 255.255.255.0 gateway 192.168.16.1 (Ejemplo de configuración IP del VPCS)
ip 10.1.1.17/26 10.1.1.1 (configura IP como 10.1.1.17, máscara 255.255.255.192 e IP de gateway como 10.1.1.1)
ip dhcp (Configurar la IP por DHCP, si la IP está bien configurada, la respuesta al comando será DORA, siglas de las acciones de asignación de direcciones IP con DHCP)
show ip (Muestra la configuración ip de la VPCS)
Nube: La nube permite conectar nuestra red a la red exterior, por medio de una de las interfaces de red de nuestro equipo. Inicialmente no abrá ninguna interfaz configurada en la nube. Para agregarlas, se debe entrar a la configuración de la nube, la opción Configure que aparece al hacer click derecho sobre esta.
En esta ventana agregamos la interfaz que queremos utilizar a la lista, tras lo cual podemos conectar la nube a la red como se haría con cualquier dispositivo.
Nota: Es posible que tenga problemas para conectarse por medio de una interfaz inalámbrica, por lo que se sugiere utilizar su interfaz física.
En caso de usar la conexión inalámbrica, se recomienda el uso de una interfaz de loopback para que funcione sin problemas la conexión de la Nube, puede usar la configuración recomendada en el siguiente enlace para crear una interfaz loopback y luego hacer lo recomendado en el foro para asociar la interfaz loopback a la interfaz WIFI.
Cuando se desea conectar las PC dentro del entorno virtual de GNS3 y nuestra PC, es necesario desactivar el firewall o el antivirus de nuestra PC para impedir que estos bloqueen la comunicación (Linux y Windows).
Para agregar los componentes que se utilizarán a GNS3, se debe en primer lugar descargar los archivos correspondientes de cada uno, Appliance e Imagen (que pueden ser encontrados en la sección de recursos al final de la página). Luego utilizar la opción File > Import Appliance de la barra de menú y seleccionar el archivo ".gns3a" del componente a agregar, lo que iniciará el asistente de configuración del componente.
Al llegar a la pantalla de archivos requeridos, se listarán las imágenes necesarias para el dispositivo. Si ya descargó las imágenes, estas deberían ser detectadas automáticamente si están en la misma carpeta. En otro caso, puede utilizar el botón de importar para especificar la ruta a la imagen que aparece al seleccionar el archivo ".qcow2".
En caso de no tener la imagen de la misma versión que la appliance (al hacer click en Next, aparece un error tipo This is not the correct file... ), puede crear una nueva versión según la imagen que tenga disponible (click en Create a new version, escribir número de versión y darle el nombre correspondiente del archivo ".qcow2" del componente), la cual se añadirá al directorio de versiones. Especificar la ruta nuevamente si es necesario.
Teniendo todos los archivos necesarios, se debe seleccionar la versión a instalar y seguir con el resto del proceso.
Las componentes adicionales a utilizar que no son incluidas en GNS3 son:
NETem: Esta componente tiene dos interfaces de red y nos permite simular enlaces con características especiales, como límites de ancho de banda, retardos y pérdidas.
Una vez iniciado el dispositivo, podemos acceder a la terminal de configuración haciendo doble-click sobre su símbolo. Aquí podemos configurar las características del enlace.
Terminal Linux: Una máquina virtual con Linux, con un escritorio y las aplicaciones necesarias para el desarrollo de la tarea (la clave del usuario es elo323).
Nota: Si se está corriendo GNS3 de manera local (sin utilizar la máquina virtual de GNS3) y no tiene instalado un cliente de vnc, para ver el escritorio se puede entrar a la ventana de configuración del componente (accedida mediante el menú contextual) y borrar la opción "-nographics" en la pestaña Advanced Settings, en el campo de opciones adicionales.
Router Cisco 3725:
Esta componente posee dos interfaces para comunicar dos redes LAN. Para incorporarla
a su GNS3, se debe descargar únicamente el archivo "c3725-adventerprisek9-mz.124-15.T14.bin"
desde el repositorio disponible en la sección recursos. Luego,
desplegar la pestaña "Browse all devices" de la barra lateral izquierda y hacer click
en "+New template". Seleccionar la opción recomendada de instalación desde el servidor de GNS3
y en la lista de Appliances-Routers escoger "Cisco 3725".
Hacer click en "Install",
escoger "Install the appliance on the GNS3 VM (recommended)" y en el paso siguiente
hacer click en "Create a new version", donde se escribe el nombre de versión: "3725_15.T".
Con esto se tendrá una versión local del componente y estará disponible para utilizarse
con la máquina virtual. Por último, se selecciona la versión recién creada y se prosigue
con la instalación predeterminada hasta concluirla. Al volver a desplegar la barra lateral,
debe aparecer el nuevo componente añadido.
Durante la instalación de GNS3 se da la opción de instalar el capturador de paquetes Wireshark, dado que el simulador permite enlazar su operación con este programa, permitiendo la captura en cualquiera de los enlaces utilizados.
Esto se realiza de una manera muy sencilla, ya que basta posicionar el cursor sobre un enlace, el cual se pondrá rojo cuando este posicionado correctamente, apretar el botón derecho del cursor, se desplegará un menú y allí se debe seleccionar la opción Iniciar Captura.
Se abrirá un menú que permite seleccionar el tipo de enlace a capturar, en nuestro caso basta con dejarlo en Ethernet, que además permite asignarle un nombre a la captura. Terminadas la configuraciones, basta con seleccionar Aceptar y se iniciará la captura de los datos, dando paso a la ejecución de Wireshark en una ventana nueva.
La imagen de switch ethernet que trae por defecto GNS3 es bastante poderosa. No solo redirecciona los paquetes sin la necesidad de configurar el dispositivo, sino además, permite la creación de VLANs y puertos troncales de manera veloz e intuitiva mediante el uso de una ventana de configuración.
Para asignar una VLAN a un puerto del switch, lo primero que hay que realizar es ubicar el equipo en el entorno de simulación y luego hacer click derecho sobre él, donde se despliega un menú de opciones, entre la que se encuentra la opción Configure.
Seleccionada dicha opción, se abrirá la ventana de configuración, donde se muestran todas los puertos existente dentro de un marco en el lado derecho y las propiedades de uno de ellos en el lado izquierdo. Cabe señalar que por defecto todos los puertos pertenecen a la VLAN 1.
Para cambiar el valor del campo VLAN, se puede seleccionar el número y escribir directamente en el cuadro, o bien, hacer click en las flechas del borde derecho del cuadro y aumentar o disminuir uno a uno el valor de dicho campo.
Haciendo click en el panel de selección del campo Type, se obtienen 3 tipos distintos de configuraciones para los puertos. Access es el modo común de operación, donde el puerto solo trabaja con una sola VLAN; dot1q es el modo troncal, donde el puerto permite pasar paquetes de todas las VLANs y qinq es un modo que opera como un VPN en la capa enlace.
Para almacenar los cambios realizados, basta con hacer click en el botón Add. Si colocan como número de puerto un valor que no existe, el switch creará dicho puerto y le asignará las propiedades seleccionadas.
Dentro de la máquina virtual de Lubuntu viene instalado el software de VLC, el cual se puede acceder desde el Escritorio o desde el menú de Inicio de la máquina. Este reproductor multimedia permite tanto emitir como recibir streams de videos mediante RTP. La emisión se puede configurar usando el asistente de emisión en la opción de menú Archivo > Emitir o presionando Ctrl + S. En la ventana que se presenta, se debe en primer lugar agregar los archivos a transmitir.
Luego, debemos escoger el destino de la transmisión. Para un flujo de video se debe escoger RTP / MPEG Transport Stream.
Al presionar el botón Add, se agregará una pestaña para configurar el destino. Aquí se debe configurar la dirección IP del destinatario del flujo. También es posible cambiar el puerto a usar para la transmisión.
Por último, se pueden configurar las opciones de transcodificación, pero se sugiere deshabilitar para tener un mejor rendimiento
Tras finalizar el asistente, VLC comenzará la transmisión del video haya o no un receptor escuchando.
También es posible iniciar la transmisión a través de la línea de comando, utilizando la opción --sout de vlc.
vlc <archivo de entrada> --sout "#rtp{mux=ts,dst=192.168.0.2}"
Para poder recibir un flujo de video, se debe utilizar la opción Abrir ubicación de red en el menú Archivo (o Medio). Ahí se debe utilizar la URL rtp://@ para recibir un stream dirigido a la propia dirección IP.
No es necesario que la transmisión haya comenzado antes de abrir el flujo en el destinatario. El reproductor comenzará a reproducir automáticamente una vez comience a recibir el flujo de video.
También es posible abrir el flujo de video por medio de la interfaz de línea de comando:
vlc rtp://@
Nota: Para que Wireshark decodifique los paquetes RTP, se debe habilitar la opción rtp_udp en el menú Analyze > Enabled Protocols...
iperf es un programa de linea de comando que permite medir el ancho de banda entre dos equipos, el cual viene disponible dentro de la máquina virtual de Lubuntu. Funciona con un modelo cliente-servidor. Para iniciar el servidor se utiliza el siguiente comando:
iperf -s
Una vez está corriendo el servidor, un cliente se puede conectar:
iperf -c <direccion ip del servidor>
Es posible también configurar el tiempo de prueba con la opción -t. Una vez terminada la prueba, los resultados se imprimen en las terminales tanto del cliente como del servidor.
Nota: iperf utiliza una conexión TCP para medir ancho de banda por defecto.
QEMU es un emulador de sistemas que permite correr máquinas virtuales de equipos con diferentes arquitecturas. Gracias a esto, GNS3 puede simular una gran variedad de hardware de red.
Las máquinas virtuales a utilizar en la tarea corren sobre esta plataforma y si bien se encuentran listas para su uso, puede ser de interés crear una máquina virtual propia. Para esto, basta con crear una imagen de disco con el programa qemu-img.
qemu-img create -f qcow2 imagen.qcow2 10G
Con el comando anterior, por ejemplo, se crea una imagen llamada "imagen.qcow2" de tamaño 10GB. La opción -f indica el formato de la imagen. El formato qcow2 crea una imagen que crecerá a medida que el disco duro es escrito, sin necesidad de reservar la capacidad completa de la imagen. (El formato de la imagen no es el formato del sistema de archivos).
Ahora sólo necesitamos ejecutar uno de los sistemas de QEMU, utilizando esta imagen:
qemu-system-x86_64 -hda imagen.qcow2
Con este comando, ejecutamos una máquina x86 de 64 bits con nuestra imagen. Sin embargo, nuestra imagen no posee algún programa o sistema operativo. Podemos además agregar a la máquina una imagen que contenga el instalador para algún sistema operativo.
qemu-system-x86_64 -hda imagen.qcow2 -cdrom <imagen_so> -boot d
Con esto el sistema iniciará y podrá instalar el sistema operativo como en cualquier máquina. Luego de esto podrá correr el sistema operativo directamente de la imagen del disco.
Sugerencia: Si va a ejecutar una máquina virtual con sistema operativo Linux use la opción -enable-kvm para obtener un mejor desempeño.
Si desea ejecutar una máquina virtual ya creada, se debe introducir el mismo comando utilizado anteriormente, con la diferencia que se bootea desde el disco duro y a que se le debe asignar una cantidad de memoria RAM su ejecución.
qemu-system-x86_64 -hda imagen.qcow2 -boot c -m <memoria a asignar>
Si se requiere transferir archivos desde una máquina virtual de QEMU que no posee características de red, es posible montar la imagen utilizada en el sistema de archivos de nuestro equipo. Esto se puede realizar con la siguiente serie de comandos:
sudo modprobe nbd
sudo qemu-nbd --connect=/dev/nbd0 [ruta a la imágen]
sudo mount /dev/nbd0p1 /mnt
Lo que hacemos aquí es activar el módulo nbd de Linux, para dispositivos de almacenamiento en red. Luego, con la utilidad de QEMU conectamos nuestra imágen como el dispositivo nbd0 y luego montamos la partición 1 de la imágen en la ruta /mnt
Si queremos montar uno de los equipos con los que hemos trabajado en GNS3, las imágenes de los equipos se encuentran en los directorios en la ruta project-files/qemu, dentro de la carpeta de nuestro proyecto. Cuidado de no montar la imagen base.
Una vez se ha terminado de trabajar con la imagen, se puede realizar el proceso inverso para desmontarla.
sudo umount /dev/nbd0p1
sudo qemu-nbd --disconnect /dev/nbd0
sudo modprobe -r nbd
Recurso | Fuente | Tamaño | MD5 |
Appliance NETem | Link | 1.7K | 9fbcd59dc2d58a55d2f3363552c508eb |
Imagen NETem | Link | 25M | e678698c97804901c7a53f6b68c8b861 |
Appliance Lubuntu | Link | 1K | 52d7f7a05abac738f4fafae62978df77 |
Imagen Lubuntu | Link | 4.1G | 60f4f59999fd213cf5bc4a9b5c7dad3c |
Repositorio Cisco 3725 | Link | 44.2M | 42baf17af10d9a1471bf542f0bfd07c7 |