¡Esta es una revisión vieja del documento!
Tabla de Contenidos
GNS3
GNS3 es un simulador gráfico de red que permite diseñar topologías de red complejas y poner en marcha simulaciones sobre ellos, permitiendo la combinación de dispositivos tanto reales como virtuales. Alternativa libre y gratuita al Packet Tracer de Cisco.
Las notas aquí recogidas están centradas en la versión para Linux
Para permitir completar simulaciones, GNS3 está estrechamente vinculada con Dynamips, un emulador de IOS que permite a los usuarios ejecutar imágenes de IOS.4
Instalación
Linux
En el caso de Arch Linux:
yay -S gns3-gui gns3-server vpcs ubridge inetutils qemu-full dynamips
El paquete vpcs es por si queremos usar VPCS en GNS3. VPCs simulan un PC ligero (consume apenas 2 MB por instancia) con soporte básico de redes como establecer una dirección IP y comandos de red como arp, ping y traceroute.
ubridge sirve para…
inetutils para tener disponible telnet y poder conectarse a los VPCS, por ejemplo.
qemu-full lo usaremos para crear una máquina virtual con VyOS y tener un router virtual sin necesidad de CISCO.
dynamips es un emulador de las series de routers obsoletos de Cisco 7200, 3700, 3600, 2600 y 1700 (las imágenes hay que descargarlas igualmente).
Dynamips
Dynamips está obsoleto porque emula hardware antiguo basado en MIPS (como los routers Cisco de las series 7200 o 3700). Hoy en día, la industria utiliza la virtualización de imágenes de sistemas operativos reales ejecutados sobre hipervisores (QEMU/KVM).
En lugar de buscar un programa completo alternativo, lo ideal es que dejes de usar Dynamips y cambies el tipo de imágenes que corres dentro de tu propio GNS3:
- Cisco IOSv / IOSvL2 (vIOS): Son imágenes oficiales de Cisco optimizadas para correr de forma virtual mediante QEMU. Consumen muchísima menos memoria RAM y CPU que Dynamips, no requieren configurar Idle-PC y soportan características modernas de routing y switching.
- Cisco IOU / IOL (IOS on Unix / Linux): Son imágenes de IOS compiladas directamente para correr como procesos nativos en Linux. Son extremadamente ligeras y estables.
Terminología
VPCS
VPCS significa Virtual PC Simulator. Es un pequeño programa que simula un ordenador de forma muy sencilla. Proporciona una consola con las funciones de red que necesitas para practicar (establecer direcciones IP y comandos de red como ping, arp y traceroute).
Uso
Topología básica: dos clientes conectados por un switch
Dispositivos:
- VPCS x2
- Switch ethernet
Establecer una dirección IP en un VPCS:
ip <DIRECCION_IP> [<MASCARA_RED>] [<PUERTA_ENLACE>]
También podemos indicar la máscara de subred con notación CIDR: ip 10.1.1.2/24
Para ver la configuración de red actual:
show ip
También vale el atajo sh en lugar de show.
Para guardar las configuraciones de estos dispositivos virtuales:
save
En caso de dispositivos Cisco:
wr
Imágenes de Cisco IOS
Poder añadir routers y switches de Cisco. Es necesario usar QEMU para virtualizar este tipo de dispositivos.
Para obtener imágenes:
En GNS3, añadimos una nueva plantilla (template)
Es importante establecer un valor de “Idle-PC” porque de lo contrario podría utilizar el 100 % de la CPU (revisar este tema para entenderlo y explicarlo mejor).
Contenedores Docker
Para añadir como clientes contenedores Docker.
Cuando añadimos un contenedor Docker a nuestra topología, con el botón derecho sobre él podremos configurar la red.
Cambiar aspecto de los dispositivos
Cuando lo hemos añadido a un proyecto, podemos pulsar con el botón derecho sobre el dispositivo y elegir Change symbol. Elegimos el diseño que nos guste.
Si queremos aplicarlo a un tipo de dispositivo, podemos modificarlo en la propia plantilla del dispositivo pulsando con el botón derecho y eligiendo Configure template. En el apartado Symbol, elegiremos el que queremos.
Routers CISCO
Ejemplo para la siguiente topología:
---------- -----------
| Router1 | ----------------------- | Router2 |
----------- 1.1.1.1 1.1.1.2 -----------
| |
192.168.1.1 | | 192.168.2.1
| |
| |
----------- -----------
| Switch1 | | Switch2 |
----------- -----------
| |
| |
--------- ----------
| VPCS1 | | VPCS2 |
--------- ----------
192.168.1.2 192.168.2.2
Para la configuración desde su consola.
Entrar en el modo de configuración global:
config t
Elegimos la primera interfaz:
int f0/0
Configuramos:
ip add 1.1.1.1 255.0.0.0 no sh
Vamos con la otra interfaz:
int f0/1 ip add 192.168.1.1 255.255.255.0 no sh
Queda aplicar el protocolo de enrutamiento:
router rip network 1.0.0.0 network 192.168.1.0
En el otro router:
config t int f0/0 ip add 1.1.1.2 255.0.0.0 no sh int f0/1 ip add 192.168.2.1 255.255.255.0 no sh router rip network 1.0.0.0 network 192.168.2.0
Para revisar la configuración de cada router:
sh ip int br
Para comprobar el protocolo de enrutamiento:
sh ip route
