Saturday, July 20, 2019

bird-msgpipe - bird and messaging systems fusion

Hi r/networking,

Using Bird internet routing daemon usually require configuring filters using Bird special configuration language, changes in filters require reloading of the configuration for the changes to take effect.

Various ideas that attempt to automate the configuration process for bird exists, most of them are script bases solution that interact with bird via its control socket following a change in the configuration.

The bird-msgpipe introduce a new paradigm that uses modern messaging system which employ pub/sub model to provide a way to pass the route information.

For example, a client that subscribe to the appropriate channel can then process the route information and publish back to bird-msgpipe (which subscribed on another channel for updates) a routing decision.

The msgpipe protocol is a new protocol for the bird protocols, its based on the pipe protocol. Instead of connecting between 2 routing tables, msgpipe have one connection between the source routing table and a NATS publish channel for one direction and another connection from NATS subscribe channel to the destination routing table for the other direction.

Protocol msgpipe can be thought of as a pipe with very sophisticated filter manipulation enabler, which works outside of bird internal mechanism and not require configuration reloading. There are additional ways to look at it but this one was the original POV.

This version, bird-msgpipe, is a highly experimental POC that were devised following a discussion I had about SDN and L3 traffic steering.

There are quite a few limitations and some known issues and probably handful of bugs which need to be squashed.

There is a simple, yet quite complicated to bring up, demo that showing how the target routing table of msgpipe protocol is populated following manipulation of a client.

I would like to hear thoughts and get feedback from community members that find this idea intriguing.

The project reside in https://github.com/gilwo/bird-msgpipe/tree/msgpipe.

Thanks,

gilwo



No comments:

Post a Comment