This repository has been archived by the owner. It is now read-only.
OpenBMP Forwarder - Forward from Kafka to another BMP collector/receiver
Switch branches/tags
Nothing to show
Clone or download
TimEvens Merge pull request #4 from a16/follow_openbmp-python-api-message
Follow update in openbmp-python-api-message
Latest commit 7eefb9b Aug 15, 2018

README.md

OpenBMP Forwarder

Currently this forwards the openbmp.bmp_raw stream from Kafka to a remote collector using BMP. This can be extended support other types of forwarding.

The initial use-case for this consumer is to connect a Kafka cluster to a remote cluster using BMP as the transport protocol. You can also use this to connect legacy/other BMP collectors to OpenBMP.

It is possible to spoof the router address so that the receiving collector believes it is receiving messages from the router, but this only works on a single host. Spoofing will not work between hosts due to RPF checks. Spoofing is automatically enabled when the destination collector is localhost.

Forwarded messages are from the live feed. This means that if Kafka does not have a long enough log retention for the RIB dump, ROUTER_UP, PEER_UP messages, then those messages will not be available till the next time the source collector sends them.

TODO

  • Add spoofing support for localhost

Highlevel Flow

Forwarder enables secure access via a FW and/or NAT. This includes the ability to translate from IPv4 to IPv6 or IPv6 to IPv6.

forwarder high level

Installation

You can either run the code within the git directory or you can install it in your python path.

If you are going to run it within the git directory, see running instructions.

Install Dependencies:

sudo apt-get install python-dev python-pip libsnappy-dev
sudo pip install python-snappy
sudo pip install kafka-python
sudo pip install pyyaml

git clone https://github.com/OpenBMP/openbmp-python-api-message.git
cd openbmp-python-api-message
sudo python setup.py install

Installation of openbmp-python-api-message library is shown above.

See Kafka-python Install Instructions for more details.

Install:

git clone https://github.com/OpenBMP/openbmp-forwarder.git
cd openbmp-forwarder
sudo python setup.py install

Running

If you install the python code, then you should be able to run from a terminal

openbmp-forwarder -c <configuration file>

If you are running from within the git directory, you can run it as follows:

PYTHONPATH=./src/site-packages python src/bin/openbmp-forwarder -c src/etc/openbmp-forwarder.yml

Usage

Usage: src/bin/openbmp-forwarder [OPTIONS]

OPTIONS:
  -h, --help                  Print this help menu
  -c, --config                Config filename (default is sys.prefix/etc/openbmp-forwarder.yml)

Configuration

Configuration is in YAML format via the openbmp-forwarder.yml file. See the file for details.