A network load target
for the monitoring tools
you're building.
nl6 simulates up to 30,000 network devices, GPU servers, storage systems and Linux hosts on a single Linux host — each with its own IP, SNMP listener, SSH server, HTTPS REST endpoint and flow exporter. Built on TUN interfaces and network namespaces.
quick start
build from source · install a package · or pull with dockergit clone https://github.com/labmonkeys-space/nl6.gitcd nl6make tidymake buildsudo ./go/nl6/nl6 -auto-start-ip 10.0.0.1 -auto-count 100curl -LO https://github.com/labmonkeys-space/nl6/releases/download/v0.38.1/nl6_0.38.1_amd64.debsudo apt install ./nl6_0.38.1_amd64.debcurl -LO https://github.com/labmonkeys-space/nl6/releases/download/v0.38.1/nl6-0.38.1-1.x86_64.rpmsudo dnf install ./nl6-0.38.1-1.x86_64.rpmsudoedit /etc/nl6/nl6.confsudo systemctl enable --now nl6services.nl6.enable = true;substituters = [ "https://nl6.cachix.org" ];trusted-public-keys = [ "nl6.cachix.org-1:nfaq8JEbMcARjzc/oPyNIrcQrXKe13phUtMg0RucnLA=" ];docker pull ghcr.io/labmonkeys-space/nl6:latestdocker run --rm -it \
--cap-add=NET_ADMIN \
--device=/dev/net/tun \
--network=host \
ghcr.io/labmonkeys-space/nl6:latest \
-auto-start-ip 10.0.0.1 -auto-count 100what's in the box
six pillarsTested scale on a single host. Parallel TUN pre-allocation, lock-free sync.Map for O(1) OID lookups, pre-computed next-OID mappings.
SNMP v1/v2c/v3 (MD5/SHA1 · DES/AES128) with opt-in SET, SSH with VT100, HTTPS REST, gNMI (OpenConfig plus per-type catalogues), NETCONF on Catalyst 9500 and MX10004, LLDP topology. Push exporters: NetFlow v5 / v9 / IPFIX with NBAR2, sFlow v5 (experimental), SNMP traps/informs, syslog over UDP/TCP/TLS, gNMI dial-out.
Arm → run a bounded push experiment over 7 protocols → get an exact sent-ledger. Diff it against your monitor to localize missed or duplicated telemetry. Fidelity mode, loss localization, run tagging, nl6-reconcile CLI, HTML report.
Routers, switches, firewalls, servers, GPU servers (DGX/HGX), storage systems and optical transport, across 9 categories.
NVIDIA DGX-A100 / H100 / HGX-H200 with per-GPU DCGM OIDs — utilization, VRAM, temp, power, fan, SM/memory clocks.
Each device runs in the dedicated nl6sim network namespace with its own TUN interface and IP.
100-point sine-wave cycling for CPU, memory, temperature; full IF-MIB counter set (octets, ucast / mcast / bcast packets, errors, discards) with per-device error scenarios; per-GPU DCGM OIDs.
device catalog
31 types · 9 categories- ›Cisco ASR9K · 48
- ›Cisco ASR 9902 · 50
- ›Cisco CRS-X · 144
- ›Huawei NE8000 · 96
- ›Nokia 7750 SR-12 · 72
- ›Juniper MX960 · 80
- ›Juniper MX10004 · 80
- ›Juniper MX240 · 24
- ›NEC IX3315 · 48
- ›Cisco Nexus 9500 · 64
- ›Arista 7280R3 · 32
- ›Cisco Catalyst 9500 · 48
- ›Extreme VSP4450 · 48
- ›D-Link DGS-3630 · 52
- ›Cisco IOS · 4
- ›Palo Alto PA-3220 · 16
- ›Fortinet FortiGate-600E · 20
- ›SonicWall NSa 6700 · 16
- ›Check Point 15600 · 24
- ›Dell PowerEdge R750
- ›HPE ProLiant DL380
- ›IBM Power S922
- ›Linux Server · Ubuntu 24.04
- ›NVIDIA DGX-A100 · 8×80GB
- ›NVIDIA DGX-H100 · 8×80GB
- ›NVIDIA HGX-H200 · 8×141GB
- ›AWS S3
- ›Pure Storage FlashArray
- ›NetApp ONTAP
- ›Dell EMC Unity
- ›Ciena Waveserver 5
status & scale
what works · how big- ■SNMP v1/v2c/v3 + SET
- ■SSH (VT100)
- ■HTTPS REST (storage)
- ■NetFlow v5/v9/IPFIX + NBAR2
- ■gNMI (dial-in + dial-out)
- ■NETCONF (Catalyst 9500, MX10004)
- ■SNMP trap + syslog export
- ■LLDP topology
- ■DNS + Prometheus service discovery
- ■Load-test scenarios
- ■TUN + netns isolation
- ■Web UI + REST API
- ■sFlow v5 (synthetic)
- ■30,000 concurrent devices / host
- ■~50 MB base + ~1 KB / device
- ■CPU: minimal in steady state
documentation map
jump inInstall from a package, Ansible or Docker, then start a fleet, resolve it with DNS and enable SNMP SET.
Scale to 30k devices, tune the nl6sim namespace, troubleshoot, profile, and run exports and load tests.
CLI flags, REST API, device data, SNMP, gNMI, NETCONF, export wire formats, optical, discovery and GPU simulation.
Why it is built this way: architecture, Kubernetes, SNMP data fidelity, collector ceilings.
Spin up tens of thousands of devices in seconds.
Apache-2.0. No agents, no cloud, no per-device fees. Just TUN interfaces and a little Go.