## Swarmlab is a collection of services that aims to > - provide teachers and professors with online remote tools to do their lessons > > - give students the opportunity to study real life examples in their chosen area of expertise > > - allow developers to fully test and debug their applications and provide POC’s > > - or you simply want to use a Application (in a microservices-based architecture) > > Swarmlab provides you with all the required tools, tools to teach work or try out demos in a completely virtual environment. > > More info: http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs/swarmlab/docs/index.html ![alt text](images/swarmlab-network.png "") ## LabInstance snmpsim This is a pure-Python, open source and free implementation of SNMP agents simulator distributed under 2-clause 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 https://github.com/etingof/snmpsim ## Quickstart This is a quickstart guide of howto use this *LabInstance* ### Default Configuration - Working Directory > /home/docker/project - Default user > docker - Default password > docker - Default password4root > pass ## 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 ## How to use SNMP simulator Run snmpsim-command-responder and point it to a directory with simulation data: > > snmpsim-command-responder --data-dir=/home/docker/project/data --agent-udpv4-endpoint=127.0.0.1:1024 > ### Simulation data is stored in simple plaint-text files having OID|TYPE|VALUE format: > > cat /home/docker/project/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 > ## Documentation Detailed information on SNMP simulator usage could be found at snmpsim site (http://ww7.snmplabs.com/) ### RUN INSTANCE Swarmlab services can be run in different ways. - You can run them **through the swarmlab hybrid environment** (http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs/swarmlab/docs/hybrid/start-microservices.html) - or use them individually at will on the **command line of your system** #### CLI > git clone ... > > cd [DIRECTORY] > #### help > > make help > #### create service > > make create > #### start service > > make start > #### stop service > > make stop > #### list service > > make list > #### clean service > > make clean >