GithubHelp home page GithubHelp logo

flowgre's Introduction

Flowgre

Slinging packets since 2022!

    ___ _                             
  / __\ | _____      ____ _ _ __ ___
 / _\ | |/ _ \ \ /\ / / _` | '__/ _ \
/ /   | | (_) \ V  V / (_| | | |  __/
\/    |_|\___/ \_/\_/ \__, |_|  \___|
                      |___/

For sending fabricated Netflow v9 traffic at a collector for testing

Build Status Go Report Card Go Reference

Single

Single is used to send a given number of flows in sequence to a collector for testing.

Usage of flowgre single:

  -count int
    	count of flow to send in sequence. (default 1)
  -dst-range string
    	cidr range to use for generating destination IPs for flows (default "10.0.0.0/8")
  -hexdump
    	If true, do a hexdump of the packet
  -port int
    	destination port used by the flow collector. (default 9995)
  -server string
    	servername or ip address of flow collector. (default "127.0.0.1")
  -src-port int
    	source port used by the client. If 0 a Random port between 10000-15000
  -src-range string
    	cidr range to use for generating source IPs for flows (default "10.0.0.0/8")

Example Use

flowgre single -server 10.10.10.10 -count 10

Barrage

Barrage is used to send a continuous barrage of flows in different sequence to a collector for testing.

Usage of flowgre barrage:

  -config string
    	Config file to use.  Supersedes all given args
  -delay int
    	number of milliseconds between packets sent (default 100)
  -dst-range string
    	cidr range to use for generating destination IPs for flows (default "10.0.0.0/8")
  -port int
    	destination port used by the flow collector (default 9995)
  -server string
    	servername or ip address of the flow collector (default "127.0.0.1")
  -src-range string
    	cidr range to use for generating source IPs for flows (default "10.0.0.0/8")
  -web
    	Whether to use the web server or not
  -web-ip string
    	IP address the web server will listen on (default "0.0.0.0")
  -web-port int
    	Port to bind the web server on (default 8080)
  -workers int
    	number of workers to create. Unique sources per worker (default 4)

Example Config File

targets:
  server1:
    ip: 127.0.0.1
    port: 9995
    workers: 4
    delay: 100

Record

Record is used to record flows to a file for later replay testing.

Usage of flowgre record:

  -db string
        Directory to place recorded flows for later replay (default "recorded_flows")
  -ip string
        ip address record should listen on (default "127.0.0.1")
  -port int
        listen udp port (default 9995)
  -verbose
        Whether to log every packet received. Warning can be a lot

Replay

Replay is used to send recorded flows to a target server.

Usage of flowgre replay:

  -db string
        Directory to read recorded flows from (default "recorded_flows")
  -delay int
        number of milliseconds between packets sent (default 100)
  -loop
        Loops the replays forever
  -port int
        target server udp port (default 9995)
  -server string
        target server to replay flows at (default "127.0.0.1")
  -verbose
        Whether to log every packet received. Warning can be a lot
  -workers int
        Number of workers to spawn for replay (default 1)

Proxy

Proxy is used to accept flows and relay them to multiple targets

Usage of flowgre proxy:

  -ip string
    	ip address proxy should listen on (default "127.0.0.1")
  -port int
    	proxy listen udp port (default 9995)
  -target value
    	Can be passed multiple times in IP:PORT format
  -verbose
    	Whether to log every flow received. Warning can be a lot

Web Dashboard

Flowgre provides a basic web dashboard that will display the number of workers, how much work they've done and the config used to start Flowgre. The stats shown all come from the stats collector and should match the stdout worker stats.

Dashboard Image

License

Licensed to the Flowgre Team under one or more contributor license agreements. The Flowgre Team licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Please see the LICENSE file included in the root directory of the source tree for extended license details.

flowgre's People

Contributors

dmabry avatar dependabot[bot] avatar

Stargazers

 avatar  avatar KTruesdell avatar  avatar Nathan Johnson avatar

Watchers

Nathan Johnson avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.