GESH Multi-Vendor Network Lab

Containerlab · Clos EVPN-VXLAN Fabric · Apple Silicon M4 Max
15
Nodes
3
Vendors
24
Links
3
VXLANs
~15GB
RAM
3
Topologies
Spine Layer — Route Reflectors · AS 65100
SRL
spine1
10.255.0.1
AS 65100 · RR
Nokia SR Linux
cEOS
spine2
10.255.0.2
AS 65100 · RR
Arista EOS
FRR
spine3
10.255.0.3
AS 65100 · RR
FRR (Cisco-style)
▼ eBGP underlay (18 P2P /31 links) + iBGP EVPN overlay (loopback peering) ▼
Leaf Layer — VTEPs · VXLAN Tunnel Endpoints
cEOS
leaf1
10.255.1.1 · VTEP .100.1
AS 65001 · Rack-1
VLAN 10 · VNI 10010
SRL
leaf2
10.255.1.2 · VTEP .100.2
AS 65002 · Rack-1
VLAN 10 · VNI 10010
FRR
leaf3
10.255.1.3 · VTEP .100.3
AS 65003 · Rack-2
VLAN 20 · VNI 10020
cEOS
leaf4
10.255.1.4 · VTEP .100.4
AS 65004 · Rack-2
VLAN 20 · VNI 10020
SRL
leaf5
10.255.1.5 · VTEP .100.5
AS 65005 · Rack-3
VLAN 30 · VNI 10030
FRR
leaf6
10.255.1.6 · VTEP .100.6
AS 65006 · Rack-3
VLAN 30 · VNI 10030
▼ VXLAN tunnels (VNI 10010/10020/10030) + Anycast gateway 10.10.x.254 ▼
Host Layer — End Devices · Traffic Sources
HOST
host1
10.10.10.1/24
VLAN 10 → leaf1
HOST
host2
10.10.10.2/24
VLAN 10 → leaf2
HOST
host3
10.10.20.1/24
VLAN 20 → leaf3
HOST
host4
10.10.20.2/24
VLAN 20 → leaf4
HOST
host5
10.10.30.1/24
VLAN 30 → leaf5
HOST
host6
10.10.30.2/24
VLAN 30 → leaf6

Protocols Supported

STP/RSTP LACP 802.1Q VLAN ARP MAC Learning eBGP RFC7938 iBGP EVPN OSPF BFD ECMP VRRP VXLAN EVPN Type-2 EVPN Type-3 EVPN Type-5 Symmetric IRB ARP Suppression gNMI Telemetry NETCONF/YANG REST API SSH/CLI

Vendor Distribution

VendorImageRAM/NodeNodes
Nokia SR Linuxghcr.io/nokia/srlinux~1.5GB3
Arista cEOSceosimage:4.33.1F~1.5GB3
FRRfrrouting/frr:v10.3~0.2GB3
Linux Hostsnetwork-multitool~0.05GB6

Available Topologies

NameNodesFocus
clos-evpn15DC Fabric · EVPN-VXLAN
3tier-enterprise12Campus · OSPF · STP
minimal6Quick Test · No cEOS

AI Tool Integration

ToolFunctionIntegration
AI Network ToolCLI config + complianceai-bridge.py
netlog-aiLog analysis + anomalydocker logs
multivendor-labHealth gate + SoT driftREST API
GrafanagNMI dashboards:3000

Vendor Driver Layer (src/drivers/)

Deterministic per-vendor drivers collect data (no LLM guesses CLI syntax); the LLM only synthesizes on the structured result. Single source of truth for commands + parsers, consumed by both the health dashboard and the telemetry collector.

VendorDriverCLI
Nokia SRLSRLDriversr_cli -d
Arista cEOSEOSDriverCli -p 15 -c … | json
FRRFRRDrivervtysh -c … json
JuniperJunosDrivercli -c … | display json

BaseNetworkDriver (ABC) → DriverResult (.normalized dict + .raw text) · Transport: DockerExec / SSHRunner / Scrapli · 65/65 tests pass · full diagram in portal.html → Driver Layer.

Quick Commands

ActionCommand
Setup./scripts/setup.sh
Deploy./scripts/deploy.sh clos-evpn
Verify./scripts/verify.sh
Connect./scripts/connect.sh spine1
Inventorypython3 scripts/ai-bridge.py
Destroy./scripts/destroy.sh clos-evpn