2020-05-16 21:57:52 +02:00
## What is ROA?
A Route Origination Authorization details which AS is authorised to advertise which originating IP prefixes. A ROA may also include prefix length information.
## What is RPKI?
Resource Public Key Infrastructure is basically a framework for securing the routing infrastructure.
It provides a way to connect number resource information to a trust anchor.
## What is RTR?
The Resource Public Key Infrastructure (RPKI) to Router Protocol provides a way for a router to access RPKI validation information.
It provides the router with validity information regarding prefix origination:
* VALID
The route announcement is covered by a ROA and the announcing AS is validated
* INVALID
The route announcement is covered by a ROA and the announcing AS is invalid (possibly hijacking)
* UNKNOWN
There exists no ROA for the route announcement
2021-05-31 23:48:53 +02:00
2020-05-16 21:57:52 +02:00
## How can I implement ROA on dn42?
On dn42 we generate ROA information from the dn42 registry.
2022-12-27 17:02:33 +01:00
ROA json/bird files can be generated using [dn42regsrv ](https://git.burble.com/burble.dn42/dn42regsrv ).
2020-05-16 21:57:52 +02:00
It is also possible to integrate this with a RTR cache server such as [gortr ](https://github.com/cloudflare/gortr ).
### dn42regsrv
2023-04-08 21:53:12 +02:00
You can find a hosted example of dn42regsrv at < https: / / explorer . burble . com / >
2020-05-16 21:57:52 +02:00
2022-12-27 17:02:33 +01:00
Instructions on how to host dn42regsrv yourself can be found on the git repo of [dn42regsrv ](https://git.burble.com/burble.dn42/dn42regsrv ).
2021-05-31 23:48:53 +02:00
2020-05-16 21:57:52 +02:00
You can also run dn42regsrv via docker (then available at 127.0.0.1:8042):
2023-04-08 22:08:13 +02:00
```sh
git checkout https://git.burble.com/burble.dn42/dn42regsrv.git .
cd contrib/docker
./build.sh
docker-compose up -d
```
2021-05-31 23:48:53 +02:00
2023-04-08 21:53:12 +02:00
Documentation for the api endpoints can be found here: < https: / / git . burble . com / burble . dn42 / dn42regsrv / src / master / API . md >
2020-05-16 21:57:52 +02:00
### gortr
burble kindly provides ready-to-use files for gortr here:
2023-04-08 21:53:12 +02:00
< https: / / dn42 . burble . com / roa / dn42_roa_46 . json >
2020-05-16 21:57:52 +02:00
You can use these to simply run gortr via docker:
2023-04-08 22:08:13 +02:00
```sh
docker run -ti -p 8082:8082 cloudflare/gortr -cache https://dn42.burble.com/roa/dn42_roa_46.json -verify=false -checktime=false -bind :8082
```
2020-05-16 21:57:52 +02:00
2022-05-15 11:59:38 +02:00
### rtrtr
rtrtr is a RTR server from NLNet Labs. It's compatible with the dn42regsrv ROA-JSON or burbles provided one (https://dn42.burble.com/roa/dn42_roa_46.json) too.
NLNet Labs provides an official docker image. You just have to bind mount a suitable configuration file:
2023-04-08 22:08:13 +02:00
```sh
docker run -d -v /etc/rtrtr.conf:/etc/rtrtr.conf -p 323:323/tcp nlnetlabs/rtrtr -c /etc/rtrtr.conf
```
2022-05-15 11:59:38 +02:00
This is a working configuration file for dn42. Maybe change the listen addresses:
2023-04-08 22:08:13 +02:00
```conf
log_level = "debug"
log_target = "stderr"
http-listen = []
[units.dn42-json]
type = "json"
uri = "https://dn42.burble.com/roa/dn42_roa_46.json"
refresh = 600
[targets.dn42-rtr]
type = "rtr"
listen = ["0.0.0.0:323", "[::]:323"]
unit = "dn42-json"
```
2022-05-15 11:59:38 +02:00
2023-04-08 21:53:12 +02:00
For more information cosult the official documentation: < https: / / rtrtr . docs . nlnetlabs . nl / en / stable / >
2022-05-15 11:59:38 +02:00
2022-05-09 19:53:04 +02:00
### Other tools / generators
2023-04-08 21:53:12 +02:00
- bauen1's dn42-roagen: < https: // gitlab . com / bauen1 / dn42-roagen >
- Kioubit's registry wizard: < https: // git . dn42 . dev / Kioubit / RegistryWizard >
- chuangzhu's pure bash script: < https: // paste . sr . ht /~ chuang / e98d2fe791de68a6cf5aade7877cd0dbc1cdb84e >
2022-05-09 19:53:04 +02:00
2020-05-16 21:57:52 +02:00
### This is all to complicated, is there an easy all-in-one package for RTR?
TODO: Publish docker-compose-yml to git for gortr+dn42regsrv
### How do I integrate RTR with my BGP implementation
2021-05-31 23:48:53 +02:00
You have to consult the documentation of your implementation for that. We will provide configuration examples on the specific pages.