idnits 2.17.1 draft-ietf-idr-bgp-gr-notification-13.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 (Using the creation date from RFC4724, updated by this document, for RFC5378 checks: 2000-12-19) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (June 15, 2017) is 2499 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 (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force K. Patel 3 Internet-Draft Arrcus 4 Updates: 4724 (if approved) R. Fernando 5 Intended status: Standards Track Cisco Systems 6 Expires: December 17, 2017 J. Scudder 7 J. Haas 8 Juniper Networks 9 June 15, 2017 11 Notification Message support for BGP Graceful Restart 12 draft-ietf-idr-bgp-gr-notification-13.txt 14 Abstract 16 The BGP Graceful Restart mechanism defined in RFC 4724 limits the 17 usage of BGP Graceful Restart to BGP protocol messages other than a 18 BGP NOTIFICATION message. This document updates RFC 4724 by defining 19 an extension that permits the Graceful Restart procedures to be 20 performed when the BGP speaker receives a BGP NOTIFICATION Message or 21 the Hold Time expires. This document also defines a new BGP 22 NOTIFICATION Cease Error subcode whose effect is to request a full 23 session restart instead of a Graceful Restart. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on December 17, 2017. 42 Copyright Notice 44 Copyright (c) 2017 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 60 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 61 2. Modifications to BGP Graceful Restart Capability . . . . . . 3 62 3. BGP Hard Reset Subcode . . . . . . . . . . . . . . . . . . . 4 63 3.1. Sending a Hard Reset . . . . . . . . . . . . . . . . . . 4 64 3.2. Receiving a Hard Reset . . . . . . . . . . . . . . . . . 4 65 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 4 66 4.1. Rules for the Receiving Speaker . . . . . . . . . . . . . 5 67 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 68 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 69 7. Security Considerations . . . . . . . . . . . . . . . . . . . 6 70 8. Normative References . . . . . . . . . . . . . . . . . . . . 6 71 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 73 1. Introduction 75 For many classes of errors, the BGP protocol must send a NOTIFICATION 76 message and reset the peering session to handle the error condition. 77 The BGP Graceful Restart extension defined in [RFC4724] requires that 78 normal BGP procedures defined in [RFC4271] be followed when a 79 NOTIFICATION message is sent or received. This document defines an 80 extension to BGP Graceful Restart that permits the Graceful Restart 81 procedures to be performed when the BGP speaker receives a 82 NOTIFICATION message or the Hold Time expires. This permits the BGP 83 speaker to avoid flapping reachability and continue forwarding while 84 the BGP speaker restarts the session to handle errors detected in the 85 BGP protocol. 87 At a high level, this document can be summed up as follows. When a 88 BGP session is reset, both speakers operate as "Receiving Speakers" 89 according to [RFC4724], meaning they retain each other's routes. 90 This is also true for HOLDTIME expiration. The functionality can be 91 defeated using a "Hard Reset" subcode for the BGP NOTIFICATION Cease 92 Error code. If a Hard Reset is used, a full session reset is 93 performed. 95 1.1. Requirements Language 97 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 98 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 99 document are to be interpreted as described in RFC 2119 [RFC2119]. 101 2. Modifications to BGP Graceful Restart Capability 103 The BGP Graceful Restart Capability is augmented to signal the 104 Graceful Restart support for BGP NOTIFICATION messages. The Restart 105 flags field is augmented as follows: 107 +--------------------------------------------------+ 108 | Restart Flags (4 bits) | 109 +--------------------------------------------------+ 110 | Restart Time in seconds (12 bits) | 111 +--------------------------------------------------+ 112 | Address Family Identifier (16 bits) | 113 +--------------------------------------------------+ 114 | Subsequent Address Family Identifier (8 bits) | 115 +--------------------------------------------------+ 116 | Flags for Address Family (8 bits) | 117 +--------------------------------------------------+ 118 | ... | 119 +--------------------------------------------------+ 120 | Address Family Identifier (16 bits) | 121 +--------------------------------------------------+ 122 | Subsequent Address Family Identifier (8 bits) | 123 +--------------------------------------------------+ 124 | Flags for Address Family (8 bits) | 125 +--------------------------------------------------+ 127 Restart Flags: 129 This field contains bit flags relating to restart. 131 0 1 2 3 132 +-+-+-+-+ 133 |R|N| | 134 +-+-+-+-+ 136 The most significant ("Restart State", or "R") bit is defined in 137 [RFC4724]. 139 The second most significant bit ("N") is defined as the BGP Graceful 140 Notification bit, which is used to indicate Graceful Restart support 141 for BGP NOTIFICATION messages. A BGP speaker indicates support for 142 the procedures of this document, by advertising a Graceful Restart 143 Capability with its Graceful NOTIFICATION bit set (value 1). This 144 also implies support for the format for a BGP NOTIFICATION Cease 145 message defined in [RFC4486]. 147 3. BGP Hard Reset Subcode 149 A new BGP NOTIFICATION Cease message subcode is defined known as the 150 BGP Hard Reset Subcode. The value of this subcode is discussed in 151 Section 6. We refer to a BGP NOTIFICATION Cease message with the 152 Hard Reset subcode as a Hard Reset message, or just a Hard Reset. 154 3.1. Sending a Hard Reset 156 A Hard Reset message is used to indicate to a peer with which the 157 Graceful Notification flag has been exchanged, that the session is to 158 be fully terminated. 160 When sending a Hard Reset, the data portion of the NOTIFICATION is 161 encoded as follows: 163 +--------+--------+-------- 164 | ErrCode| Subcode| Data 165 +--------+--------+-------- 167 ErrCode is a BGP Error Code (as documented in the IANA BGP Error 168 Codes registry) that indicates the reason for the hard reset. 169 Subcode is a BGP Error Subcode (as documented in the IANA BGP Error 170 Subcodes registry) as appropriate for the ErrCode. Similarly, Data 171 is as appropriate for the ErrCode and Subcode. 173 3.2. Receiving a Hard Reset 175 Whenever a BGP speaker receives a Hard Reset, the speaker MUST 176 terminate the BGP session following the standard procedures in 177 [RFC4271]. 179 4. Operation 181 A BGP speaker that is willing to receive and send BGP NOTIFICATION 182 messages in Graceful mode MUST advertise the BGP Graceful 183 Notification "N" bit using the Graceful Restart Capability as defined 184 in [RFC4724]. 186 When such a BGP speaker has received the "N" bit from its peer, and 187 receives from that peer a BGP NOTIFICATION message other than a Hard 188 Reset, it MUST follow the rules for the Receiving Speaker mentioned 189 in Section 4.1. The BGP speaker generating the BGP NOTIFICATION 190 message MUST also follow the rules for the Receiving Speaker. 192 When a BGP speaker resets its session due to a HOLDTIME expiry, it 193 should generate the relevant BGP NOTIFICATION message as mentioned in 194 [RFC4271], but subsequently it MUST follow the rules for the 195 Receiving Speaker mentioned in Section 4.1. 197 A BGP speaker SHOULD NOT send a Hard Reset to a peer from which it 198 has not received the "N" bit. We note, however, that if it did so 199 the effect would be as desired in any case, since according to 200 [RFC4271] and [RFC4724] any NOTIFICATION message, whether recognized 201 or not, results in a session reset. Thus the only negative effect to 202 be expected from sending the Hard Reset to a peer that hasn't 203 advertised compliance to this specification would be that the peer 204 would be unable to properly log the associated information. 206 Once the session is re-established, both BGP speakers SHOULD set 207 their "Forwarding State" bit to 1. If the "Forwarding State" bit is 208 not set, then according to the procedures of [RFC4724] section 4.2, 209 the relevant routes will be flushed, defeating the goals of this 210 specification. 212 4.1. Rules for the Receiving Speaker 214 [RFC4724] section 4.2 defines rules for the Receiving Speaker. These 215 are modified as follows. 217 As part of this extension, routes from the peer previously marked as 218 stale MUST NOT be deleted, until and unless the optional timer 219 mentioned in the final paragraph of [RFC4724] section 4.2 expires, or 220 unless a Hard Reset is performed. This supersedes the "consecutive 221 restarts" requirement in the third paragraph of [RFC4724] section 222 4.2. 224 In addition to the rules already specified in [RFC4724] section 4.2 225 for how variations in the received Graceful Restart Capability should 226 be interpreted (the paragraph that begins "Once the session is re- 227 established..."), if the Graceful Notification ("N") bit is not set 228 in the newly received Graceful Restart Capability, no new actions are 229 triggered on the Receiving Speaker -- in particular, a clear "N" bit 230 does not trigger deletion of stale routes. 232 Other than these modifications, the rules for the Receiving Speaker 233 are as specified in [RFC4724] section 4.2. 235 5. Acknowledgements 237 The authors would like to thank Jim Uttaro for the suggestion, and 238 Emmanuel Baccelli, Bruno Decraene, Chris Hall, Paul Mattes and Robert 239 Raszuk for their review and comments. 241 6. IANA Considerations 243 IANA has temporarily assigned subcode 9, named "Hard Reset", in the 244 "BGP Cease NOTIFICATION message subcodes" registry. Upon publication 245 of this document as an RFC, IANA is requested to make this allocation 246 permanent. 248 7. Security Considerations 250 This extension to BGP does not change the underlying security issues 251 inherent in the existing [RFC4724] and [RFC4271]. 253 8. Normative References 255 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 256 Requirement Levels", BCP 14, RFC 2119, 257 DOI 10.17487/RFC2119, March 1997, 258 . 260 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 261 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 262 DOI 10.17487/RFC4271, January 2006, 263 . 265 [RFC4486] Chen, E. and V. Gillet, "Subcodes for BGP Cease 266 Notification Message", RFC 4486, DOI 10.17487/RFC4486, 267 April 2006, . 269 [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. 270 Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, 271 DOI 10.17487/RFC4724, January 2007, 272 . 274 Authors' Addresses 276 Keyur Patel 277 Arrcus 279 Email: keyur@arrcus.com 280 Rex Fernando 281 Cisco Systems 282 170 W. Tasman Drive 283 San Jose, CA 95134 284 USA 286 Email: rex@cisco.com 288 John Scudder 289 Juniper Networks 290 1194 N. Mathilda Ave 291 Sunnyvale, CA 94089 292 USA 294 Email: jgs@juniper.net 296 Jeff Haas 297 Juniper Networks 298 1194 N. Mathilda Ave 299 Sunnyvale, CA 94089 300 USA 302 Email: jhaas@juniper.net