Skip to main content

Quick start

Get a small fleet of simulated devices running on a Linux host in three commands. For full flag docs see CLI flags; for container workflows see Docker.

Prerequisites​

  • Linux host with root access (TUN interface and network-namespace creation require privileges).
  • Go 1.27 or later. The canonical version is pinned in go/go.mod.
  • Basic networking tools: ip, iptables.
  • net-snmp client tools (snmpget, snmpwalk, snmpset) to poll and write to the devices. On Debian and Ubuntu these are the snmp package.

Skip host setup. For a zero-prerequisite path, run the published container image. See Docker. The image bundles the dependencies and TUN/TAP support. On bare metal, install the prerequisites above; for large fleets see the host tuning in Scaling.

Build the simulator​

git clone https://github.com/labmonkeys-space/nl6.git
cd nl6/go
go mod tidy
cd nl6
go build -o nl6 .

Run the simulator​

# Server only. Create devices later via the REST API.
sudo ./nl6

# Auto-create 5 devices starting from 192.168.100.1 on a flat /16 (the default).
sudo ./nl6 -auto-start-ip 192.168.100.1 -auto-count 5

Once the simulator is up, open the web UI at http://localhost:8080/ or drive it via the REST API. See Web API.

Query the devices​

# SNMP v2c query against the first auto-created device
snmpget -v2c -c public 192.168.100.1 1.3.6.1.2.1.1.1.0

# Walk interface table
snmpwalk -v2c -c public 192.168.100.1 1.3.6.1.2.1.2.2.1

# SSH (VT100 terminal emulation). Password: simadmin
ssh simadmin@192.168.100.1

See SNMP reference for the protocol coverage and the dynamic HC counter layout.

Next steps​

  • Change device state: Enable SNMP SET to shut and unshut an interface over SNMP. Writes are off by default.
  • Scale up: Scaling covers the 30k-device tuning.
  • Flow export: Flow export (operator guide) to plug nl6 into a NetFlow / IPFIX / sFlow collector.
  • Device types: Device types lists the 29 simulated devices across 9 categories.