Internet-Draft | RPKI-Based Policy Without Route Refresh | May 2022 |
Bush, et al. | Expires 7 November 2022 | [Page] |
A BGP Speaker performing RPKI-based policy should not issue Route Refresh to its neighbors when receiving new RPKI data. A method for avoiding doing so is described.¶
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.¶
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 7 November 2022.¶
Copyright (c) 2022 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.¶
Memory constraints in early routers caused classic [RFC4271] BGP implementations to not keep a full Adj-RIB-In (Sec. 1.1). When doing RPKI-based Route Origin Validation ([RFC6811] and [RFC8481]), and similar RPKI-based policy, if such a BGP speaker receives new RPKI data, it might not have kept paths previously marked as Invalid etc. Such an implementation must then request a Route Refresh [RFC7313] from its neighbors to recover the paths which might be covered by these new RPKI data. This will be perceived as rude by those neighbors as it passes a serious resource burden on to them. This document recommends implementations keep and mark paths affected by RPKI-based policy so Route Refresh is no longer needed.¶
As Route Origin Validation dropping Invalids has deployed, some router implementations have been found which, when receiving new RPKI data (VRPs, see [I-D.ietf-sidrops-8210bis]) issue a BGP Route Refresh [RFC7313] to all sending BGP peers so that it can reevaluate the received paths aginst the new data.¶
In actual deployment this has been found to be very destructive, transferring a serious resource burden to the unsuspecting peers. In reaction, RPKI based Route Origin Validation (ROV) has been turned off; and there have been actual de-peerings.¶
As RPKI registration and ROA creation have steadily increased, this problem has increased, not just proportionally, but on the order of the in-degree of ROV implementing routers. As ASPA ([I-D.ietf-sidrops-aspa-verification]) becomes used, the problem will increase.¶
Ameliorating this problem by keeping a full Adj-RIB-In can be a problem for resource constrained routers. In reality, only some data need be retained.¶
When RPKI data cause one or more paths to be dropped due to ROV, those paths MUST NOT be evaluated for best path, but MUST be saved (either separately or marked) so they may be reevaluated with respect to new RPKI data.¶
If new RPKI data arrive which invalidate the best path, and the router did not keep all alternatives, then it MUST issue a route refresh so those alternatives may be evaluated for best path.¶
Policy which may drop paths due to RPKI-based checks such as ROV, ASPA, BGPsec [RFC8205], etc. MUST be run, and the dropped paths saved per the above paragraph, before non-RPKI policies are run, as the latter may change path attributes.¶
As storing these paths could cause problems in resource constrained devices, there MUST be a knob allowing operator control of this feature. Such a knob MUST NOT be per peer, as this could cause inconsistent behavior.¶
If Route Refresh has been issued toward more than one peer, the order of receipt of the refresh data can cause churn in both best path selection and in outbound signaling.¶
Operators deploying ROV and/or other RPKI based policies SHOULD ensure that the router implementation is not causing unnecessary Route Refresh requests to neighbors.¶
Routers MUST either keep the full Adj-RIB-In or implement the specification in Section 4.¶
If the router does not implement these recommendations, the operator SHOULD enable the vendor's knob to keep the full Adj-RIB-In, sometimes referred to as "soft reconfiguration inbound". The operator should then measure to ensure that there are no unnecessary Route Refresh requests sent to neighbors.¶
If the router has insufficient resources to support either of the two proposed options, it MUST not be used for Route Origin Validation. I.e. the knob in Section 4 should only be used in very well known and controlled circumstances.¶
Operators using the specification in Section 4 should be aware that a misconfigured neighbor might erroneously send a massive number of paths, thus consuming a lot of memory. Pre-policy filtering such as described in [I-D.sas-idr-maxprefix-inbound] SHOULD be used to reduce this exposure.¶
Internet Exchange Points (IXPs)which provide [RFC7947] Route Servers should be aware that some members could be causing an undue Route Refresh load on the Route Servers and take appropriate administrative and/or technical measures. IXPs using routers as route servers should ensure that they are not generating excessive route refresh requests.¶
This document describes a denial of service which Route Origin Validation or other RPKI policy may place on a BGP neighbor, and describes how it may be ameliorated.¶
Otherwise, this document adds no additional security considerations to those already described by the referenced documents.¶
None¶
The authors wish to thank Ben Maddison, John Heasley, John Scudder, Matthias Waehlisch, Nick Hilliard, Saku Ytti, and Ties de Kock.¶