A Distributed, Parallel and Fault Tolerant BGP Routing Daemon
Erik Bergström, Martin Millnert · 2015
The protocol that has delivered the Internet to the world suffers from aged implementations in current core routers. The implementations lack proper fault tolerance and suffer from single-threaded processing, underutilizing multicore processors. While a lack of multi-core processing capabilities was not a notable deficit 20 years ago, today a modular router is a small compute cluster in itself with multiple multi-core processors. This thesis identifies first that in order to simplify, scale and improve fault tolerance in a BGP implementation, it can be decomposed into smaller parts. This thesis also shows that the processing of a BGP implementation’s critical path can be parallelized down to a per-prefix level and distributed over multiple nodes in a cluster implementation of a distributed RIB. Using the ErlBGP architecture, greater stability could be achieved in the Internet.