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

71 lines
2.5 KiB
Markdown
Raw Normal View History

2020-07-02 16:02:58 +02:00
# RTRTR A Versatile Tool for Route Filters
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-07-02 16:02:58 +02:00
RTRTR is a tool that collects, processes, and distributes data for route
2020-07-02 17:05:44 +02:00
filtering. It reads data from various sources, such as validated RPKI
2020-07-02 16:02:58 +02:00
data, IRR data, or local rules, allows selecting, filtering, and otherwise
2020-07-02 17:05:44 +02:00
manipulating this data, and finally feeds it to routers either via
2020-07-02 16:02:58 +02:00
protocols such as RTR or through generated configuration files.
2020-02-13 17:14:28 +01:00
2020-07-02 16:02:58 +02:00
RTRTR is currently in early development. Right now, it can read RPKI data
via RTR from multiple servers and provide it, also via RTR, to routers.
Over time, we will add more functionality.
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
Cargo, Rusts build tool, directly from the repository.
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-03-07 11:29:20 +01:00
cargo install --git https://github.com/NLnetLabs/rtrtr.git
2020-07-02 16:02:58 +02:00
```
If you want to pick up a particular branch, you can do so, too:
```
cargo install --git https://github.com/NLnetLabs/rtrtr.git --branch foo
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-03-07 11:30:12 +01:00
cargo install -f --git https://github.com/NLnetLabs/rtrtr.git
2020-02-13 17:14:28 +01:00
```
2020-07-02 16:02:58 +02:00
The `-f` option to `cargo install` overwrites an already installed RTRTR.
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