GNS3 es un software simulador de redes. Este programa trabaja principalmente con máquinas virtuales, permitiendo la emulación de equipos reales, como switches y routers. 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 para Windows es distribuido por medio de la página web de GNS3. Basta con utilizar la configuración por defecto del instalador.
Si se utiliza Windows, para obtener un desempeño razonable de las máquinas virtuales se recomienda utilizar además la máquina virtual de GNS3, que puede también ser descargada desde la página web de GNS3.
Para correr la máquina es necesario instalar VMware Workstation (utilizar la versión 12, no la más reciente) y la api VIX.
Habiendo instalado VMware Workstation, se debe abrir con este programa el archivo con extensión ".ova" descargado previamente correspondiente a la máquina virtual GNS3.
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
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 GNS3 se presentará el asistente de inicialización. El primer paso es escoger en donde se correrán los equipos simulados. Si utilizará la maquina 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.
A continuación, si escogió simular los dispositivos en la máquina virtual deberá configurarla. Al seleccionar la opción VMware (o VirtualBox) se debería detectar automáticamente la máquina virtual, si fue instalada correctamente.
Habiendo terminado el proceso de inicialización se presentará un cuadro de dialogo 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.
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 venta 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, direccionamiento 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 se encuentra corriendo es posible abrir una terminal haciendo doble-click sobre su símbolo o por el menú contextual.
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.
Componentes adicionales 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 un instalado un cliente de vnc, para poder 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.
Para agregar estas componentes a GNS3, se deben en primer lugar descargar los archivos correspondientes (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", 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 sr detectadas automáticamente de la carpeta de descargas. En otro caso puede utilizar el botón de importar para especificar la ruta a la imagen.
Teniendo todos los archivos necesarios configurados, se debe seleccionar la versión a instalar y seguir con el resto del proceso.
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. Terminado 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.
El reproductor multimedia VLC 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 linea 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. 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 linea 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. 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 el 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 -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 | Mirror | Tamaño | MD5 |
Appliance NETem | Link | Link | 1.7K | 908b5ec270624b4c35814fe8acb740b9 |
Imagen NETem | Link | Link | 25M | e678698c97804901c7a53f6b68c8b861 |
Appliance Lubuntu | Link | 1K | 52d7f7a05abac738f4fafae62978df77 | |
Imagen Lubuntu | Link | 4.1G | 60f4f59999fd213cf5bc4a9b5c7dad3c |
Recurso | Fuente | Tamaño | MD5 |
Red Pregunta 1A | Link | 69.8M | af85be95f81cfd4d0470f6e8f9741082 |
Red Pregunta 1B | Link | 69.8M | 12f34222cd6b107b65416d21dc8e97c2 |