Routinator logo

Routinator is RPKI Relying Party software, also known as an RPKI Validator. It is a lean and fast implementation, written in the Rust programming language.

Routinator connects to the Trust Anchors of the five Regional Internet Registries (RIRs) — APNIC, AFRINIC, ARIN, LACNIC and RIPE NCC — downloads all of the certificates and ROAs in their repositories and validates the signatures. It can feed the validated information to hardware routers supporting Route Origin Validation such as Juniper, Cisco and Nokia, as well as serving software solutions like Quagga and BIRD. Alternatively, Routinator can output the validated data in a number of useful formats, such as CSV, JSON and RPSL.

Getting Started

We are not distributing binary packages just yet, but getting started with Routinator is really easy. There are three things you need: rsync, Rust and a C toolchain. You need rsync because the RPKI repository currently uses rsync as its main means of distribution. You need Rust because that’s what the Routinator has been written in. Some of the cryptographic primitives used by the Routinator require a C toolchain, so you need that, too.

You can run Routinator on a UNIX-like operating system in just a couple of steps. Assuming you have rsync and the C toolchain but not yet Rust, here’s how you get the the application to run as an RTR server listening on 127.0.0.1 port 3323:

curl https://sh.rustup.rs -sSf | sh
source ~/.cargo/env
cargo install routinator
routinator rtrd -l 127.0.0.1:3323

Configuration and Usage

To set up Routinator, please refer to the full README on GitHub. Routinator is also available on Docker Hub. For complete information on the available options, you can consult the man page. When choosing a system to run Routinator on, please note that the application was designed to have a small footprint. The current version consumes as little as 14MB of RAM and cryptographic validation of the RPKI data set only takes a few seconds on modest hardware.

Feedback

If you run into a problem with Routinator or you have a feature request, please create an issue on Github. We are also happy to accept your pull requests. For general discussion and exchanging operational experiences we provide a mailing list. This is also the place where we will announce releases of the application and updates on the project. Lastly, you can follow the adventures of Routinator on Twitter.