idnits 2.17.1 draft-ietf-idr-bgp-gr-notification-08.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 -- The document date (December 9, 2016) is 2696 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 (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force K. Patel 3 Internet-Draft R. Fernando 4 Intended status: Standards Track Cisco Systems 5 Expires: June 12, 2017 J. Scudder 6 J. Haas 7 Juniper Networks 8 December 9, 2016 10 Notification Message support for BGP Graceful Restart 11 draft-ietf-idr-bgp-gr-notification-08.txt 13 Abstract 15 The current BGP Graceful Restart mechanism limits the usage of BGP 16 Graceful Restart to BGP protocol messages other than a BGP 17 NOTIFICATION message. This document defines an extension to the BGP 18 Graceful Restart that permits the Graceful Restart procedures to be 19 performed when the BGP speaker receives a BGP NOTIFICATION Message or 20 the Hold Time expires. This document also defines a new BGP 21 NOTIFICATION Cease Error subcode whose effect is to request a full 22 session restart instead of a Graceful Restart. 24 Status of This Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at http://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 This Internet-Draft will expire on June 12, 2017. 41 Copyright Notice 43 Copyright (c) 2016 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (http://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the Simplified BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 59 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 60 2. Modifications to BGP Graceful Restart Capability . . . . . . 3 61 3. BGP Hard Reset Subcode . . . . . . . . . . . . . . . . . . . 4 62 3.1. Sending a Hard Reset . . . . . . . . . . . . . . . . . . 4 63 3.2. Receiving a Hard Reset . . . . . . . . . . . . . . . . . 5 64 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 5 65 4.1. Rules for the Receiving Speaker . . . . . . . . . . . . . 5 66 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 67 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 68 7. Security Considerations . . . . . . . . . . . . . . . . . . . 6 69 8. Normative References . . . . . . . . . . . . . . . . . . . . 6 70 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 72 1. Introduction 74 For many classes of errors, the BGP protocol must send a NOTIFICATION 75 message and reset the peering session to handle the error condition. 76 The BGP Graceful Restart extension defined in [RFC4724] requires that 77 normal BGP procedures defined in [RFC4271] be followed when a 78 NOTIFICATION message is sent or received. This document defines an 79 extension to BGP Graceful Restart that permits the Graceful Restart 80 procedures to be performed when the BGP speaker receives a 81 NOTIFICATION message or the Hold Time expires. This permits the BGP 82 speaker to avoid flapping reachability and continue forwarding while 83 the BGP speaker restarts the session to handle errors detected in the 84 BGP protocol. 86 At a high level, this document can be summed up as follows. When a 87 BGP session is reset, both speakers operate as "Receiving Speakers" 88 according to [RFC4724], meaning they retain each other's routes. 89 This is also true for HOLDTIME expiration. The functionality can be 90 defeated using a "Hard Reset" subcode for the BGP NOTIFICATION Cease 91 Error code. If a Hard Reset is used, a full session reset is 92 performed. 94 1.1. Requirements Language 96 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 97 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 98 document are to be interpreted as described in RFC 2119 [RFC2119]. 100 2. Modifications to BGP Graceful Restart Capability 102 The BGP Graceful Restart Capability is augmented to signal the 103 Graceful Restart support for BGP NOTIFICATION messages. In 104 particular, the Restart flags field and the Flags field for Address 105 Family are 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 Flags for Address Family: 149 This field contains bit flags relating to routes that were 150 advertised with the given Address Family Identifier (AFI) 151 and Subsequent Address Family Identifier (SAFI). 153 0 1 2 3 4 5 6 7 154 +-+-+-+-+-+-+-+-+ 155 |F|N| Reserved | 156 +-+-+-+-+-+-+-+-+ 158 The usage of second most significant bit "N" (which was defined in a 159 previous draft version of this specification) is deprecated. This 160 bit MUST be advertised as 0 and MUST be ignored upon receipt. 162 3. BGP Hard Reset Subcode 164 A new BGP NOTIFICATION Cease message subcode is defined known as the 165 BGP Hard Reset Subcode. The value of this subcode is discussed in 166 Section 6. We refer to a BGP NOTIFICATION Cease message with the 167 Hard Reset subcode as a Hard Reset message, or just a Hard Reset. 169 3.1. Sending a Hard Reset 171 A Hard Reset message is used to indicate to a peer with which the 172 Graceful Notification flag has been exchanged, that the session is to 173 be fully terminated. 175 When sending a Hard Reset, the data portion of the NOTIFICATION is 176 encoded as follows: 178 +--------+--------+-------- 179 | ErrCode| Subcode| Data 180 +--------+--------+-------- 182 ErrCode is a BGP Error Code (as documented in the IANA BGP Error 183 Codes registry) that indicates the reason for the hard reset. 184 Subcode is a BGP Error Subcode (as documented in the IANA BGP Error 185 Subcodes registry) as appropriate for the ErrCode. Similarly, Data 186 is as appropriate for the ErrCode and Subcode. 188 3.2. Receiving a Hard Reset 190 Whenever a BGP speaker receives a Hard Reset, the speaker MUST 191 terminate the BGP session following the standard procedures in 192 [RFC4271]. 194 4. Operation 196 A BGP speaker that is willing to receive and send BGP NOTIFICATION 197 messages in Graceful mode MUST advertise the BGP Graceful 198 Notification "N" bit using the Graceful Restart Capability as defined 199 in [RFC4724]. 201 When such a BGP speaker has received the "N" bit from its peer, and 202 receives from that peer a BGP NOTIFICATION message other than a Hard 203 Reset, it MUST follow the rules for the Receiving Speaker mentioned 204 in Section 4.1. The BGP speaker generating the BGP NOTIFICATION 205 message MUST also follow the rules for the Receiving Speaker. 207 When a BGP speaker resets its session due to a HOLDTIME expiry, it 208 should generate the relevant BGP NOTIFICATION message as mentioned in 209 [RFC4271], but subsequently it MUST follow the rules for the 210 Receiving Speaker mentioned in Section 4.1. 212 A BGP speaker SHOULD NOT send a Hard Reset to a peer from which it 213 has not received the "N" bit. We note, however, that if it did so 214 the effect would be as desired in any case, since according to 215 [RFC4271] and [RFC4724] any NOTIFICATION message, whether recognized 216 or not, results in a session reset. Thus the only negative effect to 217 be expected from sending the Hard Reset to a peer that hasn't 218 advertised compliance to this specification would be that the peer 219 would be unable to properly log the associated information. 221 Once the session is re-established, both BGP speakers SHOULD set 222 their "Forwarding State" bit to 1. If the "Forwarding State" bit is 223 not set, then according to the procedures of [RFC4724] S. 4.2, the 224 relevant routes will be flushed, defeating the goals of this 225 specification. 227 4.1. Rules for the Receiving Speaker 229 [RFC4724] S. 4.2 defines rules for the Receiving Speaker. These are 230 modified as follows. 232 As part of this extension, routes from the peer previously marked as 233 stale MUST NOT be deleted, until and unless the timer mentioned in 234 the final paragraph of [RFC4724] S. 4.2 expires, or unless a Hard 235 Reset is performed. This supersedes the "consecutive restarts" 236 requirement in the third paragraph of [RFC4724] S. 4.2. 238 In addition to the rules already specified in [RFC4724] S. 4.2 for 239 how variations in the received Graceful Restart Capability should be 240 interpreted (the paragraph that begins "Once the session is re- 241 established..."), if the Graceful Notification ("N") bit is not set 242 in the newly received Graceful Restart Capability, no new actions are 243 triggered on the Receiving Speaker -- in particular, a clear "N" bit 244 does not trigger deletion of stale routes. 246 Other than these modifications, the rules for the Receiving Speaker 247 are as specified in [RFC4724] S. 4.2. 249 5. Acknowledgements 251 The authors would like to thank Jim Uttaro for the suggestion, and 252 Bruno Decraene, Chris Hall, Paul Mattes and Robert Raszuk for their 253 review and comments. 255 6. IANA Considerations 257 IANA is requested to assign a new subcode in the "BGP Cease 258 NOTIFICATION message subcodes" registry. The suggested name for the 259 code point is "Hard Reset". The suggested value is 9. 261 7. Security Considerations 263 This extension to BGP does not change the underlying security issues 264 inherent in the existing [RFC4724] and [RFC4271]. 266 8. Normative References 268 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 269 Requirement Levels", BCP 14, RFC 2119, 270 DOI 10.17487/RFC2119, March 1997, 271 . 273 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 274 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 275 DOI 10.17487/RFC4271, January 2006, 276 . 278 [RFC4486] Chen, E. and V. Gillet, "Subcodes for BGP Cease 279 Notification Message", RFC 4486, DOI 10.17487/RFC4486, 280 April 2006, . 282 [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. 283 Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, 284 DOI 10.17487/RFC4724, January 2007, 285 . 287 Authors' Addresses 289 Keyur Patel 290 Cisco Systems 291 170 W. Tasman Drive 292 San Jose, CA 95134 293 USA 295 Email: keyupate@cisco.com 297 Rex Fernando 298 Cisco Systems 299 170 W. Tasman Drive 300 San Jose, CA 95134 301 USA 303 Email: rex@cisco.com 305 John Scudder 306 Juniper Networks 307 1194 N. Mathilda Ave 308 Sunnyvale, CA 94089 309 USA 311 Email: jgs@juniper.net 313 Jeff Haas 314 Juniper Networks 315 1194 N. Mathilda Ave 316 Sunnyvale, CA 94089 317 USA 319 Email: jhaas@juniper.net