Skip to content

A program for simulating large networks with low resource consumption.

License

Notifications You must be signed in to change notification settings

pavlozt/virtagent

Repository files navigation

VirtAgent CI

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

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

About

A program for simulating large networks with low resource consumption.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published