GNS3

Introducción

Instalación

Actualizamos los repositorios e instalamos las actualizaciones disponibles del sistema.

sudo apt update -y && sudo apt upgrade -y

Instalamos las dependencias necesarias para GNS3, incluyendo Python, herramientas de virtualización (KVM, QEMU, libvirt), bibliotecas adicionales (PyQt5, Dynamips)

sudo apt install python3 python3-pip pipx python3-pyqt5 python3-pyqt5.qtwebsockets python3-pyqt5.qtsvg qemu-kvm qemu-utils libvirt-clients libvirt-daemon-system virtinst dynamips software-properties-common ca-certificates curl gnupg2 bridge-utils virt-manager libvirt-daemon -y

Habilitamos y arrancamos el servicio de virtualización libvirtd y nos añadimos al grupo “libvirt” para otorgarle permisos sobre las máquinas virtuales y redes de KVM .

sudo systemctl enable --now libvirtd && sudo usermod -aG libvirt $(whoami)

Instalamos las aplicaciones principales de GNS3, esto es:

  • el servidor - gns3-server

  • la interfaz gráfica - gns3-gui

Utilizamos pipx (herramienta de Python) para instalar y ejecutar aplicaciones de Python empaquetadas como scripts ejecutables (CLI):

pipx install gns3-server && pipx install gns3-gui

Aseguramos que el directorio de binarios de pipx esté en la variable de entorno PATH para que los comandos de GNS3 sean accesibles globalmente desde cualquier terminal.

pipx ensurepath

Insertamos el paquete PyQt5 en el entorno de gns3-gui, para asegurarnos que tenga todas las dependencias necesarias. Este paquete es un conjunto de enlaces de Python para la biblioteca Qt, que es un framework multiplataforma para el desarrollo de interfaces gráficas de usuario (GUI).

pipx inject gns3-gui gns3-server PyQt5

Iniciamos la red por defecto de KVM y la configuraremos para que se inicie de manera automática.

virsh --connect=qemu:///system net-start default
virsh --connect=qemu:///system net-autostart default

Reiniciamos el sistema para aplicar los cambios, como la configuración de grupos y PATH.

sudo reboot 

Ahora si estamos en condiciones de iniciar gns3:

gns3 &

Ubridge

Se trata de un componente esencial de GNS3 que se ejecuta como root para permitir la inyección de paquetes en la interfaz de red. Cuando se ejecuta como root, representa un riesgo de escalada de privilegios. En Linux y Windows, el acceso a la red es limitado, pero en OS X, ubridge tiene acceso total.

Este componente permite interconectar redes del entorno virtual de GNS3 con redes externas o con otros tipos de nodos dentro del mismo proyecto, especialmente cuando estamos usando contenedores, máquinas virtuales o dispositivos que no están en la misma red interna. ubridge permite:

  • Conectar interfaces del host con GNS3.

  • Enlazar redes entre diferentes tipos de nodos, como:

    • dispositivos emulados por QEMU/KVM

    • contenedores Docker

    • máquinas virtuales

    • switches genéricos

    • y conexiones a la red física.

Instalación

Primero vamos a clonar el repositorio de ubridge desde GitHub

git clone https://github.com/GNS3/ubridge.git

Nos dirigimos al directorio donde tenemos el proyecto recién clonado

cd ubridge/

Y compilamos el código fuente e instalamos el binario en el sistema

make 
sudo make install

Ahora asignamos permisos de ejecución al archivo binario de ubridge

chmod +x ubridge

Copiamos el archivo binario a “/usr/local/bin”, para que esté disponible de modo global en el sistema

cp -p ubridge /usr/local/bin

Configuramos permisos especiales para ubridge, permitiéndole acceso a operaciones de red (cap_net_admin) y envío de paquetes en bruto (cap_net_raw), necesarias para su funcionamiento.

sudo setcap cap_net_admin,cap_net_raw=ep /usr/local/bin/ubridge

En entorno virtual

En nuestro caso haremos la instalación de GNS3 como VM en VMWare Workstation. Para ello, nos descargamos la OVA correspondiente desde la página oficial:

Y una vez tengamos la OVA, la importamos como una VM:

Debemos tener en cuenta que la VM viene con dos adaptadores de red:

  • adaptador de red 1: Host-only

  • adaptador de red 2: NAT

Una vez la VM está funcionando lo que vamos a ver es algo como la siguiente imagen: image

Imágenes

  • Run appliances in a VM *

Last updated

Was this helpful?