BIRD route-server configuration: click, done!
One of the missions of an internet exchange is to promote and facilitate peering between organizations: this operation is generally performed via route-servers. Unfortunately, at the moment, this approach comes with a few severe limitations that are not encouraging organizations to join route-servers: there is no possibility to easily decide who to peer or who to peer not within the connected members, plus the management of the route servers is usually something obscure, not standardized and still performed in a really manual way, that means inefficient, error prone and time consuming. On top of it, in case of a peering network distributed within different locations, also latency becomes a key factor in the selection of your peers and the filter mechanism based on community strings, once again, turns out to be definitely limited.
NL-ix decided to find a solution to the above-mentioned situation and implemented a solution on top of the open-source route server BIRD. What came out is a complete automated system that gives to the members full and fine-grained control on their peering sessions via a friendly web interface or - due to his modular design – via API/WebHooks at each level of the automation chain.
The system, using exclusively open-source technologies (Python, PostgresSQL, Django, brocade StackStorm , Flask), has been realized in collaboration with Brocade and allows to go over all the traditional limitations, allowing filtering and prepending connected members based on latency, datacenter location and specific IPs; once your configuration is done it gets converted in a BIRD configuration file, pushed and safely deployed on the route-server; everything gets logged and is trackable plus the extra possibility to easily integrate the automation platform with instant messaging software to keep the operation department updated about the outcome of the process.
Duration: 30 min (15 slides + live demo)
- Current scenario and problem analysis
- Solution requirements
- Solution overview
- Live demo
- Implementation details