{"id":43822657,"url":"https://github.com/Pragma-Innovation/bgpflowspectool","last_synced_at":"2026-02-17T15:00:55.411Z","repository":{"id":53299530,"uuid":"71383729","full_name":"Pragma-Innovation/bgpflowspectool","owner":"Pragma-Innovation","description":"BGP flowspec (RFC 5575) tool for DDoS mitigation","archived":false,"fork":false,"pushed_at":"2018-11-24T09:33:31.000Z","size":1633,"stargazers_count":84,"open_issues_count":0,"forks_count":14,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-02-16T09:26:54.066Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pragma-Innovation.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":"2016-10-19T17:42:38.000Z","updated_at":"2025-09-24T10:43:13.000Z","dependencies_parsed_at":"2022-09-01T12:21:04.940Z","dependency_job_id":null,"html_url":"https://github.com/Pragma-Innovation/bgpflowspectool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Pragma-Innovation/bgpflowspectool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pragma-Innovation%2Fbgpflowspectool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pragma-Innovation%2Fbgpflowspectool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pragma-Innovation%2Fbgpflowspectool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pragma-Innovation%2Fbgpflowspectool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pragma-Innovation","download_url":"https://codeload.github.com/Pragma-Innovation/bgpflowspectool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pragma-Innovation%2Fbgpflowspectool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29548201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-02-06T02:00:29.838Z","updated_at":"2026-02-17T15:00:55.406Z","avatar_url":"https://github.com/Pragma-Innovation.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Introduction\n\nThis tool has been developed to help network engineers to deal with undesirable traffic that is passing through their Internet network. This tool has been design to propose a graphical user interface to manage network features like:\n\n* Filter traffic with BGP flowspec,\n* Drop malicious traffic with BGP blackhole,\n* Design and configuration of RTBH (Remote Triggered Blackhole),\n* Interface analytics system,\n* ... \n\nThis first version is currently Alpha and needs to go through a set of test to make it an usable version. For now, it only supports BGP flowspec (RFC5575). __This tool is not suppose to be installed in production network but rather be used for lab / test purposes.__\n\n# Building blocks and dependencies\n\nThis tool is relying on two open source software and their related API's.\n\n* The UI is using a Qt binding for Golang: https://github.com/therecipe/qt\n\n* BGP protocol stack: https://github.com/osrg/gobgp\n\n## Using this tool in your network\n\nThis tool provides a BGP route reflector (RR using GoBGP as BGP stack) with an UI to inject BGP flowspec updates. The BGP RR propagates those updates to all its peers. In the current version, the UI can only connect to a local Go BGP daemon and doesn't support BGP clustering. The UI is using gRPC API to interface GoBGP.\n\nGoBGP needs to be installed manually (not yet via the UI). All neighbors have to be configured in the GoBGP configuration file. Once the GoBGP daemon is running, you launch the application. The UI will then connect to the BGP daemon and will be ready to push BGP flowspec updates to all involved neighbors.\n\n## Typical configuration\n\nYou will have to create a VM or use a bare metal server, install the OS of your choice (software has been developed on ubuntu server), install all dependencies (mainly Qt / GoBGP / Unity) and you are ready to go. Make sure that your server is using an IP address reachable to all BGP neighbors.\n\n# Tutorial and features\nThe main window is organized with a logic of layered windows that you can bring to the front using the tool bar on the left of the main window.\n\nThere are two icons for now, one for the flowspec configuration an one for the so called console window that brings couple of troubleshooting feature.\n\nThe main window has been structured to easily add new features by adding new windows and icons on the left of the main window.\n\n![flowspec-win](/docs/main-window.png.jpg)\n\n* [Flowspec window](https://github.com/Matt-Texier/local-mitigation-agent/blob/master/docs/flowspec_win.md)\n* [Console window](https://github.com/Matt-Texier/local-mitigation-agent/blob/master/docs/console_win.md)\n\nAs of today, this tool has been tested against 7750 Nokia routers. Next step will be about testing this tool against other router vendors. Please note that this tool provide facilities to configure BGP flowspec but Gobgp provide the BGP stack. As such, most interoperability concerns are mainly related to gobgp stack.\n\n# Install and use the tool\nIf you just want to evaluate this tool, you can dowload a VM image ready to use from the Pragma Innovation static web repository : http://static.pragma-innovation.fr/flowspec-rr-vm.qcow2\n\nInstall this qcow on your KVM hypervisor using a default virtio NAT interface and using the sudoer login: flowspec-rr and password: flowspec-rr.\n\nOnce logged in, run ```start x``` and look at README.txt file on the desktop.\n\n# Install and configure your development machine\n\n* Follow the installation process of GoBGP (please install version 1.22 or lastest): https://github.com/osrg/gobgp/blob/master/docs/sources/getting-started.md\n* Follow the installation process of Qt Golang binding (please install Qt 5.9.1): https://github.com/therecipe/qt\n  * Make sure that you allocate 8 GB of RAM to your VM\n* ENV variables: The following example needs to be updated acccording to your machine but here is a snippet of my .bashrc file as an example\n\n```\n# go-lang variable\nexport GOPATH=/home/matthieu/go-work\nexport PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig\nexport LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu\nexport GOBIN=/home/matthieu/go-work/bin\nPATH=/home/matthieu/go-work/bin:$PATH\nPATH=/usr/local/go/bin:$PATH\n# qt variable\nexport QT_DIR=/home/matthieu/Qt\nexport QT_VERSION=5.9.1\nPATH=/home/matthieu/Qt/5.7/gcc_64/bin:$PATH\n```\n* compile the tool and launch it (to be update with your own path):\n```\n~/go-work/src/github.com/Matt-Texier/local-mitigation-agent/UI$ qtdeploy build desktop .\n~/go-work/src/github.com/Matt-Texier/local-mitigation-agent/UI$ ./deploy/linux_minimal/UI.sh\n```\n\n# Tool name and special dedicace\n\nThis tool is named \"Gabu\". This name is the nickname of a brilliant young french engineer that passed away way too early and is missing to anybody who crossed his way.\n\nTo enjoy a nice and still very interesting BGP flowspec presentation done by Frederic Gabut-Deloraine about the use of this protocol for DDoS mitigation, please follow this link: [Frederic FRnOG presentation](http://www.dailymotion.com/video/xtngjg_frnog-18-flowspec-frederic-gabut-deloraine-neo-telecoms_tech)\n\n# Licensing\n\nThis tool is licensed under the Apache License, Version 2.0. See [LICENSE](https://github.com/Matt-Texier/local-mitigation-agent/blob/master/LICENSE) for the full license text.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPragma-Innovation%2Fbgpflowspectool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPragma-Innovation%2Fbgpflowspectool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPragma-Innovation%2Fbgpflowspectool/lists"}