Internet-Draft | Enhanced SLURM Filters | July 2024 |
Fu & Geng | Expires 2 January 2025 | [Page] |
Simplified Local Internet Number Resource Management with the RPKI (SLURM) helps operators create a local view of the global RPKI by generating sets of filters and assertions. This document proposes to filter out RPKI data by type based on enhanced SLURM filters. Only the RPKI data types that the network or routers are interested in will appear in the Relying Party's output.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 2 January 2025.¶
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Relying Party (RP) collects signed RPKI objects from global RPKI publication points. The RPKI data passing RP's validation will appear in RP's output. Then, the RPKI-to-Router (RTR) protocol [RFC6810][RFC8210][I-D.ietf-sidrops-8210bis] will synchronize the validated RPKI data from RP to routers. Currently, four types of RPKI data including IPv4 Prefix, IPv6 Prefix, Router Key, and ASPA are supported in the RTR protocol.¶
However, in some cases, routers may be interested in a part of RPKI data types, instead of all [I-D.geng-sidrops-rtr-selective-sync]. In such cases, storing unused data on the router is unreasonable, and synchronizing all types of data will induce some unnecessary transmission and storage overhead. Besides, multiple types of data can be transmitted together. The router cannot use any type of these data unless it waits for all data to complete transmission.¶
Furthermore, there may be more types of RPKI data in the RPKI repositories and RPs, which makes the above problem more significant and worse. The followings are example types, and some of them may be possibly supported in the RPKI system in the future:¶
Secured Routing Policy Specification Language (RPSL) [RFC7909]¶
Signed Prefix Lists [I-D.ietf-sidrops-rpki-prefixlist]¶
Autonomous Systems Cones [I-D.ietf-grow-rpki-as-cones]¶
Mapping Origin Authorizations (MOAs) [I-D.xie-sidrops-moa-profile]¶
Signed SAVNET-Peering Information (SiSPI) [I-D.chen-sidrops-sispi]¶
Path validation with RPKI [I-D.van-beijnum-sidrops-pathrpki]¶
Signed Groupings of Autonomous System Numbers [I-D.spaghetti-sidrops-rpki-asgroup]¶
To deal with the problem, configuring routers directly ignoring the uninterested RPKI data transmitted by RTR protocol may not be a good solution. While storage overhead is avoided, transmission delay is not optimized. Extending RTR protocol for supporting selective synchronization of RPKI data is an alternative solution [I-D.geng-sidrops-rtr-selective-sync]. Both of the two solutions require the upgrade of router software.¶
SLURM provides a simple way to enable an RP to establish a local and customized view of the RPKI ([RFC8416], [I-D.ietf-sidrops-aspa-slurm]). It defines Validation Output Filters to filter out specific RPKI data items and Locally Added Assertions to add RPKI data items. Unfortunately, SLURM cannot efficiently filter out RPKI data by type, i.e., filter out all the RPKI data belonging to a specific type.¶
This document proposes enhanced SLURM filters which can filter out RPKI data by type. With enhanced SLURM filters, operators can efficiently select which type of RPKI data need to be synchronized to routers.¶
The proposed method requires some modifications on the SLURM-related process of RP software. Upgrades of RTR implementations and router software implementations are not involved.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
One of use cases is IPv6-only network. Suppose a IPv6-only network wants to enable ROV on BGP border routers. The routers should be only interested in IPv6-related BGP validation because the routers can only receive IPv6 routes from neighbor ASes. Therefore, IPv4 Prefix data is not useful for the network. An example of IPv6-only network is New China Education and Research Network (named Future Internet Technology Infrastructure, FITI).¶
+------------+ | Rely Party | +------------+ / \ / Sync RPKI \ / data by RTR \ +---------/----------------\---------+ IPv6 | / \ |IPv6 routes| +----------+ +----------+ |routes ------->|BGP router| |BGP router| |------> | +----------+ +----------+ | | IPv6-only | +------------------------------------+¶
As described in Section 1, there may be more types of RPKI data in the RPKI repositories and RPs. Thus, there will be more use cases where a network does not need all types of RPKI data in the future.¶
This section proposes two optional designs.¶
A SLURM file consists of a single JSON [RFC8259] object containing the following members:¶
A "slurmVersion" member that MUST be set to 3, encoded as a number¶
A "validationOutputFilters" member whose value is an object. The object MUST contain exactly four members:¶
A "locallyAddedAssertions" member whose value is an object. The object MUST contain exactly three members:¶
The following JSON structure with JSON members represents a SLURM file that has no filters or assertions:¶
{ "slurmVersion": 2, "validationOutputFilters": { "aspaFilters": [], "bgpsecFilters": [], "prefixFilters": [], "typeFilters": [] }, "locallyAddedAssertions": { "aspaAssertions": [], "bgpsecAssertions": [], "prefixAssertions": [] } }¶
There are currently four types of RPKI data (which follows the RTR PDU definitions). The number of data types may increase with time.¶
The RP can configure zero or at most four RPKI Data Type Filters ("Type Filter" for short). Each Type Filter contains a single 'rpkiDataType' and optionally a single 'comment'.¶
The 'rpkiDataType' member MUST be one of the values, i.e., "IPv4 Prefix", "IPv6 Prefix", "Router Key", and "ASPA".¶
It is RECOMMENDED that an explanatory comment is included with each Type Filter so that it can be shown to users of the RP software.¶
Any RPKI data item that matches any configured Type Filter MUST be removed from the RP's output.¶
A RPKI data item is considered to match with a Type Filter if the following condition applies: The item is considered to match if the RPKI data type of the item is equal to the "rpkiDataType" value of Type Filter.¶
The following example JSON structure represents a "typeFilter" member with one object as described above:¶
"typeFilter": [ { "rpkiDataType": "IPv4 Prefix", "comment": "Filter out VRPs with IPv4 Prefixes" } ]¶
When a type of RPKI data is to be filtered out, the corresponding Filters and Assertions MUST be ignored. In the above JSON example, the prefixFilters with IPv4 prefixes and the prefixAssertions with IPv4 prefixes will be ignored by RP.¶
A SLURM file consists of a single JSON [RFC8259] object which has the same structure as [I-D.ietf-sidrops-aspa-slurm], except that the "slurmVersion" member MUST be set to 3.¶
The structure of ROA filters, BGPsec filters, and ASPA filters are not changed.¶
To filter out a specific type of RPKI data, a special value (e.g., 65535. The value is TBD) can be set to the "asn" member of the above filters.¶
The following example JSON structure represents a "prefixFilters" member with one object as described above:¶
"prefixFilters": [ { "asn": 65535, "comment": "Filter out VRPs with IPv4 and IPv6 Prefixes" } ]¶
When a type of RPKI data is to be filtered out, the corresponding Filters and Assertions MUST be ignored. In the above JSON example, the other prefixFilters and all the prefixAssertions will be ignored by RP.¶
To filter only IPv4 Prefixes, two special values can be used, i.e., one is for IPv4 and the other is for IPv6. The concret design is TBD.¶
The security considerations in Section 6 of [RFC8416] are also applied to this document.¶
This document has no IANA actions.¶