Skip to main content

SNMP Simulator is a tool that acts as multitude of SNMP Agents built into real physical devices, from SNMP Manager's point of view. Simulator builds and uses a database of physical devices' SNMP footprints to respond like their original counterparts do.

Project description

SNMP Simulator

PyPI PyPI Downloads Python Versions GitHub license

This is a pure-Python, open source and free implementation of SNMP agents simulator distributed under 2-clause BSD license.

Features

  • SNMPv1/v2c/v3 support
  • SNMPv3 USM supports MD5/SHA/SHA224/SHA256/SHA384/SHA512 auth and DES/3DES/AES128/AES192/AES256 privacy crypto algorithms
  • Runs over IPv4 and/or IPv6 transports
  • Simulates many EngineID's, each with its own set of simulated objects
  • Varies response based on SNMP Community, Context, source/destination addresses and ports
  • Can gather and store snapshots of SNMP Agents for later simulation
  • Can run simulation based on MIB files, snmpwalk and sapwalk output
  • Can gather simulation data from network traffic or tcpdump snoops
  • Can gather simulation data from external program invocation or a SQL database
  • Can trigger SNMP TRAP/INFORMs on SET operations
  • Capable to simultaneously simulate tens of thousands of Agents
  • Offers REST API based control plane
  • Gathers and reports extensive activity metrics
  • Pure-Python, easy to deploy and highly portable
  • Can be extended by loadable Python snippets

Download

SNMP simulator software is freely available for download from PyPI and project site.

Installation

Just run:

$ pip install snmpsim-lextudio

How to use SNMP simulator

Once installed, invoke snmpsim-command-responder and point it to a directory with simulation data:

$ snmpsim-command-responder --data-dir=./data --agent-udpv4-endpoint=127.0.0.1:1024

Simulation data is stored in simple plaint-text files having OID|TYPE|VALUE format:

$ cat ./data/public.snmprec
1.3.6.1.2.1.1.1.0|4|Linux 2.6.25.5-smp SMP Tue Jun 19 14:58:11 CDT 2007 i686
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.8072.3.2.10
1.3.6.1.2.1.1.3.0|67|233425120
1.3.6.1.2.1.2.2.1.6.2|4x|00127962f940
1.3.6.1.2.1.4.22.1.3.2.192.21.54.7|64x|c3dafe61
...

Simulator maps query parameters like SNMP community names, SNMPv3 contexts or IP addresses into data files.

You can immediately generate simulation data file by querying existing SNMP agent:

$ snmpsim-record-commands --agent-udpv4-endpoint=demo.pysnmp.com \
    --output-file=./data/public.snmprec
SNMP version 2c, Community name: public
Querying UDP/IPv4 agent at 195.218.195.228:161
Agent response timeout: 3.00 secs, retries: 3
Sending initial GETNEXT request for 1.3.6 (stop at <end-of-mib>)....
OIDs dumped: 182, elapsed: 11.97 sec, rate: 7.00 OIDs/sec, errors: 0

Alternatively, you could build simulation data from a MIB file:

$ snmpsim-record-mibs --output-file=./data/public.snmprec \
    --mib-module=IF-MIB
# MIB module: IF-MIB, from the beginning till the end
# Starting table IF-MIB::ifTable (1.3.6.1.2.1.2.2)
# Synthesizing row #1 of table 1.3.6.1.2.1.2.2.1
...
# Finished table 1.3.6.1.2.1.2.2.1 (10 rows)
# End of IF-MIB, 177 OID(s) dumped

Or even sniff on the wire, recover SNMP traffic there and build simulation data from it.

Besides static files, SNMP simulator can be configured to call its plugin modules for simulation data. We ship plugins to interface SQL and noSQL databases, file-based key-value stores and other sources of information.

We maintain publicly available SNMP simulator instance at demo.pysnmp.com. You are welcome to query it as much as you wish.

Besides stand-alone deployment described above, third-party SNMP Simulator control plane project offers REST API managed mass deployment of multiple snmpsim-command-responder instances.

Documentation

Detailed information on SNMP simulator usage could be found at snmpsim site.

Getting help

If something does not work as expected, open an issue at GitHub or post your question on Stack Overflow or try browsing snmpsim mailing list archives.

Feedback and collaboration

I'm interested in bug reports, fixes, suggestions and improvements. Your pull requests are very welcome!

Copyright (c) 2010-2019, Ilya Etingof. Copyright (c) 2022, LeXtudio Inc.. All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

snmpsim_lextudio-1.1.0.tar.gz (231.2 kB view details)

Uploaded Source

Built Distribution

snmpsim_lextudio-1.1.0-py3-none-any.whl (225.5 kB view details)

Uploaded Python 3

File details

Details for the file snmpsim_lextudio-1.1.0.tar.gz.

File metadata

  • Download URL: snmpsim_lextudio-1.1.0.tar.gz
  • Upload date:
  • Size: 231.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.0 Darwin/23.4.0

File hashes

Hashes for snmpsim_lextudio-1.1.0.tar.gz
Algorithm Hash digest
SHA256 24eaeacac89fea434126ec3f9c8cf96ebfb27fa7a81b4d4736137c977391b281
MD5 3b89c101e3ce5b78e8d1481577751309
BLAKE2b-256 104101ad804073011b120843f840d13bd2c1aa25c286a58d9ef1cdc9b2dd7f99

See more details on using hashes here.

File details

Details for the file snmpsim_lextudio-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: snmpsim_lextudio-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 225.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.0 Darwin/23.4.0

File hashes

Hashes for snmpsim_lextudio-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d6fe597652b8c0fd517433f0c92b67ad9febbc8733f6658d2aea3b1e3d35e59
MD5 7035e817aeaf7091f878fc3eeb1277e3
BLAKE2b-256 74744dc8acd10343530a5cbb14ec553c2da3d7689f70f66ab9db4714aaa8f23c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page