You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ FORT validator is an MIT-licensed RPKI Relying Party, this is a tool offered as
11
11
12
12
## Status
13
13
14
-
> Due to a temporary resource shortage, the project's development has slowed down to essential maintenance. No new features are expected to be developed during the first half of 2021 (at least), but bugfixing and support will remain active.
14
+
> Due to a temporary resource shortage, the project's development has slowed down to essential maintenance. No new features are expected to be developed during 2021 (at least), but bugfixing and support will remain active.
15
15
16
16
Version **{{ site.fort-latest-version }}** is the latest official release. To fetch or review it, visit the [GitHub release](https://github.com/NICMx/FORT-validator/releases/tag/v{{ site.fort-latest-version }}){:target="_blank"}.
Copy file name to clipboardExpand all lines: docs/installation.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ description: Guide to compile and install FORT Validator.
30
30
31
31
## Dependencies
32
32
33
-
> Note: This section is included in case you intend to install Fort in an unlisted OS (and therefore need a little research). For: Debians, OpenBSD, RHEL/CentOS, Fedora, openSUSE Leap, FreeBSD, and Slackware just follow the steps in the sections below.
33
+
> Note: This section is included in case you intend to install Fort in an unlisted OS (and therefore need a little research). For Debians, OpenBSD, RHEL/CentOS, Fedora, openSUSE Leap, FreeBSD, and Slackware just follow the steps in the sections below.
34
34
35
35
The dependencies are
36
36
@@ -40,7 +40,7 @@ The dependencies are
40
40
4.[libcurl](https://curl.haxx.se/libcurl/)
41
41
5.[libxml2](http://www.xmlsoft.org/)
42
42
43
-
Fort is currently supported in *64-bit*OS. A 32-bit OS may face the [Year 2038 problem](https://en.wikipedia.org/wiki/Year_2038_problem) when handling dates at certificates, and currently there's no work around for this.
43
+
Fort currently supports *64-bit*Operating Systems. A 32-bit OS may face the [Year 2038 problem](https://en.wikipedia.org/wiki/Year_2038_problem) when handling certificate dates, and there's no workaround for this at the moment.
44
44
45
45
## Option 1: Installing the package
46
46
@@ -470,4 +470,4 @@ Preferably, run this script with the same user what will run FORT validator. It'
Copy file name to clipboardExpand all lines: docs/intro-fort.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,13 @@ description: FORT Validator is a command line application intended for UNIX oper
7
7
8
8
## Design
9
9
10
-
Fort is an MIT-licensed RPKI Relying Party. It is a service that performs the validation of the entire RPKI repository, and which serves the resulting ROAs for easy access by your routers.
10
+
Fort is an MIT-licensed RPKI Relying Party. It is a service that downloads the RPKI repositories, validates their entirety and serves the resulting ROAs for easy access by your routers.
11
11
12
12

13
13
14
-
The Validator is a timer thatresynchronizes its [local cache](usage.html#--local-repository), validates the resulting [RPKI trees](intro-rpki.html) and stores the resulting ROAs in memory every [certain amount of time](usage.html#--serverintervalvalidation). The RTR [Server](usage.html#--serveraddress) (which is part of the same binary) delivers these ROAs to any requesting routers.
14
+
The Validator is a timer that, [every once in a while](usage.html#--serverintervalvalidation), resynchronizes its [local cache of the RPKI Repository](usage.html#--local-repository), validates the resulting [certificate chains](intro-rpki.html) and stores the resulting valid ROAs in memory. The RTR [Server](usage.html#--serveraddress) (which is part of the same binary) delivers these ROAs to any requesting routers.
15
15
16
-
Fort is a commandline application intended for UNIX operating systems, written in C. (It requires a compiler that supports `-std=gnu11`.)
16
+
Fort is a command-line application intended for UNIX operating systems, written in C. (It requires a compiler that supports `-std=gnu11`.)
17
17
18
18
## Standards Compliance
19
19
@@ -49,4 +49,4 @@ The specific validations have been implemented, while the basic ones have not.
49
49
50
50
- Reach 100% RFC compliance
51
51
- Trigger revalidation and SLURM reload on SIGHUP.
52
-
- Configurable origin address for outgoing requests.
52
+
- Configurable origin address for outgoing requests.
Copy file name to clipboardExpand all lines: docs/intro-rpki.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,9 +17,9 @@ Basically, the idea is that one should be able to verify the origin of a route b
17
17
18
18

19
19
20
-
The end result is a _Route Origin Attestation_ (ROA), a digitally signed object that provides a means of verifying that an IP address block holder has authorized an Autonomous System (AS) to originate routes to its address block or one of its children's.
20
+
The end result is a _Route Origin Attestation_ (ROA), a digitally signed object that serves as a trustworthy attestation that an IP address block holder has authorized an Autonomous System (AS) to originate routes to its address block (or some of its children).
21
21
22
-
So the whole infrastructure functions like a tree-shaped trust network (one for each RIR) in which authorities (_Certificate Authority_--CA) attest to their resource suballocations:
22
+
So we end up with a tree-shaped trust network (one for each RIR) in which lots of authorities (_Certificate Authority_--CA) attest to their resource suballocations:
Currently there are two kinds of log messages: those related to the operation, and the ones regarding RPKI objects validation.
39
+
Fort has two different types of log messages: Operation logs and Validation logs.
40
40
41
-
Each type is described above, as well as how it can be configured.
41
+
They will be described below.
42
42
43
-
### Operation
43
+
### Operation Log
44
44
45
-
These type of messages are the ones where the user/operator can be directly involved. Probably these messages are of greater interest to most of the RP operators.
45
+
Operation logs are of likely interest to the operator running Fort; Issues reported here require human intervention. These include
46
46
47
-
The following messages are included at the operation logs:
48
-
- Configuration information, warnings and errors. E.g. if the location set at [`--tal`](usage.html#--tal) can't be accessed, or a configuration echo at the beginning.
49
-
- RTR information, warnings and errors; such as server binding status, and client connections (accepted, closed or terminated).
50
-
- SLURM information, warnings and errors. E.g. bad SLURM syntax, or SLURM data being applied in case of an error with a newer SLURM file.
51
-
- Out of memory errors.
52
-
- Read/write errors on local files.
53
-
- Persistent communication errors with RPKI repositories (see [`--stale-repository-period`](usage.html#--stale-repository-period)).
54
-
- Start and end of a validation cycle, including: number of valid Prefixes and Router Keys, current RTR serial number (only when [`--mode=server`](usage.html#--mode)), and real execution time.
55
-
- Programming errors (of course, those that could be expected due to an API misuse).
47
+
| Type | INFO example | WARNING example| ERROR example |
| Configuration logs | "And now I'm going to echo my configuration, in case you want to review it." | "This configuration argument is deprecated." | "Bad file syntax." |
50
+
| RTR Server logs | "Accepted connection from client." | "Huh? Peer is not speaking the RTR protocol." | "Cannot bind to address." |
51
+
| Out of memory errors| - | - | "Out of memory." |
52
+
| Read/write errors on local files| - | "The SLURM directory seems to lack SLURM files." | "I don't have permissions to access the repository cache." |
53
+
| Persistent communication errors with RPKI repositories (see [`--stale-repository-period`](usage.html#--stale-repository-period))| - | - | "Error requesting URL." |
54
+
| Start and end of a validation cycle| "Validation cycle ended. I got _R_ ROAs, _K_ router keys, my new serial is _S_, and it took _T_ seconds." | - | - |
55
+
| Programming errors | - | - | "Array size is 1, but array is NULL." |
56
56
57
-
### Validation
57
+
### Validation Log
58
58
59
-
These type of messages are the ones related to one of the main tasks performed by FORT validator: the RPKI validation. So, they are useful to know the current RPKI state.
59
+
These are messages generated during the RPKI validation cycle, and refer specifically to quirks found in the RPKI objects. (ie. Certificates, CRLs, ROAs, etc.)
60
60
61
-
All this messages are result of RPKI objects (certificates, CRLs, ROAs, etc.) processing, so probably the operator can't take a direct action trying to solve an error logged here, but it can get to know if something is wrong at the data published at the RPKI repositories.
61
+
These are likely more meaningful to repository administrators, for the sake of reviewing their objects.
62
62
63
-
Here are some examples of messages included at the validation logs:
- Suspicious validation outcome, but the RPKI object isn't rejected (e.g. serial numbers duplicated).
66
-
- An [incidence](incidence.html).
67
-
- RRDP file information, warnings and errors.
63
+
They are [disabled by default](usage.html#--validation-logenabled).
68
64
69
-
>  These messages are disabled by default, in order to enable them set [`--validation-log.enabled=true`](usage.html#--validation-logenabled).
|[Incidences](incidence.html)| "Manifest is stale." | "Manifest is stale." |
69
+
70
+
(Most informational validation messages have DEBUG priority. Incidence severity is configurable.)
70
71
71
72
## Configuration
72
73
@@ -87,52 +88,49 @@ The following sub-sections describe how each argument works.
87
88
88
89
### Enabled
89
90
90
-
Enables the corresponding log. If disabled (e.g. `--log.enabled=false`) none of the corresponding messages will be logged.
91
+
Sets whether the corresponding log type is printed or suppressed. When `false`, the rest of the corresponding log type's arguments are ignored.
91
92
92
-
The arguments of each log type are:
93
93
- {{ page.url-log-enabled }}
94
94
- {{ page.url-vlog-enabled }}
95
95
96
96
### Output
97
97
98
-
During the brief period in which configuration has not been completely parsed yet (and therefore, the validator is not yet aware of the desired log output), the standard streams and syslog are used simultaneously.
98
+
Either `syslog` or `console`. The former sends the output to the environment's [syslog](https://en.wikipedia.org/wiki/Syslog) server (using the configured [`*.facility`](#facility)), while the latter employs the standard streams. (DEBUG and INFO are sent to standard output, WARNING and ERROR to standard error.)
99
99
100
-
Once the configuration has been loaded, all the log messages will be printed at the configured `*.output`, which can have two values:
101
-
-`syslog`: all logging is sent to syslog, using the configured [`*.facility`](#facility).
102
-
-`console`: informational and debug messages are printed in standard output, error and critical messages are thrown to standard error.
100
+
> During the brief period in which configuration has not been completely parsed yet (and therefore, the validator is not yet aware of the desired log output), the standard streams and syslog are used simultaneously.
103
101
104
-
> Syslog configuration and usage is out of this docs scope, here's a brief introduction from [Wikipedia](https://en.wikipedia.org/wiki/Syslog). You can do some research according to your preferred OS distro to familiarize with syslog, since distinct implementations exists (the most common are: syslog, rsyslog, and syslog-ng).
105
-
106
-
The arguments of each log type are:
107
102
- {{ page.url-log-output }}
108
103
- {{ page.url-vlog-output }}
109
104
110
105
### Level
111
106
112
-
The `*.level` argument defines which messages will be logged according to its priority. Any log message of equal or higher importance to the one configured, will be logged, e.g. a value of `info` will log messages of equal or higher level (`info`, `warning`, and `error`).
107
+
Only messages of equal or higher priority than `*.level`will be logged. For example, `--log.level=warning` will discard DEBUG and INFO operation messages, and log WARNING and ERROR.
113
108
114
-
The validator uses exactly five levels of priority (they're just some of all the syslog priority levels), but only four of them can be utilized in the configured [`*.output`](#output). These are their meanings and priority from highest to lowest:
115
-
-`crit`: Programming errors. (These lead to program termination.)
116
-
- **This level can't be indicated at `level`**, since `error` and `crit` messages are relevant for an adequate operation.
117
-
-`error`: A failure that can stop an internal task (e.g. a certificate has expired so the childs are discarded) or is definitely an operational problem (e.g. no more memory can be allocated).
109
+
The available values are
110
+
111
+
-`error`: A failure that can stop an internal task (e.g. a certificate has expired so the childs are discarded) or is definitely an operational problem (e.g. no more memory can be allocated). Also detected programming errors.
118
112
-`warning`: Something suspicious, but not a stopper for a task.
119
-
-`info`: Information deemed useful to the user.
120
-
-`debug`: Information deemed useful to the developer. Expect a lot of messages when utilized.
113
+
-`info`: Inoffensive messages that might be of interest to the administrator.
114
+
-`debug`: Information deemed useful to the developer.
115
+
116
+
Variants:
121
117
122
-
The arguments of each log type are:
123
118
- {{ page.url-log-level }}
124
119
- {{ page.url-vlog-level }}
125
120
126
121
### Color output
127
122
128
-
The flag `*.color-output` is only meaningful when [`*.output`](#output) is `console` (it doesn't affect to `syslog`). When the flag is enabled, the log messages will have the following colors according to its priority:
129
-
-`crit`: <spanstyle="color:magenta">CYAN</span>
130
-
-`error`: <spanstyle="color:red">RED</span>
123
+
Causes the output to contain ASCII color codes. Meant for human consumption. Only applies when [output](#output) is `console`.
124
+
125
+
Each color depends on the message's priority:
126
+
127
+
-`error`: <spanstyle="color:red">RED</span> (Critical errors are <spanstyle="color:magenta">CYAN</span>)
@@ -177,34 +175,30 @@ The arguments of each log type are:
177
175
178
176
### Facility
179
177
180
-
Sets the syslog facility, so it's only meaningful when [`*.output`](#output) is `syslog`.
178
+
Sets the syslog [facility](https://en.wikipedia.org/wiki/Syslog#Facility); only meaningful when [`*.output`](#output) is `syslog`.
181
179
182
-
Currently the supported facilites are:
180
+
The available facilites are
183
181
184
-
--|--|--|--|--|--
185
182
auth | daemon | mail | uucp | local2 | local5
186
183
authpriv | ftp | news | local0 | local3 | local6
187
184
cron | lpr | user | local1 | local4 | local7
188
185
189
-
190
-
You could read more about facilites [here](https://en.wikipedia.org/wiki/Syslog#Facility) (since it's out of this docs scope).
191
-
192
-
The arguments of each log type are:
193
186
- {{ page.url-log-facility }}
194
187
- {{ page.url-vlog-facility }}
195
188
196
189
### Tag
197
190
198
191
Text tag that will be added to each message of the corresponding log type. The tag will be added after the message level, inside square brackets.
199
192
200
-
It's a simple mean to differentiate each message according to its type, probably useful if the [`*.output`](#output) is the same for both log types.
193
+
It's a simple means to differentiate each message according to its type, useful if both log types are [enabled](#enabled), and are printing to the same [`*.output`](#output).
194
+
195
+
Example:
201
196
202
-
E.g. If a validation error is found, it could be logged like this:
0 commit comments