idnits 2.17.1 draft-ietf-idr-bgp-flowspec-oid-13.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC8955, but the abstract doesn't seem to directly say this. It does mention RFC8955 though, so this could be OK. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 12, 2021) is 1103 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC6793' is defined on line 487, but no explicit reference was found in the text Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group J. Uttaro 3 Internet-Draft AT&T 4 Updates: 8955 (if approved) J. Alcaide 5 Intended status: Standards Track C. Filsfils 6 Expires: October 14, 2021 D. Smith 7 Cisco 8 P. Mohapatra 9 Sproute Networks 10 April 12, 2021 12 Revised Validation Procedure for BGP Flow Specifications 13 draft-ietf-idr-bgp-flowspec-oid-13 15 Abstract 17 This document describes a modification to the validation procedure 18 defined for the dissemination of BGP Flow Specifications. The 19 dissemination of BGP Flow Specifications requires that the originator 20 of the Flow Specification matches the originator of the best-match 21 unicast route for the destination prefix embedded in the Flow 22 Specification. For an iBGP received route, the originator is 23 typically a border router within the same autonomous system. The 24 objective is to allow only BGP speakers within the data forwarding 25 path to originate BGP Flow Specifications. Sometimes it is desirable 26 to originate the BGP Flow Specification any place within the 27 autonomous system itself, for example, from a centralized BGP route 28 controller. However, the validation procedure will fail in this 29 scenario. The modification proposed herein relaxes the validation 30 rule to enable Flow Specifications to be originated within the same 31 autonomous system as the BGP speaker performing the validation. 32 Additionally, this document revises AS_PATH validation rules so Flow 33 Specifications received from an eBGP peer can be validated when such 34 peer is a BGP route server. 36 This document updates the validation procedure in RFC8955. 38 Status of This Memo 40 This Internet-Draft is submitted in full conformance with the 41 provisions of BCP 78 and BCP 79. 43 Internet-Drafts are working documents of the Internet Engineering 44 Task Force (IETF). Note that other groups may also distribute 45 working documents as Internet-Drafts. The list of current Internet- 46 Drafts is at https://datatracker.ietf.org/drafts/current/. 48 Internet-Drafts are draft documents valid for a maximum of six months 49 and may be updated, replaced, or obsoleted by other documents at any 50 time. It is inappropriate to use Internet-Drafts as reference 51 material or to cite them other than as "work in progress." 53 This Internet-Draft will expire on October 14, 2021. 55 Copyright Notice 57 Copyright (c) 2021 IETF Trust and the persons identified as the 58 document authors. All rights reserved. 60 This document is subject to BCP 78 and the IETF Trust's Legal 61 Provisions Relating to IETF Documents 62 (https://trustee.ietf.org/license-info) in effect on the date of 63 publication of this document. Please review these documents 64 carefully, as they describe your rights and restrictions with respect 65 to this document. Code Components extracted from this document must 66 include Simplified BSD License text as described in Section 4.e of 67 the Trust Legal Provisions and are provided without warranty as 68 described in the Simplified BSD License. 70 Table of Contents 72 1. Requirements Language . . . . . . . . . . . . . . . . . . . . 2 73 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 74 3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 75 4. Revised Validation Procedure . . . . . . . . . . . . . . . . 6 76 4.1. Revision of Route Feasibility . . . . . . . . . . . . . . 6 77 4.2. Revision of AS_PATH Validation . . . . . . . . . . . . . 7 78 5. Topology Considerations . . . . . . . . . . . . . . . . . . . 8 79 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 80 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 81 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 82 9. Normative References . . . . . . . . . . . . . . . . . . . . 11 83 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 85 1. Requirements Language 87 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 88 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 89 "OPTIONAL" in this document are to be interpreted as described in BCP 90 14 [RFC2119] [RFC8174] when, and only when, they appear in all 91 capitals, as shown here. 93 2. Introduction 95 [RFC8955] defines a BGP NLRI [RFC4271] that can be used to distribute 96 traffic Flow Specifications amongst BGP speakers in support of 97 traffic filtering. The primary intention of [RFC8955] is to enable 98 downstream autonomous systems to signal traffic filtering policies to 99 upstream autonomous systems. In this way, traffic is filtered closer 100 to the source and the upstream autonomous system(s) avoid carrying 101 the traffic to the downstream autonomous system only to be discarded. 102 [RFC8955] also enables more granular traffic filtering based upon 103 upper layer protocol information (e.g., protocol port numbers) as 104 opposed to coarse IP destination prefix-based filtering. Flow 105 specification NLRIs received from a BGP peer are subject to validity 106 checks before being considered feasible and subsequently installed 107 within the respective Adj-RIB-In. 109 The validation procedure defined within [RFC8955] requires that the 110 originator of the Flow Specification NLRI matches the originator of 111 the best-match unicast route for the destination prefix embedded in 112 the Flow Specification. The aim is making sure that only speakers on 113 the forwarding path can originate the Flow Specification. Let's 114 consider the particular case where the Flow Specification is 115 originated in any location within the same autonomous system than the 116 speaker performing the validation (for example by a centralized BGP 117 route controller), and the best-match unicast route is originated in 118 another autonomous system. In order for validation to succeed for a 119 Flow Specification received from an iBGP peer, it could be possible 120 to disseminate such Flow Specification NLRIs directly from the 121 specific border router (within the local autonomous system) that is 122 advertising the corresponding best-match unicast route to the local 123 autonomous system. This approach would be, however, operationally 124 cumbersome in an autonomous system with a large number of border 125 routers having complex BGP policies. 127 Figure 1 illustrates this principle. R1 (the upstream router) and RR 128 need to validate the Flow Specification whose embedded destination 129 prefix has a best-match unicast route (dest-route) originated by 130 ASBR2. ASBR2 could originate the Flow Specification, and it would be 131 validated when received by RR and R1. Sometimes the Flow 132 Specification needs to be originated on AS1. ASBR1 could originate 133 it, and Flow Specification would still be validated. In both cases, 134 the Flow Specification is originated by a router in the same 135 forwarding path as the dest-route. For the case where AS1 has 136 thousands of ASBRs, it becomes impractical to originate different 137 rules on each ASBR in AS1 based on which ASBR each dest- route is 138 learned from. The objective is to advertise all the Flow 139 Specifications from the same route-controller. 141 R1(AS1) --- RR(AS1) --- ASBR1(AS1) --- ASBR2(AS2) 142 | 143 route-controller(AS1) 145 Figure 1 147 This document describes a modification to the [RFC8955] validation 148 procedure allowing Flow Specification NLRIs to be originated from a 149 centralized BGP route controller within the local autonomous system 150 that is not in the data forwarding path. While the proposed 151 modification cannot be used for inter-domain coordination of traffic 152 filtering, it greatly simplifies distribution of intra-domain traffic 153 filtering policies within an autonomous system which has a large 154 number of border routers having complex BGP policies. By relaxing 155 the validation procedure for iBGP, the proposed modification allows 156 Flow Specifications to be distributed in a standard and scalable 157 manner throughout an autonomous system. 159 3. Motivation 161 Step (b) of the validation procedure in [RFC8955], section 6 is 162 defined with the underlying assumption that the Flow Specification 163 NLRI traverses the same path, in the inter-domain and intra-domain 164 route distribution graph, as that of the longest-match unicast route 165 for the destination prefix embedded in the Flow Specification. 167 In the case of inter-domain traffic filtering, the Flow Specification 168 originator at the egress border routers of an AS (e.g. RTR-D and 169 RTR-E of AS1 in Figure 2) matches the eBGP neighbor that advertised 170 the longest match destination prefix (see RTR-F and RTR-G 171 respectively in Figure 2). 173 Similarly, at the upstream routers of an AS (see RTR-A and RTR-B of 174 AS1 in Figure 2), the Flow Specification originator matches the 175 egress iBGP border routers that had advertised the unicast route for 176 the best-match destination prefix (see RTR-D and RTR-E respectively 177 in Figure 2). This is true even when upstream routers select paths 178 from different egress border routers as best route based upon IGP 179 distance. For example, in Figure 2: 181 RTR-A chooses RTR-D as the best route 183 RTR-B chooses RTR-E as the best route 184 / - - - - - - - - - - - - - - 185 | AS1 | 186 +-------+ +-------+ 187 | | | | | | 188 | RTR-A | | RTR-B | 189 | | | | | | 190 +-------+ +-------+ 191 | \ / | 192 iBGP \ / iBGP 193 | \ / | 194 +-------+ 195 | | | | 196 | RTR-C | 197 | | RC | | 198 +-------+ 199 | / \ | 200 / \ 201 | iBGP / \ iBGP | 202 +-------+ +-------+ 203 | | RTR-D | | RTR-E | | 204 | | | | 205 | | | | | | 206 +-------+ +-------+ 207 | | | | 208 - - -|- - - - - - - - -|- - -/ 209 | eBGP eBGP | 210 - - -|- - - - - - - - -|- - -/ 211 | | | | 212 +-------+ +-------+ 213 | | | | | | 214 | RTR-F | | RTR-G | 215 | | | | | | 216 +-------+ +-------+ 217 | AS2 | 218 / - - - - - - - - - - - - - - 220 Figure 2 222 It is highly desirable that mechanisms exist to protect each AS 223 independently from network security attacks using the BGP Flow 224 Specification NLRI for intra-AS purposes only. Network operators 225 often deploy a dedicated Security Operations Center (SOC) within 226 their AS to monitor and detect such security attacks. To mitigate 227 attacks within an AS, operators require the ability to originate 228 intra-AS Flow Specification NLRIs from a central BGP route controller 229 that is not within the data forwarding plane. In this way, operators 230 can direct border routers within their AS with specific attack 231 mitigation actions (drop the traffic, forward to a clean-pipe center, 232 etc.). 234 In addition, an operator MAY extend the requirements above for a 235 group of ASes via policy. This is described in section (b.2.3) of 236 the validation procedure. 238 A central BGP route controller that originates a Flow Specification 239 NLRI should be able to avoid the complexity of having to determine 240 the egress border router whose path was chosen as the best for each 241 of its neighbors. When a central BGP route controller originates a 242 Flow Specification NLRI, the rest of the speakers within the AS will 243 see the BGP controller as the originator of the Flow Specification in 244 terms of the validation procedure rules. Thus, it is necessary to 245 modify step (b) of the [RFC8955] validation procedure such that an 246 iBGP peer that is not within the data forwarding plane may originate 247 Flow Specification NLRIs. 249 4. Revised Validation Procedure 251 4.1. Revision of Route Feasibility 253 Step (b) of the validation procedure specified in [RFC8955], section 254 6 is redefined as follows: 256 b) One of the following conditions MUST hold true: 258 1. The originator of the Flow Specification matches the 259 originator of the best-match unicast route for the destination 260 prefix embedded in the Flow Specification (this is the unicast 261 route with the longest possible prefix length covering the 262 destination prefix embedded in the Flow Specification). 264 2. The AS_PATH attribute of the Flow Specification is empty or 265 contains only AS_CONFED_SEQUENCE and/or AS_CONFED_SET segments 266 [RFC5065]. 268 1. This condition SHOULD be enabled by default (it may be 269 disabled by explicit configuration as described on the 270 next list item (b.2.1)).. an empty AS_PATH. 272 2. This condition MAY be disabled by explicit configuration 273 on a BGP speaker. A possible case would be if we know for 274 a fact that only the right egress border routers (i.e. 275 those that are also egress border routers for the best 276 routes) are originating a Flow Specification NLRI. 278 3. As an extension to this rule, a given non-empty AS_PATHs 279 (or AS_PATHS containing only AS_CONFED_SEQUENCE and/or 280 AS_CONFED_SET segments), MAY be validated by policy. A 281 possible case would be if the AS_SEQUENCE and AS_SET 282 contained only ASes that are known to belong to our own 283 administrative domain. 285 Explanation: 287 In this context, a local domain includes the local AS or the local 288 confederation [RFC5065]. Receiving either an empty AS_PATH or one 289 with only AS_CONFED_SEQUENCE and/or AS_CONFED_SET segments 290 indicates that the Flow Specification was originated inside the 291 local domain. 293 With the above modification to the [RFC8955] validation procedure, 294 a BGP peer within the local domain that is not within the data 295 forwarding path can originate a Flow Specification. 297 Disabling the new condition above (b.2.2) may be a good practice 298 when the operator knows with certainty that a Flow Specification 299 will not be originated inside the local domain. 301 Also, policy may be useful to validate a specific set of non-empty 302 AS_PATHs (b.2.3). For example, it could validate a Flow 303 Specification whose AS_PATH contains only an AS_SEQUENCE with ASes 304 that are all known to belong to the same administrative domain. 306 4.2. Revision of AS_PATH Validation 308 [RFC8955] states: 310 BGP implementations MUST also enforce that the AS_PATH attribute of a 311 route received via the External Border Gateway Protocol (eBGP) 312 contains the neighboring AS in the left-most position of the AS_PATH 313 attribute. 315 This rule prevents the exchange of BGP Flow Specification NLRIs at 316 Internet exchanges with BGP route servers [RFC7947]. Therefore, this 317 document also redefines the [RFC8955] AS_PATH validation procedure 318 referenced above as follows: 320 BGP Flow Specification implementations MUST enforce that the AS in 321 the left-most position of the AS_PATH attribute of a Flow 322 Specification route received via the External Border Gateway Protocol 323 (eBGP) matches the AS in the left-most position of the AS_PATH 324 attribute of the best-match unicast route for the destination prefix 325 embedded in the Flow Specification NLRI. 327 Explanation: 329 For clarity, the AS in the left-most position of the AS_PATH means 330 the AS that was last added to the AS_SEQUENCE. 332 This proposed modification enables the exchange of BGP Flow 333 Specification NLRIs at Internet exchanges with BGP route servers 334 while at the same time, for security reasons, prevents an eBGP 335 peer from advertising an inter-domain Flow Specification for a 336 destination prefix that it does not provide reachability 337 information for. 339 Comparing only the last ASes added is sufficient for eBGP learned 340 Flow Specification NLRIs. Requiring a full AS_PATH match would 341 limit origination of inter-domain Flow Specifications to the 342 origin AS of the best-match unicast route for the destination 343 prefix embedded in the Flow Specification only. As such, a full 344 AS_PATH validity check may prevent transit ASes from originating 345 inter-domain Flow Specifications, which is not desirable. 347 Note, however, that not checking the full AS_PATH allows any rogue 348 or misconfigured AS the ability to originate undesired Flow 349 Specifications. This is a security BGP threat, but out of the 350 scope of this document. 352 Redefinition of this AS_PATH validation rule for a Flow 353 Specification does not mean that the original rule in [RFC8955] 354 cannot be enforced as well. Its enforcement remains optional per 355 [RFC4271] section 6.3. That is, a BGP speaker can enforce the 356 first AS in the AS_PATH to be the same as the neighbor AS for any 357 address-family route (including a Flow Specification). 359 Using the new rule to validate a Flow Specification route received 360 from an External Border Gateway Protocol (eBGP) peer belonging to 361 the same local domain (in the case of a confederation) is out of 362 the scope of this document. Note that although it's possible, its 363 utility is dubious. Although it is conceivable that an router in 364 the same local domain (both iBGP and eBGP within the same local 365 domain) could send a rogue update, only eBGP (outside the local 366 domain) risk is considered within this document (in the same 367 spirit of the mentioned beforehand AS_PATH validation in 368 [RFC4271]). 370 5. Topology Considerations 372 [RFC8955] indicates that the originator may refer to the originator 373 path attribute (ORIGINATOR_ID) or (if the attribute is not present) 374 the transport address of the peer from which the BGP speaker received 375 the update. If the latter applies, a network should be designed so 376 it has a congruent topology amongst ipv4 unicast routes and Flow 377 Specification routes. By congruent topology, it is understood that 378 for the two equivalent routes (i.e. the Flow Specification route and 379 its best-match unicast route) are learned from the same peer accross 380 the AS. That would likely not be true, for instance, if some peers 381 only negotiated one type of address-family or if each address-family 382 had a different set of policies. 384 With the additional second condition (b.2) in the validation 385 procedure, non-congruent topologies are supported within the local 386 domain if the Flow Specification is originated within the local 387 domain. 389 Explanation: 391 Consider the validation procedure preceding this document. The 392 second condition (b.2) does not exist. The two following 393 scenarios have a non-congruent topology: 395 1. Consider a topology with two BGP speakers with two peering 396 sessions between them, one for unicast and one for Flow 397 Specification. This is a non-congruent topology. Let's 398 assume that the ORIGINATOR_ID attribute was not received (e.g. 399 a route reflector receiving routes from its clients). In this 400 case, the Flow Specification validation procedure will fail 401 because of the first condition (b.1). 403 2. Consider a topology with a BGP speaker within a confederation 404 of ASes, inside local AS X. The ORIGINATOR_ID attribute is 405 not advertised within the local domain. Let's assume the Flow 406 Specification route is received from peer A and the best-match 407 unicast route is received from peer B. Both peers belong to 408 local AS Y. Both AS X and AS Y belong to the same local 409 domain. The Flow Specification validation procedure will also 410 fail because of the first condition (b.1). 412 In the scenarios above, if Flow Specifications are originated in 413 the same local domain, the AS_PATH will be empty or contain just 414 AS_CONFED_SEQUENCE and/or AS_CONFED_SET segments. Condition (b.2) 415 evaluates to true. Therefore, using the second condition (b.2), 416 as defined by this document, guarantees that the overall 417 validation procedure will pass. Thus, non-congruent topologies 418 are supported if the Flow Specification is originated in the same 419 local domain. 421 Flow Specification originated in a different local domain needs a 422 congruent topology. The reason is that the second condition (b.2) 423 evaluates to false and only the first condition (b.1) is 424 evaluated. 426 6. IANA Considerations 428 This memo includes no request to IANA. 430 7. Security Considerations 432 This document updates the route feasibility validation procedures for 433 Flow Specifications learned from iBGP peers and through route 434 servers. This change is in line with the procedures in [rfc8955] and 435 thus maintain security characteristics equivalent to the existing 436 security properties of BGP unicast routing. 438 The security considerations discussed in [RFC8955] apply to this 439 specification as well. 441 The original AS_PATH validation rule ([RFC4271] section 6.3) becomes 442 hereby optional (section 4.2). If that original rule is actually not 443 enforced it may introduce some security risks. A peer (or a client 444 of a route server peer) in AS X could advertise a rogue Flow 445 Specification route whose first AS in AS_PATH was Y (assume Y is the 446 first AS in the AS_PATH of the best-match unicast route). This risk 447 is impossible to prevent if the Flow Specification route is received 448 from a route server peer. If that peer is known for a fact not to be 449 a route server, that optional rule SHOULD be enforced for Flow 450 Specification routes. 452 BGP updates learned from iBGP peers are considered trusted, so the 453 Traffic Flow Specifications contained in BGP updates are also 454 considered trusted. Therefore it is not required to validate that 455 the originator of an intra-domain Traffic Flow Specification matches 456 the originator of the best-match unicast route for the flow 457 destination prefix. Note that this trustworthy consideration is not 458 absolute and the new possibility than an iBGP speaker could send a 459 rouge Flow Specification is introduced. 461 The changes in Section 4.1 don't affect the validation procedures for 462 eBGP-learned routes. 464 8. Acknowledgements 466 The authors would like to thank Han Nguyen for his direction on this 467 work as well as Waqas Alam, Keyur Patel, Robert Raszuk, Eric Rosen 468 and Shyam Sethuram for their review comments. 470 9. Normative References 472 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 473 Requirement Levels", BCP 14, RFC 2119, 474 DOI 10.17487/RFC2119, March 1997, 475 . 477 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 478 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 479 DOI 10.17487/RFC4271, January 2006, 480 . 482 [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous 483 System Confederations for BGP", RFC 5065, 484 DOI 10.17487/RFC5065, August 2007, 485 . 487 [RFC6793] Vohra, Q. and E. Chen, "BGP Support for Four-Octet 488 Autonomous System (AS) Number Space", RFC 6793, 489 DOI 10.17487/RFC6793, December 2012, 490 . 492 [RFC7947] Jasinska, E., Hilliard, N., Raszuk, R., and N. Bakker, 493 "Internet Exchange BGP Route Server", RFC 7947, 494 DOI 10.17487/RFC7947, September 2016, 495 . 497 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 498 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 499 May 2017, . 501 [RFC8955] Loibl, C., Hares, S., Raszuk, R., McPherson, D., and M. 502 Bacher, "Dissemination of Flow Specification Rules", 503 RFC 8955, DOI 10.17487/RFC8955, December 2020, 504 . 506 Authors' Addresses 508 James Uttaro 509 AT&T 510 200 S. Laurel Ave 511 Middletown, NJ 07748 512 USA 514 Email: ju1738@att.com 515 Juan Alcaide 516 Cisco 517 7100 Kit Creek Road 518 Research Triangle Park, NC 27709 519 USA 521 Email: jalcaide@cisco.com 523 Clarence Filsfils 524 Cisco 526 Email: cf@cisco.com 528 David Smith 529 Cisco 530 111 Wood Ave South 531 Iselin, NJ 08830 532 USA 534 Email: djsmith@cisco.com 536 Pradosh Mohapatra 537 Sproute Networks 539 Email: mpradosh@yahoo.com