SNMP Simulator Project Logo
SNMP Simulator introduction
Producing SNMP snapshots
Simulating SNMP Agents
Transport-based variation
Sharing snapshots
MIB-based simiulation
Simulation based on captured traffic
Simulation with variation modules
Recording with variation modules
Managing data files
Large scale simulation
Tips and tricks
Download & Install
Github repo
Adding features
Simulation Service
Get SNMP Simulator at Fast, secure and Free Open Source software downloads

Listing simulated devices

When simulating a large pool of devices or if your Simulator runs on a distant machine, it is convenient to have a directory of all simulated devices and their community/context names. Simulator maintains this information within its internal, dedicated SNMP context 'index':

$ snmpwalk -On -v2c -c index localhost:1161 .1.3.6
. = STRING: "./data/"
. = STRING: "data/"
. = STRING: "9535d96c66759362b3521f4e273fc749"


$ snmpwalk -O n -l authPriv -u simulator -A auctoritas -X privatus 
-n index localhost:1161 .1.3.6
. = STRING: "./data/"
. = STRING: "data/"
. = STRING: "9535d96c66759362b3521f4e273fc749"

Where first column holds device file path, second - community string, and third - SNMPv3 context name.

Simulation based on Simple Agent Pro snapshots

Another possible format for taking and storing SNMP snapshots is SimpleSoft's Simple Agent Pro data files. Although we have neither seen any documentation on its data files format nor ever owned or used Simple Agent Pro software, a sample data file published on an Internet reveals that SimpleAgentPro's file format is very similar to Net-SNMP's snmpwalk. It essentially looks like snmpwalk output with different field separators.

Be aware that Simulator might not support some parts of SimpleAgentPro data files format so your milage may vary.

In case you store your SNMP snapshots archives in SimpleAgentPro's data files and wish to use them with this Simulator, just put your SimpleAgentPro-formatted SNMP snapshot information (excluding comments) into text files having .sapwalk suffix and let Simulator find and index them. Once completed, Simulator will report access information for them just as it does for its native .snmprec files.

Simulation based on snmpwalk output

In some cases you may not be able to run against a donor device. For instance if you can't setup on a system from where donor device is available or donor device is gone leaving you with just Net-SNMP's snmpwalk dumps you have collected in the past.

Simulator provides limited support for snmpwalk-generated data files. Just save snmpwalk output into a file with .snmpwalk suffix and put it into Simulator data directory. Once Simulator finds and indexes .snmpwalk files, it will report access information for them just as it does for its native .snmprec files.

$ snmpwalk -v2c -c public -ObentU localhost 1.3.6 > myagent.snmpwalk

Make sure you get snmpwalk producing plain OIDs and values! By default snmpwalk tries to beautify raw data from Agent with MIB information. As beautified data may not contain OIDs and numeric values, it could not be interpreted by the Simulator. Therefore always run snmpwalk with the "-ObentU" parameters pack.

The .snmpwalk lines that can't be parsed by the Simulator will be skipped and details reported to stdout for your further consideration. In particular, current implementation does not cope well with multi-line strings sometimes produced by snmpwalk. This may be improved in the future.

Performance improvement

The SNMPv3 architecture is inherently computationally heavy so Simulator is somewhat slow. It can run faster if it would use a much lighter and lower-level SNMPv2c architecture at the expense of not supporting v3 operations.

Use the --v2c-arch command line parameter to switch Simulator into SNMPv2c (v1/v2c) operation mode.

When Simulator runs over thousands of device files, startup may take time (tens of seconds). Most of it goes into configuring SNMPv1/v2c credentials into SNMPv3 engine so startup time can be dramatically reduced by either using --v2c-arch mode (as mentioned above) or by turning off SNMPv1/v2c configuration at SNMPv3 engine with --v3-only command-line flag.

Simulator is a single-threaded program, thus it can only process a single request at once. In case of a heavy traffic, Simulator can drop a fraction of requests as it's almost always too busy handling all of them. A simple workaround is to run multiple instances of the Simulator bound to distinct IP addresses or ports what effectively makes Simulator executing multiple requests, sent to different simulator instances, in parallel.

Need help? Open an issue at GitHub or ask question at Stack Overflow or try browsing snmpsim-users mailing list.