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

66 lines
2.3 KiB
Markdown
Raw Normal View History

2020-11-16 15:33:09 +01:00
# RTRTR An RPKI data proxy
2020-02-10 13:54:54 +01:00
2020-07-17 12:16:05 +02:00
![ci](https://github.com/NLnetLabs/rtrtr/workflows/ci/badge.svg)
2020-11-12 21:05:31 +01:00
[![](https://img.shields.io/crates/v/rtrtr.svg?color=brightgreen)](https://crates.io/crates/rtrtr)
2020-07-17 12:16:05 +02:00
2020-07-02 16:02:58 +02:00
RTRTR is currently in early development. Right now, it can read RPKI data
2020-11-16 15:33:09 +01:00
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.
2020-02-13 17:14:28 +01:00
2020-11-16 15:33:09 +01:00
Over time, we will add more functionality, such as transport using RTR
over TLS, as well as plain and signed JSON over HTTPS.
2020-02-13 17:14:28 +01:00
2020-07-02 16:02:58 +02:00
## 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
2020-11-05 12:52:30 +01:00
somewhere this could be other units or external sources , and produce and
2020-07-02 16:02:58 +02:00
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
2020-11-05 12:52:30 +01:00
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.
2020-02-13 17:14:28 +01:00
## 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
2020-07-02 16:02:58 +02:00
to install the C toolchain and Rust. You can then install RTRTR using
2020-12-09 11:41:47 +01:00
Cargo, Rusts build tool.
2020-02-13 17:14:28 +01:00
```bash
apt install rsync build-essential
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
2020-12-09 11:41:47 +01:00
cargo install --locked rtrtr
2020-07-02 16:02:58 +02:00
```
2020-02-13 17:14:28 +01:00
If you have an older version of Rust and RTRTR, you can update using
```bash
rustup update
2020-12-09 11:41:47 +01:00
cargo install --locked --force rtrtr
2020-02-13 17:14:28 +01:00
```
2020-12-09 11:41:47 +01:00
If you want to try the main branch from the repository instead of a
release version, you can run
2020-02-13 17:14:28 +01:00
2020-12-09 11:41:47 +01:00
```bash
cargo install --git https://github.com/NLnetLabs/rtrtr.git --branch main
```
2020-07-02 16:02:58 +02:00
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
```
2020-02-13 17:14:28 +01:00
2020-07-02 16:30:14 +02:00
[`etc/rtrtr.conf`]: https://github.com/NLnetLabs/rtrtr/blob/main/etc/rtrtr.conf