idnits 2.17.1 draft-ietf-grow-route-leak-detection-mitigation-05.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 28, 2021) is 1086 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) == Outdated reference: A later version (-24) exists of draft-ietf-idr-bgp-open-policy-15 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 IDR and SIDR K. Sriram, Ed. 3 Internet-Draft USA NIST 4 Intended status: Standards Track A. Azimov, Ed. 5 Expires: October 30, 2021 Yandex 6 April 28, 2021 8 Methods for Detection and Mitigation of BGP Route Leaks 9 draft-ietf-grow-route-leak-detection-mitigation-05 11 Abstract 13 Problem definition for route leaks and enumeration of types of route 14 leaks are provided in RFC 7908. This document describes a new well- 15 known Large Community that provides a way for route-leak prevention, 16 detection, and mitigation. The configuration process for this 17 Community can be automated with the methodology for setting BGP roles 18 that is described in ietf-idr-bgp-open-policy draft. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at https://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on October 30, 2021. 37 Copyright Notice 39 Copyright (c) 2021 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (https://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 56 2. Peering Relationships . . . . . . . . . . . . . . . . . . . . 3 57 3. Community vs Attribute . . . . . . . . . . . . . . . . . . . 3 58 4. Down Only Community . . . . . . . . . . . . . . . . . . . . . 4 59 4.1. Route-Leak Mitigation . . . . . . . . . . . . . . . . . . 5 60 4.2. Only Marking . . . . . . . . . . . . . . . . . . . . . . 6 61 5. Implementation Considerations . . . . . . . . . . . . . . . . 7 62 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 63 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 64 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 65 8.1. Normative References . . . . . . . . . . . . . . . . . . 8 66 8.2. Informative References . . . . . . . . . . . . . . . . . 8 67 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 9 68 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 9 69 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 71 1. Introduction 73 RFC 7908 [RFC7908] provides a definition of the route-leak problem 74 and enumerates several types of route leaks. For this document, the 75 definition that is applied is that a route leak occurs when a route 76 received from a transit provider or a lateral peer is forwarded 77 (against commonly used policy) to another transit provider or a 78 lateral peer. The commonly used policy is that a route received from 79 a transit provider or a lateral peer MAY be forwarded only to 80 customers. 82 This document describes a solution for prevention, detection and 83 mitigation of route leaks which is based on conveying route-leak 84 detection information in a transitive well-known BGP Large Community 85 [RFC8092]. The configuration process for the Large Community MUST be 86 defined according to peering relations between ISPs. This process 87 can be automated with the methodology for setting BGP roles that is 88 described in [I-D.ietf-idr-bgp-open-policy]. 90 The techniques described in this document can be incrementally 91 deployed. If a pair of ISPs and/or Internet Exchanges (IXes) deploy 92 the proposed techniques, then they would detect and mitigate any 93 route leaks that occur in an AS path between them even when other 94 ASes in the path are not upgraded. 96 1.1. Requirements Language 98 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 99 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 100 "OPTIONAL" in this document are to be interpreted as described in BCP 101 14 [RFC2119] [RFC8174] when, and only when, they appear in all 102 capitals, as shown here. 104 2. Peering Relationships 106 As described in [I-D.ietf-idr-bgp-open-policy] there are several 107 common peering relations between eBGP neighbors: 109 o Provider - sender is a transit provider of the neighbor; 111 o Customer - sender is a customer of the neighbor; 113 o Route Server (RS) - sender is route server at an internet exchange 114 (IX) 116 o RS-client - sender is client of an RS at an IX 118 o Peer - sender and neighbor are lateral (non-transit) peers; 120 If a route is received from a provider, peer, or RS-client, it MUST 121 follow the 'down only' rule, i.e., it MAY be advertised only to 122 customers. If a route is sent to a customer, peer, or RS-client, it 123 also MUST follow the 'down only' rule at each subsequent AS in the AS 124 path. 126 A standardized transitive route-leak detection signal is needed that 127 will prevent Autonomous Systems (ASes) from leaking and also inform a 128 remote ISP (or AS) in the AS path that a received route violates the 129 'down only' policy. This signal would facilitate a way to stop the 130 propagation of leaked prefixes. 132 To improve reliability and cover for non-participating preceding 133 neighbor, the signal should be set on both receiver and sender sides. 135 3. Community vs Attribute 137 This section presents a brief discussion of the advantages and 138 disadvantages of communities and BGP path attributes for the purpose 139 of route-leak detection. 141 A transitive path attribute is a native way to implement the route- 142 leak detection signal. Based on the way BGP protocol works, the use 143 of a transitive attribute makes it more certain that the route-leak 144 detection signal would pass unaltered through non-participating 145 (i.e., not upgraded) BGP routers. The main disadvantage of this 146 approach is that the deployment of a new BGP attribute requires a 147 software upgrade in the router OS which may delay wide adoption for 148 years. 150 On the other hand, BGP Communities do not require a router OS update. 151 The potential disadvantage of using a Community for the route-leak 152 detection signal is that it is more likely to be dropped somewhere 153 along the way in the AS path. Currently, the use of BGP Communities 154 is somewhat overloaded. BGP Communities are already used for 155 numerous applications: different types of route marking, route policy 156 control, blackholing, etc. It is observed that some ASes seem to 157 purposefully or accidentally remove BGP Communities on receipt, 158 sometimes well-known ones. Perhaps this issue may be mitigated with 159 strong policy guidance related to the handling of Communities. 161 Large Communities have much higher capacity, and therefore they are 162 likely to be less overloaded. Hence, Large Community is proposed to 163 be used for route-leak detection. This document suggests reserving 164 class for the purpose of transitive well-known Large 165 Communities that MUST NOT be stripped on ingress or egress. 167 While it is not a part of this document, the route-leak detection 168 signal described here can also be carried in a transitive BGP Path 169 Attribute, and similar prevention and mitigation techniques as 170 described here would apply (see [I-D.ietf-idr-bgp-open-policy]). 172 Due to frequently occurring regional and global disruptions in 173 Internet connectivity, it is critical to move forward with a solution 174 that is viable in the near term. That solution would be route-leak 175 detection using a well-known Large Community. 177 4. Down Only Community 179 This section specifies the semantics of route-leak detection 180 Community and its usage. This Community is given the specific name 181 Down Only (DO) Community. The DO Community is carried in a BGP Large 182 Community with a format as shown in Figure 1. 184 0 1 2 3 185 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 186 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 187 | TBD1 (class for transitive well-known Large Communities) | 188 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 189 | TBD2 (subclass for DO) | 190 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 191 | ASN | 192 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 194 Figure 1: Format of the DO Community using a BGP Large Community. 196 The authors studied different options for route-leak mitigation. The 197 main options considered are (1) drop detected route leaks and (2) 198 deprioritize detected route leaks. It can be demonstrated that the 199 loose mode that uses deprioritization is not safe. Traffic 200 Engineering (TE) techniques which limit prefix visibility are quite 201 common. It may happen that a more specific TE prefix is sent only to 202 downstream ASes or to IX(es)/selected peers, and a control Community 203 is used to restrict its propagation. If such a more specific prefix 204 is leaked, deprioritization will not stop such a route leak from 205 propagating. In addition, propagation of leaked prefixes based on 206 deprioritization may result in priority loops leading to BGP wedgies 207 [RFC4264] or even persistent route oscillations. 209 So, the only truly safe way to implement route-leak mitigation is to 210 drop detected route leaks. The ingress and egress policies 211 corresponding to 'drop detected route leaks' is described in 212 Section 4.1. This policy SHOULD be used as a default behavior. 214 Nevertheless, early adopters might want to deploy only the signaling 215 and perhaps use it only for diagnostics before applying any route- 216 leak mitigation policy. They are also encouraged to use slightly 217 limited marking, which is described in Section 4.2. 219 4.1. Route-Leak Mitigation 221 This section describes the eBGP ingress and egress policies that MUST 222 be used to perform route-leak prevention, detection and mitigation 223 using the DO Community. It should be noted that a route may carry 224 more than one DO Communities. Hence, in the rest of this document, 225 "a route with DO Community" means "a route with one or more DO 226 Communities". 228 The ingress policy MUST use the following procedure: 230 1. If a route with DO Community is received from a Customer or RS- 231 client, then it is a route leak and MUST be dropped. The 232 procedure halts. 234 2. If a route with DO Community is received from a Peer (non- 235 transit) and at least one DO value is not equal to the sending 236 neighbor's ASN, then it is a route leak and MUST be dropped. The 237 procedure halts. 239 3. If a route is received from a Provider, Peer, or RS, then a DO 240 Community MUST be added with a value equal to the sending 241 neighbor's ASN. 243 The egress policy MUST use the following procedure: 245 1. A route with DO Community (i.e., DO Community was present or 246 added at ingress) MUST NOT be sent to a Provider, Peer, or RS. 248 2. If a route is sent to a Customer or Peer, then a DO Community 249 MUST be added with value equal to the ASN of the sender. 251 The above procedures comprehensively provide route-leak prevention, 252 detection and mitigation. Policy consisting of these procedures 253 SHOULD be used as a default behavior. 255 4.2. Only Marking 257 This section describes eBGP ingress and egress marking policies that 258 MUST be used if an AS is not performing route-leak mitigation (i.e., 259 not dropping detected route leaks) as described in Section 4.1, but 260 wants to use the DO Community only for marking. The slightly limited 261 DO marking (compared to that in Section 4.1) described below 262 guarantees that this DO marking will not limit the leak detection 263 opportunities for subsequent ASes in the AS path. 265 The ingress policy MUST use the following procedure: 267 1. If a route with DO Community is received from a Customer or RS- 268 client, then it is a route leak. The procedure halts. 270 2. If a route with DO Community is received from a Peer (non- 271 transit) and at least one DO value is not equal to the sending 272 neighbor's ASN, then it is a route leak. The procedure halts. 274 3. If a route is received from a Provider, Peer, or RS, then a DO 275 Community MUST be added with value equal to the sending 276 neighbor's ASN. 278 The egress policy MUST use the following procedure: 280 1. If a route is sent to a Customer or RS-client, then a DO 281 Community MUST be added with value equal to the ASN of the 282 sender. 284 2. If a route without DO Community is sent to a Peer, then a DO 285 Community MUST be added with value equal to the ASN of the 286 sender. Conversely, if a route with DO Community (i.e., DO 287 Community was present or added at ingress) is sent to a Peer, 288 then an additional DO Community MUST NOT be added.) 290 These above procedures specify setting the DO signals in a way that 291 can be used to evaluate the potential impact of route-leak mitigation 292 policy before deploying strict dropping of detected route leaks. 294 5. Implementation Considerations 296 It was observed that the majority of BGP implementations do not 297 support negative match for communities like a:b:!c. Further, it is 298 observed that a route received from a compliant Peer (non-transit) 299 adhering to procedures from either Section 4.1 or Section 4.2 will 300 always have a single DO Community with value equal to the peer's ASN. 301 Hence, it is suggested to replace the second rule from the ingress 302 policies (in Section 4.1 and Section 4.2) with the following: 304 In Section 4.1: If a route with DO Community is received from a 305 Peer and a DO value is equal to the sending neighbor's ASN, then 306 it is a valid route, otherwise it is a route leak and MUST be 307 dropped. The procedure halts. 309 In Section 4.2: If a route with DO Community is received from a 310 Peer and a DO value is equal to the sending neighbor's ASN, then 311 it is a valid route, otherwise it is a route leak. The procedure 312 halts. 314 This rule is based on a weaker assumption that a peer that is doing 315 marking is also doing filtering (i.e., dropping detected leaks). 316 That is why networks that do not follow the route-leak mitigation 317 policy in Section 4.1 MUST carefully follow marking rules described 318 in Section 4.2. 320 6. IANA Considerations 322 IANA is requested to reserve a Global Administrator ID for 323 transitive well-known Large Community registry. IANA is also 324 requested to register a subclass for DO Community in this 325 registry. 327 7. Security Considerations 329 In specific circumstances in a state of partial adoption, route-leak 330 mitigation mechanism can result in Denial of Service (DoS) for the 331 victim prefix. Such a scenario may happen only for a prefix that has 332 a single path from the originator to a Tier-1 ISP and only when the 333 prefix is not covered with a less specific prefix with multiple paths 334 to the Tier-1 ISP. If, in such unreliable topology, a route leak is 335 injected somewhere inside this single path, then it may be dropped by 336 upper tier providers in the path, thus limiting prefix visibility. 337 While such anomaly is unlikely to happen, such an issue should be 338 easy to debug, since it directly affects the sequence of originator's 339 providers. 341 With the use of BGP Community, there is often a concern that the 342 Community propagates beyond its intended perimeter and causes harm 343 [streibelt]. However, that concern does not apply to the DO 344 Community because it is a transitive Community that must propagate as 345 far as the update goes. 347 8. References 349 8.1. Normative References 351 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 352 Requirement Levels", BCP 14, RFC 2119, 353 DOI 10.17487/RFC2119, March 1997, 354 . 356 [RFC8092] Heitz, J., Ed., Snijders, J., Ed., Patel, K., Bagdonas, 357 I., and N. Hilliard, "BGP Large Communities Attribute", 358 RFC 8092, DOI 10.17487/RFC8092, February 2017, 359 . 361 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 362 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 363 May 2017, . 365 8.2. Informative References 367 [I-D.ietf-idr-bgp-open-policy] 368 Azimov, A., Bogomazov, E., Bush, R., Patel, K., and K. 369 Sriram, "Route Leak Prevention using Roles in Update and 370 Open messages", draft-ietf-idr-bgp-open-policy-15 (work in 371 progress), January 2021. 373 [RFC4264] Griffin, T. and G. Huston, "BGP Wedgies", RFC 4264, 374 DOI 10.17487/RFC4264, November 2005, 375 . 377 [RFC7908] Sriram, K., Montgomery, D., McPherson, D., Osterweil, E., 378 and B. Dickson, "Problem Definition and Classification of 379 BGP Route Leaks", RFC 7908, DOI 10.17487/RFC7908, June 380 2016, . 382 [streibelt] 383 Streibelt et al., F., "BGP Communities: Even more Worms in 384 the Routing Can", ACM IMC, October 2018, 385 . 387 Acknowledgements 389 The authors wish to thank John Scudder, Susan Hares, Ruediger Volk, 390 Jeffrey Haas, Mat Ford, Greg Skinner for their review and comments. 392 Contributors 394 The following people made significant contributions to this document 395 and should be considered co-authors: 397 Brian Dickson 398 Independent 399 Email: brian.peter.dickson@gmail.com 401 Doug Montgomery 402 USA National Institute of Standards and Technology 403 Email: dougm@nist.gov 405 Keyur Patel 406 Arrcus 407 Email: keyur@arrcus.com 409 Andrei Robachevsky 410 Internet Society 411 Email: robachevsky@isoc.org 413 Eugene Bogomazov 414 Qrator Labs 415 Email: eb@qrator.net 417 Randy Bush 418 Internet Initiative Japan 419 Email: randy@psg.com 421 Authors' Addresses 423 Kotikalapudi Sriram (editor) 424 USA National Institute of Standards and Technology 425 100 Bureau Drive 426 Gaithersburg, MD 20899 427 United States of America 429 Email: ksriram@nist.gov 431 Alexander Azimov (editor) 432 Yandex 433 Ulitsa Lva Tolstogo 16 434 Moscow 119021 435 Russia 437 Email: a.e.azimov@gmail.com