Rotonda 0.1.0

Warning

Rotonda is currently considered to be alpha software, and is actively developed.

Use it to experiment freely (we value your feedback!), but do not use it with data and data-streams that you cannot afford to lose.

You should also be aware that all the APIs, configuration and the Roto syntax and grammar are still unstable.

Not all features mentioned in the documentation in this repository are currently implemented. For more information see the ROADMAP.

The composable, programmable BGP Engine

Rotonda enables you to build BGP applications such as route monitors, route collectors, route servers, route reflectors, or any variation or combination thereof. All this without modifying a single line of source code. Rotonda is and always will be free, open-source software.

Below is a brief overview of the key concepts and characteristics of Rotonda. If you want to try it out right away, consider following the Quick Tour, or jump directly to the Installation Instructions.

For more background, read why we made Rotonda and how we envision it can be used for different use cases.

Modular

Rotonda applications are built by combining units into a pipeline through which BGP data will flow. You can filter, modify and store the BGP data along the way, and create signals based on it to send to other applications. Units can be added and removed in a running Rotonda application.

Rotonda offers units to create BGP and BMP sessions, filters, Routing Information Bases (RIBs), and more.

Flexible

The behaviour of the units can be modeled by using a small, fun programming language called Roto, that we created to combine flexibility and ease-of-use. Roto lets you configure a Rotonda application, program units and create queries. Roto scripts can be created with your favourite text editor, but they can also be composed from the command line that’s included in Rotonda.

Tailored Performance

All data structures come with a trade-off between space and time, and Rotonda is no exception. Rotonda therefore offers units that perform the same task, but with different performance characteristics, so that you can optimize for your needs, be it a high-volume, low latency installation or a small installation in a constraint environment. None of this requires patching the Rotonda source, it’s all configurable with a nimble Roto script.

Although Rotonda is still in alpha, these performance-critical parts have been battle-tested by, and are indeed being used in, large production environments.

Observable

All Rotonda units have their own finely-grained logging capabilities, and some have built-in queryable JSON API interfaces to give information about their current state and content through Rotonda’s built-in HTTPS server. Signals can be sent to other applications. Moreover, Rotonda offers true observability by allowing the user to trace BMP/BGP packets start-to-end through the whole pipeline.

Storage Persistence

By default a Rotonda application stores all the data that you want to collect in memory. It can be configured to persist parts to another storage location, such as files or a database. Whether you put RIBs to files or in a database, you can still query it transparently with Roto.

External Data Sources

Roto filter units can make decisions based on real-time external data sources, and RIB units can store them as needed. Similarly filter units can make decisions based on data present in multiple RIBs. External data sources can be, among others, files, databases or even a RIB backed by an RTR connection.

Robust & Scalable

Multiple Rotonda instances can synchronize or shard data via our AVRO-based rotoro protocol, to create robust redundancy and/or scalability. Again you can still query all the distributed instances with Roto.

Secure

Rotonda applications can use data provided by the RPKI through connections with tools like Routinator and Krill. Besides that, Rotonda supports BGPsec out of the box. Again, no patching or recompiling required.

Open-source with professional support services

NLnet Labs offers professional support and consultancy services with a service-level agreement. Rotonda is liberally licensed under the Mozilla Public License 2.0.

Mastodon

Rotonda