1
0
mirror of https://github.com/NLnetLabs/rtrtr.git synced 2024-05-11 05:55:07 +00:00
nlnetlabs-rtrtr/README.md
2020-12-09 11:41:47 +01:00

66 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# RTRTR An RPKI data proxy
![ci](https://github.com/NLnetLabs/rtrtr/workflows/ci/badge.svg)
[![](https://img.shields.io/crates/v/rtrtr.svg?color=brightgreen)](https://crates.io/crates/rtrtr)
RTRTR is currently in early development. Right now, it can read RPKI data
from multiple RPKI Relying Party packages via RTR and provide it, also via
RTR, to routers. The HTTP server provides a monitoring endpoint in plain
text and Prometheus format.
Over time, we will add more functionality, such as transport using RTR
over TLS, as well as plain and signed JSON over HTTPS.
## Architecture
RTRTR is a very versatile tool. It comes with a number of components for
different purposes that can be connected to serve multiple use cases.
There are two classes of components: _Units_ take filtering data from
somewhere this could be other units or external sources , and produce and
constantly update one new set of data. _Targets_ take the data set from
one particular unit and serve it to an external party.
Which components RTRTR will use and how they are connected is described in
a config file. An example can be found in [`etc/rtrtr.conf`]. For the
moment, this example file also serves as a manual for the available
components and their configuration.
## Quick Start
If you have already installed Routinator, this should all be somewhat
familiar.
Assuming you have a newly installed Debian or Ubuntu machine, you will need
to install the C toolchain and Rust. You can then install RTRTR using
Cargo, Rusts build tool.
```bash
apt install rsync build-essential
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
cargo install --locked rtrtr
```
If you have an older version of Rust and RTRTR, you can update using
```bash
rustup update
cargo install --locked --force rtrtr
```
If you want to try the main branch from the repository instead of a
release version, you can run
```bash
cargo install --git https://github.com/NLnetLabs/rtrtr.git --branch main
```
Once RTRTR is installed, you need to create a config file that suits your
needs. The example in [`etc/rtrtr.conf`] may be a good way to start. The
config file to use needs to be passed to RTRTR via the `-c` option:
```
rtrtr -c rtrtr.conf
```
[`etc/rtrtr.conf`]: https://github.com/NLnetLabs/rtrtr/blob/main/etc/rtrtr.conf