Skip to content

Commit 83c82de

Browse files
committed
rpki: update to reflect changes in the current branch
1 parent d0ad9cf commit 83c82de

File tree

1 file changed

+87
-2
lines changed

1 file changed

+87
-2
lines changed

docs/configuration/protocols/rpki.rst

Lines changed: 87 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ in :rfc:`8210`.
3434
tools). It also has some `help and operational guidance`_ including
3535
"What can I do about my route having an Invalid state?"
3636

37+
***************
38+
Getting started
39+
***************
40+
3741
First you will need to deploy an RPKI validator for your routers to use. The
3842
RIPE NCC helpfully provide `some instructions`_ to get you started with
3943
several different options. Once your server is running you can start
@@ -71,14 +75,95 @@ Imported prefixes during the validation may have values:
7175
reading about Krill_ if this is a rabbit hole you need or especially want
7276
to dive down.
7377

78+
Features of the Current Implementation
79+
======================================
80+
81+
In a nutshell, the current implementation provides the following features:
82+
83+
* The BGP router can connect to one or more RPKI cache servers to receive
84+
validated prefix to origin AS mappings. Advanced failover can be implemented
85+
by server sockets with different preference values.
86+
87+
* If no connection to an RPKI cache server can be established after a
88+
pre-defined timeout, the router will process routes without prefix origin
89+
validation. It still will try to establish a connection to an RPKI cache
90+
server in the background.
91+
92+
* By default, enabling RPKI does not change best path selection. In particular,
93+
invalid prefixes will still be considered during best path selection. However,
94+
the router can be configured to ignore all invalid prefixes.
95+
96+
* Route maps can be configured to match a specific RPKI validation state. This
97+
allows the creation of local policies, which handle BGP routes based on the
98+
outcome of the Prefix Origin Validation.
99+
100+
* Updates from the RPKI cache servers are directly applied and path selection is
101+
updated accordingly. (Soft reconfiguration must be enabled for this to work).
102+
103+
*************
104+
Configuration
105+
*************
106+
107+
.. cfgcmd:: protocols rpki polling-period <1-86400>
108+
109+
Define the time interval to update the local cache
110+
111+
The default value is 300 seconds.
112+
113+
.. cfgcmd:: protocols rpki cache <address> port <port>
114+
115+
Defined the IPv4, IPv6 or FQDN and port number of the caching RPKI caching
116+
instance which is used.
117+
118+
This is a mandatory setting.
119+
120+
.. cfgcmd:: protocols rpki cache <address> preference <preference>
121+
122+
Multiple RPKI caching instances can be supplied and they need a preference in
123+
which their result sets are used.
124+
125+
This is a mandatory setting.
126+
127+
SSH
128+
===
129+
130+
Connections to the RPKI caching server can not only be established by HTTP/TLS
131+
but you can also rely on a secure SSH session to the server. To enable SSH you
132+
first need to create yoursels an SSH client keypair using ``generate ssh
133+
client-key /config/auth/id_rsa_rpki``. Once your key is created you can setup
134+
the connection.
135+
136+
.. cfgcmd:: protocols rpki cache <address> ssh username <user>
137+
138+
SSH username to establish an SSH connection to the cache server.
139+
140+
.. cfgcmd:: protocols rpki cache <address> ssh known-hosts-file <filepath>
141+
142+
Local path that includes the known hosts file.
143+
144+
.. cfgcmd:: protocols rpki cache <address> ssh private-key-file <filepath>
145+
146+
Local path that includes the private key file of the router.
147+
148+
.. cfgcmd:: protocols rpki cache <address> ssh public-key-file <filepath
149+
150+
Local path that includes the public key file of the router.
151+
152+
.. note:: When using SSH, known-hosts-file, private-key-file and public-key-file
153+
are mandatory options.
154+
155+
*******
156+
Example
157+
*******
158+
74159
We can build route-maps for import based on these states. Here is a simple
75160
RPKI configuration, where `routinator` is the RPKI-validating "cache"
76161
server with ip `192.0.2.1`:
77162

78163
.. code-block:: none
79164
80-
set protocols rpki cache routinator address '192.0.2.1'
81-
set protocols rpki cache routinator port '3323'
165+
set protocols rpki cache 192.0.2.1 port '3323'
166+
set protocols rpki cache 192.0.2.1 preference '1'
82167
83168
Here is an example route-map to apply to routes learned at import. In this
84169
filter we reject prefixes with the state `invalid`, and set a higher

0 commit comments

Comments
 (0)