idnits 2.17.1 draft-ietf-idr-rfc4893bis-06.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 23, 2012) is 4379 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) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Q. Vohra 3 Internet Draft Juniper Networks 4 Obsoletes: 4893 (if approved) E. Chen 5 Intended Status: Standards Track Cisco Systems 6 Expiration Date: Oct 24, 2012 April 23, 2012 8 BGP Support for Four-octet AS Number Space 9 draft-ietf-idr-rfc4893bis-06.txt 11 Status of this Memo 13 This Internet-Draft is submitted to IETF in full conformance with the 14 provisions of BCP 78 and BCP 79. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as Internet- 19 Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/1id-abstracts.html 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html 32 This Internet-Draft will expire on October 24, 2012. 34 Copyright Notice 36 Copyright (c) 2012 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents 41 (http://trustee.ietf.org/license-info) in effect on the date of 42 publication of this document. Please review these documents 43 carefully, as they describe your rights and restrictions with respect 44 to this document. Code Components extracted from this document must 45 include Simplified BSD License text as described in Section 4.e of 46 the Trust Legal Provisions and are provided without warranty as 47 described in the Simplified BSD License. 49 Abstract 51 The Autonomous System (AS) number is encoded as a two-octet entity in 52 the base BGP specification. This document describes extensions to BGP 53 to carry the Autonomous System numbers as four-octet entities. This 54 document obsoletes RFC 4893. 56 1. Introduction 58 In the base BGP specification [RFC4271] the Autonomous System number 59 is encoded as a two-octet entity. To prepare for the anticipated 60 exhaustion of the two-octet AS numbers, this document describes 61 extensions to BGP to carry the Autonomous System numbers as four- 62 octet entities. 64 More specifically, this document defines a BGP capability, "support 65 for 4-octet AS number capability", to be used by a BGP speaker to 66 indicate its support for the four-octet AS numbers. Two attributes, 67 AS4_PATH and AS4_AGGREGATOR, are introduced that can be used to 68 propagate four-octet based AS path information across BGP speakers 69 that do not support the four-octet AS numbers. This document also 70 specifies mechanisms for constructing the AS path information from 71 the AS_PATH attribute and the AS4_PATH attribute. 73 The extensions specified in this document allow a gradual transition 74 from 2-octet AS numbers to 4-octet AS numbers. 76 This document obsoletes RFC 4893, and a comparison with RFC 4893 is 77 provided in Appendix A. 79 2. Specification of Requirements 81 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 82 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 83 document are to be interpreted as described in [RFC2119]. 85 3. Protocol Extensions 87 For the purpose of this document we define a BGP speaker that does 88 not support the new 4-octet AS number extensions as an OLD BGP 89 speaker, and a BGP speaker that supports the new 4-octet AS number 90 extensions as a NEW BGP speaker. 92 BGP carries the Autonomous System numbers in the "My Autonomous 93 System" field of the OPEN message, in the AS_PATH attribute of the 94 UPDATE message, and in the AGGREGATOR attribute of the UPDATE 95 message. BGP also carries the Autonomous System numbers in the BGP 96 Communities attribute. 98 A NEW BGP speaker uses BGP Capability Advertisements [RFC5492] to 99 advertise to its neighbors (either internal or external) that it 100 supports 4-octet AS number extensions, as specified in this document. 102 The Capability that is used by a BGP speaker to convey to its BGP 103 peer the 4-octet Autonomous System number capability, also carries 104 the Autonomous System number (encoded as a 4-octet entity) of the 105 speaker in the Capability Value field of the Capability Optional 106 Parameter. The Capability Length field of the Capability is set to 107 4. 109 The AS path information exchanged between NEW BGP speakers are 110 carried in the existing AS_PATH attribute, except that each AS number 111 in the attribute is encoded as a 4-octet entity (instead of a 2-octet 112 entity). The same applies to the AGGREGATOR attribute - the same 113 attribute is used between NEW BGP speakers, except that the AS number 114 carried in the attribute is encoded as a 4-octet entity. 116 The AS_PATH attribute and the AGGREGATOR attribute carried between a 117 NEW BGP speaker and an OLD BGP speaker will continue to contain 118 2-octet AS numbers. 120 To preserve the AS path information with 4-octet AS numbers across 121 OLD BGP speakers, this document defines a new AS path attribute, 122 called AS4_PATH. This is an optional transitive attribute that 123 contains the AS path encoded with 4-octet AS numbers. The AS4_PATH 124 attribute has the same semantics as the AS_PATH attribute, except 125 that it is optional transitive, and it carries 4-octet AS numbers. 127 To prevent the possible propagation of confederation path segments 128 outside of a confederation, the path segment types AS_CONFED_SEQUENCE 129 and AS_CONFED_SET [RFC5065] are declared invalid for the AS4_PATH 130 attribute, and MUST NOT be included in the AS4_PATH attribute of an 131 UPDATE message. 133 Similarly, this document defines a new aggregator attribute called 134 AS4_AGGREGATOR, which is optional transitive. The AS4_AGGREGATOR 135 attribute has the same semantics as the AGGREGATOR attribute, except 136 that it carries a 4-octet AS number. 138 Currently assigned 2-octet Autonomous System numbers are converted 139 into 4-octet Autonomous System numbers by setting the two high-order 140 octets of the 4-octet field to zero. Such a 4-octet AS number is 141 said to be mappable to a 2-octet AS number. 143 To represent 4-octet AS numbers (which are not mapped from 2-octets) 144 as 2-octet AS numbers in the AS path information encoded with 2-octet 145 AS numbers, this document reserves a 2-octet AS number. We denote 146 this special AS number as AS_TRANS for ease of description in the 147 rest of this specification. This AS number is also placed in the "My 148 Autonomous System" field of the OPEN message originated by a NEW BGP 149 speaker, if the speaker does not have a (globally unique) 2-octet AS 150 number. 152 4. Operations 154 4.1. Interaction Between NEW BGP Speakers 156 A BGP speaker that supports 4-octet Autonomous System numbers SHALL 157 advertise this to its peers using the BGP Capability Advertisements. 158 The Autonomous System number of the BGP speaker MUST be carried in 159 the capability value field of the "support for 4-octet AS number 160 capability". 162 When a NEW BGP speaker processes an OPEN message from another NEW BGP 163 speaker, it MUST use the Autonomous System number encoded in the 164 Capability Value field of the Capability in lieu of the "My 165 Autonomous System" field of the OPEN message. 167 A BGP speaker that advertises such capability to a particular peer, 168 and receives from that peer the advertisement of such capability MUST 169 encode Autonomous System numbers as 4-octet entities in both the 170 AS_PATH and the AGGREGATOR attributes in the updates it sends to the 171 peer, and MUST assume that these attributes in the updates received 172 from the peer encode Autonomous System numbers as 4-octet entities. 174 The new attributes, AS4_PATH and AS4_AGGREGATOR MUST NOT be carried 175 in an UPDATE message between NEW BGP speakers. A NEW BGP speaker 176 that receives the AS4_PATH attribute or the AS4_AGGREGATOR attribute 177 in an UPDATE message from another NEW BGP speaker MUST discard the 178 path attribute and continue processing the UPDATE message. 180 4.2. Interaction Between NEW and OLD BGP Speakers 182 4.2.1. BGP Peering 184 Note that peering between a NEW BGP speaker and an OLD one is 185 possible only if the NEW BGP speaker has a 2-octet AS number. 186 However, this document does not assume that an Autonomous System with 187 NEW speakers has to have a globally unique 2-octet AS number -- 188 AS_TRANS could be used instead (even if a multiple Autonomous System 189 would use it). 191 4.2.2. Generating Updates 193 When communicating with an OLD BGP speaker, a NEW speaker MUST send 194 the AS path information in the AS_PATH attribute encoded with 2-octet 195 AS numbers. The NEW speaker MUST also send the AS path information 196 in the AS4_PATH attribute (encoded with 4-octet AS numbers), except 197 for the case where the entire AS path information is composed of 198 2-octet mappable AS numbers only. In this case, the NEW speaker MUST 199 NOT send the AS4_PATH attribute. 201 In the AS_PATH attribute encoded with 2-octet AS numbers, non- 202 mappable 4-octet AS numbers are represented by the well-known 2-octet 203 AS number, AS_TRANS. This will preserve the path length property of 204 the AS path information and also help in updating the AS path 205 information received on a NEW BGP speaker from an OLD speaker, as 206 explained in the next section. 208 The NEW speaker constructs the AS4_PATH attribute from the AS path 209 information. Whenever the AS path information contains the 210 AS_CONFED_SEQUENCE or AS_CONFED_SET path segment, the NEW BGP speaker 211 MUST exclude such path segments from the AS4_PATH attribute being 212 constructed. 214 The AS4_PATH attribute, being optional transitive, will be carried 215 across a series of OLD BGP speakers without modification and will 216 help preserve the non-mappable 4-octet AS numbers in the AS path 217 information. 219 Similarly, if the NEW speaker has to send the AGGREGATOR attribute, 220 and if the aggregating Autonomous System's AS number is a non- 221 mappable 4-octet AS number, then the speaker MUST use the 222 AS4_AGGREGATOR attribute, and set the AS number field in the existing 223 AGGREGATOR attribute to the reserved AS number, AS_TRANS. Note that 224 if the AS number is 2-octets mappable, then the AS4_AGGREGATOR 225 attribute MUST NOT be sent. 227 4.2.3. Processing Received Updates 229 When a NEW BGP speaker receives an update from an OLD one, it MUST be 230 prepared to receive the AS4_PATH attribute along with the existing 231 AS_PATH attribute. If the AS4_PATH attribute is also received, both 232 the attributes will be used to construct the exact AS path 233 information, and therefore the information carried by both the 234 attributes will be considered for AS path loop detection. 236 Note that a route may have traversed a series of autonomous systems 237 with 2-octet AS numbers and OLD BGP speakers only. In that case, if 238 the route carries the AS4_PATH attribute, this attribute would have 239 remained unmodified since the route left the last NEW BGP speaker. 240 The trailing AS path information (representing autonomous systems 241 with 2-octet AS numbers and OLD BGP speakers only) is contained only 242 in the current AS_PATH attribute (encoded in the leading part of the 243 AS_PATH attribute). 245 Under certain conditions, it may not be possible to reconstruct the 246 entire AS path information from the AS_PATH and the AS4_PATH 247 attributes of a route. This occurs, for example, when two or more 248 routes that carry the AS4_PATH attribute are aggregated by an OLD BGP 249 speaker, and the AS4_PATH attribute of at least one of these routes 250 carries at least one 4-octet AS number (as opposed to a 2-octet AS 251 number that is encoded in 4 octets). Depending on the 252 implementation, either the AS4_PATH attribute would be lost during 253 route aggregation, or both the AS_PATH attribute and the AS4_PATH 254 attribute would contain valid, partial information that cannot be 255 combined seamlessly, resulting in incomplete AS path information in 256 these cases. 258 A NEW BGP speaker MUST also be prepared to receive the AS4_AGGREGATOR 259 attribute along with the AGGREGATOR attribute from an OLD BGP 260 speaker. When both the attributes are received, if the AS number in 261 the AGGREGATOR attribute is not AS_TRANS, then: 263 - the AS4_AGGREGATOR attribute and the AS4_PATH attribute SHALL 264 be ignored, 266 - the AGGREGATOR attribute SHALL be taken as the information 267 about the aggregating node, and 269 - the AS_PATH attribute SHALL be taken as the AS path 270 information. 272 Otherwise, 274 - the AGGREGATOR attribute SHALL be ignored, 276 - the AS4_AGGREGATOR attribute SHALL be taken as the information 277 about the aggregating node, and 279 - the AS path information would need to be constructed, as in all 280 other cases. 282 In order to construct the AS path information, it is necessary to 283 first calculate the number of AS numbers in the AS_PATH and AS4_PATH 284 attributes using the method specified in Section 9.1.2.2 [RFC4271] 285 and [RFC5065] for route selection. 287 If the number of AS numbers in the AS_PATH attribute is less than the 288 number of AS numbers in the AS4_PATH attribute, then the AS4_PATH 289 attribute SHALL be ignored, and the AS_PATH attribute SHALL be taken 290 as the AS path information. 292 If the number of AS numbers in the AS_PATH attribute is larger than 293 or equal to the number of AS numbers in the AS4_PATH attribute, then 294 the AS path information SHALL be constructed by taking as many AS 295 numbers and path segments as necessary from the leading part of the 296 AS_PATH attribute, and then prepending them to the AS4_PATH attribute 297 so that the AS path information has an identical number of AS numbers 298 as the AS_PATH attribute. Note that a valid AS_CONFED_SEQUENCE or 299 AS_CONFED_SET path segment SHALL be prepended if it is either the 300 leading path segment or adjacent to a path segment that is prepended. 302 5. Handling BGP Communities 304 As specified in [RFC1997], when the high-order two-octets of the 305 community attribute is neither 0x0000 nor 0xffff, these two octets 306 encode the Autonomous System number. Quite clearly this would not 307 work for a NEW BGP speaker with a non-mappable 4-octet AS number. 308 Such BGP speakers should use the Four-octet AS Specific Extended 309 Communities [RFC5668] instead. 311 6. Error Handling 313 Given that the two-octet AS numbers dominate during the transition, 314 and are carried in the AS_PATH attribute by an OLD BGP speaker, in 315 this document the "attribute discard" approach is chosen to handle a 316 malformed AS4_PATH attribute. 318 Similarly, as the AS4_AGGREGATOR is just informational, the 319 "attribute discard" approach is chosen to handle a malformed 320 AS4_AGGREGATOR attribute. 322 The AS4_PATH attribute and AS4_AGGREGATOR attribute MUST NOT be 323 carried in an UPDATE message between NEW BGP speakers. A NEW BGP 324 speaker that receives the AS4_PATH attribute or the AS4_AGGREGATOR 325 attribute in an UPDATE message from another NEW BGP speaker MUST 326 discard the path attribute and continue processing the UPDATE 327 message. This case SHOULD be logged locally for analysis. 329 In addition, the path segment types AS_CONFED_SEQUENCE and 330 AS_CONFED_SET [RFC5065] MUST NOT be carried in the AS4_PATH attribute 331 of an UPDATE message. A NEW BGP speaker that receives these path 332 segment types in the AS4_PATH attribute of an UPDATE message from an 333 OLD BGP speaker MUST discard these path segments, adjust the relevant 334 attribute fields accordingly, and continue processing the UPDATE 335 message. This case SHOULD be logged locally for analysis. 337 The AS4_PATH attribute in an UPDATE message SHALL be considered 338 malformed under the following conditions: 340 - the attribute length is not a multiple of two, or is too small 341 (i.e., less than 6) for the attribute to carry at least one 342 AS number, or 344 - the path segment length in the attribute is either zero, or 345 is inconsistent with the attribute length, or 347 - the path segment type in the attribute is not one of the 348 types defined: AS_SEQUENCE, AS_SET. 350 A NEW BGP speaker that receives a malformed AS4_PATH attribute in an 351 UPDATE message from an OLD BGP speaker MUST discard the attribute, 352 and continue processing the UPDATE message. The error SHOULD be 353 logged locally for analysis. 355 The AS4_AGGREGATOR attribute in an UPDATE message SHALL be considered 356 malformed if the attribute length is not 8. 358 A NEW BGP speaker that receives a malformed AS4_AGGREGATOR attribute 359 in an UPDATE message from an OLD BGP speaker MUST discard the 360 attribute, and continue processing the UPDATE message. The error 361 SHOULD be logged locally for analysis. 363 7. Transition 365 The scheme described in this document allows a gradual transition 366 from 2-octet AS numbers to 4-octet AS numbers. One can upgrade one 367 Autonomous System or one BGP speaker at a time. 369 To simplify transition, this document assumes that an Autonomous 370 System could start using a 4-octet AS number only after all the BGP 371 speakers within that Autonomous System have been upgraded to support 372 4-octet AS numbers. 374 A non-mappable 4-octet AS number cannot be used as a "Member AS 375 Number" of a BGP Confederation until all the BGP speakers within the 376 Confederation have transitioned to support 4-octet AS numbers. 378 In an environment where an Autonomous System that has OLD BGP 379 speakers peers with two or more Autonomous Systems that have NEW BGP 380 speakers and use AS_TRANS (rather than having a globally unique 381 2-octet mappable AS number), use of Multi-Exit Discriminators by the 382 Autonomous System with the OLD speakers may result in a situation 383 where Multi-Exit Discriminator will influence route selection among 384 the routes that were received from different neighboring Autonomous 385 Systems. 387 Under certain conditions, it may not be possible to reconstruct the 388 entire AS path information from the AS_PATH and the AS4_PATH 389 attributes of a route. This occurs when two or more routes that 390 carry the AS4_PATH attribute are aggregated by an OLD BGP speaker, 391 and the AS4_PATH attribute of at least one of these routes carries at 392 least one 4-octet AS number (as opposed to a 2-octet AS number that 393 is encoded in 4 octets). When such aggregation results in creating a 394 route that is less specific than any of the component routes (route 395 whose Network Layer Reachability Information (NLRI) covers NLRI of 396 all the component routes), loss of the AS path information does not 397 create a risk of a routing loop. In all other cases, loss of the AS 398 path information does create a risk of a routing loop. 400 8. IANA Considerations 402 [Remove this paragraph before publication: IANA should update the 403 reference for the "32-bit Autonomous System Numbers" sub-registry to 404 cite this document once an RFC number has been assigned to it, 405 replacing the citation of RFC 4893.] 407 This document expands the pool for AS numbers from 0 - 65535 to 0 - 408 4294967295. The AS numbers are managed by the IANA "Autonomous 409 System Numbers" registry. Other than expanding the AS number pool, 410 this document does not propose any modifications to the existing 411 policies and procedures pertaining to the AS number allocation. 413 This document uses a BGP Capability code to indicate that a BGP 414 speaker supports the 4-octet AS numbers. The Capability Code 65 has 415 been assigned by IANA per [RFC5492]. 417 In addition, this document introduces two BGP optional transitive 418 attributes, and their type codes have been assigned by the IANA. The 419 first one is the AS4_PATH attribute, value 17, which preserves the AS 420 path information with 4-octet AS numbers across old BGP speakers. 421 The second one is the AS4_AGGREGATOR attribute, value 18, which is 422 similar in use to the current AGGREGATOR attribute, but it carries a 423 4-octet AS number. 425 Finally, this document introduces a reserved 2-octet AS number -- 426 AS_TRANS. The AS number 23456 has been assigned by the IANA for 427 AS_TRANS. 429 9. Security Considerations 431 This extension to BGP does not change the underlying security issues 432 inherent in the existing BGP, except for the following: 434 The inconsistency between the AS_PATH attribute and the AS4_PATH 435 attribute can create loss of the AS path information, and potential 436 routing loops in certain cases as discussed in the document. This 437 could be exploited by an attacker. 439 It is a misconfiguration to assign a non-mappable 4-octet AS number 440 as the "Member AS Number" in a BGP confederation before all the BGP 441 speakers within the confederation have transitioned to support 442 4-octet AS numbers. Such a misconfiguration would weaken the AS path 443 loop detection within a confederation. 445 10. Acknowledgments 447 The authors would like to thank Yakov Rekhter, Chaitanya Kodeboyina, 448 and Jeffrey Haas for the numerous discussions that went into the 449 making of this document. 451 The authors would also like to thank members of the IDR Working Group 452 for their review and comments. 454 11. Normative References 456 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 457 Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 458 2006. 460 [RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities 461 Attribute", RFC 1997, August 1996. 463 [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement 464 with BGP-4", RFC 5492, February 2009. 466 [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous 467 System Confederations for BGP", RFC 5065, August 2007. 469 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 470 Requirement Levels", BCP 14, RFC 2119, March 1997. 472 [RFC5668] Rekhter, Y., Ramachandra, S., and D. Tappan, "4-Octet AS 473 Specific BGP Extended Community", RFC 5668, October 2009. 475 Appendix A. Comparison with RFC 4893 477 This document includes several clarifications and editorial changes, 478 and specifies the error handling for the new attributes. 480 12. Authors' Addresses 482 Quaizar Vohra 483 Juniper Networks 484 1194 N. Mathilda Ave. 485 Sunnyvale, CA 94089 486 USA 488 EMail: quaizar.vohra@gmail.com 490 Enke Chen 491 Cisco Systems, Inc. 492 170 W. Tasman Dr. 493 San Jose, CA 95134 494 USA 496 EMail: enkechen@cisco.com