From: pcarana Date: Mon, 1 Apr 2019 22:27:38 +0000 (-0600) Subject: Add RTR server configuration docs X-Git-Tag: v0.0.2~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e80c675768104c98cf886574780fa0a923d1c737;p=thirdparty%2FFORT-validator.git Add RTR server configuration docs --- diff --git a/docs/doc/rtr-server.md b/docs/doc/rtr-server.md index 607c7cbd..efba6b6e 100644 --- a/docs/doc/rtr-server.md +++ b/docs/doc/rtr-server.md @@ -1,6 +1,131 @@ --- title: RTR Server arguments +command: rpki_validator --- # {{ page.title }} +## Index + +1. [Syntax](#syntax) +1. [Arguments](#arguments) + 1. [`-f`](#-f) +1. [Configuration file](#configuration-file) + 1. [`listen`](#listen) + 1. [`address`](#address) + 1. [`port`](#port) + 1. [`queue`](#queue) + 1. [`vrps`](#vrps) + 1. [`location`](#location) + 1. [`checkInterval`](#checkinterval) + +## Syntax + +``` +{{ page.command }} + [-f] +``` + +If an argument is declared more than once, the last one takes precedence: + +{% highlight bash %} +$ {{ page.command }} -f="/foo.bar" # f is "foo.bar" +$ {{ page.command }} -f="/foo.bar" -f="/bar.baz" # f is "bar.baz" +$ {{ page.command }} -f="/foo.bar" -f="/bar.baz" -f="/baz.qux" # f is "baz.qux" +{% endhighlight %} + + +## Arguments + +### `-f` + +- **Type:** String (Path to file) +- **Required:** Yes + +Path to the configuration file. The configuration file must be in JSON format and with the structure as stated in [Configuration file](#configuration-file). + +## Configuration file + +The configuration file must be in JSON format, and must have the following structure: + +```javascript +{ + "listen": { + "address": "", + "port": "", + "queue": + }, + "vrps": { + "location": "", + "checkInterval": + } +} +``` + +The server has default values for the configuration, all of them stated at each of the following sections. + +If a property is set at the configuration file, its value will override the default value. If a property is required, then its value MUST be set at the configuration file. + +### `listen` + +Property to set values related to the service that'll be configured to listen RTR clients (routers). It has 3 attributes: +- [`address`](#address) +- [`port`](#port) +- [`queue`](#queue) + +#### `address` + +- **Type:** String +- **Default:** `NULL` +- **Required:** No + +Hostname or numeric host address where the server will be binded, listening to client requests. + +If the address is left with 'NULL' value (default value), the service will be binded to `INADDR_ANY` or `IN6ADDR_ANY_INIT`. + +#### `port` + +- **Type:** String +- **Default:** `323` +- **Required:** No + +Port or service where the server will be binded. A service alias can be set as a valid value; the alias are commonly located at `etc/services` (read more using '`$ man services`'). + +> ![../img/warn.svg](../img/warn.svg) If the default port will be used to start the server, a superuser MUST start the service since this is a privileged port. + +#### `queue` + +- **Type:** Numeric (integer value) +- **Default:** `10` +- **Required:** No + +Number of client connections that will be queued before starting to refuse new ones. + +The value must be between 1 and `SOMAXCONN` (read more using '`$ man listen`'). + +### `vrps` + +Property to set values related to the main RTR server input: the validated ROAs generated by the FORT validator. It has 2 attributes: +- [`location`](#location) +- [`checkInterval`](#checkinterval) + +#### `location` + +- **Type:** String +- **Default:** `NULL` +- **Required:** Yes + +Path to the CSV file with validated ROAs. This file is the one generated by the FORT validator. + +#### `checkInterval` + +- **Type:** Numeric (integer value) +- **Default:** `60` +- **Required:** No + +Time interval in seconds to seek for updates at the `vrps.location` configured, must have a value between 60 and 7200 (2 hours). + +The default value (and minimum value as well) is set to honour RFC 6810 requirement on Serial Notify PDUs: + +> "The cache MUST rate limit Serial Notifies to no more frequently than one per minute" +