# Horizontal Scaling GNS3 for Resource-Intensive Network Labs
GNS3 lets you distribute resource-hungry network nodes across multiple virtual machines using external servers. This approach is essential for simulating large topologies with IOS-XRv9K, CSR1000v, and NSO, where a single VM hits vCPU and RAM limits. The author describes switching from a laptop (8 vCPU, 16 GB) to a Workstation-based VM cluster, totaling 64 vCPU and 200 GB RAM.
Comparison of Simulators and Use Cases
Among network lab tools, EVE-NG, PNETLab, GNS3, and containerlab stand out. GNS3 excels in horizontal scaling: nodes are spread across VMs without manual cloud setup like in EVE-NG.
Key use cases:
- Studying protocols like LISP, BGP, and OSPF.
- Prep for exams with vendor-specific images (IOS-XRv9K needs 4 vCPU per node).
- Proof of Concept before deployment.
For Cisco SP labs (up to 50 nodes), standard simulators crash with 8+ IOS-XRv9K: freezes, reboots. Math: 50 × 4 vCPU = 200 vCPU, impossible on one machine.
Resource-Intensive Images and Container Optimization
IOS-XRv9K (4 vCPU, heavy RAM) can be swapped for IOS-XRd — a containerized control plane version (1 vCPU, 2 GB RAM, boots in 30s). This cuts load while keeping functionality.
Author's hardware:
- SuperMicro X10DRL-i server: 80 vCPU, 256 GB RAM, 2 NUMA nodes.
- OS: Windows 10 Pro (gaming load), Workstation (32 vCPU/128 GB limit per VM).
- 3 GNS3 VMs: isolating IOS-XRv9K and CSR1000v.
GNS3 Architecture with External Servers
GNS3 includes Controller, GNS3 GUI/Web, and Compute Nodes (VMs with Docker/QEMU). Compute Nodes on the desktop, controller on the laptop, connected via LAN.
Advantages:
- Automatic traffic routing between VMs.
- CPU/RAM load monitoring across servers.
- Distributing images across VMs for balance.
Limitations of GNS3 2.2.46
Despite the upsides, issues crop up:
- Topology won't open — delete hub in .gns3 file.
- ioll2-xe-17-12-01 won't start.
- Calvados AUX errors in XRv9K (not critical).
- Saving Docker configs requires volume setup.
- Interface changes: disconnect links, edit, reconnect.
Step-by-Step Scaling Setup
- Planning: Assign VMs by NUMA (at least 2–3), resources (64 vCPU, 200 GB). Isolate node types.
- Preparing GNS3 VMs:
- Download OVA, set static IP (Network → config).
- Port (Configure → config).
- Adding Servers: Edit → Preferences → Remote Servers → Add (IP, name, no auth for LAN).
- Images: Assign to specific VMs (duplicate for distribution).
- Topology: GNS3 handles connectivity automatically.
Monitoring: Servers Summary shows load.
Key Takeaways
- Use IOS-XRd for control plane: 1 vCPU/2 GB vs 4 vCPU for XRv9K.
- Spread across 3+ VMs for 40–60 nodes without crashes.
- Workstation limit: 32 vCPU/128 GB per VM (NUMA).
- Docker volumes for persistent configs.
- GNS3 > EVE-NG for multi-VM without clouds.
This scales labs to exam-level loads, bypassing hardware limits without renting servers.
— Editorial Team
No comments yet.