Releases: NLnetLabs/routinator
Releases · NLnetLabs/routinator
Release list
0.9.0-rc3
0.9.0-rc2
Bug Fixes
- In server mode, the database is now only opened after detaching from the console if requested. This fixes Routinator hanging if the
--detachoption is used due to invoking multi-threading before forking. (#557) - Fixed a panic when trying to load a broken repository state object from the database. (#558)
- Accept the
filter-asnquery parameter in the VRP set HTTP endpoints again which was accidentally rejected. (#559)
Other Changes
- Rearranged the Prometheus metrics to be more canonical. (#562)
0.9.0-rc1
Breaking Changes
- Routinator now keeps the last valid data from a publication point and falls back to using that if an update to the publication point does not have a valid manifest or the data does not match the manifest. This data is stored in a [sled] key-value database rather than directly in the file system. (#456)
- RRDP data is now collected into the same key-value database. The new command
dumpallows copying the data from the database to the file system. (#473, #480, #484) - If an RRDP repository is unavailable for a certain time, Routinator will now fall back to rsync. The time since last successful update before this fallback happens is configurable via the
rrdp-fallback-timeoption and defaults to one hour. (#473, #482) - The
rsync-timeoutnow describes a hard timeout on the rsync process for updating a repository. ([#528)] - The size of downloaded RPKI objects is now limited by the
max-object-sizeoptions which defaults to a limit of 20 MBytes. This limit applies to both RRDP and rsync. (#531) - Routinator now includes additional TALs for various commonly used RPKI testbeds. The
initcommand has been restructured to make it possible to select the TALs for installation. The default is still to install the five production RIR TALs. (#500) - Deprecated configuration items have been removed:
unknown-objectscannot be spelled with a underscore anymore and string values are not accepted anymore forrtr-tcp-keepalive. (#496) - The minimal supported Rust version is now 1.45.0. (#444, #498)
New
- The new option
--freshcauses Routinator to delete all cached data before starting. This can be used when data corruption is reported. (#470) - The new HTTP server endpoint
/json-deltaprovides an option to retrieve updates to a previously received data set via deltas. (#537) - Status information is now available in JSON format at
/api/v1/status. (#437) - The metrics of RRDP repositories now also include the serial number of the last update. The JSON status information also includes the session ID and whether the last update was via a delta and if it wasn’t why a snapshot had to be used. It also separately provides the status codes for the request of the notification file and the snapshot or last requested delta file. (#487, #489)
- Prometheus metrics and JSON status have been greatly extended with more detailed counters for individual valid and invalid object types. They are also now available on a per-repository basis in addition to the already existing per-TAL basis. (#493, #539)
- Prometheus metrics and JSON status can now optionally include per-client RTR metrics. This is disabled by default to avoid accidentally leaking information about the local network topology. (#519)
- The RRDP client now supports the gzip transfer encoding for HTTPs. (#463, contributed by @bjpbakker)
- The
exceptionconfig file value now also accepts a single string with a path name instead of an array of strings. (#471) - The new
rrdp-keep-responsesoption allows optionally storing the XML content of all received RRDP responses in the file system. (#490) - The HTTP endpoints that supply the current VRP set now support conditional request handling. They include Etag and Last-Modified headers in their response and process If-None-Match and If-Modified-Since headers in requests. (#474, contributed by @reschke, #488)
- The
validatecommand now accepts input from and can write its output to files. Both are available in simple plain text and JSON formatting. (#514)
Bug Fixes
- The
csvcompatoutput format that was introduced in 0.7.0 is now actually accepted by the--formatcommand line option. - The
/validityHTTP endpoint now accepts percent-encoded characters in the query parameters. (#505)
Other Changes
- Updated the bundled APNIC and LACNIC TALs. When upgrading, please re-install the TALs in your system via
routinator init. (#510, #543) - Upgrade rpki-rs to 0.11 and drop now unnecessary separate dependency to rpki-rtr. (#443)
- Upgrade Tokio-related dependencies to new version based on Tokio 1.0. (#444)
- Upgrade the bundled UI to version 0.2.0 reflecting the changed metrics. (#550)
0.8.3 ‘Like and Subscribe’
New
- Status information is now available in JSON format at
/api/v1/status(#449). - Includes version 0.1.0 of routinator-ui, a UI for Route Origin Validation and Routinator status (#449).
0.8.3-rc1
New
- Status information is now available in JSON format at
/api/v1/status(#449). - Includes version 0.1.0 of routinator-ui, a UI for Route Origin Validation and Routinator status (#449).
0.8.2 ‘Once More, with Feeling’
All users of Routinator 0.8.0 and 0.8.1 are encouraged to upgrade to this release.
Changes
- As the rules proposed by draft-ietf-sidrops-6486bis turned out to be too strict, validation has been relaxed again. A CA is now only rejected and all its objects ignored if the manifest or CRL are invalid or if any of the objects listed on the manifest are either missing or have a different hash. Previously, a CA was rejected entirely if objects themselves where invalid for any reason, including cases such as expired child certificates. (#438)
Bug Fixes
- Switch logging to the configured target for the
updatecommand. (#433)
Other Changes
- Update minor dependencies in
Cargo.lock. (#439)
0.8.2-rc1
Changes
- As the rules proposed by draft-ietf-sidrops-6486bis turned out to be too strict, validation has been relaxed again. A CA is now only rejected and all its objects ignored if the manifest or CRL are invalid or if any of the objects listed on the manifest are either missing or have a different hash. (#438)
Bug Fixes
- Switch logging to the configured target for the
updatecommand. (#433)
Other Changes
- Update minor dependencies in
Cargo.lock. (#439)
0.8.1 ‘Pure as New York Snow’
Bug Fixes
- VRPs filtered via local exceptions are dropped again. In 0.8.0, they were only added to the metrics but not actually dropped. (#424, discovered by @cwiech)
- The prefix validation option incorrectly matched VRPs for host prefixes to prefixes with an identical bit pattern of any length. (Found by [@vamseedhar-reddyvari] and fixed in #415 by @morrowc and @aaronw112358)
- The config file option for the policy on dealing with objects on unknown types is now correctly spelled
unknown-objects(with a dash rather than an underscore). The old spelling will be also be accepted in 0.8 releases. (Found and fixed by @johannesmoos, #413, #416.) - The config file option
rtr-tcp-keepalivenow accepts an integer value as it should have from the beginning (and theconfigcommand even created). For the time being, both integers and strings will be accepted. String values will be rejected starting with 0.9.0. ([#427], discovered by @johannesmoos)
New
- The log output of the HTTP
/logendpoint now states the start date of the validation run it represents. (#426)
0.8.1-rc1
Bug Fixes
- VRPs filtered via local exceptions are dropped again. In 0.8.0, they were only added to the metrics but not actually dropped. (#424,
discovered by @cwiech) - The prefix validation option incorrectly matched VRPs for host prefixes to prefixes with an identical bit pattern of any length. (Found by [@vamseedhar-reddyvari] and fixed in #415 by @morrowc and @aaronw112358)
- The config file option for the policy on dealing with objects on unknown types is now correctly spelled
unknown-objects(with a dash rather than an underscore). The old spelling will be also be accepted in 0.8 releases. (Found and fixed by @johannesmoos, #413, #416.) - The config file option
rtr-tcp-keepalivenow accepts an integer value as it should have from the beginning (and theconfigcommand even created). For the time being, both integers and strings will be accepted. String values will be rejected starting with 0.9.0. ([#427], discovered by @johannesmoos)
New
- The log output of the HTTP
/logendpoint now states the start date of the validation run it represents. (#426)
0.8.0 ‘Strikes and Gutters, Ups and Downs’
Breaking Changes
- Validation now follows the rules suggested by draft-ietf-sidrops-6486bis: Any invalid object mentioned on the manifest will lead to the issuing CA and all its objects being rejected. However, unlike suggested by the draft, Routinator currently will not fall back to cached older versions of the CA’s objects that may still be valid. In addition, unknown RPKI object types are currently accepted with a warning logged. This behaviour can be changed via the
unknown-typespolicy option. (#371, #401) - Similarly, CRL handling has been tightened significantly. Each CA must now have exactly one CRL which must be the one stated in the manifest’s EE certificate. Any violation will lead to the whole CA being rejected with the same consequences as above. (#397)
- The default for dealing with stale objects has been changed to
rejectin accordance with the same draft. (#387) - Parsing of local exception files is now more strict in accordance with RFC 8416. Any additional member in the JSON objects will lead to an error. However, error reporting has been greatly improved and now the line and column of an error will be indicated. (#372)
- The alias
--allow-dubios-hostsfor the correctly spelled option has been removed. (#384) - The minimal supported Rust version is now 1.42.0.
New
- All VRPs overlapping with resources from rejected CAs – dubbed ‘unsafe VRPs’ can filtered via the new
unsafe-vrpsoption. Doing so will avoid situations were routes become RPKI invalid if their VRPs are split over multiple CAs or there are less specific ROAs. By default, unsafe VRPs are only warned about. (#377, #400) - New metrics for the VRPs produced and filtered on the various TALs. (#377)
- The logging output of the latest validation run is now available via the HTTP service’s
/logendpoint. (#396) - TCP keep-alive is now supported and enabled by default on RTR connections as suggested by RFC 8210. It can be disabled and its idle time changed from the default 60 seconds via the new
rtr-tcp-keepalivecommand line and config file option. (#390) - The
pid-file,working-dir,chroot,user, andgroupconfig file and server command options now also work without the--detachcommand line option. (#392) - The
initcommand will now change ownership of the cache directory if theuserandgroupoptions are set via config file or command line options. (#392) - Irrelevant log messages from libraries are now also filtered when using syslog logging. (#385)
- Release builds will now abort on panic, i.e., when an unexpected internal condition is detected. This ensures that there won’t be a
Routinator in a coma. (#394) - The feature
rtaenables the new commandrtafor validating Resource Tagged Assertions as described in draft-michaelson-rpki-rta. This feature is not enabled by default and needs to be activated by adding the option--features rtato the Cargo build command.
Bug Fixes
- Update start and end times will not change between consecutive metrics reports any more. (#389)
- Local exceptions will now be loaded before starting a validation run both in vrps and server mode instead of discarding the run after it finished when loading fails. In server mode, we now wait 10 seconds after loading local exceptions fails and try again instead of repeatedly starting validation runs and discarding them. (594186c)
- EE certificates encountered in the repository are now validated as router certificates rather than regular RPKI EE certificates. (#398)
Other Changes
- Logging has been cleaned up. The meaning of the four log levels is now better defined – see the man page – and all log output has been reassigned accordingly. (#396)