Coder Social home page Coder Social logo

flowd_tristan's Introduction

Network flow and packet marking service

flowd is a network flow and packet marking service developed based on the technical specification. It provides a pluggable system to test different flow/packet marking strategies using plugins to generate flow identifiers and a set of backends that implement the actual packet and flow marking. Plugins and backends run in parallel and are synchronised using a multiprocessing queue (this can be extended to process pools in the future). There is also initial support for systemd/journal integration (Linux daemon), docker image and development environment, STUN/TURN IP detection and configuration.

The following plugins are currently available:

  • netstat - scans the network connections on a host, filters out private/local network and generates a flow identifier with the experiment provided in the configuration (partial tagging).
  • np_api - API based on named pipe (/var/run/flowd) that can be used to directly pass the flow identifiers to flowd.

The following backend is provided:

  • udp-firefly - initial implementation of the UDP firefly packets.

This project is in alpha stage and does not have any official release yet.

Development environment

Containerised version of the flowd development environment is provided for a quick start. Please fork the flowd repository and add the mainstream as an additional remote in order to be able to submit a merge request later.

flowd can be build with the following command:

docker build -t <image>:<tag> .

and can be started with:

docker run --privileged --network=host -it -v /<local_fork_path>/flowd:/usr/src/app \
           --entrypoint=/bin/bash <image>:<tag>  

Before staring the service an initial configuration needs to be added in /etc/flowd/flowd.cfg (please check an example etc/flowd.cfg). To start the service run:

sbin/flowd --debug

Contribution guide

TBA

flowd_tristan's People

Contributors

marian-babik avatar tristansullivan 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.