## 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
>