idnits 2.17.1 draft-ietf-idr-ext-opt-param-12.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 RFC4271, updated by this document, for RFC5378 checks: 2006-01-13) -- 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 (April 21, 2021) is 1094 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 E. Chen 3 Internet-Draft Palo Alto Networks 4 Updates: 4271 (if approved) J. Scudder 5 Intended status: Standards Track Juniper Networks 6 Expires: October 23, 2021 April 21, 2021 8 Extended Optional Parameters Length for BGP OPEN Message 9 draft-ietf-idr-ext-opt-param-12 11 Abstract 13 The Optional Parameters in the BGP OPEN message as defined in the 14 base BGP specification are limited to 255 octets due to a one-octet 15 length field. BGP Capabilities are carried in this field and may 16 foreseeably exceed 255 octets in the future, leading to concern about 17 this limitation. 19 This document updates RFC 4271 by extending, in a backward-compatible 20 manner, the length of the Optional Parameters in the BGP OPEN. The 21 Parameter Length field of individual Optional Parameters is also 22 extended. 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 https://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 October 23, 2021. 41 Copyright Notice 43 Copyright (c) 2021 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 (https://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 1. Introduction 58 The Optional Parameters Length field in the BGP OPEN message is 59 defined in the base BGP specification [RFC4271] as one octet, thus 60 limiting the Optional Parameters field in the OPEN message to 255 61 octets. Since BGP Capabilities [RFC5492] are carried in the Optional 62 Parameters field, and new BGP capabilities continue to be introduced, 63 the limitation is a concern for BGP development. 65 This document updates [RFC4271] by extending, in a backward- 66 compatible manner, the length of the Optional Parameters in BGP OPEN. 67 This is done by using Optional Parameter Type 255 as a distinguished 68 value, that indicates an extended Optional Parameters Length field 69 follows. In this case the Parameter Length field of the individual 70 Optional Parameters in the BGP OPEN message is also extended. 72 1.1. Requirements Language 74 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 75 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 76 "OPTIONAL" in this document are to be interpreted as described in BCP 77 14 [RFC2119] [RFC8174] when, and only when, they appear in all 78 capitals, as shown here. 80 2. Update to RFC 4271 82 This document reserves Optional Parameter Type code 255 as the 83 "Extended Length" type code. 85 In the event that the length of Optional Parameters in the BGP OPEN 86 message does not exceed 255, the encodings of the base BGP 87 specification [RFC4271] MUST be used without alteration. (However, 88 an implementation MUST accept an OPEN message that uses the encoding 89 of this specification even if the length of Optional Parameters is 90 255 or less.) 92 However, if the length of Optional Parameters in the BGP OPEN message 93 does exceed 255, the OPEN message MUST be encoded according to the 94 procedure below. 96 0 1 2 3 97 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 98 +-+-+-+-+-+-+-+-+ 99 | Version | 100 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 101 | My Autonomous System | 102 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 103 | Hold Time | 104 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 105 | BGP Identifier | 106 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 107 |Non-Ext OP Len.|Non-Ext OP Type| Extended Opt. Parm. Length | 108 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 109 | | 110 | Optional Parameters (variable) | 111 | | 112 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 114 Figure 1: Extended Encoding OPEN Format 116 The Non-Extended Optional Parameters Length field (Non-Ext OP Len) 117 SHOULD be set to 255 on transmission and in any event MUST NOT be set 118 to 0, and MUST be ignored on receipt once the use of the extended 119 format is determined positively by inspection of the Non-Extended 120 Optional Parameters Type (Non-Ext OP Type) field. 122 The subsequent one-octet field (that would be the first Optional 123 Parameter Type field in the non-extended format, and is called "Non- 124 Ext OP Type" in the figure above) MUST be set to 255 on transmission. 125 On receipt, a value of 255 for this field is the indication that the 126 extended format is in use. 128 In this extended encoding, the subsequent two-octet field, termed the 129 Extended Optional Parameters Length field, is an unsigned integer 130 indicating the total length of the Optional Parameters field in 131 octets. If the value of this field is zero, no Optional Parameters 132 are present. 134 Likewise, in that situation the Optional Parameters encoding is 135 modified to be the following: 137 0 1 2 138 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 139 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 140 | Parm. Type | Parameter Length | 141 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 142 ~ Parameter Value (variable) ~ 143 | | 144 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 146 Figure 2: Extended Parameters Format 148 The rules for encoding Optional Parameters are unchanged with respect 149 to those given in [RFC4271] other than the extension of the Parameter 150 Length field to be a two-octet unsigned integer. 152 In parsing an OPEN message, if the one-octet "Optional Parameters 153 Length" field (labeled "Non-Ext OP Len." in Figure 1) is non-zero, a 154 BGP speaker MUST use the value of the octet following the one-octet 155 "Optional Parameters Length" field (labeled "Non-Ext OP Type" in 156 Figure 1) to determine both the encoding of the Optional Parameters 157 length and the size of the "Parameter Length" field of individual 158 Optional Parameters. If the value of the "Non-Ext OP Type" field is 159 255, then the encoding described above is used for the Optional 160 Parameters length. Otherwise the encoding defined in [RFC4271] is 161 used. 163 3. Backward Compatibility 165 If a BGP speaker supporting this specification (a "new speaker") is 166 peering with one which does not (an "old speaker") no 167 interoperability issues arise unless the new speaker needs to encode 168 Optional Parameters whose length exceeds 255. In that case, it will 169 transmit an OPEN message which the old speaker will interpret as 170 containing an Optional Parameter with type code 255. Since by 171 definition the old speaker will not recognize that type code, the old 172 speaker is expected to close the connection with a NOTIFICATION with 173 an Error Code of OPEN Message Error and an Error Subcode of 174 Unsupported Optional Parameters, according to Section 6.2 of 175 [RFC4271]. 177 Although the Optional Parameter Type code 255 is used in this 178 specification as the indication that the extended encoding is in use, 179 it is not a bona fide Optional Parameter Type in the usual sense, and 180 MUST NOT be used other than as described above. If encountered in 181 any position other than the first Optional Parameter Type, it MUST be 182 treated as an unrecognized Optional Parameter and handled according 183 to [RFC4271] Section 6.2. 185 It is not considered an error to receive an OPEN message whose 186 Extended Optional Parameters Length value is less than or equal to 187 255. It is not considered a fatal error to receive an OPEN message 188 whose (non-extended) Optional Parameters Length value is not 255, and 189 whose first Optional Parameter type code is 255 -- in this case the 190 encoding of this specification MUST be used for decoding the message. 192 4. IANA Considerations 194 IANA is requested to designate type code 255 in the BGP OPEN Optional 195 Parameter Types registry as the Extended Length type code. 197 5. Security Considerations 199 This extension to BGP does not change the underlying security or 200 confidentiality issues inherent in the existing BGP [RFC4272]. 202 6. Acknowledgements 204 The authors would like to thank Yakov Rekhter and Srihari Sangli for 205 discussing various options to enlarge the Optional Parameters field. 206 We would also like to thank Matthew Bocci, Bruno Decraene, John 207 Heasley, Jakob Heitz, Christer Holmberg, Pradosh Mohapatra, Keyur 208 Patel and Hannes Gredler for their valuable comments. 210 7. References 212 7.1. Normative References 214 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 215 Requirement Levels", BCP 14, RFC 2119, 216 DOI 10.17487/RFC2119, March 1997, 217 . 219 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 220 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 221 DOI 10.17487/RFC4271, January 2006, 222 . 224 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 225 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 226 May 2017, . 228 7.2. Informative References 230 [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", 231 RFC 4272, DOI 10.17487/RFC4272, January 2006, 232 . 234 [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement 235 with BGP-4", RFC 5492, DOI 10.17487/RFC5492, February 236 2009, . 238 Authors' Addresses 240 Enke Chen 241 Palo Alto Networks 243 Email: enchen@paloaltonetworks.com 245 John Scudder 246 Juniper Networks 248 Email: jgs@juniper.net