Network Working Group Quaizar Vohra Internet Draft Juniper Networks Expiration Date:
JanuaryMarch 2006 Enke Chen Cisco Systems BGP supportSupport for four-octetFour-octet AS number space draft-ietf-idr-as4bytes-10.txtNumber Space draft-ietf-idr-as4bytes-11.txt 1. Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 2. Abstract Currently the Autonomous System number is encoded in BGP [BGP] as a two-octetstwo-octet field. This document describes extensions to BGP to carry the Autonomous System number as a four-octetsfour-octet field. 3. Specification of Requirements The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 4. Protocol Extensions For the purpose of this document lets define a BGP speaker which doesnÇÖtdoes not support the new 4-octets4-octet AS number extensions as an OLD BGP speaker, and a BGP speaker which supports the new 4-octets4-octet AS number extensions as a NEW BGP speaker. BGP carries the Autonomous System number in the My Autonomous System field of the OPEN message, in the AS_PATH attribute of the UPDATE message, and in the AGGREGATOR attribute of the UPDATE message. BGP also carries the Autonomous System number in the BGP Communities attribute. A NEW BGP speaker uses BGP Capability Advertisements [RFC2842] to advertise to its neighbors (either internal or external) that it supports 4-octets4-octet AS number extensions, as specified in this document. The Capability that is used by a BGP speaker to convey to its BGP peer the 4-octets4-octet Autonomous System number capability, also carries the 4-octets4-octet Autonomous System number of the speaker in the Capability Value field of the Capability Optional Parameter. The Capability Length field of the Capability is set to 4. NEW BGP speakers carry AS path information expressed in terms of 4-octets4-octet Autonomous Systems numbers by using the existing AS_PATH attribute, except that each AS number in this attribute is encoded not as a 2-octets,2-octet, but as a 4-octets4-octet entity. The same applies to the AGGREGATOR attribute - NEW BGP speakers use the same attribute, except that the AS carried in this attribute is encoded as a 4-octets4-octet entity. To preserve AS path information with 4-octets4-octet AS numbers across OLD BGP speakers, this document defines a new AS path attribute, called NEW_AS_PATH. This attribute is optional transitive and contains the AS path encoded with 4-octets4-octet AS numbers. The NEW_AS_PATH attribute has the same semantics as the AS_PATH attribute, except that it is optional transitive, and it carries 4-octets4-octet AS numbers. To prevent the possible propagation of confederation path segments outside of a confederation, the path segment types AS_CONFED_SEQUENCE and AS_CONFED_SET [RFC3065] are declared invalid for the NEW_AS_PATH attribute. Similarly, this document defines a new aggregator attribute called NEW_AGGREGATOR, which is optional transitive. The NEW_AGGREGATOR attribute has the same semantics as the AGGREGATOR attribute, except that it carries 4-octets4-octet AS numbers. Currently assigned 2-octets2-octet Autonomous System numbers are converted into 4-octets4-octet Autonomous System numbers by setting the high-order 2 octets of the 4-octets4-octet field to zero. Such a 4-octets4-octet AS number is said to be mappable to a 2-octets2-octet AS number. To represent 4-octets4-octet AS numbers (which are not mapped from 2-octets) as 2-octets2-octet AS numbers in the AS path information encoded with 2-octets2-octet AS numbers, this document reserves a 2-octets2-octet AS number. Lets denote this special AS number as AS_TRANS for ease of description in the rest of this specification. This AS number is also placed in the My Autonomous System field of the OPEN message originated by a NEW BGP speaker if the speaker doesnÇÖtdoes not have a (globally unique) 2-octets2-octet AS number. 5. Operations 5.1. Interaction betweenBetween NEW BGP speakersSpeakers A BGP speaker that supports 4-octets4-octet Autonomous System numbers may advertise this to its peers using the BGP Capability Advertisements. A BGP speaker that advertises such capability to a particular peer, and receives from that peer the advertisement of such capability MUST encode Autonomous System numbers as 4-octets4-octet entities in both the AS_PATH and the AGGREGATOR attributes in the updates it sends to the peer, and MUST assume that these attributes in the updates received from the peer encode Autonomous System numbers as 4-octets4-octet entities. The new attributes, NEW_AS_PATH and NEW_AGGREGATOR should not be carried in the UPDATE messages between NEW BGP peers. A NEW BGP speaker that receives the NEW_AS_PATH and NEW_AGGREGATOR path attributes in an UPDATE message from a NEW BGP speaker should discard these path attributes and continue processing the UPDATE message. 5.2. Interaction betweenBetween NEW and OLD BGP speakerSpeakers 5.2.1. BGP Peering Note that peering between a NEW BGP speaker and an OLD one is possible only if the NEW BGP speaker has a 2-octets2-octet AS number. However, this document doesnÇÖtdoes not assume that an Autonomous System with NEW speakers has to have a globally unique 2-octets2-octet AS number - AS_TRANS could be used instead (even if multiple Autonomous System would use it). 5.2.2. Generating Updates When communicating with an OLD BGP speaker, a NEW speaker MUST send the AS path information in the AS_PATH attribute encoded with 2-octets2-octet AS numbers. The NEW speaker also MUST send the AS path information in the NEW_AS_PATH attribute (encoded with 4-octets4-octet AS numbers), except for the case where the entire AS path information is composed of 2-octets2-octet AS numbers only. In this case the NEW speaker should not send the NEW_AS_PATH attribute. In the AS_PATH attribute encoded with 2-octets2-octet AS numbers, non- mappable 4-octets4-octet AS numbers are represented by the well known 2-octets2-octet AS number, AS_TRANS. This will preserve the path length property of the AS path information; and will also help in updating the AS path information received on a NEW BGP speaker from an OLD speaker, as explained in the next section. The NEW speaker constructs the NEW_AS_PATH attribute from the information carried in the AS_PATH attribute. In the case where the AS_PATH attribute contains either AS_CONFED_SEQUENCE or AS_CONFED_SET path segments, the NEW speaker, when constructing the NEW_AS_PATH attribute from the AS_PATH attribute, must exclude such path segments. The NEW_AS_PATH attribute will be carried across a series of OLD BGP speakers without modification and will help preserve the truely 4-octetstruly 4-octet AS numbers in the AS path information. Similarly, if the NEW speaker has to send the AGGREGATOR attribute, and if the aggregating Autonomous SystemÇÖs AS number is truelytruly 4-octets, the speaker constructs the NEW_AGGREGATOR attributes by taking the attribute length and attribute value from the AGGREGATOR attribute and placing them into the attribute length and attribute value of the NEW_AGGREGATOR attribute, and sets the AS number field in the existing AGGREGATOR attribute to the reserved AS number, AS_TRANS. Note that if the AS number is 2-octets only, then the NEW_AGGREGATE attribute should not be sent. 5.2.3. Processing Received Updates When a NEW BGP speaker receives an update from an OLD one, it should be prepared to receive the NEW_AS_PATH attribute along with the existing AS_PATH attribute. If NEW_AS_PATH attribute is also received, both the attributes will be used to construct the exact AS path information, and therefore the information carried by both the attributes will be considered for AS path loop detection. Note that a route may have traversed a series of autonomous systems with 2-octets2-octet AS numbers and OLD BGP speakers only. In that case, if the route carries a NEW_AS_PATH attribute, this attribute may not have been updated since the route left the last NEW BGP speaker. The trailing AS path information (representing autonomous systems with 2-octets2-octet AS numbers and OLD BGP speakers only) is contained only in the current AS_PATH attribute (encoded in the leading part of the AS_PATH attribute). This AS path information should be prepended to the NEW_AS_PATH attribute to construct the exact AS path information. Similarly, a NEW BGP speaker should be prepared to receive the NEW_AGGREGATOR attribute from an OLD BGP speaker. In that case, the AGGREGATOR attribute is ignored and the NEW_AGGREGATOR contains the exact information about the aggregating node. 5.3. Interaction betweenBetween OLD BGP speakersSpeakers In all other cases the speaker MUST encode Autonomous System numbers as 2-octets2-octet entities in both the AS_PATH and the AGGREGATOR attribute in the updates it sends to the peer, and MUST assume that these attributes in the updates received from the peer encoded Autonomous System numbers as 2-octets2-octet entities. 6. Handling BGP Communities As specified in [RFC1997], when the high-order two-octets of the community attribute is neither 0x0000 nor 0xffff, these two octets encode the Autonomous System number. Quite clearly this would not work for routers that use 4-octets Autonomous System numbers. Such routers should use the Extended Communities [EXT-COMM] attribute instead. 7. Transition The scheme described in this document allows a gradual transition from 2-octets2-octet AS numbers to 4-octets4-octet AS numbers. One can upgrade one Autonomous system or one router at a time. To simplify transition this document assumes that an Autonomous System could start using 4-octetsa 4-octet AS number only after all the BGP speakers within that Autonomous System have been upgraded to support 4-octets4-octet AS numbers. An OLD BGP speaker should not use AS_TRANS as its Autonomous System number. A non-mappable 4-octets4-octet AS number can not be used as a "Member AS Number" of a BGP Confederation until all the BGP speakers within the Confederation have transitioned to support 4-octets4-octet AS numbers. In an environment where an Autonomous System that has OLD BGP speakers peers with two or more Autonomous Systems that have NEW BGP speakers and use AS_TRANS (rather than having a globally unique AS number), use of Multi-Exit Discriminators by the Autonomous System with the OLD speakers may result in a situation where Multi-Exit Discriminator will influence route selection among the routes that were received from different neighboring Autonomous Systems. Under certain conditions it may not be possible to reconstruct the entire AS path information from the AS_PATH and the NEW_AS_PATH attributes of a route. This occurs when two or more routes that carry the NEW_AS_PATH attribute are aggregated by an OLD BGP speaker, and the NEW_AS_PATH attribute of at least one of these routes carries at least one 4-octets4-octet AS number (as oppose to a 2-octets2-octet AS number that is encoded in 4 octets). When such aggregation results in creating a route that is less specific than any of the component routes, (route whose NLRI covers NLRI of all the component routes), loss of the AS path information does not create a risk of a routing loop. In all other cases loss of the AS path information does create a risk of a routing loop. 8. IANA Consideration This document uses a BGP Capability code to indicate that a BGP speaker supports the 4-octets4-octet AS numbers. The Capability code has been assigned by IANA per RFC 2842. In addition, this document introduces two new BGP optional transitive attributes. The first is the NEW_AS_PATH attribute, which preserves the AS path information with 4-octet AS numbers across old BGP speakers. The second is the NEW_AGGREGATOR attribute, which is similar in use to the current AGGREGATOR attribute but it carries 4-octet AS numbers. The Type Codes for these attributes has been assigned by IANA. Finally, this document introduces a reserved 2-octets2-octet AS number - AS_TRANS. The AS number for AS_TRANS has been assigned by the IANA. 9. Security Considerations Security issues areThis extension to BGP does not discussedchange the underlying security issues inherent in this document.the existing BGP. 10. Acknowledgments The authors would like to thank Yakov Rekhter, Chaitanya Kodeboyina, and Jeffrey Haas for the numerous discussions which went into the making of this draft. 11. Normative References [BGP] Rekhter, Y., Li, T., and Hares, S., "A Border Gateway Protocol 4 (BGP-4)", draft-ietf-idr-bgp4-26.txt, October 2004. [EXT-COM] Ramachandra, S., Tappan, D., and Rekter Y. "BGP Extended Communities Attribute", draft-ramachandra-bgp-ext-communities-09.txt, July 2005. [RFC1997] Chandra, R., Traina, P. and T. Li, "BGP Communities Attribute", RFC 1997, August 1996. [RFC2842] Chandra, R., and Scudder, J., "Capabilities Advertisement with BGP-4", RFC 2842, May 2000. [RFC3065] Traina, P., McPherson, D., Scudder, J., "Autonomous System Confederations for BGP", RFC3065, February 2001. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 12. Author Information Quaizar Vohra Juniper Networks 1194 N.Mathilda Ave Sunnyvale, CA 94089 e-mail: email@example.com Enke Chen Cisco Systems, Inc. 170 W. Tasman Dr. San Jose, CA 95134 e-mail: firstname.lastname@example.org 13. Intellectual Property Considerations The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- email@example.com. 14. Full Copyright Notice Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.