{"id":24571054,"url":"https://github.com/pavlozt/virtagent","last_synced_at":"2025-10-19T12:34:32.622Z","repository":{"id":64605915,"uuid":"572565359","full_name":"pavlozt/virtagent","owner":"pavlozt","description":"A program for simulating large networks with low resource consumption. ","archived":false,"fork":false,"pushed_at":"2023-02-18T17:27:53.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-23T17:58:58.325Z","etag":null,"topics":["benchmarking","monitoring","network","performance-testing","zabbix"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pavlozt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-30T14:48:12.000Z","updated_at":"2022-12-18T12:46:56.000Z","dependencies_parsed_at":"2023-01-28T09:16:26.315Z","dependency_job_id":null,"html_url":"https://github.com/pavlozt/virtagent","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavlozt%2Fvirtagent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavlozt%2Fvirtagent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavlozt%2Fvirtagent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavlozt%2Fvirtagent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pavlozt","download_url":"https://codeload.github.com/pavlozt/virtagent/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243997847,"owners_count":20381107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmarking","monitoring","network","performance-testing","zabbix"],"created_at":"2025-01-23T17:59:09.844Z","updated_at":"2025-10-19T12:34:32.512Z","avatar_url":"https://github.com/pavlozt.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VirtAgent ![CI](https://github.com/pavlozt/virtagent/actions/workflows/ci.yml/badge.svg) #\nA program for simulating large networks with low resource consumption.\nSuitable for benchmarking network monitoring systems.\n\nCan be used for benchmarking monitoring systems and various network experiments.\nSome realistic network performance statistics are supported - packet loss percentage, delay normal distribution, and setting a value of its standard deviation.\nSimulation happens by capturing and sending packets.\n\nFor 16384 hosts, the program consumes 332.5Mb memory (20Kb per gorutine).\n\n\n\n#  Example of use #\nA small demonstration of work in a docker environment (assume you  clone source code.)\nUp docker-compose project with terminal and ping 10 generated (fping -g) addresses in parallel:\n```\ndocker compose build\ndocker compose run netshell bash\n```\nthen run :\n```\nfping -s -g 172.30.0.1 172.30.0.10\n```\nOr nmap scan :\n```\nnmap -sn -PE 172.30.0.0/24\n```\n\u003e(-sn for disable port scan, -PE for ping echo)\n\nTo assemble your stand for automatic testing, you need to add a virtual network setting to the containers,\nnamely running `ip route` commands. Examples of such settings are in the file [entrypoint.sh](./network-tools/entrypoint.sh)\n\n# Limitations #\nIn the current version, the program can only simulate ping echo responses. IPv6 not yet supported.\n\nFeel free to fork the repository and change the handler logic for your experiments.\nBy choosing the GO language, concurent programming will be easy. Or I can implement the logic you need.\nUnfortunately, 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.\n\n# License #\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavlozt%2Fvirtagent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpavlozt%2Fvirtagent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavlozt%2Fvirtagent/lists"}