summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc5492.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc5492.txt')
-rw-r--r--doc/rfc/rfc5492.txt395
1 files changed, 395 insertions, 0 deletions
diff --git a/doc/rfc/rfc5492.txt b/doc/rfc/rfc5492.txt
new file mode 100644
index 0000000..d5df5a9
--- /dev/null
+++ b/doc/rfc/rfc5492.txt
@@ -0,0 +1,395 @@
+
+
+
+
+
+
+Network Working Group J. Scudder
+Request for Comments: 5492 Juniper Networks
+Obsoletes: 3392 R. Chandra
+Category: Standards Track Sonoa Systems
+ February 2009
+
+
+ Capabilities Advertisement with BGP-4
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (c) 2009 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents in effect on the date of
+ publication of this document (http://trustee.ietf.org/license-info).
+ Please review these documents carefully, as they describe your rights
+ and restrictions with respect to this document.
+
+ This document may contain material from IETF Documents or IETF
+ Contributions published or made publicly available before November
+ 10, 2008. The person(s) controlling the copyright in some of this
+ material may not have granted the IETF Trust the right to allow
+ modifications of such material outside the IETF Standards Process.
+ Without obtaining an adequate license from the person(s) controlling
+ the copyright in such materials, this document may not be modified
+ outside the IETF Standards Process, and derivative works of it may
+ not be created outside the IETF Standards Process, except to format
+ it for publication as an RFC or to translate it into languages other
+ than English.
+
+Abstract
+
+ This document defines an Optional Parameter, called Capabilities,
+ that is expected to facilitate the introduction of new capabilities
+ in the Border Gateway Protocol (BGP) by providing graceful capability
+ advertisement without requiring that BGP peering be terminated.
+
+ This document obsoletes RFC 3392.
+
+
+
+Scudder & Chandra Standards Track [Page 1]
+
+RFC 5492 Capabilities Advertisement February 2009
+
+
+1. Introduction
+
+ The base BGP-4 specification [RFC4271] requires that when a BGP
+ speaker receives an OPEN message with one or more unrecognized
+ Optional Parameters, the speaker must terminate the BGP peering.
+ This complicates the introduction of new capabilities in BGP.
+
+ This specification defines an Optional Parameter and processing rules
+ that allow BGP speakers to communicate capabilities in an OPEN
+ message. A pair of BGP speakers that supports this specification can
+ establish the peering even when presented with unrecognized
+ capabilities, so long as all capabilities required to support the
+ peering are supported.
+
+2. Requirements Language
+
+ 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 RFC 2119 [RFC2119].
+
+3. Overview of Operations
+
+ When a BGP speaker [RFC4271] that supports capabilities advertisement
+ sends an OPEN message to its BGP peer, the message MAY include an
+ Optional Parameter, called Capabilities. The parameter lists the
+ capabilities supported by the speaker.
+
+ A BGP speaker determines the capabilities supported by its peer by
+ examining the list of capabilities present in the Capabilities
+ Optional Parameter carried by the OPEN message that the speaker
+ receives from the peer.
+
+ A BGP speaker that supports a particular capability may use this
+ capability with its peer after the speaker determines (as described
+ above) that the peer supports this capability. Simply put, a given
+ capability can be used on a peering if that capability has been
+ advertised by both peers. If either peer has not advertised it, the
+ capability cannot be used.
+
+ A BGP speaker determines that its peer doesn't support capabilities
+ advertisement if, in response to an OPEN message that carries the
+ Capabilities Optional Parameter, the speaker receives a NOTIFICATION
+ message with the Error Subcode set to Unsupported Optional Parameter.
+ (This is a consequence of the base BGP-4 specification [RFC4271] and
+ not a new requirement.) In this case, the speaker SHOULD attempt to
+ re-establish a BGP connection with the peer without sending to the
+ peer the Capabilities Optional Parameter.
+
+
+
+
+Scudder & Chandra Standards Track [Page 2]
+
+RFC 5492 Capabilities Advertisement February 2009
+
+
+ If a BGP speaker that supports a certain capability determines that
+ its peer doesn't support this capability, the speaker MAY send a
+ NOTIFICATION message to the peer and terminate peering (see Section
+ "Extensions to Error Handling" for more details). For example, a BGP
+ speaker may need to terminate peering if it established peering to
+ exchange IPv6 routes and determines that its peer does not support
+ Multiprotocol Extensions for BGP-4 [RFC4760]. The Error Subcode in
+ the NOTIFICATION message is then set to Unsupported Capability. The
+ message MUST contain the capability or capabilities that cause the
+ speaker to send the message. The decision to send the message and
+ terminate the peering is local to the speaker. If terminated, such
+ peering SHOULD NOT be re-established automatically.
+
+ If a BGP speaker receives from its peer a capability that it does not
+ itself support or recognize, it MUST ignore that capability. In
+ particular, the Unsupported Capability NOTIFICATION message MUST NOT
+ be generated and the BGP session MUST NOT be terminated in response
+ to reception of a capability that is not supported by the local
+ speaker.
+
+4. Capabilities Optional Parameter (Parameter Type 2):
+
+ This is an Optional Parameter that is used by a BGP speaker to convey
+ to its BGP peer the list of capabilities supported by the speaker.
+ The encoding of BGP Optional Parameters is specified in Section 4.2
+ of [RFC4271]. The parameter type of the Capabilities Optional
+ Parameter is 2.
+
+ The parameter contains one or more triples <Capability Code,
+ Capability Length, Capability Value>, where each triple is encoded as
+ shown below:
+
+ +------------------------------+
+ | Capability Code (1 octet) |
+ +------------------------------+
+ | Capability Length (1 octet) |
+ +------------------------------+
+ | Capability Value (variable) |
+ ~ ~
+ +------------------------------+
+
+ The use and meaning of these fields are as follows:
+
+ Capability Code:
+
+ Capability Code is a one-octet unsigned binary integer that
+ unambiguously identifies individual capabilities.
+
+
+
+
+Scudder & Chandra Standards Track [Page 3]
+
+RFC 5492 Capabilities Advertisement February 2009
+
+
+ Capability Length:
+
+ Capability Length is a one-octet unsigned binary integer that
+ contains the length of the Capability Value field in octets.
+
+ Capability Value:
+
+ Capability Value is a variable-length field that is interpreted
+ according to the value of the Capability Code field.
+
+ BGP speakers SHOULD NOT include more than one instance of a
+ capability with the same Capability Code, Capability Length, and
+ Capability Value. Note, however, that processing of multiple
+ instances of such capability does not require special handling, as
+ additional instances do not change the meaning of the announced
+ capability; thus, a BGP speaker MUST be prepared to accept such
+ multiple instances.
+
+ BGP speakers MAY include more than one instance of a capability (as
+ identified by the Capability Code) with non-zero Capability Length
+ field, but with different Capability Value and either the same or
+ different Capability Length. Processing of these capability
+ instances is specific to the Capability Code and MUST be described in
+ the document introducing the new capability.
+
+ The Capabilities Optional Parameter (OPEN Optional Parameter Type 2)
+ SHOULD only be included in the OPEN message once. If the BGP speaker
+ wishes to include multiple capabilities in the OPEN message, it
+ SHOULD do so as discussed above -- by listing all those capabilities
+ as TLVs within a single Capabilities Optional Parameter. However,
+ for backward compatibility, a BGP speaker MUST be prepared to receive
+ an OPEN message that contains multiple Capabilities Optional
+ Parameters, each of which contains one or more capabilities TLVs.
+ The set of capabilities should be processed in the same way in either
+ case, whether it is enumerated within a single Capabilities Optional
+ Parameter of the OPEN message or split across multiple Capabilities
+ Optional Parameters.
+
+5. Extensions to Error Handling
+
+ This document defines a new Error Subcode, Unsupported Capability.
+ The value of this Subcode is 7. The Data field in the NOTIFICATION
+ message MUST list the set of capabilities that causes the speaker to
+ send the message. Each such capability is encoded in the same way as
+ it would be encoded in the OPEN message.
+
+
+
+
+
+
+Scudder & Chandra Standards Track [Page 4]
+
+RFC 5492 Capabilities Advertisement February 2009
+
+
+ As explained in the "Overview of Operations" section, the Unsupported
+ Capability NOTIFICATION is a way for a BGP speaker to complain that
+ its peer does not support a required capability without which the
+ peering cannot proceed. It MUST NOT be used when a BGP speaker
+ receives a capability that it does not understand; such capabilities
+ MUST be ignored.
+
+6. IANA Considerations
+
+ This document defines a Capability Optional Parameter along with a
+ Capability Code field. IANA maintains the registry for Capability
+ Code values. Capability Code value 0 is reserved. Capability Code
+ values 1 through 63 are to be assigned by IANA using the "IETF
+ Review" policy defined in [RFC5226]. Capability Code values 64
+ through 127 are to be assigned by IANA using the "First Come First
+ Served" policy defined in [RFC5226]. Capability Code values 128
+ through 255 are for "Private Use" as defined in [RFC5226].
+
+ IANA created and maintains a registry for OPEN message Optional
+ Parameters called "BGP OPEN Optional Parameter Types". Optional
+ Parameters are identified by the Parameter Type, which is a one-octet
+ unsigned integer. Values (0 reserved, 1-255) are to be allocated
+ according to the "IETF Review" policy as defined in [RFC5226].
+
+ The registry has been populated with the two Parameter Type codes
+ that are currently defined:
+
+ o Parameter Type 1: Authentication (deprecated) [RFC4271] [RFC5492]
+
+ o Parameter Type 2: Capabilities [RFC5492]
+
+7. Security Considerations
+
+ This extension to BGP does not change the underlying security issues
+ inherent in the existing BGP [RFC4272].
+
+8. Acknowledgments
+
+ The authors would like to thank members of the IDR Working Group and
+ the IESG and its Directorates for their review and comments.
+
+
+
+
+
+
+
+
+
+
+
+Scudder & Chandra Standards Track [Page 5]
+
+RFC 5492 Capabilities Advertisement February 2009
+
+
+9. References
+
+9.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway
+ Protocol 4 (BGP-4)", RFC 4271, January 2006.
+
+ [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
+ IANA Considerations Section in RFCs", BCP 26, RFC 5226,
+ May 2008.
+
+9.2. Informative References
+
+ [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis",
+ RFC 4272, January 2006.
+
+ [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
+ "Multiprotocol Extensions for BGP-4", RFC 4760,
+ January 2007.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Scudder & Chandra Standards Track [Page 6]
+
+RFC 5492 Capabilities Advertisement February 2009
+
+
+Appendix A. Comparison between RFC 2842 and RFC 3392
+
+ In addition to several minor editorial changes, RFC 3392 also
+ clarified how to handle multiple instances of the same capability.
+
+Appendix B. Comparison between RFC 3392 and This Document
+
+ This document makes minor editorial changes and updated references,
+ clarifies the use of the Unsupported Optional Parameter NOTIFICATION
+ message, clarifies behavior when the Capabilities Parameter is
+ included in the OPEN message multiple times, and clarifies
+ requirements by changing a number of SHOULDs to MUSTs.
+
+Authors' Addresses
+
+ John G. Scudder
+ Juniper Networks
+
+ EMail: jgs@juniper.net
+
+
+ Ravi Chandra
+ Sonoa Systems
+
+ EMail: rchandra@sonoasystems.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Scudder & Chandra Standards Track [Page 7]
+