Skip to content

ovsiannikov/FibbingNode

 
 

Repository files navigation

FibbingNode

This repository contains the code to run a fibbing controller that is able to control unmodified OSPF router to setup arbitrary paths in the network.

The controller is currently compatible only with python 2.

The controller code is split into 3 main parts:

  1. The Quagga directory, that contains a modified version of quagga that is able to craft and flood arbitrary Type-5 LSA which are used to inject the lies in the network.
  2. The Southbound controller, the fibbingnode python module, that will control the quagga ospfd instances and trigger the injection/removal of these LSAs, as well as infer the current network topology and decide whether the current instance of the controller is the 'master' one in case multiple controllers are present in the network. A critical file to tune is the config file, whose defaults are specified in fibbingnode/res/default.cfg.It can then be run via
python2 -m fibbingnode
  1. The Northbound controller, fibbingnode/shapeshifter which implements the algorithms to compute the augmented topology and then communicates to the southern part through a json insterface. An example use of it is available in tests/demo.py

Basic installation

git clone --recursive https://github.com/Fibbing/FibbingNode.git
./setup.sh

This will install the quagga distribution under /opt/fibbing/ and the fibbingnode python module

About

The controller code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.8%
  • Other 1.2%