idnits 2.17.1 draft-ietf-idr-rfc4893bis-07.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 (June 20, 2012) is 4299 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: December 21, 2012 June 20, 2012 8 BGP Support for Four-octet AS Number Space 9 draft-ietf-idr-rfc4893bis-07.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 December 21, 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 number is encoded as a two-octet entity in the 52 base BGP specification. This document describes extensions to BGP to 53 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 (AS) 59 number is encoded as a two-octet entity. To prepare for the 60 anticipated exhaustion of the two-octet AS numbers, this document 61 describes extensions to BGP to carry the AS numbers as four-octet 62 entities. 64 More specifically, this document defines a BGP capability, "support 65 for four-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 two-octet AS numbers to four-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 four-octet AS number extensions as an OLD BGP 89 speaker, and a BGP speaker that supports the new four-octet AS number 90 extensions as a NEW BGP speaker. 92 BGP carries the AS numbers in the "My Autonomous System" field of the 93 OPEN message, in the AS_PATH attribute of the UPDATE message, and in 94 the AGGREGATOR attribute of the UPDATE message. BGP also carries the 95 AS numbers in the BGP Communities attribute. 97 A NEW BGP speaker uses BGP Capability Advertisements [RFC5492] to 98 advertise to its neighbors (either internal or external) that it 99 supports four-octet AS number extensions, as specified in this 100 document. 102 The Capability that is used by a BGP speaker to convey to its BGP 103 peer the four-octet Autonomous System number capability, also carries 104 the AS number (encoded as a four-octet entity) of the speaker in the 105 Capability Value field of the Capability Optional Parameter. The 106 Capability Length field of the Capability is set to 4. 108 The AS path information exchanged between NEW BGP speakers are 109 carried in the existing AS_PATH attribute, except that each AS number 110 in the attribute is encoded as a four-octet entity (instead of a two- 111 octet entity). The same applies to the AGGREGATOR attribute - the 112 same attribute is used between NEW BGP speakers, except that the AS 113 number carried in the attribute is encoded as a four-octet entity. 115 The AS_PATH attribute and the AGGREGATOR attribute carried between a 116 NEW BGP speaker and an OLD BGP speaker will continue to contain two- 117 octet AS numbers. 119 To preserve the AS path information with four-octet AS numbers across 120 OLD BGP speakers, this document defines a new AS path attribute, 121 called AS4_PATH. This is an optional transitive attribute that 122 contains the AS path encoded with four-octet AS numbers. The 123 AS4_PATH attribute has the same semantics as the AS_PATH attribute, 124 except that it is optional transitive, and it carries four-octet AS 125 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 four-octet AS number. 138 Currently assigned two-octet AS numbers are converted into four-octet 139 AS numbers by setting the two high-order octets of the four-octet 140 field to zero. Such a four-octet AS number is said to be mappable to 141 a two-octet AS number. 143 To represent four-octet AS numbers (which are not mapped from two- 144 octets) as two-octet AS numbers in the AS path information encoded 145 with two-octet AS numbers, this document reserves a two-octet AS 146 number. We denote this special AS number as AS_TRANS for ease of 147 description in the rest of this specification. This AS number is 148 also placed in the "My Autonomous System" field of the OPEN message 149 originated by a NEW BGP speaker, if and only if the speaker does not 150 have a (globally unique) two-octet AS number. 152 4. Operations 154 4.1. Interaction Between NEW BGP Speakers 156 A BGP speaker that supports four-octet AS numbers SHALL advertise 157 this to its peers using the BGP Capability Advertisements. The AS 158 number of the BGP speaker MUST be carried in the capability value 159 field of the "support for four-octet AS number capability". 161 When a NEW BGP speaker processes an OPEN message from another NEW BGP 162 speaker, it MUST use the AS number encoded in the Capability Value 163 field of the Capability in lieu of the "My Autonomous System" field 164 of the OPEN message. 166 A BGP speaker that advertises such capability to a particular peer, 167 and receives from that peer the advertisement of such capability MUST 168 encode AS numbers as four-octet entities in both the AS_PATH and the 169 AGGREGATOR attributes in the updates it sends to the peer, and MUST 170 assume that these attributes in the updates received from the peer 171 encode AS numbers as four-octet entities. 173 The new attributes, AS4_PATH and AS4_AGGREGATOR MUST NOT be carried 174 in an UPDATE message between NEW BGP speakers. A NEW BGP speaker 175 that receives the AS4_PATH attribute or the AS4_AGGREGATOR attribute 176 in an UPDATE message from another NEW BGP speaker MUST discard the 177 path attribute and continue processing the UPDATE message. 179 4.2. Interaction Between NEW and OLD BGP Speakers 181 4.2.1. BGP Peering 183 Note that peering between a NEW BGP speaker and an OLD BGP speaker is 184 possible only if the NEW BGP speaker has a two-octet AS number. 185 However, this document does not assume that an Autonomous System with 186 NEW speakers has to have a globally unique two-octet AS number -- 187 AS_TRANS MUST be used when the NEW speaker does not have a two-octet 188 AS number (even if multiple Autonomous Systems would use it). 190 4.2.2. Generating Updates 192 When communicating with an OLD BGP speaker, a NEW speaker MUST send 193 the AS path information in the AS_PATH attribute encoded with two- 194 octet AS numbers. The NEW speaker MUST also send the AS path 195 information in the AS4_PATH attribute (encoded with four-octet AS 196 numbers), except for the case where the entire AS path information is 197 composed of two-octet mappable AS numbers only. In this case, the 198 NEW speaker MUST NOT send the AS4_PATH attribute. 200 In the AS_PATH attribute encoded with two-octet AS numbers, non- 201 mappable four-octet AS numbers are represented by the well-known two- 202 octet AS number, AS_TRANS. This will preserve the path length 203 property of the AS path information and also help in updating the AS 204 path information received on a NEW BGP speaker from an OLD speaker, 205 as explained in the next section. 207 The NEW speaker constructs the AS4_PATH attribute from the AS path 208 information. Whenever the AS path information contains the 209 AS_CONFED_SEQUENCE or AS_CONFED_SET path segment, the NEW BGP speaker 210 MUST exclude such path segments from the AS4_PATH attribute being 211 constructed. 213 The AS4_PATH attribute, being optional transitive, will be carried 214 across a series of OLD BGP speakers without modification and will 215 help preserve the non-mappable four-octet AS numbers in the AS path 216 information. 218 Similarly, if the NEW speaker has to send the AGGREGATOR attribute, 219 and if the aggregating Autonomous System's AS number is a non- 220 mappable four-octet AS number, then the speaker MUST use the 221 AS4_AGGREGATOR attribute, and set the AS number field in the existing 222 AGGREGATOR attribute to the reserved AS number, AS_TRANS. Note that 223 if the AS number is two-octets mappable, then the AS4_AGGREGATOR 224 attribute MUST NOT be sent. 226 4.2.3. Processing Received Updates 228 When a NEW BGP speaker receives an update from an OLD BGP speaker, it 229 MUST be prepared to receive the AS4_PATH attribute along with the 230 existing AS_PATH attribute. If the AS4_PATH attribute is also 231 received, both the attributes will be used to construct the exact AS 232 path information, and therefore the information carried by both the 233 attributes will be considered for AS path loop detection. 235 Note that a route may have traversed a series of autonomous systems 236 with two-octet AS numbers and OLD BGP speakers only. In that case, 237 if the route carries the AS4_PATH attribute, this attribute would 238 have remained unmodified since the route left the last NEW BGP 239 speaker. The trailing AS path information (representing autonomous 240 systems with two-octet AS numbers and OLD BGP speakers only) is 241 contained only in the current AS_PATH attribute (encoded in the 242 leading part of the AS_PATH attribute). 244 Under certain conditions, it may not be possible to reconstruct the 245 entire AS path information from the AS_PATH and the AS4_PATH 246 attributes of a route. This occurs, for example, when two or more 247 routes that carry the AS4_PATH attribute are aggregated by an OLD BGP 248 speaker, and the AS4_PATH attribute of at least one of these routes 249 carries at least one four-octet AS number (as opposed to a two-octet 250 AS number that is encoded in 4 octets). Depending on the 251 implementation, either the AS4_PATH attribute would be lost during 252 route aggregation, or both the AS_PATH attribute and the AS4_PATH 253 attribute would contain valid, partial information that cannot be 254 combined seamlessly, resulting in incomplete AS path information in 255 these cases. 257 A NEW BGP speaker MUST also be prepared to receive the AS4_AGGREGATOR 258 attribute along with the AGGREGATOR attribute from an OLD BGP 259 speaker. When both the attributes are received, if the AS number in 260 the AGGREGATOR attribute is not AS_TRANS, then: 262 - the AS4_AGGREGATOR attribute and the AS4_PATH attribute SHALL 263 be ignored, 265 - the AGGREGATOR attribute SHALL be taken as the information 266 about the aggregating node, and 268 - the AS_PATH attribute SHALL be taken as the AS path 269 information. 271 Otherwise, 273 - the AGGREGATOR attribute SHALL be ignored, 275 - the AS4_AGGREGATOR attribute SHALL be taken as the information 276 about the aggregating node, and 278 - the AS path information would need to be constructed, as in all 279 other cases. 281 In order to construct the AS path information, it is necessary to 282 first calculate the number of AS numbers in the AS_PATH and AS4_PATH 283 attributes using the method specified in Section 9.1.2.2 [RFC4271] 284 and [RFC5065] for route selection. 286 If the number of AS numbers in the AS_PATH attribute is less than the 287 number of AS numbers in the AS4_PATH attribute, then the AS4_PATH 288 attribute SHALL be ignored, and the AS_PATH attribute SHALL be taken 289 as the AS path information. 291 If the number of AS numbers in the AS_PATH attribute is larger than 292 or equal to the number of AS numbers in the AS4_PATH attribute, then 293 the AS path information SHALL be constructed by taking as many AS 294 numbers and path segments as necessary from the leading part of the 295 AS_PATH attribute, and then prepending them to the AS4_PATH attribute 296 so that the AS path information has an identical number of AS numbers 297 as the AS_PATH attribute. Note that a valid AS_CONFED_SEQUENCE or 298 AS_CONFED_SET path segment SHALL be prepended if it is either the 299 leading path segment or adjacent to a path segment that is prepended. 301 5. Handling BGP Communities 303 As specified in [RFC1997], when the high-order two-octets of the 304 community attribute is neither 0x0000 nor 0xffff, these two octets 305 encode the AS number. Quite clearly this would not work for a NEW 306 BGP speaker with a non-mappable four-octet AS number. Such BGP 307 speakers should use the four-octet AS Specific Extended Communities 308 [RFC5668] instead. 310 6. Error Handling 312 This section provides an update to RFC 4271 [RFC4271] with respect to 313 the error conditions noted here and their handling. 315 Given that the two-octet AS numbers dominate during the transition, 316 and are carried in the AS_PATH attribute by an OLD BGP speaker, in 317 this document the "attribute discard" approach is chosen to handle a 318 malformed AS4_PATH attribute. 320 Similarly, as the AS4_AGGREGATOR is just informational, the 321 "attribute discard" approach is chosen to handle a malformed 322 AS4_AGGREGATOR attribute. 324 The AS4_PATH attribute and AS4_AGGREGATOR attribute MUST NOT be 325 carried in an UPDATE message between NEW BGP speakers. A NEW BGP 326 speaker that receives the AS4_PATH attribute or the AS4_AGGREGATOR 327 attribute in an UPDATE message from another NEW BGP speaker MUST 328 discard the path attribute and continue processing the UPDATE 329 message. This case SHOULD be logged locally for analysis. 331 In addition, the path segment types AS_CONFED_SEQUENCE and 332 AS_CONFED_SET [RFC5065] MUST NOT be carried in the AS4_PATH attribute 333 of an UPDATE message. A NEW BGP speaker that receives these path 334 segment types in the AS4_PATH attribute of an UPDATE message from an 335 OLD BGP speaker MUST discard these path segments, adjust the relevant 336 attribute fields accordingly, and continue processing the UPDATE 337 message. This case SHOULD be logged locally for analysis. 339 The AS4_PATH attribute in an UPDATE message SHALL be considered 340 malformed under the following conditions: 342 - the attribute length is not a multiple of two, or is too small 343 (i.e., less than 6) for the attribute to carry at least one 344 AS number, or 346 - the path segment length in the attribute is either zero, or 347 is inconsistent with the attribute length, or 349 - the path segment type in the attribute is not one of the 350 types defined: AS_SEQUENCE, AS_SET, AS_CONFED_SEQUENCE 351 and AS_CONFED_SET. 353 A NEW BGP speaker that receives a malformed AS4_PATH attribute in an 354 UPDATE message from an OLD BGP speaker MUST discard the attribute, 355 and continue processing the UPDATE message. The error SHOULD be 356 logged locally for analysis. 358 The AS4_AGGREGATOR attribute in an UPDATE message SHALL be considered 359 malformed if the attribute length is not 8. 361 A NEW BGP speaker that receives a malformed AS4_AGGREGATOR attribute 362 in an UPDATE message from an OLD BGP speaker MUST discard the 363 attribute, and continue processing the UPDATE message. The error 364 SHOULD be logged locally for analysis. 366 7. Transition 368 When an Autonomous System is using a two-octet AS number, then the 369 BGP speakers within that Autonomous System MAY be upgraded to support 370 the four-octet AS number extensions on a piecemeal basis. There is 371 no requirement for a coordinated upgrade of the four-octet AS number 372 capability in this case. However, if an Autonomous System wishes to 373 use a four-octet AS number as its own AS number, then this document 374 assumes that an Autonomous System can use a four-octet AS number only 375 after all the BGP speakers within that Autonomous System have been 376 upgraded to support four-octet AS numbers. 378 A non-mappable four-octet AS number cannot be used as a "Member AS 379 Number" of a BGP Confederation until all the BGP speakers within the 380 Confederation have transitioned to support four-octet AS numbers. 382 In an environment where an Autonomous System that has OLD BGP 383 speakers peers with two or more Autonomous Systems that have NEW BGP 384 speakers and use AS_TRANS (rather than having a globally unique two- 385 octet mappable AS number), use of Multi-Exit Discriminators by the 386 Autonomous System with the OLD speakers may result in a situation 387 where Multi-Exit Discriminator will influence route selection among 388 the routes that were received from different neighboring Autonomous 389 Systems. 391 Under certain conditions, it may not be possible to reconstruct the 392 entire AS path information from the AS_PATH and the AS4_PATH 393 attributes of a route. This occurs when two or more routes that 394 carry the AS4_PATH attribute are aggregated by an OLD BGP speaker, 395 and the AS4_PATH attribute of at least one of these routes carries at 396 least one four-octet AS number (as opposed to a two-octet AS number 397 that is encoded in 4 octets). When such aggregation results in 398 creating a route that is less specific than any of the component 399 routes (route whose Network Layer Reachability Information (NLRI) 400 covers NLRI of all the component routes), loss of the AS path 401 information does not create a risk of a routing loop. In all other 402 cases, loss of the AS path information does create a risk of a 403 routing loop. 405 8. IANA Considerations 407 [Remove this paragraph before publication: IANA should update the 408 reference for the "32-bit Autonomous System Numbers" sub-registry to 409 cite this document once an RFC number has been assigned to it, 410 replacing the citation of RFC 4893.] 412 This document expands the pool for AS numbers from 0 - 65535 to 0 - 413 4294967295. The AS numbers are managed by the IANA "Autonomous 414 System Numbers" registry. Other than expanding the AS number pool, 415 this document does not propose any modifications to the existing 416 policies and procedures pertaining to the AS number allocation. 418 This document uses a BGP Capability code to indicate that a BGP 419 speaker supports the four-octet AS numbers. The Capability Code 65 420 has been assigned by IANA per [RFC5492]. 422 In addition, this document introduces two BGP optional transitive 423 attributes, and their type codes have been assigned by the IANA. The 424 first one is the AS4_PATH attribute, value 17, which preserves the AS 425 path information with four-octet AS numbers across old BGP speakers. 426 The second one is the AS4_AGGREGATOR attribute, value 18, which is 427 similar in use to the current AGGREGATOR attribute, but it carries a 428 four-octet AS number. 430 Finally, this document introduces a reserved two-octet AS number -- 431 AS_TRANS. The AS number 23456 has been assigned by the IANA for 432 AS_TRANS. 434 9. Security Considerations 436 This extension to BGP does not change the underlying security issues 437 inherent in the existing BGP, except for the following: 439 The inconsistency between the AS_PATH attribute and the AS4_PATH 440 attribute can create loss of the AS path information, and potential 441 routing loops in certain cases as discussed in the document. This 442 could be exploited by an attacker. 444 It is a misconfiguration to assign a non-mappable four-octet AS 445 number as the "Member AS Number" in a BGP confederation before all 446 the BGP speakers within the confederation have transitioned to 447 support four-octet AS numbers. Such a misconfiguration would weaken 448 the AS path loop detection within a confederation. 450 10. Acknowledgments 452 The authors would like to thank Yakov Rekhter, Chaitanya Kodeboyina, 453 and Jeffrey Haas for the numerous discussions that went into the 454 making of this document. 456 The authors would also like to thank members of the IDR Working Group 457 for their review and comments. 459 11. Normative References 461 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 462 Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 463 2006. 465 [RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities 466 Attribute", RFC 1997, August 1996. 468 [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement 469 with BGP-4", RFC 5492, February 2009. 471 [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous 472 System Confederations for BGP", RFC 5065, August 2007. 474 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 475 Requirement Levels", BCP 14, RFC 2119, March 1997. 477 [RFC5668] Rekhter, Y., Ramachandra, S., and D. Tappan, "4-Octet AS 478 Specific BGP Extended Community", RFC 5668, October 2009. 480 Appendix A. Comparison with RFC 4893 482 This document includes several clarifications and editorial changes, 483 and specifies the error handling for the new attributes. 485 12. Authors' Addresses 487 Quaizar Vohra 488 Juniper Networks 489 1194 N. Mathilda Ave. 490 Sunnyvale, CA 94089 491 USA 493 EMail: quaizar.vohra@gmail.com 495 Enke Chen 496 Cisco Systems, Inc. 497 170 W. Tasman Dr. 498 San Jose, CA 95134 499 USA 501 EMail: enkechen@cisco.com