Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pavlozt/virtagent
A program for simulating large networks with low resource consumption.
https://github.com/pavlozt/virtagent
benchmarking monitoring network performance-testing zabbix
Last synced: 22 days ago
JSON representation
A program for simulating large networks with low resource consumption.
- Host: GitHub
- URL: https://github.com/pavlozt/virtagent
- Owner: pavlozt
- License: mit
- Created: 2022-11-30T14:48:12.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-02-18T17:27:53.000Z (almost 2 years ago)
- Last Synced: 2023-07-15T23:22:55.540Z (over 1 year ago)
- Topics: benchmarking, monitoring, network, performance-testing, zabbix
- Language: Go
- Homepage:
- Size: 34.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# VirtAgent ![CI](https://github.com/pavlozt/virtagent/actions/workflows/ci.yml/badge.svg) #
A program for simulating large networks with low resource consumption.
Suitable for benchmarking network monitoring systems.Can be used for benchmarking monitoring systems and various network experiments.
Some realistic network performance statistics are supported - packet loss percentage, delay normal distribution, and setting a value of its standard deviation.
Simulation happens by capturing and sending packets.For 16384 hosts, the program consumes 332.5Mb memory (20Kb per gorutine).
# Example of use #
A small demonstration of work in a docker environment (assume you clone source code.)
Up docker-compose project with terminal and ping 10 generated (fping -g) addresses in parallel:
```
docker compose build
docker compose run netshell bash
```
then run :
```
fping -s -g 172.30.0.1 172.30.0.10
```
Or nmap scan :
```
nmap -sn -PE 172.30.0.0/24
```
>(-sn for disable port scan, -PE for ping echo)To assemble your stand for automatic testing, you need to add a virtual network setting to the containers,
namely running `ip route` commands. Examples of such settings are in the file [entrypoint.sh](./network-tools/entrypoint.sh)# Limitations #
In the current version, the program can only simulate ping echo responses. IPv6 not yet supported.Feel free to fork the repository and change the handler logic for your experiments.
By choosing the GO language, concurent programming will be easy. Or I can implement the logic you need.
Unfortunately, full-fledged imitation of the TCP stack is quite difficult. TCP support is unlikely to appear, but UDP or SNMP will not be a problem.# License #
MIT