Network Working Group K. Patel Internet-Draft R. Fernando Intended status: Standards Track Cisco Systems Expires:December 5, 2014October 29, 2015 J. Scudder J. Haas Juniper NetworksJune 3, 2014April 27, 2015 Notification Message support for BGP Graceful Restartdraft-ietf-idr-bgp-gr-notification-03.txtdraft-ietf-idr-bgp-gr-notification-04.txt Abstract The current BGP Graceful Restart mechanism limits the usage of BGP Graceful Restart to BGP protocol messages other than a BGP NOTIFICATION message. This document defines an extension to the BGP Graceful Restart that permits the Graceful Restart procedures to be performed when the BGP speaker receives a BGP NOTIFICATION Message. This document also defines a new BGP NOTIFICATION Cease Error subcode to prevent BGP speakers supporting the extension defined in this document from performing a Graceful Restart. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. 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." This Internet-Draft will expire onDecember 5, 2014.October 29, 2015. Copyright Notice Copyright (c)20142015 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 (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2. Modifications to BGP Graceful Restart Capability . . . . . . 3 3. BGP Hard Reset Subcode . . . . . . . . . . . . . . . . . . . 4 3.1. Sending a Hard Reset . . . . . . . . . . . . . . . . . . 4 3.2.ReceivingSending a Hard Reset . . . . . . . . . . . . . . . . .5. 4 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 54.1. Rules for the Receiving Speaker5. Acknowledgements . . . . . . . . . . . . .5 5. Acknowledgements. . . . . . . . . 5 6. IANA Considerations . . . . . . . . . . . . .6 6. IANA Considerations. . . . . . . . 5 7. Security Considerations . . . . . . . . . . . . . . . . . . . 67. Security Considerations8. References . . . . . . . . . . . . . . . . . . . . . . . . . 68.8.1. Normative References . . . . . . . . . . . . . . . . . . 6 8.2. Informative References . . . . . . . . . . . . . . . . . 6 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction For many classes of errors, the BGP protocol must send a NOTIFICATION message and reset the peering session to handle the error condition. The BGP Graceful Restart extension defined in [RFC4724] requires that normal BGP procedures defined in [RFC4271] be followed when a NOTIFICATION message is sent or received. This document defines an extension to BGP Graceful Restart that permits the Graceful Restart procedures to be performed when the BGP speaker receives a NOTIFICATION message. This permits the BGP speaker to avoid flapping reachability and continue forwarding while the BGP speaker restarts the session to handle errors detected in the BGP protocol.At a high level, thisThis documentcan be summed up as follows. Whendefines a BGPsession is reset, both speakers operate as "Receiving Speakers" according to [RFC4724], meaning they retain each other's routes. This is also true for HOLDTIME expiration. The functionality can be defeated using a "Hard Reset"NOTIFICATION cease Error subcode for theBGP NOTIFICATIONCease Errorcode. If a Hard Reset is used,code to prevent BGP speakers supporting the extension defined in this document from performing afull session reset is performed.Graceful Restart. 1.1. 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]. 2. Modifications to BGP Graceful Restart Capability The BGP Graceful Restart Capability is augmented to signal the Graceful Restart support for BGP NOTIFICATION messages. In particular, the Restart flags field and the Flags field for Address Family are augmented as follows: +--------------------------------------------------+ | Restart Flags (4 bits) | +--------------------------------------------------+ | Restart Time in seconds (12 bits) | +--------------------------------------------------+ | Address Family Identifier (16 bits) | +--------------------------------------------------+ | Subsequent Address Family Identifier (8 bits) | +--------------------------------------------------+ | Flags for Address Family (8 bits) | +--------------------------------------------------+ | ... | +--------------------------------------------------+ | Address Family Identifier (16 bits) | +--------------------------------------------------+ | Subsequent Address Family Identifier (8 bits) | +--------------------------------------------------+ | Flags for Address Family (8 bits) | +--------------------------------------------------+ Restart Flags: This field contains bit flags relating to restart. 0 1 2 3 +-+-+-+-+ |R|N| | +-+-+-+-+ The second most significant bit("N")"N" is defined asthea BGP Graceful Notification bit, which is used to indicate the Graceful Restart support for BGP NOTIFICATION messages.ABGP speaker indicatessupport fortheprocedures of this document, by advertising aGraceful RestartCapability with its Graceful NOTIFICATION bit set (value 1). This also impliessupport for BGP NOTIFICATION messages and its ability to handle the new BGP NOTIFICATION Cease message subcode and the format for a BGP NOTIFICATION Cease message defined in[RFC4486].[RFC4486] when the Graceful NOTIFICATION bit is set (value 1). Flags for Address Family: This field contains bit flags relating to routes that were advertised with the given AFI and SAFI. 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |F|N| Reserved | +-+-+-+-+-+-+-+-+ The usage of second most significant bit "N" is deprecated. This bitMUSTSHOULD beadvertised as 0reserved andMUST be ignored upon receipt.set to 0. 3. BGP Hard Reset Subcode A new BGPNOTIFICATIONCease message subcode is defined known astheBGP Hard Reset Subcode. The value of this subcode isdiscussed in Section 6. We refer to a BGP NOTIFICATION Cease message with the Hard Reset subcode as a Hard Reset message, or just a Hard Reset.9. 3.1. Sending a Hard Reset A Hard ResetmessageNOTIFICATION Message is used to indicate to a peer with which the Graceful Notification flag has been exchanged, that the session is to be fully terminated. When sending a HardReset,Reset NOTIFICATION, the data portion of the NOTIFICATIONis encoded as follows: +--------+--------+-------- | ErrCode| Subcode| Data +--------+--------+-------- ErrCode is a BGP Error Code (as documented in the IANA BGP Error Codes registry) that indicatesmessage MUST be used to indicate the reason for the hard reset.SubcodeThe reason is encoded using a standard BGPError Subcode (as documented in the IANA BGP Error Subcodes registry) as appropriate for the ErrCode. Similarly, Data is as appropriate for the ErrCodeCease error subcode andSubcode.MAY also include any relevant data subsequent to the subcode. 3.2.ReceivingSending a Hard Reset Whenever a BGP speaker receives a NOTIFICATION message with the Cease Error code and HardReset,Reset Error subcode, the speaker MUST terminate the BGP session following the standard procedures in [RFC4271]. 4. Operation A BGP speaker that is willing to receive and send BGP NOTIFICATION messages in Graceful modeMUSTSHOULD advertise the BGP Graceful Notification Flag "N" using the Graceful Restart Capability as defined in [RFC4724]. Whensucha BGP Speaker receives a BGP NOTIFICATIONmessage other than a Hard Reset,message, itMUSTSHOULD follow the standard rulesforof theReceiving Speakerreceiving speaker mentioned inSection 4.1.[RFC4724] for all AFI/SAFIs for which it has announced the BGP Graceful Notification flag. The BGP speaker generatingthea BGP NOTIFICATION messageMUST alsoSHOULD follow the standard rules of the receiving Speaker in [RFC4724] for all AFI/SAFIs that were announced with theReceiving Speaker.BGP Graceful Notification flag. A BGP speaker MAY continue to operate in the Graceful Restart mode even if it receives a Graceful Restart capability without a Graceful Notification Flag. When a BGP speaker resets its session due to a HOLDTIME expiry, itshould generateSHOULD follow therelevantstandard rules of the receiving speaker mentioned in [RFC4724] aside from generating a BGP NOTIFICATION message as mentioned in[RFC4271], but subsequently it MUST follow the rules for the Receiving Speaker mentioned in Section 4.1.[RFC4271]. Once the session is re-established, both BGP speakersSHOULDMUST set their "Forwarding State" bit to1. If1 if they want to apply planned graceful restart. The handling of the "Forwarding State" bitis not set, then according to the procedures of [RFC4724] S. 4.2, the relevant routes willshould beflushed, defeatingdone as specified by thegoalsprocedures ofthis specification. 4.1. Rules forthe ReceivingSpeakerspeaker in [RFC4724]S. 4.2 defines rules for the Receiving Speaker. Thesearemodified as follows.applied. As part of this extension,routes fromany possible consecutive restarts SHOULD NOT delete a route (from thepeerpeer) previously marked asstale MUST NOT be deleted,stale, untiland unless the timer mentioned in the final paragraph of [RFC4724] S. 4.2 expires, or unless a Hard Reset is performed. This supersedes the "consecutive restarts" requirement of [RFC4724] S. 4.2. In addition to the rules already specified in [RFC4724] S. 4.2 for how variations in the received Graceful Restart Capability should be interpreted (the paragraph that begins "Once the session is re- established..."), if the Graceful Notification ("N") bit is not set in the newly received Graceful Restart Capability, no new actions are triggered on the Receiving Speaker -- in particular, a clear "N" bit does not trigger deletion of stale routes. Other than these modifications, therequired by rulesfor the Receiving Speaker are as specifiedmentioned in[RFC4724] S. 4.2.[RFC4724]. 5. Acknowledgements The authors would like to thankJim Uttaro for the suggestion, and Chris Hall, Paul Mattes andRobert Raszuk for the review and comments. 6. IANA ConsiderationsIANA is requested to assignThis document defines a new BGP Cease message subcodeinknown as BGP Hard Reset Subcode. IANA mantains the"BGPlist of existing BGP CeaseNOTIFICATIONmessagesubcodes" registry. The suggested name forsubcodes. This document proposes defining a new BGP Cease message subcode known as BGP Hard Reset Subcode with thecode point is "Hard Reset". The suggestedvalueis9. 7. Security Considerations This extension to BGP does not change the underlying security issues inherent in the existing [RFC4724] and[RFC4271].[RFC4271] 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2842] Chandra, R. and J. Scudder, "Capabilities Advertisement with BGP-4", RFC 2842, May 2000. [RFC3392] Chandra, R. and J. Scudder, "Capabilities Advertisement with BGP-4", RFC 3392, November 2002. [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. [RFC4486] Chen, E. and V. Gillet, "Subcodes for BGP Cease Notification Message", RFC 4486, April 2006. [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, January 2007. 8.2. Informative References [RFC2858] Bates, T., Rekhter, Y., Chandra, R., and D. Katz, "Multiprotocol Extensions for BGP-4", RFC 2858, June 2000. Authors' Addresses Keyur Patel Cisco Systems 170 W. Tasman Drive San Jose, CA 95134 USA Email: keyupate@cisco.com Rex Fernando Cisco Systems 170 W. Tasman Drive San Jose, CA 95134 USA Email: rex@cisco.com John Scudder Juniper Networks 1194 N. Mathilda Ave Sunnyvale, CA 94089 USA Email: jgs@juniper.net Jeff Haas Juniper Networks 1194 N. Mathilda Ave Sunnyvale, CA 94089 USA Email: jhaas@juniper.net