<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-maino-gpe-vpn-00" ipr="trust200902">
  <front>
    <title abbrev="draft-maino-gpe-vpn">GPE-VPN: Programmable LISP-based
    Virtual Private Networks</title>

    <author fullname="Fabio Maino" initials="F.M" surname="Maino">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street></street>

          <city></city>

          <code></code>

          <region></region>

          <country></country>
        </postal>

        <email>fmaino@cisco.com</email>
      </address>
    </author>

    <author fullname="Vina Ermagan" initials="V.E" surname="Ermagan">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street></street>

          <city></city>

          <code></code>

          <region></region>

          <country></country>
        </postal>

        <email>vermagan@cisco.com</email>
      </address>
    </author>

    <author fullname="John Evans" initials="J.E" surname="Evans">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street></street>

          <city></city>

          <code></code>

          <region></region>

          <country></country>
        </postal>

        <email>joevans@cisco.com</email>
      </address>
    </author>

    <author fullname="Horia Miclea" initials="H.M" surname="Miclea">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street></street>

          <city></city>

          <code></code>

          <region></region>

          <country></country>
        </postal>

        <email>hmiclea@cisco.com</email>
      </address>
    </author>

    <date day="21" month="March" year="2016" />

    <area>Internet</area>

    <workgroup>LISP Working Group</workgroup>

    <keyword>LISP; deployment</keyword>

    <abstract>
      <t>GPE-VPN is an architecture for programmable SD-WAN solutions that
      leverages the Generic Protocol Encapsulation (GPE) overlay.</t>

      <t>GPE-VPN uses an extended LISP-based map-assisted control plane to
      dynamically lookup forwarding policies on demand. A northbound
      programmable mapping system is used to store and retrieve mappings and
      forwarding policies.</t>

      <t>The GPE-VPN data plane is secured with IPsec based encryption.</t>

      <t>Overlay tunnels, as well as cryptographic parameters, are provisioned
      on demand.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119"></xref>.</t>
    </note>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>GPE-VPN is an architecture for programmable Software Defined VPNs
      that leverages the Generic Protocol Encapsulation (GPE) overlay <xref
      target="I-D.ietf-nvo3-vxlan-gpe"></xref>. </t>

      <t>GPE is effectively merging VXLAN <xref target="RFC7348"></xref> and
      LISP <xref target="RFC6830"></xref> encapsulation in a single format
      with supports for multi-tenancy and multi-protocol payloads.</t>

      <t>GPE-VPN uses an extended LISP-based map-assisted control plane to
      dynamically lookup forwarding policies on demand. A controller-based
      mapping system is used to store and retrieve the mapping and forwarding
      policies. The mapping system is programmable via northbound API.</t>

      <t>GPE-VPN data plane is secured with IPsec based encryption.</t>

      <t>Overlay tunnels, as well as cryptographic parameters, are provisioned
      on demand.</t>
    </section>

    <section anchor="terms" title="Definition of Terms">
      <t><list style="empty">
          <t>CPE: Customer-premises equipment or customer-provided equipment
          (CPE) is the VPN Tunnel Endpoint that enables access to the VPN. In
          this memo CPE and xTR are used interchangeably.</t>

          <t>GPE: Generic Protocol Encapsulation. In this memo is used to
          refer to both VXLAN-GPE and LISP-GPE frame formats.</t>
        </list>For definitions of other terms, notably Map-Request, Map-Reply,
      Ingress Tunnel Router (ITR), Egress Tunnel Router (ETR), Map-Server
      (MS), and Map-Resolver (MR) please consult the LISP specification <xref
      target="RFC6830"></xref>.</t>
    </section>

    <section anchor="architecture" title="GPE-VPN Overall Architecture">
      <t>A GPE-VPN is designed to enable VPN administrators to specify a high
      level intent-based policy that shall be implemented by the VPN. This
      includes policies such as connectivity, encryption, access control, and
      service chaining.</t>

      <t><figure align="center" title="GPE-VPN Architecture">
          <artwork align="center"><![CDATA[       
          Intent-based Policy
                   |
                   V
+------------------------------------+
| Autoconfiguration, Orchestration,  |   STATELESS
|      and Policy Resolution         |
|       +----------------------------+
|       |         Resolved Policy
|       |                |
|       |                v
|       |     +----NorthBound API----+
|       |     |  Mapping | Key Mngmnt|   STATEFUL
|       | +-> |  Server  |   Server  |
+---+---+ |   +----------------------+
    |     |      ^           ^
    +-----+      |           |
    |            +-----------+
    |                        | 
    +-------Provisioning--+  |
    |                     |  |
    |   +-----Lookup---------+
    |   |                 |  |
+---V---+--+            +-v--+----+
| xTR/CPE  |            | xTR/CPE |
+----------+            +---------+    ]]></artwork>
        </figure></t>

      <t>As specified by the intent-based policy, the GPE-VPN auto-configures
      the CPEs that implement the data plane of the VPN, and orchestrates and
      provisions the infrastructure needed to operate the VPN. The
      intent-based policy is then resolved into network forwarding policy, and
      is stored in the GPE-VPN mapping infrastructure along with other
      provisioned network state. The network state is then made available, on
      demand, to the CPEs using the LISP control protocol. Similarly, the
      cryptographic state is provisioned on demand by the Key Management
      Server.</t>
    </section>

    <section anchor="encapsualtion" title="Data Plane Encapsulation">
      <t>In a GPE-VPN frames are encapsulated accordingly to the VXLAN-GPE
      specification.</t>

      <t><figure align="center" title="VXLAN-GPE Encapsulation">
          <artwork align="center"><![CDATA[
 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Outer Ethernet Header                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Outer IP Header                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Outer UDP Header                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  +
|R|R|Ver|I|P|R|O|          Reserved             | Next Protocol |  | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ GPE
|     Virtual Network Identifier (VNI)          |   Reserved    | Hdr
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  +
|                                                               |
|           Payload (Ethernet, IPv4, IPv6, NSH, ...)            |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure></t>

      <t>Confidentiality and integrity protection are afforded by the use of
      ESP (Encapsulating Security Payload) in transport mode. ESP is used with
      an authenticated encryption with associated data (AEAD) cipher such as
      GCM <xref target="RFC4106"></xref> that provides confidentiality,
      integrity, and anti-replay protection to the payload. The use of an AEAD
      cipher provides integrity and anti-replay protection to the GPE header
      as well as protection for the Virtual Network Identifier (VNI) and the
      other GPE fields from being hijacked over the network.</t>

      <t><figure align="center" title="GPE with ESP-GCM">
          <artwork align="center"><![CDATA[
 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Outer Ethernet Header                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Outer IP Header                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Outer UDP Header                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  +  +
|R|R|Ver|I|P|R|O|          Reserved             |   NP = ESP    |  |  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ AAD | 
|     Virtual Network Identifier (VNI)          |   Reserved    |  |  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  +  |
|                            SPI                                |  |  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  | ICV
|                       Sequence Number                         |  |Scope
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |  |
|                                                               | ESP |
|           Encrypted Payload + Padding                         |  |  |  
|                                                               |  |  |
+                                               +-+-+-+-+-+-+-+-+  |  |
|                                               |   NP = IP/Eth |  |  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  +  +
|                            ICV                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure></t>

      <t>GPE can also be used in combination with the Network Service Header
      (NSH), as defined in <xref target="I-D.ietf-sfc-nsh"></xref>, to provide
      application-level service chaining. Encryption and NSH are combined
      thanks to GPE multiprotocol support.</t>

      <t><figure align="center" title="GPE+NSH with ESP-GCM">
          <artwork align="center"><![CDATA[
 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Outer Ethernet Header                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Outer IP Header                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Outer UDP Header                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      
|R|R|Ver|I|P|R|O|          Reserved             |   NP = ESP    |       
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
|     Virtual Network Identifier (VNI)          |   Reserved    |      
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
|                            SPI                                |    
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
|                       Sequence Number                         |       
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  + +
|           NSH Base Header                     |   NP = IP/Eth |  | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  | |
|                   NSH Service Path Header                     | NSH|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  | |
|                      NSH Context Headers                      |  | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  + | 
|                                                               |    |
|                                                               |  Enc.
|                     Payload + Padding                         | Scope
|                                                               |    |
+                                               +-+-+-+-+-+-+-+-+    |
|                                               |   NP = NSH    |    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|    +
|                            ICV                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure></t>

      <t></t>
    </section>

    <section anchor="DPoperations" title="Data Plane Operations">
      <t>in a GPE-VPN the CPE performs two main data plane functions:</t>

      <t><list style="numbers">
          <t>GPE encapsulate un-encapsulated packets that are routed in the
          overlay network</t>

          <t>De-capsulate GPE encapsulated packets that are routed in the
          underlay network</t>
        </list>In order to perform the encapsulation function, the CPE uses a
      map-cache that maps the flow in the overlay to the location(s) (IP
      address in the underlay network ) of the next hop or the destination CPE
      depending on the mapping/forwarding policy defined in the mapping
      system.</t>

      <t>The map cache is populated on demand using the LISP <xref
      target="RFC6830"></xref> map-request/map-reply protocol. In order to
      support multi-tenancy, each entry in the map-cache is associated with a
      VNI that identifies the overlay network of a specific tenant.</t>

      <t>The map-cache supports multi-homing and load balancing by supporting
      mapping a single overlay end point to multiple locations in the underlay
      along with their priority and weight.</t>

      <section title="Per Destination Mapping">
        <t>The simplest form of mapping supported by a map-cache is the
        mapping between the Endpoint Identifier (EID, the destination IP or
        MAC address of the endpoint in the overlay space) and the locator IP
        address of the destination CPE (its IP address in the underlay
        space).</t>

        <t>EIDs can be either an IP address (L3 overlay) or a MAC address (L2
        overlay).</t>

        <t>This is the basic function that allows to interconnect VPN sites
        creating a virtual overlay network that constitutes the VPN. Any
        endpoint identified by a source EID in a VPN, can reach any other
        endpoint identified by a destination EID as long as the CPE has an
        entry in its map-cache for that destination EID.</t>
      </section>

      <section title="FlowMapping">
        <t>Some CPEs have the capability to map a generic n-tuple (typically a
        subset of the &lt;source EID, destination EID, source Port,
        destination Port, Protocol&gt; as defined in <xref
        target="I-D.rodrigueznatal-lisp-multi-tuple-eids"></xref>) onto the
        next hop or destination CPE location .</t>

        <t>This allows a much finer granularity in applying the connectivity
        policy of the VPN. A different connectivity policy can be applied to
        each pair of endpoints in the overlay, or even per each protocol.</t>

        <t>Per Destintion Mapping is, in fact, a subset of FlowMapping.</t>
      </section>

      <section title="Generic Mapping">
        <t>Some CPEs have the capability to map and encap based on a generic
        &ldquo;tag&rdquo; (metadata contained in the packet).</t>

        <t>This enables GPE-VPN to offer overlay services to various protocols
        and applications, as a specific flow is tunneled to a given
        destination CPE based on the value of the metadata.</t>

        <t>As an example a packet may include an NSH header <xref
        target="I-D.ietf-sfc-nsh"></xref> that contains metadata used to
        identify an application-level service function chain that should be
        applied to that packet before reaching destination. The map-cache can
        be programmed <xref target="I-D.ermagan-lisp-nsh"></xref> to tunnel
        that packet to the service node that implements the next hop in that
        service function chain and, eventually, to its destination.</t>
      </section>

      <section title="Interworking">
        <t>Interworking between the VPN and outside networks (e.g. the
        Internet) is provided by special gateways (LISP PxTRs) that support
        the encap and decap function for incoming (to the VPN) and outgoing
        packets.</t>

        <t>Gateways also provide reachability to the VPN endpoints from the
        outside network by advertising highly aggregated EID-Prefix space on
        behalf of the GPE-VPN.</t>
      </section>
    </section>

    <section anchor="CPoperations" title="Control Plane Operations">
      <t>The rendering of the connectivity policy between GPE-VPN sites is
      based on map-and-encap. When an un-encapsulated flow reaches a CPE, the
      CPE uses the LISP map-request/map-reply protocol to query the mapping
      system for the location of the next hop associated with this flow.</t>

      <t>The CPE then caches the map-reply that contains the mapping
      associated with the given flow in its map-cache, so that subsequent
      packets in this flow hitting that CPE can be encapsulated right away.
      The map-cache entries are aged and refreshed accordingly to their
      utilization.</t>

      <t>The map-request is encoded using an extensible format <xref
      target="I-D.ietf-lisp-lcaf"></xref> that can include a rich set of
      information not only about the specific flow that has generated the
      map-request, but also about the CPE sending the request.</t>

      <t>As an example, the location of the source CPE can be included in the
      map-request, or its unique ID, providing the mapping server with
      information about the current location of the source endpoint that
      initiated that flow.</t>

      <section title="Dynamic Policy Rendering">
        <t>The map-request is sent to a logically centralized map server that
        is programmed, via northbound API, with the rendering of the high
        level policies of the GPE-VPN.</t>

        <t>The mapping is dynamically updated to reflect both high level
        policy changes, as well as changes to the state of the network (as
        measured by various metrics, including probing sent in the data plane,
        or reachability information registered by the CPEs). In general
        telemetric infrastructures can be used to provide the mapping server
        with a very detailed monitoring of both the underlay and overlay
        network. In a typical GPE-VPN implementation a telemetry server will
        collect telemetry data from the network via southbound API. Data is
        fed to an analytics engine that will update the mapping server via
        northbound API. </t>

        <t>The mapping server can then leverage this amount of information to
        provide a map-reply that is not only the rendering of the connectivity
        policy, but also the rendering of a number of other policies applied
        to the VPN (overlar re-encapsulation, in-bound load balancing, virtual
        topologies, group based access control, service chaining,
        &hellip;).</t>

        <t>This is one of the most powerful characteristics of a GPE-VPN that
        makes the mapping server a logically centralized policy enforcement
        point.</t>

        <t>To allow for a more dynamic policy change, the LISP protocol is
        being extended <xref target="I-D.rodrigueznatal-lisp-ms-smr"></xref>
        to support map-server notifications that are used to implement
        publish/subscribe mechanisms.</t>

        <t>Below is a list of the most common policy renderings that may be
        implemented in a GPE-VPN.</t>

        <section title="In-Bound Load Balancing">
          <t>For each overlay end point, the mapping system can specify a list
          of the locator IP addresses associated with the destination CPE.
          Each locator is associated with a priority and weight that will
          determine the in-bound load balancing at the destination CPE.</t>

          <t>The sending CPE, upon receiving a map-reply, will encapsulate the
          outgoing traffic according to the priority and weight associated
          with the locators in the mapping. This is used to implement
          active/active or active/stand-by inbound load balancing.</t>
        </section>

        <section title="Overlay Re-encapsulation">
          <t>The high level policy of a GPE-VPN may include overlay
          re-encapsulation at Re-encapsulating Tunnel Routers (RTRs). The
          re-encapsulation network function is rendered by the mapping system
          by providing a different next hop to mapping requests coming from
          different CPEs/routers. </t>

          <t>This section provides a few examples of the use of the
          re-encapsulation network function.</t>

          <section title="Virtual Topologies">
            <t>While a GPE-VPN supports any-to-any connectivity, it is
            possible to implement virtual topologies by manipulating the
            mappings and using overlay re-encapsulation.</t>

            <t>For example to implement an hub-and-spoke topology, the mapping
            system will be programmed in such a way that map-requests coming
            from a spoke will always generate map-replays containing the
            address of the hub as destination locator. In this way all the
            traffic generated at a spoke will be directed to the hub first,
            de-capsulated and then re-encapsulated to the destination
            spoke.</t>
          </section>

          <section title="Hierarchical VPNs">
            <t>some GPE-VPNs may have an hierarchical structure with CPEs
            grouped in regions that convey traffic to a core via a set od data
            centers positioned at the edge of the core. Depending on its
            geographical location, a CPE will send traffic to the RTR located
            at the edge data center that oversees that region. </t>

            <t>Re-encapsulation may be required for a number of reasons,
            including traffic inspection. </t>

            <t>Once a flow from a VPN site A directed to VPN site B hits CPE
            A, it will generate a map-request that will contain not only the
            destination EID, but also information about the requesting CPE
            (e.g. its location, or a site ID). The mapping system, in order to
            render the hierarchical VPN policy, will return a map-replay to
            CPE A specifying the location of the re-encapsulating router R as
            tunnel destination. Once the flow gets to the re-encapsulating
            router R, it will generate another map-request, for the same flow,
            but with attributes associated with router R. The mapping system
            will then render the hierarchical VPN policy by returning the
            locations of CPE B. </t>

            <t>The dynamic manipulation of the mapping is what allows the
            mapping system to render complex re-encapsulation policies.</t>
          </section>
        </section>

        <section title="Group Based Access Control">
          <t>Mapping manipulation can also be used to render Group Based
          Policies (GBP). The intent-based GBP will define groups of
          endpoints, and the ACLs that shall apply to each group. This is
          resolved into mapping state so that when the mapping system is
          resolving a map-request to connect endpoint A to endpoint B, the
          mapping will reflect the GBP policy, and will not provide
          connectivity if there&rsquo;s an ACL preventing communication
          between the groups to which A and B belongs.</t>
        </section>

        <section title="Service Chaining">
          <t>A GPE-VPN renders application-level Service Chaining Policies by
          using the mapping system to support the NSH protocol, as described
          in <xref target="I-D.ermagan-lisp-nsh"></xref>. NSH uses
          classification engines to classify flows that should be forced
          through a given service chain and tags them with an NSH header that
          contains a certain Service Path Identifier (SPI). Once classified
          and tagged, the packet needs to be routed to the associated next hop
          service node(s) that will implement the service chain. The mapping
          system in this case is programmed to support an SPI to Service Node
          Location lookup, so that a CPE receiving a packet with a given SPI
          and Service Index can lookup the address(es) of the next hop service
          nodes for the specified service chain.</t>

          <t>This is an example of a generic mapping service provided by the
          GPE-VPN mapping system to support a specific protocol other than IP
          or Ethernet.</t>
        </section>
      </section>

      <section title="Key Management Services">
        <t>Provisioning of Security Associations (SAs) for a GPE-VPN is a
        trade-off between the time needed to set up on demand the security
        association and the overall security afforded by the GPE-VPN security
        infrastructure.</t>

        <t>There is a continuum of solutions that can be listed in
        (approximate) increasing order of security afforded:</t>

        <t><list style="numbers">
            <t>Leverage the LISP map-request/map-reply protocol to provision
            on demand uni-directional security associations. The LISP crypto
            draft <xref target="I-D.ietf-lisp-crypto"></xref>, is an example
            where the LISP map-request/map-reply protocol is augmented with an
            un-authenticated Diffie-Hellman exchange that provisions
            encryption keys to the CPEs tunnel endpoints. These mechanisms
            provide the most efficient setup time of the SAs (that in <xref
            target="I-D.ietf-lisp-crypto"></xref> requires just an additional
            round-trip between the CPEs) as a trade-off with the security
            afforded, that relies on the security of the LISP
            map-request/map-replay protocol and on the relatively simple
            structure of the security messages exchanged between the CPEs.</t>

            <t>Leverage a Group Domain of Interpretation (GDOI) crypto
            protocol, such as the GDOI IPsec extension <xref
            target="RFC6407"></xref>, for key management. These protocols use
            group key distribution mechanisms to securely provision IPsec
            encryption keys (and SA parameters) to the CPEs that belong to the
            same GPE-VPN. This typically requires slightly longer SA setup
            times, compared with the previous solutions, but the key
            management infrastructure is independent from the LISP mapping
            infrastructure. This, typically, offers a higher level of security
            compared to the previous solutions.</t>

            <t>Leverage the traditional IKEv2 <xref target="RFC5996"></xref>
            protocol to negotiate pairwise SAs between CPEs. While this
            typically offers the highest level of security, the setup of SAs
            is quite time consuming, and it has a significant impact on the
            advantages introduced by creating tunnels on demand using a
            map-and-encap protocol.</t>
          </list></t>
      </section>
    </section>

    <section anchor="security" title="Security Considerations">
      <t>Security considerations that applies to a GPE-VPN are discuss through
      this memo. </t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>No IANA considerations.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t></t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.6830"?>

      <?rfc include="reference.RFC.7348"?>

      <?rfc include="reference.RFC.4106"?>

      <?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-nvo3-vxlan-gpe-01.xml"?>

      <?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-sfc-nsh-02.xml"?>

      <?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-rodrigueznatal-lisp-multi-tuple-eids-01.xml"?>

      <?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ermagan-lisp-nsh-00.xml"?>

      <?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-lisp-lcaf-11.xml"?>

      <?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-rodrigueznatal-lisp-ms-smr-00.xml"?>

      <?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-lisp-crypto-03.xml"?>

      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.6407"?>

      <?rfc include="reference.RFC.5996"?>

      <?rfc ?>
    </references>
  </back>
</rfc>
