idnits 2.17.1 draft-ietf-grow-route-leak-detection-mitigation-01.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 abstract seems to contain references ([RFC7908]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 76: '...r a lateral peer MAY be forwarded only...' RFC 2119 keyword, line 82: '...or the Large Community MUST be defined...' RFC 2119 keyword, line 108: '...a provider, peer or RS-client, it MUST...' RFC 2119 keyword, line 109: '...' rule, i.e., it MAY be advertised onl...' RFC 2119 keyword, line 111: '... also MUST follow the 'down only' ru...' (18 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: Large Communities have much higher capacity, and therefore they are likely to be less overloaded. Hence, Large Community is proposed to be used for route-leak detection. This document suggests reserving class for the purpose of transitive well-known Large Communities that MUST not be stripped on ingress or egress. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: 1. A route with DO Community set MUST not be sent to Providers, Peers, and RS. -- The document date (July 25, 2019) is 1709 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-06 Summary: 2 errors (**), 0 flaws (~~), 4 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: January 26, 2020 Yandex 6 July 25, 2019 8 Methods for Detection and Mitigation of BGP Route Leaks 9 draft-ietf-grow-route-leak-detection-mitigation-01 11 Abstract 13 Problem definition for route leaks and enumeration of types of route 14 leaks are provided in [RFC7908]. 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 January 26, 2020. 37 Copyright Notice 39 Copyright (c) 2019 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 2. Peering Relationships . . . . . . . . . . . . . . . . . . . . 2 56 3. Community vs Attribute . . . . . . . . . . . . . . . . . . . 3 57 4. Down Only Community . . . . . . . . . . . . . . . . . . . . . 4 58 4.1. Route Leak Mitigation . . . . . . . . . . . . . . . . . . 5 59 4.2. Only Marking . . . . . . . . . . . . . . . . . . . . . . 6 60 5. Implementation Considerations . . . . . . . . . . . . . . . . 6 61 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 62 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 63 8. Informative References . . . . . . . . . . . . . . . . . . . 7 64 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 8 65 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 8 66 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 68 1. Introduction 70 [RFC7908] provides a definition of the route leak problem and 71 enumerates several types of route leaks. For this document, the 72 definition that is applied is that a route leak occurs when a route 73 received from a transit provider or a lateral peer is forwarded 74 (against commonly used policy) to another transit provider or a 75 lateral peer. The commonly used policy is that a route received from 76 a transit provider or a lateral peer MAY be forwarded only to 77 customers. 79 This document describes a solution for prevention, detection and 80 mitigation route leaks which is based on conveying route-leak 81 detection information in a well-known BGP Large Community. The 82 configuration process for the Large Community MUST be defined 83 according to peering relations between ISPs. This process can be 84 automated with the methodology for setting BGP roles that is 85 described in [I-D.ietf-idr-bgp-open-policy]. 87 The techniques described in this document can be incrementally 88 deployed. If a group of big ISPs and/or Internet Exchanges (IXes) 89 deploy the proposed techniques, then they would be helping each other 90 by blocking route leaks that can happen between them. 92 2. Peering Relationships 94 As described in [I-D.ietf-idr-bgp-open-policy] there are several 95 common peering relations between eBGP neighbors: 97 o Provider - sender is a transit provider of the neighbor; 99 o Customer - sender is a customer of the neighbor; 101 o Route Server (RS) - sender is route server at an internet exchange 102 (IX) 104 o RS-client - sender is client of an RS at an IX 106 o Peer - sender and neighbor are lateral (non-transit) peers; 108 If a route is received from a provider, peer or RS-client, it MUST 109 follow the 'down only' rule, i.e., it MAY be advertised only to 110 customers. If a route is sent to a customer, peer or RS-client, it 111 also MUST follow the 'down only' rule at each subsequent AS in the AS 112 path. 114 A standardized transitive route-leak detection signal is needed that 115 will prevent Autonomous Systems (ASes) from leaking and also inform a 116 remote ISP (or AS) in the AS path that a received route violates 117 'down only' policy. This signal would facilitate a way to stop the 118 propagation of leaked prefixes. 120 To improve reliability and cover for non-participating preceding 121 neighbor, the signal should be set on both receiver and sender sides. 123 3. Community vs Attribute 125 This section presents a brief discussion of the advantages and 126 disadvantages of communities and BGP path attributes for the purpose 127 of route leak detection. 129 A transitive path attribute is a native way to implement the route- 130 leak detection signal. Based on the way BGP protocol works, the use 131 of a transitive attribute makes it more certain that the route-leak 132 detection signal would pass unaltered through non-participating 133 (i.e., not updated) BGP routers. The main disadvantage of this 134 approach is that the deployment of a new BGP attribute requires a 135 software update in router OS which may delay wide adoption for years. 137 On the other hand, BGP communities do not require a router OS update. 138 The potential disadvantage of using a Community for the route-leak 139 detection signal is that it is more likely to be dropped somewhere 140 along the way in the AS path. Currently, the use of BGP Communities 141 is somewhat overloaded. BGP Communities are already used for 142 numerous applications: different types of route marking, route policy 143 control, black-holing, etc. It is observed that some ASes seem to 144 purposefully or accidentally remove transitive communities on 145 receipt, sometimes well-known ones. Perhaps this issue may be 146 mitigated with strong policy guidance related to the handling of 147 Communities. 149 Due to frequently occurring regional and global disruptions in 150 Internet connectivity, it is critical to move forward with a solution 151 that is viable in the near term. That solution would be route leak 152 detection using BGP Community. 154 Large Communities have much higher capacity, and therefore they are 155 likely to be less overloaded. Hence, Large Community is proposed to 156 be used for route-leak detection. This document suggests reserving 157 class for the purpose of transitive well-known Large 158 Communities that MUST not be stripped on ingress or egress. 160 While it is not part of this document, the route-leak detection 161 signal described here can also be carried in a BGP path attribute, 162 and the same prevention and mitigation techniques as described here 163 would apply. The authors are pursuing a separate internet draft in 164 the IDR WG on that approach. 166 4. Down Only Community 168 This section specifies the semantics of route-leak-detection 169 Community and its usage. This Community is given the specific name 170 Down Only (DO) Community. The DO Community is carried in a BGP Large 171 Community with a format as shown in Figure 1. 173 0 1 2 3 174 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 175 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 176 | TBD1 (class for well-known transit communities) | 177 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 178 | TBD2 (subclass for DO) | 179 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 180 | ASN | 181 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 183 Figure 1: Format of the DO Community using a Large Community 184 [RFC8092]. 186 The authors studied different options for route leak mitigation. The 187 main options considered are (1) drop detected route leaks and (2) 188 deprioritize detected route leaks. It can be demonstrated that the 189 loose mode that uses deprioritization is not safe. Traffic 190 Engineering (TE) technique which limit prefix visibility are quite 191 common. It may happen that a more specific TE prefix is sent only to 192 downstream ASes or to IX(es)/selected peers, and a control Community 193 is used to restrict its propagation. If such a more specific prefix 194 is leaked, deprioritization will not stop such a route leak from 195 propagating. In addition, propagation of leaked prefixes based on 196 deprioritization may result in priority loops leading to BGP wedgies 197 [RFC4264] or even persistent route oscillations. 199 So, the only truly safe way to implement route leak mitigation is to 200 drop detected route leaks. The ingress and egress policies 201 corresponding to 'drop detected route leaks' is described in 202 Section 4.1. This policy SHOULD be used as a default behavior. 204 Nevertheless, early adopters might want to deploy only the signaling 205 and perhaps use it only for diagnostics before applying any route 206 leak mitigation policy. They are also encouraged to use slightly 207 limited marking, which is described in Section 4.2. 209 4.1. Route Leak Mitigation 211 This section describes the eBGP ingress and egress policies that MUST 212 be used to perform route leak prevention, detection and mitigation 213 using the DO Community. 215 The ingress policy MUST use the following procedure: 217 1. If a route with DO Community set (i.e., DO is attached) is 218 received from a Customer or RS-client, then it is a route leak 219 and MUST be rejected. The procedure halts. 221 2. If a route with DO Community set is received from Peer (non- 222 transit) and DO value is not equal to the sending neighbor's ASN, 223 then it is a route leak and MUST be rejected. The procedure 224 halts. 226 3. If a route is received from a Provider, Peer or RS, then the DO 227 Community MUST be added with a value equal to the sending 228 neighbor's ASN. 230 The egress policy MUST use the following procedure: 232 1. A route with DO Community set MUST not be sent to Providers, 233 Peers, and RS. 235 2. If a route is sent to a Customer or Peer, then the DO Community 236 MUST be added with a value equal to the ASN of the sender. 238 The above procedures comprehensively provide route-leak prevention, 239 detection and mitigation. Policy consisting of these procedures 240 SHOULD be used as a default behavior. 242 4.2. Only Marking 244 This section describes eBGP ingress and egress marking policies that 245 MUST be used if an AS is not performing route-leak mitigation (i.e., 246 dropping detected route leaks) as described in Section 4.1, but wants 247 to use only marking with DO Community. The slightly limited DO 248 marking (compared to that in Section 4.1) described below guarantees 249 that this DO marking will not limit the leak detection opportunities 250 for subsequent ASes in the AS path. 252 The ingress policy MUST use the following procedure: 254 1. If a route with DO Community set is received from a Customer or 255 RS-client, then it is a route leak. The procedure halts. 257 2. If a route with DO Community set is received from a Peer and DO 258 value is not equal to the sending neighbor's ASN, then it is a 259 route leak. The procedure halts. 261 3. If a route is received from a Provider, Peer or RS, then the DO 262 Community MUST be added with value equal to the sending 263 neighbor's ASN. 265 The egress policy MUST use the following procedure: 267 1. If a route is sent to a Customer or RS-client, then the DO 268 Community MUST be added with value equal to the ASN of the 269 sender. 271 2. If DO Community is not set and the route is sent to a Peer, then 272 the DO Community MUST be added with value equal to the ASN of the 273 sender. 275 These above procedures specify setting DO signal in a way that can be 276 used to evaluate the potential impact of route leak mitigation policy 277 before deploying strict dropping of detected route leaks. 279 5. Implementation Considerations 281 It was observed that the majority of BGP implementations does not 282 support negative match for communities like a:b:!c. Considering that 283 it is suggested to replace the second rule from ingress policy with 284 the following: 286 If a route with DO Community set is received from a Peer and DO value 287 is equal to the sending neighbor's ASN, then it is a valid route, 288 otherwise it is a route leak. The procedure halts. 290 This rule is based on a weaker assumption that a peer that is doing 291 marking is also doing filtering (dropping detected leaks). That is 292 why networks that do not follow the route leak mitigation policy in 293 Section 4.1 MUST carefully follow marking rules described in 294 Section 4.2. 296 6. Security Considerations 298 In specific circumstances in a state of partial adoption, route leak 299 mitigation mechanism can result in Denial of Service (DoS) for the 300 victim prefix. Such a scenario may happen only for a prefix that has 301 a single path from the originator to a Tier-1 ISP and only when the 302 prefix is not covered with a less specific prefix with multiple paths 303 to the Tier-1 ISP. If, in such unreliable topology, route leak is 304 injected somewhere inside this single path, then it may be rejected 305 by upper layer providers in the path, thus limiting prefix 306 visibility. While such anomaly is unlikely to happen, such an issue 307 should be easy to debug, since it directly affects the sequence of 308 originator's providers. 310 With the use of BGP Community, there is often a concern that the 311 Community propagates beyond its intended perimeter and causes harm 312 [streibelt]. However, that concern does not apply to the DO 313 Community because it is a transitive Community that must propagate as 314 far as the update goes. 316 7. IANA Considerations 318 The draft suggests to reserve a Global Administrator ID for 319 transitive well-known Large Community registry. IANA is requested to 320 register a subclass for DO Community in this registry. 322 8. Informative References 324 [I-D.ietf-idr-bgp-open-policy] 325 Azimov, A., Bogomazov, E., Bush, R., Patel, K., and K. 326 Sriram, "Route Leak Prevention using Roles in Update and 327 Open messages", draft-ietf-idr-bgp-open-policy-06 (work in 328 progress), July 2019. 330 [RFC4264] Griffin, T. and G. Huston, "BGP Wedgies", RFC 4264, 331 DOI 10.17487/RFC4264, November 2005, 332 . 334 [RFC7908] Sriram, K., Montgomery, D., McPherson, D., Osterweil, E., 335 and B. Dickson, "Problem Definition and Classification of 336 BGP Route Leaks", RFC 7908, DOI 10.17487/RFC7908, June 337 2016, . 339 [RFC8092] Heitz, J., Ed., Snijders, J., Ed., Patel, K., Bagdonas, 340 I., and N. Hilliard, "BGP Large Communities Attribute", 341 RFC 8092, DOI 10.17487/RFC8092, February 2017, 342 . 344 [streibelt] 345 Streibelt et al., F., "BGP Communities: Even more Worms in 346 the Routing Can", ACM IMC, October 2018, 347 . 349 Acknowledgements 351 The authors wish to thank John Scudder, Susan Hares, Ruediger Volk, 352 Mat Ford, Greg Skinner for their review and comments. 354 Contributors 356 The following people made significant contributions to this document 357 and should be considered co-authors: 359 Brian Dickson 360 Independent 361 Email: brian.peter.dickson@gmail.com 363 Doug Montgomery 364 USA National Institute of Standards and Technology 365 Email: dougm@nist.gov 367 Keyur Patel 368 Arrcus 369 Email: keyur@arrcus.com 371 Andrei Robachevsky 372 Internet Society 373 Email: robachevsky@isoc.org 375 Eugene Bogomazov 376 Qrator Labs 377 Email: eb@qrator.net 379 Randy Bush 380 Internet Initiative Japan 381 Email: randy@psg.com 383 Authors' Addresses 385 Kotikalapudi Sriram (editor) 386 USA National Institute of Standards and Technology 387 100 Bureau Drive 388 Gaithersburg, MD 20899 389 United States of America 391 Email: ksriram@nist.gov 393 Alexander Azimov (editor) 394 Yandex 395 Ulitsa Lva Tolstogo 16 396 Moscow 119021 397 Russia 399 Email: a.e.azimov@gmail.com