idnits 2.17.1 draft-ietf-idr-sdwan-edge-discovery-02.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 11 instances of too long lines in the document, the longest one being 10 characters in excess of 72. == There are 23 instances of lines with non-RFC6890-compliant IPv4 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 seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (April 26, 2022) is 723 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Full Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'SDWAN-BGP-USAGE' is mentioned on line 257, but not defined == Missing Reference: 'RFC4364' is mentioned on line 136, but not defined == Missing Reference: 'RFC9016' is mentioned on line 374, but not defined == Missing Reference: 'RFC4684' is mentioned on line 427, but not defined == Missing Reference: 'RFC8277' is mentioned on line 484, but not defined == Missing Reference: 'RFC3489' is mentioned on line 688, but not defined ** Obsolete undefined reference: RFC 3489 (Obsoleted by RFC 5389) == Missing Reference: 'SECURE-VPN' is mentioned on line 861, but not defined == Unused Reference: 'RFC8192' is defined on line 1078, but no explicit reference was found in the text == Unused Reference: 'RFC5521' is defined on line 1081, but no explicit reference was found in the text == Unused Reference: 'RFC9061' is defined on line 1085, but no explicit reference was found in the text == Unused Reference: 'CONTROLLER-IKE' is defined on line 1091, but no explicit reference was found in the text == Unused Reference: 'LISP-GEOLOC' is defined on line 1095, but no explicit reference was found in the text == Unused Reference: 'SDN-IPSEC' is defined on line 1098, but no explicit reference was found in the text == Unused Reference: 'VPN-over-Internet' is defined on line 1104, but no explicit reference was found in the text == Unused Reference: 'DMVPN' is defined on line 1108, but no explicit reference was found in the text == Unused Reference: 'DSVPN' is defined on line 1112, but no explicit reference was found in the text == Unused Reference: 'ITU-T-X1036' is defined on line 1116, but no explicit reference was found in the text == Unused Reference: 'Net2Cloud-Problem' is defined on line 1120, but no explicit reference was found in the text == Unused Reference: 'Net2Cloud-gap' is defined on line 1124, but no explicit reference was found in the text ** Downref: Normative reference to an Draft Standard RFC: RFC 4271 ** Downref: Normative reference to an Draft Standard RFC: RFC 4760 ** Downref: Normative reference to an Proposed Standard RFC: RFC 9012 == Outdated reference: A later version (-15) exists of draft-farinacci-lisp-geo-09 == Outdated reference: A later version (-14) exists of draft-ietf-i2nsf-sdn-ipsec-flow-protection-07 == Outdated reference: A later version (-06) exists of draft-sajassi-bess-secure-evpn-02 == Outdated reference: A later version (-01) exists of draft-rosen-bess-secure-l3vpn-00 == Outdated reference: A later version (-39) exists of draft-ietf-rtgwg-net2cloud-problem-statement-12 == Outdated reference: A later version (-09) exists of draft-ietf-rtgwg-net2cloud-gap-analysis-07 Summary: 5 errors (**), 0 flaws (~~), 28 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group L. Dunbar 2 Internet Draft Futurewei 3 Intended status: Standard S. Hares 4 Expires: October 26, 2022 Hickory Hill Consulting 5 R. Raszuk 6 NTT Network Innovations 7 K. Majumdar 8 CommScope 9 Gyan Mishra 10 Verizon 11 April 26, 2022 13 BGP UPDATE for SDWAN Edge Discovery 14 draft-ietf-idr-sdwan-edge-discovery-02 16 Abstract 18 The document describes the encoding of BGP UPDATE messages for the 19 SDWAN edge node discovery. 21 In the context of this document, BGP Route Reflector (RR) is the 22 component of the SDWAN Controller that receives the BGP UPDATE from 23 SDWAN edges and in turns propagates the information to the intended 24 peers that are authorized to communicate via the SDWAN overlay 25 network. 27 Status of this Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF), its areas, and its working groups. Note that 34 other groups may also distribute working documents as Internet- 35 Drafts. 37 Internet-Drafts are draft documents valid for a maximum of six 38 months and may be updated, replaced, or obsoleted by other documents 39 at any time. It is inappropriate to use Internet-Drafts as 40 reference material or to cite them other than as "work in progress." 41 The list of current Internet-Drafts can be accessed at 42 http://www.ietf.org/ietf/1id-abstracts.txt 44 The list of Internet-Draft Shadow Directories can be accessed at 45 http://www.ietf.org/shadow.html 47 This Internet-Draft will expire on Dec 25, 2022. 49 Copyright Notice 51 Copyright (c) 2022 IETF Trust and the persons identified as the 52 document authors. All rights reserved. 54 This document is subject to BCP 78 and the IETF Trust's Legal 55 Provisions Relating to IETF Documents 56 (http://trustee.ietf.org/license-info) in effect on the date of 57 publication of this document. Please review these documents 58 carefully, as they describe your rights and restrictions with 59 respect to this document. Code Components extracted from this 60 document must include Simplified BSD License text as described in 61 Section 4.e of the Trust Legal Provisions and are provided without 62 warranty as described in the Simplified BSD License. 64 Table of Contents 66 1. Introduction...................................................3 67 2. Conventions used in this document..............................3 68 3. Framework of SDWAN Edge Discovery..............................5 69 3.1. The Objectives of SDWAN Edge Discovery....................5 70 3.2. Comparing with Pure IPsec VPN.............................5 71 3.3. Client Route UPDATE and Hybrid Underlay Tunnel UPDATE.....7 72 3.4. Edge Node Discovery.......................................9 73 4. BGP UPDATE to Support SDWAN Segmentation......................10 74 4.1. SDWAN Segmentation, SDWAN Virtual Topology and Client VPN10 75 4.2. Constrained Propagation of Edge Capability...............11 76 5. Client Route UPDATE...........................................12 77 5.1. SDWAN VPN ID in Client Route Update......................13 78 5.2. SDWAN VPN ID in Data Plane...............................13 79 6. Hybrid Underlay Tunnel UPDATE.................................13 80 6.1. NLRI for Hybrid Underlay Tunnel Update...................13 81 6.2. SDWAN-Hybrid Tunnel Encoding.............................15 82 6.3. IPsec-SA-ID Sub-TLV......................................15 83 6.3.1. Encoding example #1 of using IPsec-SA-ID Sub-TLV....16 84 6.3.2. Encoding Example #2 of using IPsec-SA-ID Sub-TLV....17 85 6.4. Extended Port Tunnel Encapsulation Attribute Sub-TLV.....18 86 6.5. Underlay Network Properties Sub-TLV......................20 87 7. IPsec SA Property Sub-TLVs....................................21 88 7.1. IPsec SA Nonce Sub-TLV...................................21 89 7.2. IPsec Public Key Sub-TLV.................................22 90 7.3. IPsec SA Proposal Sub-TLV................................23 91 7.4. Simplified IPsec Security Association sub-TLV............23 92 7.5. IPsec SA Encoding Examples...............................24 93 8. Error & Mismatch Handling.....................................25 94 9. Manageability Considerations..................................26 95 10. Security Considerations......................................27 96 11. IANA Considerations..........................................27 97 11.1. Hybrid (SDWAN) Overlay SAFI.............................27 98 11.2. Tunnel Encapsulation Attribute Type.....................27 99 12. References...................................................28 100 12.1. Normative References....................................28 101 12.2. Informative References..................................28 102 13. Acknowledgments..............................................30 104 1. Introduction 106 [SDWAN-BGP-USAGE] illustrates how BGP [RFC4271] is used as a control 107 plane for a SDWAN network. SDWAN network refers to a policy-driven 108 network over multiple heterogeneous underlay networks to get better 109 WAN bandwidth management, visibility, and control. 111 The document describes BGP UPDATE messages for an SDWAN edge node to 112 announce its properties to its RR which then propagates that 113 information to the authorized peers. 115 2. Conventions used in this document 116 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 117 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 118 "OPTIONAL" in this document are to be interpreted as described in 119 BCP14 [RFC2119] [RFC8174] when, and only when, they appear in all 120 capitals, as shown here. 122 The following acronyms and terms are used in this document: 124 Cloud DC: Off-Premise Data Centers that usually host applications 125 and workload owned by different organizations or 126 tenants. 128 Controller: Used interchangeably with SDWAN controller to manage 129 SDWAN overlay path creation/deletion and monitor the 130 path conditions between sites. 132 CPE: Customer (Edge) Premises Equipment. 134 CPE-Based VPN: Virtual Private Secure network formed among CPEs. 135 This is to differentiate such VPNs from most commonly 136 used PE-based VPNs discussed in [RFC4364]. 138 MP-NLRI: Multi-Protocol Network Layer Reachability Information 139 [MP_REACH_NLRI] Path Attribute defined in RFC4760. 141 SDWAN End-point: can be the SDWAN edge node address, a WAN port 142 address (logical or physical) of a SDWAN edge node, or a 143 client port address. 145 OnPrem: On Premises data centers and branch offices. 147 RR Route Reflector. 149 SDWAN: Software Defined Wide Area Network. In this document, 150 "SDWAN" refers to policy-driven transporting IP packets 151 over multiple different underlay networks to get better 152 WAN bandwidth management, visibility and control. 154 SDWAN Segmentation: Segmentation is the process of dividing the 155 network into logical sub-networks. 157 SDWAN VPN: refers to the Client's VPN, which is like the VRF on the 158 PEs of a MPLS VPN. One SDWAN client VPN can be mapped 159 one or multiple SD-WAN virtual topologies. How Client 160 VPN is mapped to a SDWAN virtual topology is governed by 161 policies. 163 SDWAN Virtual Topology: Since SDWAN can connect any nodes, whereas 164 MPLS VPN connects a fixed number of PEs, one SDWAN 165 Virtual Topology refers to a set of edge nodes and the 166 tunnels (including both IPsec tunnels and/or MPLS 167 tunnels) interconnecting those edge nodes. 169 VPN Virtual Private Network. 171 VRF VPN Routing and Forwarding instance. 173 WAN Wide Area Network. 175 3. Framework of SDWAN Edge Discovery 177 3.1. The Objectives of SDWAN Edge Discovery 179 The objectives of SDWAN edge discovery are for an SDWAN edge node to 180 discover its authorized peers and their associated properties to 181 establish secure tunnels. The attributes to be propagated includes: 183 - the SDWAN (client) VPNs information, 184 - the attached routes under the SDWAN VPNs, 185 - the properties of the underlay networks over which the client 186 routes can be carried, and potentially more. 188 Some SDWAN peers are connected by both trusted VPNs and untrusted 189 public networks. Some SDWAN peers are connected only by untrusted 190 public networks. For the traffic over untrusted networks, IPsec 191 Security Associations (IPsec SA) must be established and maintained. 192 If an edge node has network ports behind a NAT, the NAT properties 193 need to be discovered by the authorized SDWAN peers. 195 Like any VPN networks, the attached client's routes belonging to 196 specific SDWAN VPNs can only be exchanged with the SDWAN peer nodes 197 authorized to communicate. 199 3.2. Comparing with Pure IPsec VPN 201 A pure IPsec VPN has IPsec tunnels connecting all edge nodes over 202 public networks. Therefore, it requires stringent authentication and 203 authorization (i.e., IKE Phase 1) before other properties of IPsec 204 SA can be exchanged. The IPsec Security Association (SA) between two 205 untrusted nodes typically requires the following configurations and 206 message exchanges: 208 - IPsec IKE to authenticate with each other 209 - Establish IPsec SA 210 o Local key configuration 211 o Remote Peer address (192.10.0.10<->172.0.01) 212 o IKEv2 Proposal directly sent to peer 213 o Encryption method, Integrity sha512 214 o Transform set 215 - Attached client prefixes discovery 216 o By running routing protocol within each IPsec SA 217 o If multiple IPsec SAs between two peer nodes are 218 established to achieve load sharing, each IPsec tunnel 219 needs to run its own routing protocol to exchange client 220 routes attached to the edges. 221 - Access List or Traffic Selector) 222 o Permit Local-IP1, Remote-IP2 224 In a BGP-controlled SDWAN network over hybrid MPLS VPN and public 225 internet underlay networks, all edge nodes and RRs are already 226 connected by private secure paths. The RRs have the policies to 227 manage the authentication of all peer nodes. More importantly, when 228 an edge node needs to establish multiple IPsec tunnels to many edge 229 nodes, all the management information can be multiplexed into the 230 secure management tunnel between RR and the edge node. Therefore, 231 the amount of authentication in a BGP-Controlled SDWAN network can 232 be significantly reduced. 234 Client VPNs are configured via VRFs, just like the configuration of 235 the existing MPLS VPN. The IPsec equivalent traffic selectors for 236 local and remote routes are achieved by importing/exporting VPN 237 Route Targets. The binding of client routes to IPsec SA is dictated 238 by policies. As a result, the IPsec configuration for a BGP 239 controlled SDWAN (with mixed MPLS VPN) can be simplified: 241 - The SDWAN controller has the authority to authenticate edges 242 and peers. Remote Peer association is controlled by the SDWAN 243 Controller (RR) 244 - The IKEv2 proposals, including the IPsec Transform set, can 245 be sent directly to peers or incorporated in a BGP UPDATE. 246 - BGP UPDATE: Announces the client route reachability for all 247 permitted parallel tunnels/paths. 248 o There is no need to run multiple routing protocols in 249 each IPsec tunnel. 251 - Importing/exporting Route Targets under each client VPN (VRF) 252 achieves the traffic selection (or permission) among clients' 253 routes attached to multiple edge nodes. 255 3.3. Client Route UPDATE and Hybrid Underlay Tunnel UPDATE 257 As described in [SDWAN-BGP-USAGE], two separate BGP UPDATE messages 258 are used for SDWAN Edge Discovery: 260 - UPDATE U1 for advertising the attached client routes, 261 This UPDATE is precisely the same as the BGP edge client route 262 UPDATE. It uses the Encapsulation Extended Community and the 263 Color Extended Community to link with the Underlay Tunnels 264 UPDATE Message as specified in section 8 of [RFC9012]. 266 A new Tunnel Type (SDWAN-Hybrid) is added and used by the 267 Encapsulation Extended Community or the Tunnel-Encap Path 268 Attribute [RFC9012] to indicate mixed underlay networks. 270 - UPDATE U2 advertises the properties of the various tunnels, 271 including IPsec, terminated at the edge node. 272 This UPDATE is for an edge node to advertise the properties of 273 directly attached underlay networks, including the NAT 274 information, pre-configured IPsec SA identifiers, and/or the 275 underlay network ISP information. This UPDATE can also include 276 the detailed IPsec SA attributes, such as keys, nonce, 277 encryption algorithms, etc. 279 In the following figure: there are four types underlay paths between 280 C-PE1 and C-PE2: 282 a) MPLS-in-GRE path. 284 b) node-based IPsec tunnel [2.2.2.2<->1.1.1.1]. 286 c) port-based IPsec tunnel [192.0.0.1 <-> 192.10.0.10]; and 288 d) port-based IPsec tunnel [172.0.0.1 <-> 160.0.0.1]. 290 +---+ 291 +--------------|RR |----------+ 292 / Untrusted +-+-+ \ 293 / \ 294 / \ 295 +---------+ MPLS Path +-------+ 296 11.1.1.x| C-PE1 A1-------------------------------B1 C-PE2 |10.1.1.x 297 | | | | 298 21.1.1.x| A2(192.10.0.10)------( 192.0.0.1)B2 |20.1.1.x 299 | | | | 300 | Addr A3(160.0.0.1) --------(170.0.0.1)B3 Addr | 301 | 1.1.1.1 | |2.2.2.2| 302 +---------+ +-------+ 304 Figure 1: Hybrid SDWAN 306 C-PE2 uses UPDATE U1 to advertise the attached client routes: 308 UDPATE U1: 310 Extended community: RT for SDWAN VPN 1 311 NLRI: AFI=? & SAFI = 1/1 312 Prefix: 10.1.1.x; 20.1.1.x 313 NextHop: 2.2.2.2 (C-PE2) 314 Encapsulation Extended Community: tunnel-type=SDWAN-Hybrid 315 Color Extended Community: RED 317 The UPDATE U1 is recursively resolved to the UPDATE U2 which 318 specifies the detailed hybrid WAN underlay tunnels terminated at the 319 C-PE2: 321 UPDATE U2: 323 NLRI: SAFI = SDWAN-Hybrid 324 (With Color RED encoded in the NLRI Site-Property field) 325 Prefix: 2.2.2.2 326 Tunnel encapsulation Path Attribute [type=SDWAN-Hybrid] 327 IPSec SA for 192.0.0.1 328 Tunnel-End-Point Sub-TLV for 192.0.0.1 [RFC9012] 329 IPsec-SA-ID sub-TLV [See the Section 6] 330 Tunnel encapsulation Path Attribute [type=SDWAN-Hybrid] 331 IPSec SA for 332 Tunnel-End-Point Sub-TLV /* for 170.0.0.1 */ 333 IPsec-SA-ID sub-TLV 334 Tunnel Encap Attr MPLS-in-GRE [type=SDWAN-Hybrid] 335 Sub-TLV for MPLS-in-GRE [Section 3.2.6 of RFC9012] 337 Note: [RFC9012] Section 11 specifies that each Tunnel Encap 338 Attribute can only have one Tunnel-End-Point sub-TLV. Therefore, two 339 separate Tunnel Encap Attributes are needed to indicate that the 340 client routes can be carried by either one. 342 3.4. Edge Node Discovery 344 The basic scheme of SDWAN edge node discovery using BGP consists of 345 the following: 347 - Secure connection to a SDWAN controller (i.e., RR in this 348 context): 349 For an SDWAN edge with both MPLS and IPsec paths, the edge node 350 should already have a secure connection to its controller, 351 i.e., RR in this context. For an SDWAN edge that is only 352 accessible via Internet, the SDWAN edge, upon power-up, 353 establishes a secure tunnel (such as TLS or SSL) with the SDWAN 354 central controller whose address is preconfigured on the edge 355 node. The central controller informs the edge node of its local 356 RR. The edge node then establishes a transport layer secure 357 session with the RR (such as TLS or SSL). 359 - The Edge node will advertise its own properties to its 360 designated RR via the secure connection. 362 - The RR propagates the received information to the authorized 363 peers. 365 - The authorized peers can establish the secure data channels 366 (IPsec) and exchange more information among each other. 367 For an SDWAN deployment with multiple RRs, it is assumed that there 368 are secure connections among those RRs. How secure connections are 369 established among those RRs is out of the scope of this document. 370 The existing BGP UPDATE propagation mechanisms control the edge 371 properties propagation among the RRs. 373 For some environments where the communication to RR is highly 374 secured, [RFC9016] IKE-less can be deployed to simplify IPsec SA 375 establishment among edge nodes. 377 4. BGP UPDATE to Support SDWAN Segmentation 378 4.1. SDWAN Segmentation, SDWAN Virtual Topology and Client VPN 380 In SDWAN deployment, "SDWAN Segmentation" is a frequently used term, 381 referring to partitioning a network into multiple sub-networks, just 382 like MPLS VPNs. "SDWAN Segmentation" is achieved by creating SDWAN 383 virtual topologies and SDWAN VPNs. An SDWAN virtual topology 384 consists of a set of edge nodes and the tunnels (a.k.a. underlay 385 paths), including both IPsec tunnels and/or MPLS VPN tunnels, 386 interconnecting those edge nodes. 388 An SDWAN VPN is the same as a client VPN, which is configured in the 389 same way as the VRFs on PEs of an MPLS VPN. One SDWAN client VPN can 390 be mapped to multiple SD-WAN virtual topologies. SDWAN Controller 391 governs the policies of mapping a client VPN to SDWAN virtual 392 topologies. 394 Each SDWAN edge node may need to support multiple VPNs. Just as a 395 Route Target is used to distinguish different MPLS VPNs, an SDWAN 396 VPN ID is used to differentiate the SDWAN VPNs. For example, in the 397 picture below, the "Payment-Flow" on C-PE2 is only mapped to the 398 virtual topology of C-PEs to/from Payment Gateway, whereas other 399 flows can be mapped to a multipoint-to-multipoint virtual topology. 401 +---+ 402 +--------------|RR |----------+ 403 / Untrusted +-+-+ \ 404 / \ 405 / \ 406 +---------+ MPLS Path +-------+ 407 11.1.1.x| C-PE1 A1-------------------------------B1 C-PE2 |10.1.1.x 408 | | | | 409 21.1.1.x| A2(192.10.0.10)------( 192.0.0.1)B2 |20.1.1.x 410 | | | | 411 | Addr A3(160.0.0.1) --------(170.0.0.1)B3 Addr |11.2.2.x 412 | 1.1.1.1 | / |2.2.2.2| 413 +---------+ / +-------+ 414 \ / 415 \ /PaymentFlow 416 \ / 417 \ +----+----+ 418 +---------------| payment | 419 | Gateway | 420 +---------+ 422 Figure 2: SDWAN Virtual Topology & VPN 424 4.2. Constrained Propagation of Edge Capability 426 BGP has a built-in mechanism to dynamically achieve the 427 constrained distribution of edge information. [RFC4684] describes 428 the BGP RT constrained distribution. In a nutshell, an SDWAN edge 429 sends RT Constraint (RTC) NLRI to the RR for the RR to install an 430 outbound route filter, as shown in the figure below: 432 RT Constraint RT constraint 433 NLRI={SDWAN#1, SDWAN#2} NLRI={SDWAN#1, SDWAN#3} 434 -----> +---+ <----------- 435 +--------------------|RR1|------------------+ 436 | Outbound Filter +---+ Outbound Filter | 437 | Permit SDWAN#1,#2 Permit SDWAN#1,#3| 438 | Deny all Deny all | 439 | <------- ---------> | 440 | | 441 +-----+---+ MPLS Path +-----+-+ 442 11.1.1.x| C-PE1 A1-------------------------------B1 C-PE2 |10.1.1.x 443 | | | | 444 21.1.1.x| A2(192.10.0.10)------( 192.0.0.1)B2 |20.1.1.x 445 | | | | 446 | Addr A3(160.0.0.1) --------(170.0.0.1)B3 Addr | 447 | 1.1.1.1 | |2.2.2.2| 448 +---------+ +-------+ 449 SDWAN VPN #1 SDWAN VPN #1 450 SDWAN VPN #2 SDWAN VPN #3 451 Figure 3: Constraint propagation of Edge Property 453 However, a SDWAN overlay network can span across untrusted 454 networks, RR can't trust the RT Constraint (RTC) NLRI BGP UPDATE 455 from any nodes. RR can only process the RTC NLRI from authorized 456 peers for a SDWAN VPN. 458 It is out of the scope of this document on how RR is configured 459 with the policies to filter out unauthorized nodes for specific 460 SDWAN VPNs. 462 When the RR receives BGP UPDATE from an edge node, it propagates 463 the received UPDATE message to the nodes that are in the Outbound 464 Route filter for the specific SDWAN VPN. 466 5. Client Route UPDATE 468 The SDWAN network's Client Route UPDATE message is the same as the 469 MPLS VPN client route UDPATE message. The SDWAN Client Route UPDATE 470 message uses the Encapsulation Extended Community and the Color 471 Extended Community to link with the Underlay Tunnels UPDATE Message. 473 5.1. SDWAN VPN ID in Client Route Update 475 An SDWAN VPN is same as a client VPN in a BGP controlled SDWAN 476 network. The Route Target Extended Community should be included in a 477 Client Route UPDATE message to differentiate the client routes from 478 routes belonging to other VPNs. 480 5.2. SDWAN VPN ID in Data Plane 482 For an SDWAN edge node which can be reached by both MPLS and IPsec 483 paths, the client packets reached by MPLS network will be encoded 484 with the MPLS Labels based on the scheme specified by [RFC8277]. 486 For GRE Encapsulation within an IPsec tunnel, the GRE key field can 487 be used to carry the SDWAN VPN ID. For network virtual overlay 488 (VxLAN, GENEVE, etc.) encapsulation within the IPsec tunnel, the 489 Virtual Network Identifier (VNI) field is used to carry the SDWAN 490 VPN ID. 492 6. Hybrid Underlay Tunnel UPDATE 494 The hybrid underlay tunnel UPDATE is to advertise the detailed 495 properties of hybrid types of tunnels terminated at a SDWAN edge 496 node. 498 A client route UDPATE is recursively tied to an underlay tunnel 499 UDPATE by the Color Extended Community included in client route 500 UPDATE. 502 6.1. NLRI for Hybrid Underlay Tunnel Update 504 A new NLRI is introduced within the MP_REACH_NLRI Path Attribute of 505 RFC4760, for advertising the detailed properties of hybrid types of 506 tunnels terminated at the edge node, with SAFI=SDWAN (code = 74): 508 +------------------+ 509 | NLRI Length | 1 octet 510 +------------------+ 511 | Site-Type | 2 Octet 512 +------------------+ 513 | Port-Local-ID | 4 octets 514 +------------------+ 515 | SDWAN-Color | 4 octets 516 +------------------+ 517 | SDWAN-Node-ID | 4 or 16 octets 518 +------------------+ 520 where: 522 - NLRI Length: 1 octet of length expressed in bits as defined in 523 [RFC4760]. 524 - Site Type: 2 octet value. The SDWAN Site Type defines the 525 different types of Site IDs to be used in the deployment. This 526 document defines the following types: 527 Site-Type = 1: For a simple deployment, such as all edge 528 nodes under one SDWAN management system, the node ID is 529 enough for the SDWAN management to map the site to its 530 precise geolocation. 531 Site-Type = 2: For large SDWAN heterogeneous deployment where 532 a Geo-Loc Sub-TLV [LISP-GEOLoc]is needed to fully describe 533 the accurate location of the node. 534 - Port local ID: SDWAN edge node Port identifier, which is locally 535 significant. If the SDWAN NLRI applies to multiple ports, this 536 field is NULL. 537 - SDWAN-Color: to correlate with the Color-Extended-community 538 included in the client routes UPDATE. 539 - SDWAN Edge Node ID: The node's IPv4 or IPv6 address. 541 6.2. SDWAN-Hybrid Tunnel Encoding 543 A new BGP Tunnel-Type=SDWAN-Hybrid (code point TBD1) is specified 544 for the Tunnel Encapsulation Attribute to indicate hybrid underlay 545 networks. 547 0 1 2 3 548 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 549 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 550 | Tunnel-Type(=SDWAN-Hybrid ) | Length (2 Octets) | 551 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 552 | Sub-TLVs | 553 | | 554 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 555 SDWAN Hybrid Underlay network Sub-TLV Value Field 557 6.3. IPsec-SA-ID Sub-TLV 559 IPsec-SA-ID Sub-TLV for the Hybrid Underlay Tunnel UPDATE indicates 560 one or more preestablished IPsec SAs by using their identifiers, 561 instead of listing all the detailed attributes of the IPsec SAs. 563 Using an IPsec-SA-ID Sub-TLV not only greatly reduces the size of 564 BGP UPDATE messages, but also allows the pairwise IPsec rekeying 565 process to be performed independently. 567 The following is the structure of the IPsec-SA-ID sub-TLV: 569 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 570 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 571 |Type= IPsec-SA-ID subTLV (TBD2)| Length (2 Octets) | 572 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 573 | IPsec SA Identifier #1 | 574 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 575 | IPsec SA Identifier #2 | 576 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 578 If the client traffic needs to be encapsulated in a specific way 579 within the IPsec ESP Tunnel, such as GRE or VxLAN, etc., the 580 corresponding Tunnel-Encap Sub-TLV needs to be prepended right 581 before the IPsec-SA-ID Sub-TLV. 583 6.3.1. Encoding example #1 of using IPsec-SA-ID Sub-TLV 585 This section provides an encoding example for the following 586 scenario: 588 - There are four IPsec SAs terminated at the same WAN Port 589 address (or the same node address) 590 - Two of the IPsec SAs use GRE (value =2) as Inner Encapsulation 591 within the IPsec Tunnel 592 - two of the IPsec SA uses VxLAN (value = 8) as the Inner 593 Encapsulation within its IPsec Tunnel. 595 Here is the encoding for the scenario: 597 0 1 2 3 598 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 599 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 600 | Tunnel-Type =SDWAN-Hybrid | Length = | 601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 602 | Tunnel-end-Point Sub-TLV | 603 ~ ~ 604 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 605 ~ GRE Sub-TLV ~ 606 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 607 | subTLV-Type = IPsec-SA-ID | Length = | 608 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 609 | IPsec SA Identifier = 1 | 610 +---------------------------------------------------------------+ 611 | IPsec SA Identifier = 2 | 612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 613 ~ VxLAN Sub-TLV ~ 614 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 615 |subTLV-Type = IPsec-SA-ID | Length= | 616 +-------------------------------+-------------------------------+ 617 | IPsec SA Identifier = 3 | 618 +-------------------------------+-------------------------------+ 619 | IPsec SA Identifier = 4 | 620 +---------------------------------------------------------------+ 622 The Length of the Tunnel-Type = SDDWAN-Hybrid is the sum of the 623 following: 624 - Tunnel-end-point sub-TLV total length 625 - The GRE Sub-TLV total length, 626 - The IPsec-SA-ID Sub-TLV length, 627 - The VxLAN sub-TLV total length, and 628 - The IPsec-SA-ID Sub-TLV length. 630 6.3.2. Encoding Example #2 of using IPsec-SA-ID Sub-TLV 632 For IPsec SAs terminated at different endpoints, multiple Tunnel Encap 633 Attributes must be included. This section provides an encoding example for 634 the following scenario: 636 - there is one IPsec SA terminated at the WAN Port address 637 192.0.0.1; and another IPsec SA terminated at WAN Port 638 170.0.0.1; 639 - Both IPsec SAs use GRE (value =2) as Inner Encapsulation within 640 the IPsec Tunnel 642 0 1 2 3 643 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 644 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 645 | Tunnel-Type =SDWAN-Hybrid | Length = | 646 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 647 | Tunnel-end-Point Sub-TLV | 648 ~ for 192.0.0.1 ~ 649 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 650 ~ GRE Sub-TLV ~ 651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 652 ~ IPsec-SA-ID sub-TLV #1 ~ 653 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 654 | Tunnel-Type =SDWAN-Hybrid | Length = | 655 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 656 | Tunnel-end-Point Sub-TLV | 657 ~ for 170.0.0.1 ~ 658 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 659 ~ GRE sub-TLV ~ 660 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 661 ~ IPsec-SA-ID sub-TLV #2 ~ 662 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 664 6.4. Extended Port Tunnel Encapsulation Attribute Sub-TLV 666 When a SDWAN edge node is connected to an underlay network via a 667 port behind NAT devices, traditional IPsec uses IKE for NAT 668 negotiation. The location of a NAT device can be such that: 669 - Only the initiator is behind a NAT device. Multiple initiators 670 can be behind separate NAT devices. Initiators can also connect 671 to the responder through multiple NAT devices. 672 - Only the responder is behind a NAT device. 673 - Both the initiator and the responder are behind a NAT device. 675 The initiator's address and/or responder's address can be 676 dynamically assigned by an ISP or when their connection crosses a 677 dynamic NAT device that allocates addresses from a dynamic address 678 pool. 680 Because one SDWAN edge can connect to multiple peers via one 681 underlay network, the pair-wise NAT exchange as IPsec's IKE is not 682 efficient. In BGP Controlled SDWAN, NAT information of a WAN port is 683 advertised to its RR in the BGP UPDATE message. It is encoded as an 684 Extended sub-TLV that describes the NAT property if the port is 685 behind a NAT device. 687 An SDWAN edge node can ask a STUN Server (Session Traversal of UDP 688 Through Network Address Translation [RFC3489]) to get the NAT 689 properties, the public IP address and the Public Port number to pass 690 to peers. 692 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 693 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 694 |Port Ext Type | EncapExt subTLV Length |I|O|R|R|R|R|R|R| 695 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 696 | NAT Type | Encap-Type |Trans networkID| RD ID | 697 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 698 | Local IP Address | 699 32-bits for IPv4, 128-bits for Ipv6 700 ~~~~~~~~~~~~ 701 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 702 | Local Port | 703 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 705 | Public IP | 706 32-bits for IPv4, 128-bits for Ipv6 707 ~~~~~~~~~~~~ 708 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 709 | Public Port | 710 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 711 | ISP-Sub-TLV | 712 ~ ~ 713 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 715 Where: 717 o Port Ext Type (TBD3): indicating it is the Port Ext SubTLV. 718 o PortExt subTLV Length: the length of the subTLV. 719 o Flags: 720 - I bit (CPE port address or Inner address scheme) 721 If set to 0, indicate the inner (private) address is IPv4. 722 If set to 1, it indicates the inner address is IPv6. 724 - O bit (Outer address scheme): 725 If set to 0, indicate the public (outer) address is IPv4. 726 If set to 1, it indicates the public (outer) address is 727 IPv6. 729 - R bits: reserved for future use. Must be set to 0 now. 731 o NAT Type.without NAT; 1:1 static NAT; Full Cone; Restricted 732 Cone; Port Restricted Cone; Symmetric; or Unknown (i.e. no 733 response from the STUN server). 734 o Encap Type.the supported encapsulation types for the port 735 facing public network, such as IPsec+GRE, IPsec+VxLAN, IPsec 736 without GRE, GRE (when packets don't need encryption) 737 o Transport Network ID.Central Controller assign a global unique 738 ID to each transport network. 739 o RD ID.Routing Domain ID.need to be global unique. 740 o Local IP.The local (or private) IP address of the port. 741 o Local Port.used by Remote SDWAN edge node for establishing 742 IPsec to this specific port. 744 o Public IP.The IP address after the NAT. If NAT is not used, 745 this field is set to NULL. 746 o Public Port.The Port after the NAT. If NAT is not used, this 747 field is set to NULL. 749 6.5. Underlay Network Properties Sub-TLV 751 The purpose of the Underlay Network Sub-TLV is to carry the WAN port 752 properties with SDWAN SAFI NLRI. It would be treated as optional 753 Sub-TLV. The BGP originator decides whether to include this Sub-TLV 754 along with the SDWAN NLRI. If this Sub-TLV is present, it would be 755 processed by the BGP receiver and to determine what local policies 756 to apply for the remote end point of the underlay tunnel. 758 The format of this Sub-TLV is as follows: 760 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 761 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 762 | Type=TBD4 | Length | Flag | Reserved | 763 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 764 |Connection Type| Port Type | Port Speed | 765 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 767 Where: 769 Type: TBD4. 771 Length: always 6 bytes. 773 Flag: a 1 octet value. 775 Reserved: 1 octet of reserved bits. It SHOULD be set to zero on 776 transmission and MUST be ignored on receipt. 778 Connection Type: There are two different types of WAN 779 Connectivity. They are listed below as: 781 Wired - 1 782 WIFI - 2 783 LTE - 3 784 5G - 4 785 Port Type: There are different types of ports. They are listed 786 Below as: 788 Ethernet - 1 789 Fiber Cable - 2 790 Coax Cable - 3 791 Cellular - 4 793 Port Speed: The port seed is defined as 2 octet value. The values 794 are defined as Gigabit speed. 796 7. IPsec SA Property Sub-TLVs 798 This section describes the detailed IPsec SA properties sub-TLVs. 800 7.1. IPsec SA Nonce Sub-TLV 802 The Nonce Sub-TLV is based on the Base DIM sub-TLV as described the 803 Section 6.1 of [SECURE-EVPN]. The IPsec SA ID is included in the 804 sub-TLV, which is to be referenced by the client route NLRI Tunnel 805 Encapsulation Path Attribute for the IPsec SA. The following fields 806 are removed because: 808 - the Originator ID is carried by the NLRI, 809 - the Tenant ID is represented by the SDWAN VPN ID Extended 810 Community, and 811 - the Subnet ID are carried by the BGP route UPDATE. 813 The format of this Sub-TLV is as follows: 815 0 1 2 3 816 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 817 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 818 | ID Length | Nonce Length |I| Flags | 819 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 820 | Rekey | 821 | Counter | 822 +---------------------------------------------------------------+ 823 | IPsec SA ID | Reserved | 824 +---------------------------------------------------------------+ 825 | | 826 ~ Nonce Data ~ 827 | | 828 +---------------------------------------------------------------+ 830 IPsec SA ID - The 2 bytes IPSec SA ID could 0 or non-zero values. It 831 is cross referenced by client route's IPSec Tunnel Encapsulation 832 IPSec-SA-ID SubTLV in Section 6. When there are multiple IPsec SAs 833 terminated at one address, such as WAN port address or the node 834 address, they are differentiated by the different IPsec SA IDs. 836 7.2. IPsec Public Key Sub-TLV 838 The IPsec Public Key Sub-TLV is derived from the Key Exchange Sub- 839 TLV described in [SECURE-EVPN] with an addition of Duration filed to 840 define the IPSec SA life span. The edge nodes would pick the 841 shortest duration value between the SDWAN SAFI pairs. 843 The format of this Sub-TLV is as follows: 845 0 1 2 3 846 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 847 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 848 | Diffie-Hellman Group Num | Reserved | 849 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 850 | | 851 ~ Key Exchange Data ~ 852 | | 853 +---------------------------------------------------------------+ 854 | Duration | 855 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 857 7.3. IPsec SA Proposal Sub-TLV 859 The IPsec SA Proposal Sub-TLV is to indicate the number of Transform 860 Sub-TLVs. This Sub-TLV aligns with the sub-TLV structure from 861 [SECURE-VPN] 863 The Transform Sub-sub-TLV will following the section 3.3.2 of 864 RFC7296. 866 7.4. Simplified IPsec Security Association sub-TLV 868 For a simple SDWAN network with edge nodes supporting only a few 869 pre-defined encryption algorithms, a simple IPsec sub-TLV can be 870 used to encode the pre-defined algorithms, as below: 872 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 873 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 874 |IPsec-simType |IPsecSA Length | Flag | 875 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 876 | Transform | Mode | AH algorithms |ESP algorithms | 877 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 878 | ReKey Counter (SPI) | 879 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 880 | key1 length | Public Key ~ 881 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 882 | key2 length | Nonce ~ 883 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 884 | Duration | 885 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 887 Where: 889 o IPsec-SimType: The type value has to be between 128~255 because 890 IPsec-SA subTLV needs 2 bytes for length to carry the needed 891 information. 892 o IPsec-SA subTLV Length (2 Byte): 25 (or more) 893 o Flags: 1 octet of flags. None are defined at this stage. Flags 894 SHOULD be set to zero on transmission and MUST be ignored on 895 receipt. 896 o Transform (1 Byte): the value can be AH, ESP, or AH+ESP. 898 o IPsec Mode (1 byte): the value can be Tunnel Mode or Transport 899 mode 900 o AH algorithms (1 byte): AH authentication algorithms supported, 901 which can be md5 | sha1 | sha2-256 | sha2-384 | sha2-512 | sm3. 902 Each SDWAN edge node can have multiple authentication. 903 algorithms; send to its peers to negotiate the strongest one. 904 o ESP (1 byte): ESP authentication algorithms supported, which 905 can be md5 | sha1 | sha2-256 | sha2-384 | sha2-512 | sm3. Each 906 SDWAN edge node can have multiple authentication algorithms; 907 send to its peers to negotiate the strongest one. Default 908 algorithm is AES-256. 909 o When node supports multiple authentication algorithms, the 910 initial UPDATE needs to include the "Transform Sub-TLV" 911 described by [SECURE-EVPN] to describe all of the 912 algorithms supported by the node. 914 o Rekey Counter (Security Parameter Index)): 4 bytes 915 o Public Key: IPsec public key 916 o Nonce.IPsec Nonce 917 o Duration: SA life span. 919 7.5. IPsec SA Encoding Examples 921 For the Figure 1 in Section 3, C-PE2 needs to advertise its IPsec SA 922 associated attributes, such as the public keys, the nonce, the 923 supported encryption algorithms for the IPsec tunnels terminated at 924 192.0.0.1, 170.1.1.1 and 2.2.2.2 respectively. 926 Using the IPsec Tunnel [ISP4: 160.0.0.1 <-> ISP2:170.0.0.1] as an 927 example: C-PE1 needs to advertise the following attributes for 928 establishing the IPsec SA: 929 SDWAN Node ID 930 SDWAN Color 931 Tunnel Encap Attr (Type=SDWAN-Hybrid) 932 Extended Port Sub-TLV for information about the Port 933 (including ISP Sub-TLV for information about the ISP2) 934 IPsec SA Nonce Sub-TLV, 935 IPsec SA Public Key Sub-TLV, 936 IPsec SA Sub-TLV for the supported transforms 937 {Transforms Sub-TLV - Trans 2, 938 Transforms Sub-TLV - Trans 3} 940 C-PE2 needs to advertise the following attributes for establishing 941 IPsec SA: 942 SDWAN Node ID 943 SDWAN Color 944 Tunnel Encap Attr (Type=SDWAN-Hybrid) 945 Extended Port Sub-TLV (including ISP Sub-TLV for information 946 about the ISP2) 947 IPsec SA Nonce Sub-TLV, 948 IPsec SA Public Key Sub-TLV, 949 IPsec SA Sub-TLV for the supported transforms 950 {Transforms Sub-TLV - Trans 2, 951 Transforms Sub-TLV - Trans 4} 953 As both end points support Transform #2, the Transform #2 will be 954 used for the IPsec Tunnel [ISP4: 160.0.0.1 <-> ISP2:170.0.0.1]. 956 8. Error & Mismatch Handling 958 Each C-PE device advertises a SDWAN SAFI Underlay NLRI to the other 959 C-PE devices via a BGP Route Reflector to establish pairwise SAs 960 between itself and every other remote C-PEs. During the SAFI NLRI 961 advertisement, the BGP originator would include either simple IPSec 962 Security Association properties defined in IPSec SA Sub-TLV based on 963 IPSec-SA-Type = 1 or full-set of IPSec Sub-TLVs including Nonce, 964 Public Key, Proposal and number of Transform Sub-TLVs based on 965 IPSec-SA-Type = 2. 967 The C-PE devices compare the IPSec SA attributes between the local 968 and remote WAN ports. If there is a match on the SA Attributes 969 between the two ports, the IPSec Tunnel is established. 971 The C-PE devices would not try to negotiate the base IPSec-SA 972 parameters between the local and the remote ports in the case of 973 simple IPSec SA exchange or the Transform sets between local and 974 remote ports if there is a mismatch on the Transform sets in the 975 case of full-set of IPSec SA Sub-TLVs. 977 As an example, using the Figure 1 in Section 3, to establish IPsec 978 Tunnel between C-PE1 and C-PE2 WAN Ports A2 and B2 [A2: 192.10.0.10 979 <-> B2:192.0.0.1]: 981 C-PE1 needs to advertise the following attributes for establishing 982 the IPsec SA: 983 NH: 192.10.0.10 984 SDWAN Node ID 985 SDWAN-Site-ID 986 Tunnel Encap Attr (Type=SDWAN) 987 ISP Sub-TLV for information about the ISP3 988 IPsec SA Nonce Sub-TLV, 989 IPsec SA Public Key Sub-TLV, 990 Proposal Sub-TLV with Num Transforms = 1 991 {Transforms Sub-TLV - Trans 1} 993 C-PE2 needs to advertise the following attributes for establishing 994 IPsec SA: 995 NH: 192.0.0.1 996 SDWAN Node ID 997 SDWAN-Site-ID 998 Tunnel Encap Attr (Type=SDWAN) 999 ISP Sub-TLV for information about the ISP1 1000 IPsec SA Nonce Sub-TLV, 1001 IPsec SA Public Key Sub-TLV, 1002 Proposal Sub-TLV with Num Transforms = 1 1003 {Transforms Sub-TLV - Trans 2} 1005 As there is no matching transform between the WAN ports A2 and B2 in 1006 C-PE1 and C-PE2 respectively, there will be no IPsec Tunnel be 1007 established. 1009 9. Manageability Considerations 1011 TBD - this needs to be filled out before publishing 1013 10. Security Considerations 1015 The document describes the encoding for SDWAN edge nodes to 1016 advertise its properties to their peers to its RR, which 1017 propagates to the intended peers via untrusted networks. 1019 The secure propagation is achieved by secure channels, such as 1020 TLS, SSL, or IPsec, between the SDWAN edge nodes and the local 1021 controller RR. 1023 [More details need to be filled in here] 1025 11. IANA Considerations 1026 11.1. Hybrid (SDWAN) Overlay SAFI 1028 IANA has assigned SAFI = 74 as the Hybrid (SDWAN)SAFI. 1030 11.2. Tunnel Encapsulation Attribute Type 1032 IANA is requested to assign a type from the BGP Tunnel Encapsulation 1033 Attribute Tunnel Types as follows: 1035 Value Description Reference 1036 ----- ------------ --------- 1037 TBD1 SDWAN-Hybrid [this document] 1039 11.3 Tunnel Encapsulation Attribute Sub-TLV Types 1041 IANA is requested to assign three Types, as follows, in the BGP Tunnel 1042 Encapsulation Attribute Sub-TLVs regustry: 1044 Value Description Reference 1045 ----- ----------------------- --------------- 1046 TBD2 IPSEC-SA-ID [this document] 1047 TBD3 Port Extension [this document] 1048 TBD4 Underlay ISP Properties [this document] 1050 12. References 1052 12.1. Normative References 1054 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1055 Requirement Levels", BCP 14, RFC 2119, March 1997. 1057 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 1058 Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 1059 10.17487/RFC4271, January 2006, . 1062 [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, 1063 "Multiprotocol Extensions for BGP-4", RFC 4760, DOI 1064 10.17487/RFC4760, January 2007, . 1067 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1068 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1069 May 2017, . 1071 [RFC9012] Patel, K., Van de Velde, G., Sangli, S., and J. Scudder, 1072 "The BGP Tunnel Encapsulation Attribute", RFC 9012, DOI 1073 10.17487/RFC9012, April 2021, . 1076 12.2. Informative References 1078 [RFC8192] S. Hares, et al, "Interface to Network Security Functions 1079 (I2NSF) Problem Statement and Use Cases", July 2017 1081 [RFC5521] P. Mohapatra, E. Rosen, "The BGP Encapsulation Subsequent 1082 Address Family Identifier (SAFI) and the BGP Tunnel 1083 Encapsulation Attribute", April 2009. 1085 [RFC9061] Marin-Lopez, R., Lopez-Millan, G., and F. Pereniguez- 1086 Garcia, "A YANG Data Model for IPsec Flow Protection Based 1087 on Software-Defined Networking (SDN)", RFC 9061, DOI 1088 10.17487/RFC9061, July 2021, . 1091 [CONTROLLER-IKE] D. Carrel, et al, "IPsec Key Exchange using a 1092 Controller", draft-carrel-ipsecme-controller-ike-01, work- 1093 in-progress. 1095 [LISP-GEOLOC] D. Farinacci, "LISP Geo-Coordinate Use-Case", draft- 1096 farinacci-lisp-geo-09, April 2020. 1098 [SDN-IPSEC] R. Lopez, G. Millan, "SDN-based IPsec Flow Protection", 1099 draft-ietf-i2nsf-sdn-ipsec-flow-protection-07, Aug 2019. 1101 [SECURE-EVPN] A. Sajassi, et al, "Secure EVPN", draft-sajassi-bess- 1102 secure-evpn-02, July 2019. 1104 [VPN-over-Internet] E. Rosen, "Provide Secure Layer L3VPNs over 1105 Public Infrastructure", draft-rosen-bess-secure-l3vpn-00, 1106 work-in-progress, July 2018 1108 [DMVPN] Dynamic Multi-point VPN: 1109 https://www.cisco.com/c/en/us/products/security/dynamic- 1110 multipoint-vpn-dmvpn/index.html 1112 [DSVPN] Dynamic Smart VPN: 1113 http://forum.huawei.com/enterprise/en/thread-390771-1- 1114 1.html 1116 [ITU-T-X1036] ITU-T Recommendation X.1036, "Framework for creation, 1117 storage, distribution and enforcement of policies for 1118 network security", Nov 2007. 1120 [Net2Cloud-Problem] L. Dunbar and A. Malis, "Dynamic Networks to 1121 Hybrid Cloud DCs Problem Statement", draft-ietf-rtgwg- 1122 net2cloud-problem-statement-12, March 7, 2022. 1124 [Net2Cloud-gap] L. Dunbar, A. Malis, and C. Jacquenet, "Networks 1125 Connecting to Hybrid Cloud DCs: Gap Analysis", draft-ietf- 1126 rtgwg-net2cloud-gap-analysis-07, July, 2020. 1128 [RFC9012] K. Patel, et al "The BGP Tunnel Encapsulation Attribute", 1129 RFC9012, April 2021. 1131 13. Acknowledgments 1133 Acknowledgements to Wang Haibo, Hao Weiguo, and ShengCheng for 1134 implementation contribution; Many thanks to Yoav Nir, Graham 1135 Bartlett, Jim Guichard, John Scudder, and Donald Eastlake for their 1136 review and suggestions. 1138 This document was prepared using 2-Word-v2.0.template.dot. 1140 Authors' Addresses 1142 Linda Dunbar 1143 Futurewei 1144 Email: ldunbar@futurewei.com 1146 Sue Hares 1147 Hickory Hill Consulting 1148 Email: shares@ndzh.com 1150 Robert Raszuk 1151 NTT Network Innovations 1152 Email: robert@raszuk.net 1154 Kausik Majumdar 1155 CommScope 1156 Email: Kausik.Majumdar@commscope.com 1158 Gyan Mishra 1159 Verizon Inc. 1160 Email: gyan.s.mishra@verizon.com 1162 Contributors' Addresses 1163 Donald Eastlake 1164 Futurewei 1165 Email: d3e3e3@gmail.com