--- 1/draft-ietf-idr-bgp-flowspec-oid-10.txt 2020-03-08 09:13:34.386008246 -0700 +++ 2/draft-ietf-idr-bgp-flowspec-oid-11.txt 2020-03-08 09:13:34.414008956 -0700 @@ -1,23 +1,23 @@ Network Working Group J. Uttaro Internet-Draft AT&T Updates: 5575bis (if approved) J. Alcaide Intended status: Standards Track C. Filsfils -Expires: February 9, 2020 D. Smith +Expires: September 9, 2020 D. Smith Cisco P. Mohapatra Sproute Networks - August 8, 2019 + March 8, 2020 Revised Validation Procedure for BGP Flow Specifications - draft-ietf-idr-bgp-flowspec-oid-10 + draft-ietf-idr-bgp-flowspec-oid-11 Abstract This document describes a modification to the validation procedure defined in [RFC5575bis] for the dissemination of BGP Flow Specifications. [RFC5575bis] requires that the originator of the Flow Specification matches the originator of the best-match unicast route for the destination prefix embedded in the Flow Specification. This allows only BGP speakers within the data forwarding path (such as autonomous system border routers) to originate BGP Flow @@ -36,25 +36,25 @@ 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 February 9, 2020. + This Internet-Draft will expire on September 9, 2020. Copyright Notice - Copyright (c) 2019 IETF Trust and the persons identified as the + Copyright (c) 2020 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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as @@ -65,23 +65,23 @@ 1. Requirements Language . . . . . . . . . . . . . . . . . . . . 2 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Revised Validation Procedure . . . . . . . . . . . . . . . . 5 4.1. Revision of Route Feasibility . . . . . . . . . . . . . . 5 4.2. Revision of AS_PATH Validation . . . . . . . . . . . . . 6 5. Other RFC5575bis Considerations . . . . . . . . . . . . . . . 7 6. Topology Considerations . . . . . . . . . . . . . . . . . . . 8 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 8. Security Considerations . . . . . . . . . . . . . . . . . . . 9 - 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 - 10. Normative References . . . . . . . . . . . . . . . . . . . . 10 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 + 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 + 10. Normative References . . . . . . . . . . . . . . . . . . . . 9 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 2. Introduction [RFC5575bis] defined a new BGP [RFC4271] capability that can be used @@ -115,21 +115,21 @@ modification cannot be used for inter-domain coordination of traffic filtering, it greatly simplifies distribution of intra-domain traffic filtering policies within an autonomous system which has a large number of border routers having complex BGP policies. By relaxing the validation procedure for iBGP, the proposed modification allows Flow Specifications to be distributed in a standard and scalable manner throughout an autonomous system. 3. Motivation - Step (a) of the validation procedure in [RFC5575bis], section 6 is + Step (b) of the validation procedure in [RFC5575bis], section 6 is defined with the underlying assumption that the Flow Specification NLRI traverses the same path, in the inter-domain and intra-domain route distribution graph, as that of the longest-match unicast route for the destination prefix embedded in the Flow Specification. In the case of inter-domain traffic filtering, the Flow Specification originator at the egress border routers of an AS (e.g. RTR-D and RTR-E of ASN1 in figure 1) matches the eBGP neighbor that advertised the longest match destination prefix (see RTR-F and RTR-G respectively in figure 1). Similarly, at the ingress border routers @@ -194,37 +194,40 @@ plane. In this way, operators can direct border routers within their ASN with specific attack mitigation actions (drop the traffic, forward to a clean-pipe center, etc.). To originate a Flow Specification NLRI, a central BGP route controller must set itself as the originator in the Flow Specification NLRI. This is necessary given the route controller is originating the Flow Specification rather than reflecting it, and to avoid the complexity of having to determine the egress border router whose path was chosen as the best in each of the ingress border - routers. Thus, it is necessary to modify step (a) of the + routers. Thus, it is necessary to modify step (b) of the [RFC5575bis] validation procedure such that an iBGP peer that is not within the data forwarding plane may originate Flow Specification NLRIs. 4. Revised Validation Procedure 4.1. Revision of Route Feasibility - Step (a) of the validation procedure specified in [RFC5575bis], + Step (b) of the validation procedure specified in [RFC5575bis], section 6 is redefined as follows: - a. One of the following conditions MUST hold true. + a. One of the following conditions MUST hold true: 1. The originator of the Flow Specification matches the originator of the best-match unicast route for the - destination prefix embedded in the Flow Specification. + destination prefix embedded in the Flow Specification (this + is the unicast route with the longest possible prefix length + covering the destination prefix embedded in the Flow + Specification). 2. The AS_PATH attribute of the Flow Specification does not contain AS_SET and/or AS_SEQUENCE segments. 1. This condition SHOULD be enabled by default. This default behavior should validate an empty AS_PATH. 2. This condition MAY be disabled by configuration on a BGP speaker. @@ -230,35 +233,34 @@ 3. As an exception to this rule, a given AS_PATH with AS_SET and/or AS_SEQUENCE segments MAY be validated by policy. Explanation: In this context, an empty AS_PATH means that it does not have AS_SET and/or AS_SEQUENCE segments, and local domain means the local AS [RFC4271] or the local confederation of ASes (in the case that the local AS belongs to a confederation of ASes [RFC5065]). - Thus, receiving a Flow Specification with an empty AS_PATH indicates that the Flow Specification was originated inside the local domain. With the above modification to the [RFC5575bis] validation procedure, a BGP peer within the local domain that is not within the data forwarding path can originate a Flow Specification. - Disabling the new condition above (a.2.2) may be a good practice + Disabling the new condition above (b.2.2) may be a good practice when the operator knows with certainty that there is not a Flow Specification originated inside the local domain. Also, policy may be useful to validate a specific set of non-empty - AS_PATHs (a.2.3). For example, it could validate a Flow + AS_PATHs (b.2.3). For example, it could validate a Flow Specification whose AS_PATH contains only an AS_SEQUENCE with ASes that are all known to belong to the same administrative domain. 4.2. Revision of AS_PATH Validation [RFC5575bis] states: o BGP implementations MUST also enforce that the AS_PATH attribute of a route received via the External Border Gateway Protocol (eBGP) contains the neighboring AS in the left-most position of @@ -312,99 +314,79 @@ from an External Border Gateway Protocol (eBGP) peer belonging to the same local domain (in the case that the local AS belongs to a confederation of ASes) is out of the scope of this document. Note that although it's possible, its utility is dubious. 5. Other RFC5575bis Considerations This section clarifies some of the terminology and rules referenced in [RFC5575bis]. Namely: - o [RFC5575bis] references "the best-match unicast route for the - destination prefix embedded in the Flow Specification". For - clarity, this route is defined hereby as the best path of the - unicast network with the longer prefix-length that covers the - destination prefix embedded in the Flow Specification. - - Explanation: - - We consider only the best-match network and we do not consider - unicast non-best paths (even if it is received from the same peer - as the Flow Specification). - - o If a BGP Flow Specification does not embed a destination prefix - component, then the default behavior SHOULD be not to perform the - validation procedures. - - Explanation: - - The reason for this is because the best-match unicast route is not - defined in this case. - o In the context of this document and [RFC5575bis], AS_PATH attribute is defined as the reconstructed AS path information (by combining AS_PATH and AS4_PATH attributes, if the BGP speaker is a NEW speaker and receives the route from an OLD speaker), according to section 4.2.3 of [RFC6793]. o Support for two-octet AS only implementations is out of the scope of this document (i.e. it's assumed that the BGP speaker supports [RFC6793]). 6. Topology Considerations [RFC5575bis] indicates that the originator may refer to the originator path attribute (ORIGINATOR_ID) or (if the attribute is not present) the transport address of the peer from which we received the update. If the latter applies, a network should be designed so it has a congruent topology. - With the additional second condition (a.2) in the validation + With the additional second condition (b.2) in the validation procedure, non-congruent topologies are supported within the local domain if the Flow Specification is originated within the local domain. Explanation: Consider the following scenarios without the second condition - (a.2) being added to the validation procedure: + (b.2) being added to the validation procedure: 1. Consider a topology with two BGP speakers with two peering sessions between them, one for unicast and one for Flow Specification. This is a non-congruent topology. Let's assume that the ORIGINATOR_ID attribute was not received (e.g. a route reflector receiving routes from its clients). In this case, the Flow Specification validation procedure will fail - because of the first condition (a.1). + because of the first condition (b.1). 2. Consider a topology with a BGP speaker within a confederation of ASes, inside local AS X. ORIGINATOR_ID attribute is not advertised within the local domain. Let's assume the Flow Specification route is received from peer A and the best-match unicast route is received from peer B. Both peers belong in local AS Y. Both AS X and AS Y belong to the same local domain. The Flow Specification validation procedure will also - fail because of the first condition (a.1). + fail because of the first condition (b.1). In the examples above, if Flow Specifications are originated in the same local domain, AS_PATH will not contain AS_SET and/or - AS_SEQUENCE segments. When the second condition (a.2) in the + AS_SEQUENCE segments. When the second condition (b.2) in the validation procedure is used, the validation procedure will pass. Thus, non-congruent topologies are supported if the Flow Specification is originated in the same local domain. - Even when the second condition (a.2) is used in the validation + Even when the second condition (b.2) is used in the validation procedure, a Flow Specification originated in a different local domain needs a congruent topology. AS_SEQUENCE is not empty and - the first condition (a.1) in the validation procedure needs to be + the first condition (b.1) in the validation procedure needs to be evaluated. Because transport addresses for Flow Specification and unicast routes are different, the validation procedure will fail. + This is true both across domains and within domains. Consider both cases: * Consider the first example. If the Flow Specification route is originated in another AS, the validation procedure will fail because the topology is non-congruent within the domain. * Consider the second example and modify it so AS X and AS Y belong to different local domains (no confederation of ASes exists). The validation procedure will fail because the @@ -436,24 +418,24 @@ 9. Acknowledgements The authors would like to thank Han Nguyen for his direction on this work as well as Waqas Alam, Keyur Patel, Robert Raszuk, Eric Rosen and Shyam Sethuram for their review comments. 10. Normative References [I-D.ietf-idr-rfc5575bis] - Hares, S., Loibl, C., Raszuk, R., McPherson, D., and M. + Loibl, C., Hares, S., Raszuk, R., McPherson, D., and M. Bacher, "Dissemination of Flow Specification Rules", - draft-ietf-idr-rfc5575bis-14 (work in progress), April - 2019. + draft-ietf-idr-rfc5575bis-19 (work in progress), January + 2020. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006, .