idnits 2.17.1 draft-shen-idr-flexible-color-tunnel-selection-00.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 : ---------------------------------------------------------------------------- == There are 2 instances of lines with non-RFC3849-compliant IPv6 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (September 24, 2019) is 1674 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 5512 (Obsoleted by RFC 9012) Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force Yimin Shen 3 Internet-Draft Juniper Networks 4 Intended status: Informational Ravi Singh 5 Expires: March 27, 2020 Individual Contributor 6 September 24, 2019 8 BGP Flexible Color-Based Tunnel Selection 9 draft-shen-idr-flexible-color-tunnel-selection-00 11 Abstract 13 This document discusses color-based tunnel selection for BGP payload 14 prefixes. It defines a set of extended mapping modes, and describes 15 how to use these modes to construct tunnel selection schemes to 16 achieve flexible tunnel selection. Tunnel selection schemes can be 17 implemented as policies on routers performing tunnel selection, or 18 signaled by next hop routers or a central controller via BGP. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at https://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on March 27, 2020. 37 Copyright Notice 39 Copyright (c) 2019 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (https://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 2. Specification of Requirements . . . . . . . . . . . . . . . . 3 56 3. Extended Mapping Modes . . . . . . . . . . . . . . . . . . . 3 57 4. Tunnel Selection Scheme and Operation . . . . . . . . . . . . 5 58 5. Provisioning of Tunnel Selection Schemes . . . . . . . . . . 7 59 6. Flexible Color Tunnel Selection Attribute . . . . . . . . . . 8 60 6.1. Extended Mapping Mode TLV . . . . . . . . . . . . . . . . 8 61 7. Relationship with Color-Only Bits of Color Extended Community 10 62 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 63 9. Security Considerations . . . . . . . . . . . . . . . . . . . 10 64 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 65 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 66 11.1. Normative References . . . . . . . . . . . . . . . . . . 11 67 11.2. Informative References . . . . . . . . . . . . . . . . . 11 68 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 70 1. Introduction 72 In a network using BGP to advertise payload prefixes, transporting 73 the packets of a prefix from a router to the next hop router relies 74 on the selection of a transport tunnel. This selection is normally 75 based on the prefix's BGP next hop IP address and some constraints. 76 One such constraint is the color, which is encoded in the Color 77 Extended Community [RFC5512]. Color is a generic notion which may 78 represent any characteristic or property of the network, such as 79 virtual topology, network slice, path computation algorithm, TE 80 constraint, administrative profile, etc. In this document, tunnel 81 selection considering color as a constraint is broadly referred to as 82 color-based tunnel selection. 84 In a color-based tunnel selection scenario, payload prefixes may be 85 associated with colors, through either configuration or the 86 attachment of an Color Extended Community. Likewise, transport 87 tunnels may also be associated with colors, which may be encoded in 88 BGP NLRI (e.g. BGP SR-TE policy [BGP-SR-POLICY]), attached as an 89 Extended Color Community (e.g. BGP LU), or assigned by configuration 90 (e.g. RSVP and LDP tunnels), etc. These payload prefixes and 91 tunnels are called "colored payload prefixes" and "colored tunnels", 92 respectively. In general, a payload prefix of color X is expected to 93 be mapped to a tunnel of the same color X for transport. This is 94 considered as the default mapping mode of color-based tunnel 95 selection. 97 In some cases, when a tunnel of color X cannot be found, a network 98 operator may choose to continue the tunnel selection based on other 99 mapping modes, e.g. a tunnel of another color Y, a tunnel without a 100 color, a tunnel of color X but with an IPv4-mapped IPv6 endpoint 101 address, etc. These modes provide the network operator with the 102 flexibility to take a full advantage of the tunnels in the network. 103 In this document, these modes are called "extended mapping modes", 104 and the procedure of attempting them in a user-defined order is 105 called "fallback". 107 This document defines a set of extended mapping modes to complement 108 the default mapping mode. It introduces the notion of "tunnel 109 selection scheme". A tunnel selection scheme is an ordered list of 110 extended mapping modes, which is executed in tunnel selection. When 111 a tunnel cannot be selected by using the first mode in the list, 112 fallback is performed by attempting the second mode, the third mode, 113 and so on, until a tunnel is selected or the list is exhausted. 115 Color-based tunnel selection for uncolored payload prefixes is also 116 considered in this document as a special case. By using a tunnel 117 selection scheme, an uncolored payload prefix can select a colored or 118 uncolored tunnel in a flexible manner. 120 2. Specification of Requirements 122 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 123 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 124 document are to be interpreted as described in [RFC2119] and 125 [RFC8174]. 127 3. Extended Mapping Modes 129 This document defines a set of extended mapping modes for flexible 130 color-based tunnel selection. Each mode specifies how a payload 131 prefix's endpoint IPv4 or IPv6 address (derived from BGP next hop and 132 the Tunnel Endpoint sub-TLV in the Tunnel Encapsulation Attribute 133 [BGP-TUNNEL-ENCAP]) and color are used to select a tunnel. The 134 document assumes that each payload prefix SHOULD have a single color 135 or no color, and each tunnel SHOULD have a single color or no color, 136 which is the common usage of colors. 138 In the definitions of the extended mapping modes below, N represents 139 a payload prefix's endpoint IPv4 or IPv6 address, and C represents 140 its color, if applicable. An uncolored payload prefix does not have 141 a color. An extended mapping mode may involve multiple steps or sub- 142 level fallback within it. The mode is completed as soon as a tunnel 143 is successfully selected in a certain step, and the rest steps are 144 not executed. 146 (1) IP-color, optionally with a fallback color list of {C1, ...,Cn} 148 - If the payload prefix has a color C, select a tunnel whose 149 endpoint address is N and whose color is C. 151 - Select a tunnel whose endpoint address is N and whose color is 152 C1. 154 - ... 156 - Select a tunnel whose endpoint address is N and color is Cn. 158 (2) Color-only, optionally with a fallback color list of {C1, ..., 159 Cn} 161 - If the payload prefix has a color C, select a tunnel whose color 162 is C, regardless of the tunnel's endpoint address. 164 - Select a tunnel whose color is C1, regardless of tunnel's 165 endpoint address. 167 - ... 169 - Select a tunnel whose color is Cn, regardless of tunnel's 170 endpoint address. 172 (3) IP-any-color 174 - Select a tunnel whose endpoint address is N and who has a color 175 of any value. 177 (4) IP-only 179 - Select a tunnel whose endpoint address is N and who does not 180 have a color. 182 (5) Converted-IPv6 184 This mode is applicable when N is an IPv4 address. Assume N' is the 185 IPv6 address mapped from N. 187 - Select a tunnel whose endpoint address is N' and who does not 188 have a color. 190 (6) Converted-IPv6-color, optionally a fallback color list of {C1, 191 ..., Cn} 192 This mode is applicable when N is an IPv4 address. Assume N' is the 193 IPv6 address mapped from N. 195 - If the payload prefix has a color C, select a tunnel whose 196 endpoint address is N' and whose color is C. 198 - Select a tunnel whose endpoint address is N' and whose color is 199 C1. 201 - ... 203 - Select a tunnel whose endpoint address is N' and whose color is 204 Cn. 206 (7) Converted-IPv6-any-color 208 This mode is applicable when N is an IPv4 address. Assume N' is the 209 IPv6 address mapped from N. 211 - Select a tunnel whose endpoint address is N' and who has a color 212 of any value. 214 (8) Color-profile 216 - If the payload prefix has a color C, use C as key to look up a 217 profile to construct tunnel selection constraints, and use the 218 constraints to select a tunnel. 220 As shown above, the IP-color, Color-only, and Converted-IPv6-color 221 modes may have a fallback color list for achieving sub-level "cross- 222 color" fallback. 224 More modes MAY be defined in the future. 226 4. Tunnel Selection Scheme and Operation 228 A tunnel selection scheme is defined by an ordered list of extended 229 mapping modes. The first mode is called a "primary" mode, and all 230 the subsequent modes are called "fallback" modes. A scheme MUST have 231 a primary mode, and MAY or MAY not have any fallback mode. 233 When a scheme is executed, each mode in the list is attempted one at 234 a time sequentially, and within the mode, each step is executed 235 sequentially. The process continues until a tunnel is selected or 236 the list is exhausted. When a given a tunnel is selected 237 successfully by a certain step of a certain mode, the scheme is 238 considered as completed, and all subsequent steps of the mode and all 239 the subsequent modes in the list are skipped. If no tunnel is 240 selected when the list is exhausted, the corresponding payload prefix 241 will remain as unresolved for transport. When a previously selected 242 tunnel becomes inoperative, the scheme SHOULD be rerun to select a 243 new tunnel. 245 It is possible that a tunnel was previously selected, and sometime 246 later another tunnel of higher preference (in the tunnel selection 247 scheme or in a fallback color list) becomes available. In this case, 248 the new tunnel MAY be selected to replace the current tunnel. This 249 procedure is called reversion. A reversion may be performed manually 250 by a network operator, or triggered automatically by the situation. 252 Note that a tunnel selection scheme with extended mapping modes is a 253 new criterion added to tunnel selection. It SHOULD be used in 254 parallel with other applicable criteria, such as protocol type, 255 tunnel type, or attributes contained in the Tunnel Encapsulation 256 Attribute. This document does not change the processing of these 257 criteria. 259 The following are some examples of tunnel selection schemes. 261 Example 1: 263 Assume a payload prefix has a tunnel endpoint IPv4 address 264 203.0.113.1 and a color RED, and it is associated with the following 265 tunnel selection scheme. 267 (1) IP-color 269 (2) Converted-IPv6-color 271 (3) IP-only 273 The intended tunnel selection procedure is: 275 (1) Find a tunnel whose endpoint IPv4 address is 203.0.113.1 and 276 whose color is RED. 278 (2) If the above is unsuccessful, convert the IPv4 address to an 279 IPv6 address 2002:cb00:7101::/64. Find a tunnel whose endpoint 280 IPv6 address is 2002:cb00:7101::/64 and whose color is RED. 282 (3) If the above is unsuccessful, find a tunnel whose endpoint 283 IPv4 address is 203.0.113.1 and who does not have a color. 285 Example 2: 287 Assume a prefix has a tunnel endpoint IPv4 address 203.0.113.1 and a 288 color RED, and it is associated with the following tunnel selection 289 scheme. 291 (1) IP-color, with a fallback color list = {BLUE, GREEN} 293 (2) Converted-IPv6-color, with a fallback color list = {WHITE} 295 (3) IP-only 297 The intended tunnel selection procedure is: 299 (1) Find a tunnel whose endpoint IPv4 address is 203.0.113.1 and 300 whose color is RED. If it is unsuccessful, find a tunnel whose 301 endpoint IPv4 address is 203.0.113.1 and whose color is BLUE. If 302 it is unsuccessful, find a tunnel whose endpoint IPv4 address is 303 203.0.113.1 and whose color GREEN. 305 (2) If the above is unsuccessful, convert the IPv4 address to an 306 IPv6 address 2002:cb00:7101::/64. Find a tunnel whose endpoint 307 IPv6 address is 2002:cb00:7101::/64 and whose color is RED. If it 308 is unsuccessful, find a tunnel whose endpoint IPv6 address is 309 2002:cb00:7101::/64 and whose color is WHITE. 311 (3) If the above is unsuccessful, find a tunnel whose endpoint 312 IPv4 address is 203.0.113.1 and who does not have a color. 314 5. Provisioning of Tunnel Selection Schemes 316 A tunnel selection scheme with extended mapping modes MAY be 317 provisioned for a payload prefix on a router which performs tunnel 318 selection. In this case, the scheme may be implemented as a policy 319 and applied on the router. The syntax of such policy varies by 320 vendors, and hence is out of the scope of this document. 322 The tunnel selection scheme MAY also be provisioned on the BGP next 323 hop router or a central controller where the UPDATE message of the 324 payload prefix is originated. To facilitate this, the document 325 defines a new "Flexible Color Tunnel Selection" attribute to carry 326 the information in the UPDATE message. 328 In the case where a given payload prefix has one scheme specified by 329 a local policy on the current router, and another scheme received in 330 the Flexible Color Tunnel Selection attribute, the router SHOULD 331 treat the policy as a higher preference than the received 332 information. 334 If a payload prefix does not have any associated tunnel selection 335 scheme, the default mode applicable to a colored or non-colored 336 payload prefix SHOULD be used in tunnel selection. 338 6. Flexible Color Tunnel Selection Attribute 340 The Flexible Color Tunnel Selection attribute is an optional, non- 341 transitive BGP path attribute that is used to carry the information 342 of a tunnel selection scheme. It is defined as a set of Type/Length/ 343 Value (TLV) triplets. By advertising the Flexible Color Tunnel 344 Selection attribute in the UPDATE message of a payload prefix, the 345 BGP speaker expresses the fact that it expects the tunnel selection 346 process of the payload prefix to use the contained information. 348 This document defines one TLV, i.e. the Extended Mapping Mode TLV. 350 6.1. Extended Mapping Mode TLV 352 The Extended Mapping Mode TLV carries the information of an extended 353 mapping mode. 355 0 1 2 3 356 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 357 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 358 | 0x01 | Length | 359 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 360 | Mode | 361 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 362 | Color_1 (optional) | 363 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 364 | ~ (optional) | 365 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 366 | Color_n (optional) | 367 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 369 Figure 1 371 The TLV Type is 0x01. 373 The TLV Length is the total number of octets of the TLV Value field. 375 The TLV Value field contains a 4-octet extended mapping mode defined 376 as below, and an optional fallback color list. 378 1 - IP-color 380 2 - Color-only 381 3 - IP-any-color 383 4 - IP-only 385 5 - Converted-IPv6 387 6 - Converted-IPv6-color 389 7 - Converted-IPv6-any-color 391 8 - Color-profile 393 The IP-color, Color-only and Converted-IPv6-color modes MAY 394 optionally have a fallback color list. The list contains one or 395 multiple 4-octect color values, i.e. Color_1, ..., Color_n, in the 396 order from the highest preference to the lowest preference. 398 Extended Mapping Mode TLVs are encoded in the Flexible Color Tunnel 399 Selection attribute in the following manner: 401 First, an Extended Mapping Mode TLV containing the primary mode is 402 added. If this mode is IP-Color, Color-Only, or Converted- 403 IPv6-Color, and if cross-color fallback is applicable to this 404 mode, the TLV will contain a fallback color list. 406 If there is one or multiple desired fallback modes, an Extended 407 Mapping Mode TLV containing the first fallback mode is added. If 408 this mode is IP-Color, Color-Only, or Converted-IPv6-Color, and if 409 cross-color fallback is applicable to this mode, the TLV will 410 contain a fallback color list. 412 This process continues, until an Extended Mapping Mode TLV 413 containing the last fallback mode is added. If this mode is IP- 414 Color, Color-Only, or Converted-IPv6-Color, and if cross-color 415 fallback is applicable to this mode, the TLV will contain a 416 fallback color list. 418 In decoding a received Flexible Color Tunnel Selection attribute, a 419 receiving router MUST interpret the preference order as the above for 420 the Extended Mapping Mode TLVs contained. If an Extended Mapping 421 Mode TLV contains a mode which is not IP-Color, Color-Only, or 422 Converted-IPv6-Color but has a fallback color list, the entire 423 Flexible Color Tunnel Selection attribute SHOULD be considered as 424 malformatted and ignored. In this case, tunnel selection for the 425 payload prefix SHOULD revert to the default color or non-color 426 mapping mode. 428 A receiving router MUST consider a payload prefix as having a 429 modified tunnel selection scheme in any of the following situations, 430 and perform tunnel selection accordingly: 432 The payload prefix did not have a Flexible Color Tunnel Selection 433 attribute in the previous UPDATE message, and it has one in the 434 latest UPDATE message. Tunnel selection MUST be performed based 435 on the latest tunnel selection scheme. 437 The payload prefix had a Flexible Color Tunnel Selection attribute 438 in the previous UPDATE message, but it does not have one in the 439 latest UPDATE message. Tunnel selection MUST revert to the 440 default color or non-color mapping mode. 442 The payload prefix had a Flexible Color Tunnel Selection attribute 443 in the previous UPDATE message, and it has one with different 444 content in the latest UPDATE message. Tunnel selection MUST be 445 performed based on the latest tunnel selection scheme. 447 7. Relationship with Color-Only Bits of Color Extended Community 449 [RFC8402] and [BGP-SR-POLICY] define two "Color-Only" bits (i.e. CO 450 bits) in the BGP Color Extended Community for color-based tunnel 451 selection in the context of segment routing. Each of the four 452 combinations of the CO bits corresponds to a predefined fallback 453 scheme. This document complements these documents by supporting more 454 generic and flexible fallback schemes which are user definable. In 455 fact, the fallback schemes of the CO bits can be fully specified by 456 using the Flexible Color Based Tunnel Selection attribute. If the 457 Color Extended Community with CO bits are used in an UPDATE message, 458 the Flexible Color Tunnel Selection attribute SHOULD NOT be used at 459 the same time, in order to avoid possible collision between them. In 460 case they are both present in an UPDATE message, preference SHOULD be 461 given to the CO bits, and the Flexible Color Tunnel Selection 462 attribute SHOULD be ignored. 464 8. IANA Considerations 466 This document requires the IANA to allocate a Path Attribute type 467 value for the Flexible Color Tunnel Selection attribute. 469 9. Security Considerations 471 This document does not introduce any security issues. 473 10. Acknowledgements 475 Thanks to Jeff Hass and Srihari Sangli for their kind reviews and 476 comments which helped to improve the clarity of this document. 478 11. References 480 11.1. Normative References 482 [RFC5512] Mohapatra, P. and E. Rosen, "The BGP Encapsulation 483 Subsequent Address Family Identifier (SAFI) and the BGP 484 Tunnel Encapsulation Attribute", RFC 5512, 485 DOI 10.17487/RFC5512, April 2009, 486 . 488 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 489 Decraene, B., Litkowski, S., and R. Shakir, "Segment 490 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 491 July 2018, . 493 [BGP-SR-POLICY] 494 Previdi, S., Filsfils, C., Mattes, P., Rosen, E., Jain, 495 D., and S. Lin, "Advertising Segment Routing Policies in 496 BGP", draft-previdi-idr-segment-routing-te-policy (work in 497 progress), 2019. 499 [BGP-TUNNEL-ENCAP] 500 Patel, K., Velde, G., and S. Sangli, "The BGP Tunnel 501 Encapsulation Attribute", draft-vandevelde-idr-remote- 502 next-hop (work in progress), 2019. 504 11.2. Informative References 506 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 507 Requirement Levels", BCP 14, RFC 2119, 508 DOI 10.17487/RFC2119, March 1997, 509 . 511 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 512 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 513 May 2017, . 515 Authors' Addresses 516 Yimin Shen 517 Juniper Networks 518 10 Technology Park Drive 519 Westford, MA 01886 520 USA 522 Phone: +1 9785890722 523 Email: yshen@juniper.net 525 Ravi Singh 526 Individual Contributor 528 Email: ravi.singh.ietf@gmail.com