idnits 2.17.1 draft-ietf-idr-bgp4-multiprotocol-v2-00.txt: ** The Abstract section seems to be numbered Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-25) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://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. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 9 longer pages, the longest (page 2) being 61 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack an Authors' Addresses Section. ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** The abstract seems to contain references ([IPv4], [BGP-4]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- -- 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.) -- Couldn't find a document date in the document -- date freshness check skipped. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-05) exists of draft-ietf-idr-bgp4-cap-neg-01 ** Obsolete normative reference: RFC 1771 (ref. 'BGP-4') (Obsoleted by RFC 4271) -- Possible downref: Non-RFC (?) normative reference: ref. 'IPv4' ** Obsolete normative reference: RFC 1700 (Obsoleted by RFC 3232) Summary: 13 errors (**), 0 flaws (~~), 3 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Tony Bates 3 Internet Draft Cisco Systems 4 Expiration Date: December 1998 Ravi Chandra 5 Cisco Systems 6 Dave Katz 7 Juniper Networks 8 Yakov Rekhter 9 Cisco Systems 11 Multiprotocol Extensions for BGP-4 13 draft-ietf-idr-bgp4-multiprotocol-v2-00.txt 15 1. Status of this Memo 17 This document is an Internet-Draft. Internet-Drafts are working 18 documents of the Internet Engineering Task Force (IETF), its areas, 19 and its working groups. Note that other groups may also distribute 20 working documents as Internet-Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six months 23 and may be updated, replaced, or obsoleted by other documents at any 24 time. It is inappropriate to use Internet-Drafts as reference 25 material or to cite them other than as ``work in progress.'' 27 To view the entire list of current Internet-Drafts, please check the 28 "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow 29 Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern 30 Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific 31 Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). 33 2. Abstract 35 Currently BGP-4 [BGP-4] is capable of carrying routing information 36 only for IPv4 [IPv4]. This document defines extensions to BGP-4 to 37 enable it to carry routing information for multiple Network Layer 38 protocols (e.g., IPv6, IPX, etc...). The extensions are backward 39 compatible - a router that supports the extensions can interoperate 40 with a router that doesn't support the extensions. 42 3. Overview 44 The only three pieces of information carried by BGP-4 that are IPv4 45 specific are (a) the NEXT_HOP attribute (expressed as an IPv4 46 address), (b) AGGREGATOR (contains an IPv4 address), and (c) NLRI 47 (expressed as IPv4 address prefixes). This document assumes that any 48 BGP speaker (including the one that supports multiprotocol 49 capabilities defined in this document) has to have an IPv4 address 50 (which will be used, among other things, in the AGGREGATOR 51 attribute). Therefore, to enable BGP-4 to support routing for 52 multiple Network Layer protocols the only two things that have to be 53 added to BGP-4 are (a) the ability to associate a particular Network 54 Layer protocol with the next hop information, and (b) the ability to 55 associated a particular Network Layer protocol with NLRI. To identify 56 individual Network Layer protocols this document uses Address Family, 57 as defined in [RFC1700]. 59 One could further observe that the next hop information (the 60 information provided by the NEXT_HOP attribute) is meaningful (and 61 necessary) only in conjunction with the advertisements of reachable 62 destinations - in conjunction with the advertisements of unreachable 63 destinations (withdrawing routes from service) the next hop 64 information is meaningless. This suggests that the advertisement of 65 reachable destinations should be grouped with the advertisement of 66 the next hop to be used for these destinations, and that the 67 advertisement of reachable destinations should be segregated from the 68 advertisement of unreachable destinations. 70 To provide backward compatibility, as well as to simplify 71 introduction of the multiprotocol capabilities into BGP-4 this 72 document uses two new attributes, Multiprotocol Reachable NLRI 73 (MP_REACH_NLRI), and Multiprotocol Unreachable NLRI 74 (MP_UNREACH_NLRI). The first one (MP_REACH_NLRI) is used to carry the 75 set of reachable destinations together with the next hop information 76 to be used for forwarding to these destinations. The second one 77 (MP_UNREACH_NLRI) is used to carry the set of unreachable 78 destinations. Both of these attributes are optional and non- 79 transitive. This way a BGP speaker that doesn't support the 80 multiprotocol capabilities will just ignore the information carried 81 in these attributes, and will not pass it to other BGP speakers. 83 4. Multiprotocol Reachable NLRI - MP_REACH_NLRI (Type Code 14): 85 This is an optional non-transitive attribute that can be used for the 86 following purposes: 88 (a) to advertise a feasible route to a peer 90 (b) to permit a router to advertise the Network Layer address of 91 the router that should be used as the next hop to the destinations 92 listed in the Network Layer Reachability Information field of the 93 MP_NLRI attribute. 95 (c) to allow a given router to report some or all of the 96 Subnetwork Points of Attachment (SNPAs) that exist within the 97 local system 99 The attribute is encoded as shown below: 101 +---------------------------------------------------------+ 102 | Address Family Identifier (2 octets) | 103 +---------------------------------------------------------+ 104 | Subsequent Address Family Identifier (1 octet) | 105 +---------------------------------------------------------+ 106 | Length of Next Hop Network Address (1 octet) | 107 +---------------------------------------------------------+ 108 | Network Address of Next Hop (variable) | 109 +---------------------------------------------------------+ 110 | Number of SNPAs (1 octet) | 111 +---------------------------------------------------------+ 112 | Length of first SNPA(1 octet) | 113 +---------------------------------------------------------+ 114 | First SNPA (variable) | 115 +---------------------------------------------------------+ 116 | Length of second SNPA (1 octet) | 117 +---------------------------------------------------------+ 118 | Second SNPA (variable) | 119 +---------------------------------------------------------+ 120 | ... | 121 +---------------------------------------------------------+ 122 | Length of Last SNPA (1 octet) | 123 +---------------------------------------------------------+ 124 | Last SNPA (variable) | 125 +---------------------------------------------------------+ 126 | Network Layer Reachability Information (variable) | 127 +---------------------------------------------------------+ 128 The use and meaning of these fields are as follows: 130 Address Family Identifier: 132 This field carries the identity of the Network Layer protocol 133 associated with the Network Address that follows. Presently 134 defined values for this field are specified in RFC1700 (see the 135 Address Family Numbers section). 137 Subsequent Address Family Identifier: 139 This field provides additional information about the type of 140 the Network Layer Reachability Information carried in the 141 attribute. 143 Length of Next Hop Network Address: 145 A 1 octet field whose value expresses the length of the 146 "Network Address of Next Hop" field as measured in octets 148 Network Address of Next Hop: 150 A variable length field that contains the Network Address of 151 the next router on the path to the destination system 153 Number of SNPAs: 155 A 1 octet field which contains the number of distinct SNPAs to 156 be listed in the following fields. The value 0 may be used to 157 indicate that no SNPAs are listed in this attribute. 159 Length of Nth SNPA: 161 A 1 octet field whose value expresses the length of the "Nth 162 SNPA of Next Hop" field as measured in semi-octets 164 Nth SNPA of Next Hop: 166 A variable length field that contains an SNPA of the router 167 whose Network Address is contained in the "Network Address of 168 Next Hop" field. The field length is an integral number of 169 octets in length, namely the rounded-up integer value of one 170 half the SNPA length expressed in semi-octets; if the SNPA 171 contains an odd number of semi-octets, a value in this field 172 will be padded with a trailing all-zero semi-octet. 174 Network Layer Reachability Information: 176 A variable length field that lists NLRI for the feasible routes 177 that are being advertised in this attribute. When the 178 Subsequent Address Family Identifier field is set to one of the 179 values defined in this document, each NLRI is encoded as 180 specified in the "NLRI encoding" section of this document. 182 The next hop information carried in the MP_REACH_NLRI path attribute 183 defines the Network Layer address of the border router that should be 184 used as the next hop to the destinations listed in the MP_NLRI 185 attribute in the UPDATE message. When advertising a MP_REACH_NLRI 186 attribute to an external peer, a router may use one of its own 187 interface addresses in the next hop component of the attribute, 188 provided the external peer to which the route is being advertised 189 shares a common subnet with the next hop address. This is known as a 190 "first party" next hop. A BGP speaker can advertise to an external 191 peer an interface of any internal peer router in the next hop 192 component, provided the external peer to which the route is being 193 advertised shares a common subnet with the next hop address. This is 194 known as a "third party" next hop information. A BGP speaker can 195 advertise any external peer router in the next hop component, 196 provided that the Network Layer address of this border router was 197 learned from an external peer, and the external peer to which the 198 route is being advertised shares a common subnet with the next hop 199 address. This is a second form of "third party" next hop 200 information. 202 Normally the next hop information is chosen such that the shortest 203 available path will be taken. A BGP speaker must be able to support 204 disabling advertisement of third party next hop information to handle 205 imperfectly bridged media or for reasons of policy. 207 A BGP speaker must never advertise an address of a peer to that peer 208 as a next hop, for a route that the speaker is originating. A BGP 209 speaker must never install a route with itself as the next hop. 211 When a BGP speaker advertises the route to an internal peer, the 212 advertising speaker should not modify the next hop information 213 associated with the route. When a BGP speaker receives the route via 214 an internal link, it may forward packets to the next hop address if 215 the address contained in the attribute is on a common subnet with the 216 local and remote BGP speakers. 218 An UPDATE message that carries the MP_REACH_NLRI must also carry the 219 ORIGIN and the AS_PATH attributes (both in EBGP and in IBGP 220 exchanges). Moreover, in IBGP exchanges such a message must also 221 carry the LOCAL_PREF attribute. If such a message is received from an 222 external peer, the local system shall check whether the leftmost AS 223 in the AS_PATH attribute is equal to the autonomous system number of 224 the peer than sent the message. If that is not the case, the local 225 system shall send the NOTIFICATION message with Error Code UPDATE 226 Message Error, and the Error Subcode set to Malformed AS_PATH. 228 An UPDATE message that carries no NLRI, other than the one encoded in 229 the MP_REACH_NLRI attribute, should not carry the NEXT_HOP attribute. 230 If such a message contains the NEXT_HOP attribute, the BGP speaker 231 that receives the message should ignore this attribute. 233 5. Multiprotocol Unreachable NLRI - MP_UNREACH_NLRI (Type Code 15): 235 This is an optional non-transitive attribute that can be used for the 236 purpose of withdrawing multiple unfeasible routes from service. 238 The attribute is encoded as shown below: 240 +---------------------------------------------------------+ 241 | Address Family Identifier (2 octets) | 242 +---------------------------------------------------------+ 243 | Subsequent Address Family Identifier (1 octet) | 244 +---------------------------------------------------------+ 245 | Withdrawn Routes (variable) | 246 +---------------------------------------------------------+ 248 The use and the meaning of these fields are as follows: 250 Address Family Identifier: 252 This field carries the identity of the Network Layer protocol 253 associated with the NLRI that follows. Presently defined values 254 for this field are specified in RFC1700 (see the Address Family 255 Numbers section). 257 Subsequent Address Family Identifier: 259 This field provides additional information about the type of 260 the Network Layer Reachability Information carried in the 261 attribute. 263 Withdrawn Routes: 265 A variable length field that lists NLRI for the routes that are 266 being withdrawn from service. When the Subsequent Address 267 Family Identifier field is set to one of the values defined in 268 this document, each NLRI is encoded as specified in the "NLRI 269 encoding" section of this document. 271 An UPDATE message that contains the MP_UNREACH_NLRI is not required 272 to carry any other path attributes. 274 6. NLRI encoding 276 The Network Layer Reachability information is encoded as one or more 277 2-tuples of the form , whose fields are described 278 below: 280 +---------------------------+ 281 | Length (1 octet) | 282 +---------------------------+ 283 | Prefix (variable) | 284 +---------------------------+ 286 The use and the meaning of these fields are as follows: 288 a) Length: 290 The Length field indicates the length in bits of the address 291 prefix. A length of zero indicates a prefix that matches all 292 (as specified by the address family) addresses (with prefix, 293 itself, of zero octets). 295 b) Prefix: 297 The Prefix field contains address prefixes followed by enough 298 trailing bits to make the end of the field fall on an octet 299 boundary. Note that the value of trailing bits is irrelevant. 301 7. Subsequent Address Family Identifier 303 This document defines the following values for the Subsequent Address 304 Family Identifier field carried in the MP_REACH_NLRI and 305 MP_UNREACH_NLRI attributes: 307 1 - Network Layer Reachability Information used for unicast 308 forwarding 310 2 - Network Layer Reachability Information used for multicast 311 forwarding 313 3 - Network Layer Reachability Information used for both unicast 314 and multicast forwarding 316 This document reserves values 128-255 for vendor-specific 317 applications. 319 This document reserves value 0. 321 Subsequent Address Family Identifiers (other than those reserved for 322 vendor specific use) are assigned only by the IETF consensus process 323 and IESG approval. 325 8. Use of BGP Capability Negotiation 327 A BGP speaker that uses Multiprotocol Extensions should use the 328 Capability Negotiation procedures [BGP-CAP] to determine whether the 329 speaker could use Multiprotocol Extensions with a particular peer. 331 The fields in the Capabilities Optional Parameter are set as follows. 332 The Capability Code field is set to 1 (which indicates Multiprotocol 333 Extensions capabilities). The Capability Length field is set to 4. 334 The Capability Value field is defined as: 336 0 7 15 23 31 337 +-------+-------+-------+-------+ 338 | AFI | Res. | SAFI | 339 +-------+-------+-------+-------+ 341 The use and meaning of this field is as follow: 343 AFI - Address Family Identifier (16 bit), encoded the same way 344 as in the Multiprotocol Extensions 346 Res. - Reserved (8 bit) field. Should be set to 0 by the sender 347 and ignored by the receiver. 349 SAFI - Subsequent Address Family Identifier (8 bit), encoded 350 the same way as in the Multiprotocol Extensions. 352 A speaker that supports multiple tuples includes them 353 as multiple Capabilities in the Capabilities Optional Parameter (one 354 tuple per Parameter). 356 9. Security Considerations 358 This extension to BGP does not change the underlying security issues. 360 10. Acknowledgements 362 The authors would like to thank members of the IDR Working Group for 363 their review and comments. 365 11. References 367 [BGP-CAP] "Capabilities Negotiation with BGP-4", R. Chandra, J. 368 Scudder, draft-ietf-idr-bgp4-cap-neg-01.txt, April 1988 370 [BGP-4] "A Border Gateway Protocol 4 (BGP-4)", Y. Rekhter & T. Li, 371 RFC1771, March 1995 373 [IPv4] "Internet Protocol", J. Postel, September 1981 375 [RFC1700] "Assigned Numbers", J. Reynolds, J. Postel, RFC1700, 376 October 1994 (see also http://www.iana.org/iana/assignments.html) 377 12. Author Information 379 Tony Bates 380 Cisco Systems, Inc. 381 170 West Tasman Drive 382 San Jose, CA 95134 383 email: tbates@cisco.com 385 Ravi Chandra 386 Cisco Systems, Inc. 387 170 West Tasman Drive 388 San Jose, CA 95134 389 email: rchandra@cisco.com 391 Dave Katz 392 Juniper Networks, Inc. 393 3260 Jay St. 394 Santa Clara, CA 95054 395 email: dkatz@jnx.com 397 Yakov Rekhter 398 Cisco Systems, Inc. 399 170 West Tasman Drive 400 San Jose, CA 95134 401 email: yakov@cisco.com