Network Working Group Daniel Walton Internet Draft Alvaro Retana Expiration Date: August 2006 Enke Chen Cisco Systems Advertisement of Multiple Paths in BGP draft-walton-bgp-add-paths-05.txt 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 a "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Abstract In this document we propose a BGP extension that allows the advertisement of multiple paths for the same address prefix without the new paths implicitly replacing any previous ones. The essence of the extension is that each path is identified by a path identifier in addition to the address prefix. Walton, et al Expiration Date August 2006 [Page 1] INTERNET DRAFT draft-walton-bgp-add-paths-05.txt February 2006 1. Introduction The BGP specification [RFC4271] defines an "Update-Send Process" to advertise the routes chosen by the Decision Process to other BGP speakers. No provisions are made to allow the advertisement of multiple paths for the same address prefix, or Network Layer Reachability Information (NLRI). In fact, a route with the same NLRI as a previously advertised route implicitly replaces the previous advertisement. In this document we propose a BGP extension that allows the advertisement of multiple paths for the same address prefix without the new paths implicitly replacing any previous ones. The essence of the extension is that each path is identified by a path identifier in addition to the address prefix. 2. 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]. 3. How to Identify a Path As defined in [RFC4271], a path refers to the information reported in the path attribute field of an UPDATE message. As the procedures specified in [RFC4271] allow only the advertisement of one path for a particular address prefix, a path for an address prefix from a BGP peer can be keyed on the address prefix. In order for a BGP speaker to advertise multiple paths for the same address prefix, a new identifier (termed "Path Identifier" hereafter) needs to be introduced so that a particular path for an address prefix can be identified by the combination of the address prefix and the Path Identifier. Depending on the application and the configuration of a particular peer, the Path Identifier for a path can be an AS number, or a BGP Identifier, or an opaque number, with which a path is associated by the BGP speaker that advertises the path. Walton, et al Expiration Date August 2006 [Page 2] INTERNET DRAFT draft-walton-bgp-add-paths-05.txt February 2006 4. Extended NLRI Encodings In order to carry the Path Identifier in an UPDATE message, the existing NLRI encodings specified in [RFC4271, RFC2858] are extended as the following: +-----------------------------+ | Path Identifier (4 octets) | +-----------------------------+ | Length (1 octet) | +-----------------------------+ | Prefix (variable) | +-----------------------------+ and the NLRI encoding specified in [RFC3107] is extended as the following: +-----------------------------+ | Path Identifier (4 octets) | +-----------------------------+ | Length (1 octet) | +-----------------------------+ | Label (3 octets) | +-----------------------------+ ......................... +-----------------------------+ | Prefix (variable) | +-----------------------------+ The extended NLRI encodings SHALL be used only when the Path Identifier needs to be carried in an UPDATE message. The usage of the extended NLRI encodings is specified in the Operation section. Walton, et al Expiration Date August 2006 [Page 3] INTERNET DRAFT draft-walton-bgp-add-paths-05.txt February 2006 5. ADD-PATH Capability The ADD-PATH Capability is a new BGP capability [RFC2842]. The Capability Code for this capability is specified in the IANA Considerations section of this document. The Capability Length field of this capability is variable. The Capability Value field consists of zero or more of the tuples as follows: +------------------------------------------------+ | Address Family Identifier (2 octets) | +------------------------------------------------+ | Subsequent Address Family Identifier (1 octet) | +------------------------------------------------+ The meaning and use of the fields are as follows: Address Family Identifier (AFI): This field carries the identity of the Network Layer protocol for which the BGP speaker intends to advertise multiple paths. Presently defined values for this field are specified in [IANA-AFI]. Subsequent Address Family Identifier (SAFI): This field provides additional information about the type of the Network Layer Reachability Information carried in the attribute. Presently defined values for this field are specified in [IANA-SAFI]. When advertising the ADD-PATH Capability to a peer, a BGP speaker conveys to the peer that the speaker is capable of receiving multiple paths as well as the single path from the peer for address families that the speaker supports. When a tuple is included in the capability, it indicates that the BGP speaker intends to advertise multiple paths for the . If the ADD-PATH Capability is also received from the peer, the speaker would then follow the procedures for advertising multiple paths to the peer for the specified . Walton, et al Expiration Date August 2006 [Page 4] INTERNET DRAFT draft-walton-bgp-add-paths-05.txt February 2006 6. Operation The Path Identifier specified in the previous section can be used to advertise multiple paths for the same address prefix without subsequent advertisements replacing the previous ones. Apart from the fact that this is now doable, the route advertisement rules of [RFC4271] are not changed. In particular, a new advertisement for a given address prefix and a given path identifier replaces a previous advertisement for the given address prefix and the given path identifier. A BGP speaker that has implemented the procedures for receiving multiple paths MAY advertise the ADD-PATH Capability to its peers using BGP Capabilities advertisement [RFC2842]. Whether a particular tuple is included in the capability depends on the the configuration, and whether the procedures for advertising multiple paths for the are implemented. A BGP speaker MUST follow the existing procedures in generating an UPDATE message for a particular to a peer unless the BGP speaker advertises the ADD-PATH Capability that includes the , and also receives the ADD-PATH Capability from the peer, in which case the speaker MUST generate a route update for the based on the combination of the address prefix and the Path Identifier, and use the extended NLRI encodings specified in this document. The peer SHALL act accordingly in processing an UPDATE message related to a particular . 7. Applications The BGP extension specified in this document can be used by a BGP route reflector [RFC2796] or BGP Confederation ASBR [RFC3065] to advertise more than just the best path in order to eliminate persistent route oscillations [RFC3345], or to help achieve optimal routing in a network. Other applications are for further study. Walton, et al Expiration Date August 2006 [Page 5] INTERNET DRAFT draft-walton-bgp-add-paths-05.txt February 2006 8. Deployment Considerations The extension proposed in this document provides a mechanism for a BGP speaker to advertise multiple paths over a BGP session. The extension is intended for use by only a small number of applications that require such a functionality. Care needs to be taken in its deployment to ensure consistent routing and forwarding in a network. 9. IANA Considerations IANA needs to assign a capability number for the ADD-PATH Capability described in this document. 10. Security Considerations This document introduces no new security concerns to BGP or other specifications referenced in this document. 11. Acknowledgments This specification combines prior work on "Advertising Multiple Paths" by Daniel Walton, David Cook, Alvaro Retana, and John Scudder, with prior work on "Advertisement of the Group Best Paths" by Enke Chen, and Naiming Shen. The current authors wish to thank all these authors for their contribution. Many people have made valuable comments and suggestions, including Dave Meyer, Srihari Sangli, Eric Rosen, Dan Tappan, Robert Raszuk, Mark Turner, Danny McPherson and Eugene Kim. 12. Normative References [RFC4271] Rekhter, Y., T. Li, and S. Hares, Eds., "A Border Gateway Protocol 4 (BGP-4)," RFC 4271, January 2006. [RFC2842] Chandra, R. and J. Scudder, "Capabilities Advertisement with BGP-4," RFC 2842, May 2000. [RFC2858] Bates, T., R. Chandra, D. Katz and Y. Rekhter, "Multiprotocol Extensions for BGP-4," RFC 2858, June 2000. [RFC3107] Rekhter, R. and E. Rosen, "Carrying Label Information in BGP-4," RFC 3107, May 2001. Walton, et al Expiration Date August 2006 [Page 6] INTERNET DRAFT draft-walton-bgp-add-paths-05.txt February 2006 [RFC2796] Bates, T., R. Chandra, and E. Chen "BGP Route Reflection - An Alternative to Full Mesh IBGP", RFC 2796, April 2000. [RFC3065] Traina, P., D. McPherson, and J. Scudder, "Autonomous System Confederations for BGP", RFC 3065, February 2001. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels," RFC 2119, BCP 14, March 1997. [IANA-AFI] http://www.iana.org/assignments/address-family-numbers. [IANA-SAFI] http://www.iana.org/assignments/safi-namespace. 13. Informative References [RFC3345] McPherson, D., V. Gill, D. Walton, and A. Retana, "Border Gateway Protocol (BGP) Persistent Route Oscillation Condition", RFC 3345, August 2002. 14. Authors’ Addresses Daniel Walton Cisco Systems, Inc. 7025 Kit Creek Rd. Research Triangle Park, NC 27709 Email: dwalton@cisco.com Alvaro Retana Cisco Systems, Inc. 7025 Kit Creek Rd. Research Triangle Park, NC 27709 Email: aretana@cisco.com Enke Chen Cisco Systems, Inc. 170 W. Tasman Dr. San Jose, CA 95134 Email: enkechen@cisco.com Walton, et al Expiration Date August 2006 [Page 7] INTERNET DRAFT draft-walton-bgp-add-paths-05.txt February 2006 15. 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- ipr@ietf.org. 16. Full Copyright Notice Copyright (C) The Internet Society (2006). 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. Walton, et al Expiration Date August 2006 [Page 8]