<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
    <!ENTITY rfc2119 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
    <!ENTITY rfc1955 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1955.xml'>
    <!ENTITY rfc4423 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4423.xml'>
    <!ENTITY rfc1498 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1498.xml'>
    <!ENTITY rfc0768 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.0768.xml'>
    <!ENTITY rfc2784 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2784.xml'>
    <!ENTITY rfc3056 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3056.xml'>
    <!ENTITY rfc2434 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2434.xml'>
    <!ENTITY rfc4984 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4984.xml'>
    <!ENTITY rfc3775 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3775.xml'>
    <!ENTITY rfc4866 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4866.xml'>
    <!ENTITY rfc4192 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4192.xml'>
    <!ENTITY rfc1191 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1191.xml'>
    <!ENTITY rfc3168 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3168.xml'>
    <!ENTITY rfc4086 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4086.xml'>
    <!ENTITY rfc4634 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4634.xml'>
    <!ENTITY rfc2404 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2404.xml'>
]>

<rfc category="exp" ipr="trust200902" number="6832" submissionType="IETF" consensus="yes">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no"?>
<?rfc rfcedstyle="yes"?>

  <front>
    <title abbrev="LISP and Non-LISP Interworking">Interworking between
Locator/ID Separation Protocol (LISP) and Non&nbhy;LISP&nbsp;Sites</title>

    <author fullname="Darrel Lewis" initials="D." surname="Lewis">
      <organization>Cisco Systems</organization>
      <address>
        <email>darlewis@cisco.com</email>
      </address>
    </author>

    <author fullname="David Meyer" initials="D." surname="Meyer">
      <organization>Cisco Systems</organization>
      <address>
        <email>dmm@1-4-5.net</email>
      </address>
    </author>

    <author fullname="Dino Farinacci" initials="D." surname="Farinacci">
      <organization>Cisco Systems</organization>
      <address>
        <email>farinacci@gmail.com</email>
      </address>
    </author>

    <author fullname="Vince Fuller" initials="V." surname="Fuller">
      <organization></organization>
      <address>
        <email>vaf@vaf.net</email>
      </address>
    </author>

    <date month="January" year="2013" />

    <abstract>
     <t>
     This document describes techniques for allowing sites running the
     Locator/ID Separation Protocol (LISP) to interoperate with Internet
     sites that may be using either IPv4, IPv6, or both but that are
     not running LISP.  A fundamental property of LISP-speaking
     sites is that they use Endpoint Identifiers (EIDs), rather
     than traditional IP addresses, in the source and destination fields
     of all traffic they emit or receive.  While EIDs are syntactically
     identical to IPv4 or IPv6 addresses, normally routes to them are not
     carried in the global routing system, so an interoperability mechanism is
     needed for non-LISP-speaking sites to exchange traffic with
     LISP-speaking sites.  This document introduces three such mechanisms.
     The first uses a new network element, the LISP Proxy Ingress Tunnel Router
     (Proxy-ITR), to act as an intermediate LISP Ingress Tunnel
     Router (ITR) for non-LISP-speaking hosts. Second, this document adds
     Network Address Translation (NAT) functionality to LISP ITRs
     and LISP Egress Tunnel Routers (ETRs) to substitute routable IP
     addresses for non-routable EIDs.  Finally, this document
     introduces the Proxy Egress Tunnel Router (Proxy-ETR) to handle cases
     where a LISP ITR cannot send packets to non-LISP sites without
     encapsulation.
     </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction" toc="default">
      <t>
      This document describes interoperation mechanisms between LISP
      <xref target="RFC6830"/> sites that use EIDs that are not globally routed,
      and non-LISP sites. A key behavior of the separation of Locators and
      Endpoint IDs is that EID-Prefixes are normally not advertised into
      the Internet's Default-Free Zone (DFZ).
      (See <xref target="rEIDs"/> for the exception case.) Specifically, 
      only Routing Locators (RLOCs) are carried in the Internet's DFZ.  
      Existing Internet sites (and their hosts) that do not run LISP 
      must still be able to reach sites numbered from LISP EID space.  
      This document describes three mechanisms that can be used to provide 
      reachability between sites that are LISP-capable and those that are not.  
      </t>
      <t> The first mechanism uses a new network element,
      the LISP Proxy Ingress Tunnel Router (Proxy-ITR), to act as an
      intermediate LISP Ingress Tunnel Router (ITR) for non-LISP-speaking
      hosts. The second mechanism adds a form of Network Address Translation
      (NAT) functionality to Tunnel Routers (xTRs, where "xTR" refers to
      either an ITR or ETR), to substitute routable
      IP addresses for non-routable EIDs.  The final network element is
      the LISP Proxy Egress Tunnel Router (Proxy-ETR), which acts as an 
      intermediate Egress Tunnel Router (ETR) for LISP sites that need to
      encapsulate LISP packets destined to non-LISP sites. 
      </t>
      <t>
       More detailed descriptions of these mechanisms and the network elements
       involved may be found in the following sections:
      </t>

      <?rfc text-list-symbols="-o*+"?>
      <t><list style="symbols">
      <t>
      <xref target="terms"/> defines terms used throughout this document.
      </t>

      <t>
      <xref target="models"/> describes the different cases where interworking
      mechanisms are needed.
      </t>

      <t>
      <xref target="rEIDs"/> describes the relationship between the new
      EID-Prefix space and the IP address space used by the current Internet.
      </t>

      <t>
      <xref target="Proxy-ITR"/> introduces and describes the operation of
      Proxy-ITRs.
      </t>
      <t>
      <xref target="Proxy-ETR"/> introduces and describes the operation of
      Proxy-ETRs.
      </t>

      <t>
      <xref target="lispnat"/> defines how NAT is used by ETRs to translate
      non-routable EIDs into routable IP addresses.
      </t>

      <t>
      <xref target="disc-pitr-nat-petr"/> describes the relationship between
      asymmetric and symmetric interworking mechanisms (Proxy-ITRs and
      Proxy-ETRs vs. LISP-NAT).

      </t>
      </list></t>
      <?rfc text-list-symbols="o*+-"?>

       <t>
        Note that any successful interworking model should be independent of
       any particular EID-to-RLOC mapping algorithm.  This document does not
       comment on the value of any of the particular LISP mapping systems.
      </t>
       <t>
        Several areas concerning the interworking of LISP and non-LISP sites
        remain open for further study. These areas include an examination of
        the 
        impact of LISP-NAT on Internet traffic and applications, understanding 
        the deployment motivations for the deployment and operation of Proxy 
        Tunnel Routers, the impact of EID routes originated into the Internet's
        Default-Free Zone, and the effects of Proxy Tunnel Routers or LISP-NAT 
        on Internet traffic and applications.  Until these issues are fully 
        understood, it is possible that the interworking mechanisms described 
        in this document will be hard to deploy or may have unintended 
        consequences to applications.
       </t>

    </section>
    <section title="Definition of Terms" anchor="terms">
    <t><list style="hanging">
        <t hangText="Default-Free Zone:">
            The Default-Free Zone (DFZ) refers to the collection of all 
            Internet autonomous systems that do not require a default 
            route to route a packet to any destination.  
        </t>
        <t hangText="LISP Routable (LISP-R) Site:">
            A LISP site whose addresses are used as both globally
            routable IP addresses and LISP EIDs.  
        </t>
        <t hangText="LISP Non-Routable (LISP-NR) Site:">
            A LISP site whose addresses are EIDs only; these EIDs
            are not found in the legacy Internet routing table.  
        </t>
        <t hangText="LISP Proxy Ingress Tunnel Router (Proxy-ITR):">
            Proxy-ITRs are used to provide connectivity between
            sites that use LISP EIDs and those that do not. They
            act as gateways between those parts of the Internet
            that are not using LISP (the legacy Internet). A given
            Proxy-ITR advertises one or more
            highly aggregated EID-Prefixes into the public
            Internet and acts as the ITR for traffic received from
            the public Internet. LISP Proxy-ITRs are
            described in <xref target="Proxy-ITR"/>. 
        </t>
        <t hangText="LISP Network Address Translation (LISP-NAT):">
            Network address translation between EID space assigned
            to a site and RLOC space also assigned to that
            site. LISP-NAT is described in <xref target="lispnat"/>.
        </t>
        <t hangText="LISP Proxy Egress Tunnel Router (Proxy-ETR):">
            Proxy-ETRs provide a LISP (routable or non-routable EID) site's 
            ITRs with the ability to send packets to non-LISP sites in cases
            where unencapsulated packets (the default mechanism) would fail
            to be delivered. Proxy-ETRs function by having an ITR
            encapsulate all non-LISP destined traffic to a pre-configured
            Proxy-ETR. LISP Proxy-ETRs are described in
            <xref target="Proxy-ETR"/>. 
        </t>
        <t hangText=" EID Sub-Namespace:"> 
            A power-of-two block of aggregatable Locators set
            aside for LISP interworking.  
        </t>
    </list></t>
    <t>
        For definitions of other terms -- notably Map-Request, Map-Reply,
        Ingress Tunnel Router (ITR), and Egress Tunnel Router (ETR) --
        please consult the LISP specification <xref target="RFC6830"/>. 
    </t>
    </section>
     <section title="LISP Interworking Models" anchor="models">
      <t>
        There are 4 unicast connectivity cases that describe how sites 
        can send packets to each other:
      </t>

        <t><list style="numbers">
           <t> non-LISP site to non-LISP site</t>
           <t> LISP site to LISP site</t>
           <t> LISP site to non-LISP site</t>
           <t> non-LISP site to LISP site</t>
         </list></t>

      <t>
        Note that while Cases 3 and 4 seem similar, there are subtle
        differences due to the way packets are originated.
      </t>
       <t>
        The first case is the Internet as we know it today and as such will
        not be discussed further here.  The second case is documented in
        <xref target="RFC6830"/>, and there are no new interworking requirements
        because there are no new protocol requirements placed on intermediate
        non-LISP routers.
       </t>
       <t>
        In Case 3, LISP site to non-LISP site, a LISP site can (in most
        cases) send packets to a non-LISP site because the non-LISP site
        prefixes are routable.  The non-LISP sites need not do anything new to
        receive packets.  The only action the LISP site needs to take is
        to know when not to LISP-encapsulate packets.  An ITR knows 
        explicitly that the destination is non-LISP if the destination IP 
        address of an IP packet matches a (negative) Map-Cache entry that
        has the action 'Natively-Forward'.
        </t>
        <t>
         There could be some situations where (unencapsulated) packets
         originated by a LISP site may not be forwarded to a non-LISP site.
         These cases are reviewed in <xref target="Proxy-ETR"/>
         (Proxy Egress Tunnel Routers).  
        </t>
     
      <t>
       Case 4, typically the most challenging, occurs when a host at a non-LISP
       site wishes to send traffic to a host at a LISP site.  If the source
       host uses a (non-globally routable) EID as the destination IP address,
       the packet is forwarded inside the source site until it reaches a
       router that cannot forward it (due to lack of a default route),
       at which point the traffic is dropped.  For traffic not to be dropped,
       some mechanism to make this destination EID routable must
       be in place. Sections <xref target="Proxy-ITR" format="counter"/>
       (Proxy-ITRs) and <xref target="lispnat" format="counter"/> (LISP-NAT)
       describe two such mechanisms.  Case 4 also applies to non-LISP
       packets (as in Case 3) that are returning to the LISP site.
      </t>
    </section>
    <section title="Routable EIDs" anchor="rEIDs">
      <t>
       An obvious way to achieve interworking between LISP and non-LISP
       hosts is for a LISP site to simply announce EID-Prefixes into the DFZ,
       much like the current routing system, effectively treating them as
       "Provider-Independent" (PI)
       prefixes. Having a site do this is undesirable, as it defeats one of the
       primary goals of LISP -- to reduce global routing system state.  
     </t>
    <section title="Impact on Routing Table" anchor="routing-table">
      <t>
       If EID-Prefixes are announced into the DFZ, the impact is similar to
       the case in which LISP has not been deployed, because these
       EID-Prefixes will be no more aggregatable than existing PI addresses.
       Such a mechanism is not viewed as a viable long-term solution but may
       be a viable short-term way for a site to transition a portion of its 
       address space to EID space without changing its existing routing policy.   
      </t>
     </section>
     <section title="Requirement for Sites to Use BGP">
      <t>
       Routable EIDs might require non-LISP sites today to use BGP to, among
       other things, originate their site's routes into the DFZ, in order to
       enable ingress Traffic Engineering.  Relaxing this requirement
       (and thus potentially reducing global DFZ routing state) while still
       letting sites control their ingress Traffic Engineering policy is a
       design goal of LISP. 
          </t>
     </section>
      <section title="Limiting the Impact of Routable EIDs">
         <t>
      Two schemes are proposed to limit the impact of having EIDs announced
      in the current global Internet routing table:
      </t> 
      <t><list style="numbers">    
      <t><xref target="Proxy-ITR"/> discusses the LISP Proxy Ingress Tunnel
           Router, an approach that provides ITR functionality to
           bridge LISP-capable and non-LISP-capable sites. </t>
      <t><xref target="lispnat"/> discusses another approach,
        LISP-NAT, in which NAT <xref target="RFC2993"/> is
        combined with ITR functionality to limit the impact
        of routable EIDs on the Internet routing infrastructure.</t>
      </list></t>
      </section>
      <section title="Use of Routable EIDs for Sites Transitioning to LISP">
            <t>      
            A primary design goal for LISP (and other Locator/ID separation proposals)
            is to facilitate topological aggregation of namespaces used for the
            path computation, and thus decrease global routing system overhead.
            Another goal is to achieve the benefits of improved aggregation as
            soon as possible.  Individual sites advertising
            their own routes for LISP EID-Prefixes into the global routing system
            is therefore not recommended. 
            </t>
            <t>
            That being said, single-homed sites (or multihomed sites that are
            not leaking more-specific exceptions) that are already using
            provider-aggregated prefixes can use these prefixes as LISP EIDs
            without adding state to the routing system.  In other words, such 
            sites do not cause additional prefixes to be advertised.  For such
            sites, connectivity to a non-LISP site does not require
            interworking machinery because the "PA" (Provider-Assigned)
            EIDs are already routable (they are effectively LISP-R type
            sites).  Their EIDs are found in the LISP mapping system, and
            their (aggregate) PA prefix(es) are found in the DFZ of the
            Internet.
            </t>
            <t>  
            The continued announcements of an existing site's
            Provider-Independent (PI) prefix(es) is of course under the
            control of that site.
            Some period of transition, where a site is found both in the LISP
            mapping system, and as a discrete prefix in the Internet routing system, may
            be a viable transition strategy.  Care should be taken not to advertise 
            additional more-specific LISP EID-Prefixes into the DFZ.
            </t>
         </section>
      </section>

 <section title="Proxy Ingress Tunnel Routers" toc="default" anchor="Proxy-ITR">
      <t>
       Proxy Ingress Tunnel Routers (Proxy-ITRs) allow non-LISP sites to send packets
       to LISP-NR sites.  A Proxy-ITR is a new network element that shares many
       characteristics with the LISP ITR.  Proxy-ITRs allow non-LISP sites to send
       packets to LISP-NR sites without any changes to protocols or equipment
       at the non-LISP site.  Proxy-ITRs have two primary functions:
      </t>
      <t><list style="hanging">
        <t hangText="Originating EID Advertisements:">
         Proxy-ITRs advertise highly aggregated EID-Prefix
         space on behalf of LISP sites so that non-LISP sites
         can reach them.  
        </t>
        <t hangText="Encapsulating Legacy Internet Traffic:">
         Proxy-ITRs also encapsulate non-LISP Internet traffic into
         LISP packets and route them towards their destination RLOCs.
         </t>
       </list></t>
      <section title="Proxy-ITR EID Announcements">
         <t>
         A key part of Proxy-ITR functionality is to advertise routes for
         highly aggregated EID-Prefixes into parts of the global routing
         system. Aggressive aggregation is performed to minimize the
         number of new announced routes. In addition, careful placement
         of Proxy-ITRs can greatly reduce the advertised scope of these
         new routes. To this end, Proxy-ITRs should be deployed close to
         non-LISP-speaking sites rather than close to LISP sites.
         Such deployment not only limits the scope of EID-Prefix route
         advertisements but also allows the traffic forwarding load to be
         spread among many Proxy-ITRs.
         </t>
      </section>
      <section title="Packet Flow with Proxy-ITRs">
       <t>
        What follows is an example of the path a packet would take when using a
        Proxy-ITR.  In this example, the LISP-NR site is given the EID-Prefix
        192.0.2.0/24.  For the purposes of this example, neither this prefix
        nor any covering aggregate are present in the global routing system. 
        In other words, without the Proxy-ITR announcing 192.0.2.0/24, if
        a packet with this destination were to reach a router in the
        Default-Free Zone, it would be dropped.  The following diagram
        describes a high-level view of the topology:
       </t>
          <figure title="Example of Proxy-ITR Packet Flow" anchor="Packet-Flow">
              <artwork>
                  Internet DFZ

       .--------------------------------.
      /                                  \
      |      Traffic Encap'd to Site's   |
      |    +-----+    RLOC(s)            |        LISP Site:
      |    |P-ITR|=========>             |
      |    +-----+                    +--+      +-----+ |
      |       |                       |PE+------+CE 1 |-|
      |       | Originated Route      +--+      +-----+ | +----+
      |       V  192.0.2.0/24            |              |-|Host|
      |                               +--|      +-----+ | +----+
      |                               |PE+------+CE 2 |-|  192.0.2.1
      |                +---+          +--+      +-----+ |
      \                |PE |             /
       '---------------+-+-+------------'        Site EID-Prefix:
                         |                          192.0.2.0/24
                         |       ^
                         |       |
                      +--+--+    | Traffic
      Non LISP Site:  | CE  |    |  to
                      +--+--+    | 192.168.2.1
                         |       |
                    -----------
                            |
                           +----+
                           |Host|
                           +----+
              </artwork>
          </figure>
       <t>
         A full protocol exchange example follows:
       </t>
       <t><list style="numbers">
        <t>The source host makes a DNS lookup EID for the destination and gets
           192.0.2.1 in return.</t>
        <t>The source host has a default route to the Customer Edge (CE)
           router and forwards the packet to the CE.</t>
        <t>The CE has a default route to its Provider Edge (PE)
           router and forwards the packet to the PE.</t>
        <t>The PE has a route to 192.0.2.0/24, and the next hop is the
           Proxy-ITR.</t>
        <t>The Proxy-ITR has or acquires a mapping for 192.0.2.1 and LISP-encapsulates the
           packet.  The outer IP header now has a destination address of one of the
           destination EID's RLOCs.  The outer source address of this encapsulated
           packet is the Proxy-ITR's RLOC.</t>
        <t>The Proxy-ITR looks up the RLOC and forwards the LISP packet to the next hop, 
           after which it is forwarded by other routers to the ETR's RLOC.</t>
        <t>The ETR decapsulates the packet and delivers the packet to the
           192.0.2.1 host in the destination LISP site.</t>
        <t>Packets from host 192.0.2.1 will flow back through the LISP
           site's ITR. Such packets are not encapsulated because the ITR knows
           that the destination (the original source) is a non-LISP site.
           The ITR knows this because it can check the LISP mapping database
           for the destination EID and on a failure determines that the
           destination site is not LISP enabled.</t>
         <t>
           Packets are then routed natively and directly to the destination 
           (original source) site.</t>
        </list></t>
       <t>
        Note that in this example the return path is
        asymmetric, so return traffic will not go back through
        the Proxy-ITR.  This is because the LISP-NR site's ITR will
        discover that the originating site is not a LISP site
        and will not encapsulate the returning packet (see <xref
        target="RFC6830"/> for details of ITR behavior).
       </t>
       <t>
        The asymmetric nature of traffic flows allows the Proxy-ITR to be
        relatively simple -- it will only have to encapsulate LISP packets.
       </t>
      </section>
      <section title="Scaling Proxy-ITRs">
        <t>
         Proxy-ITRs attract traffic by announcing the LISP EID namespace into parts of
         the non-LISP-speaking global routing system.  There are several ways that
         a network could control how traffic reaches a particular Proxy-ITR to prevent
         it from receiving more traffic than it can handle:
        </t>
        <t><list style="numbers">
          <t>
          The Proxy-ITR's aggregate routes might be selectively announced,
          giving a coarse way to control the quantity of traffic attracted by
          that Proxy-ITR.  For example, some of the routes being announced might be
          tagged with a BGP community and their scope of announcement limited 
          by the routing policy of the provider.
          </t>
          <t>
           The same address might be announced by multiple Proxy-ITRs in
           order to share the traffic using IP Anycast.  The asymmetric nature
           of traffic flows through the Proxy-ITR means that operationally, 
           deploying a set of Proxy-ITRs would be very similar to existing anycasted
           services like DNS caches.  Multiple Proxy-ITRs could advertise the same
           BGP Next Hop IP address as their RLOC, and traffic would be attracted
           to the nearest Next Hop according to the network's IGP. 
          </t>
         </list></t>
      </section>
      <section title="Impact of the Proxy-ITR's Placement in the Network">
         <t>
         There are several approaches that a network could take in placing
         Proxy-ITRs.  Placing the Proxy-ITR near the source of traffic allows the
         communication between the non-LISP site and the LISP site to have the
         least "stretch" (i.e., the least number of forwarding hops when compared
         to an optimal path between the sites).
         </t>
         <t>
         Some proposals, for example the Core Router-Integrated Overlay
         <xref target="CRIO"/>, have suggested grouping Proxy-ITRs near an arbitrary 
         subset of ETRs and announcing a 'local' subset of EID space.  This
         model cannot guarantee minimum stretch if the EID-Prefix
         route advertisement points are changed (such a change
         might occur if a site adds, removes, or replaces one or
         more of its ISP connections).  
         </t>
       </section>
       <section title="Benefit to Networks Deploying Proxy-ITRs">
         <t>  
         When packets destined for LISP-NR sites arrive and are encapsulated at
         a Proxy-ITR, a new LISP packet header is prepended. This causes the packet's
         destination to be set to the destination ETR's RLOC. Because packets are
         thus routed towards RLOCs, it can potentially better follow the
         Proxy-ITR network's Traffic Engineering policies (such as closest exit
         routing).  This also means that providers that are not default-free
         and do not deploy Proxy-ITRs end up sending more traffic to expensive
         transit links (assuming their upstreams have deployed Proxy-ITRs) 
         rather than to the ETR's RLOC addresses, to which they may well have cheaper
         and closer connectivity (via, for example, settlement-free peering). 
         A corollary to this would be that large transit providers deploying Proxy-ITRs
         may attract more traffic, and therefore more revenue, from their customers.
         </t>
       </section>
    </section>

<section title="Proxy Egress Tunnel Routers" toc="default" anchor="Proxy-ETR">
    <t>
        Proxy Egress Tunnel Routers (Proxy-ETRs) allow LISP sites to send packets
        to non-LISP sites in the case where the access network does not allow
        the LISP site to send packets with the source address of the site's EID(s).
        A Proxy-ETR is a new network element that, conceptually, acts as an ETR
        for traffic destined to non-LISP sites. This also has the effect of
        allowing an ITR to avoid having to decide whether to encapsulate
        packets or not -- it can always encapsulate packets.  An ITR would
        encapsulate packets destined for LISP sites (no change here), and
        these would be routed directly to the corespondent site's ETR.
        All other packets (those destined to non-LISP sites) will be sent to
        the originating site's Proxy-ETR.
    </t>
    <t>
        There are two primary reasons why sites would want to utilize a Proxy-ETR:
    </t>
    <t><list style="hanging">
        <t hangText="Avoiding strict Unicast Reverse Path Forwarding (uRPF) failures:">
            Some providers' access networks require the source of the packets
            emitted to be within the addressing scope of the access networks
            (see <xref target="seccons"/>).
        </t>
        <t hangText="Traversing a different IP Protocol:">
            A LISP site may want to transmit packets to a non-LISP site where some of the
            intermediate network does not support the particular IP protocol desired
            (v4 or v6).  Proxy-ETRs can allow this LISP site's data to 'hop over' this by
            utilizing LISP's support for mixed-protocol encapsulation.
        </t>
    </list></t>
    <section title="Packet Flow with Proxy-ETRs">
        <t>
            Packets from a LISP site can reach a non-LISP site with the aid of
            a Proxy-ETR.  An ITR is simply configured to send all
            non-LISP traffic, which it normally would have forwarded natively
            (non-encapsulated), to a Proxy-ETR.  In the case where the ITR uses
            one or more Map-Resolvers, the ITR will encapsulate packets that match 
            the received Negative Map-Cache to the configured Proxy-ETR(s).
            In the case where the ITR is connected to the mapping system
            directly, it would encapsulate all packets to the configured
            Proxy-ETR that are cache misses.  Note that this outer encapsulation
            to the Proxy-ETR may be in an IP protocol other than the (inner) encapsulated data.
            Routers then use the LISP (outer) header's destination address to route the
            packets toward the configured Proxy-ETR.
        </t>
        <t>
            A Proxy-ETR should verify the (inner) source EID of the packet at
            the time of decapsulation in order to verify that this is from a
            configured LISP site.  This is to prevent spoofed inner sources
            from being encapsulated through the Proxy-ETR.
        </t>
        <t>
            What follows is an example of the path a packet would take when using
            a Proxy-ETR.  In this example, the LISP-NR (or LISP-R) site is given the EID-Prefix
            192.0.2.0/24, and it is trying to reach a host at a non-LISP site with the
            IP prefix 198.51.100.0/24.  For the purposes of this example, the destination 
            (198.51.100.0/24) is found in the Internet's routing system.
        </t>
        <t>
            A full protocol exchange example follows:
        </t>
        <t><list style="numbers">
            <t>The source host makes a DNS lookup for the destination and gets
                198.51.100.100 (an IP address of a host in the non-LISP site) in return. </t>
            <t>The source host has a default route to the Customer Edge (CE) router and
                forwards the packet towards the CE.</t>
            <t>The CE is a LISP ITR and is configured to encapsulate traffic
                destined for non-LISP sites to a Proxy-ETR.</t>
            <t>The Proxy-ETR decapsulates the LISP packet and forwards the original
                packet to its next hop.</t>
            <t>The packet is then routed natively and directly to the destination
                (non-LISP) site 198.51.100.0/24.</t>
        </list></t>
        <t>
            Note that in this example the return path is asymmetric, so return
            traffic will not go back through the Proxy-ETR.  This means that 
            in order to reach LISP-NR sites, non-LISP sites must still use Proxy-ITRs.
        </t>
    </section>
</section>

    <section title="LISP-NAT" anchor="lispnat">
      <t>
       LISP Network Address Translation (LISP-NAT) is a limited 
       form of NAT <xref target="RFC2993"/>. LISP-NAT is designed to
       enable the interworking of non-LISP sites and LISP-NR sites by
       ensuring that the LISP-NR's site addresses are always routable. 
       LISP-NAT accomplishes this by translating a host's source address
       from an 'inner' (LISP-NR EID) value to an 'outer' (LISP-R) value
       and keeping this translation in a table that it can reference
       for subsequent packets.
      </t>
      <t>
        In addition, existing RFC 1918 <xref target="RFC1918"/> sites
        can use LISP-NAT to talk to both LISP and non-LISP sites. 
      </t>
      <t>
        The basic concept of LISP-NAT is that when transmitting a
        packet, the ITR replaces a non-routable EID source
        address with a routable source address, which enables
        packets to return to the site.  Note that this section is 
        intended as a rough overview of what could be done and is not 
        an exhaustive guide to IPv4 NAT.
       </t>
       <t>
        There are two main cases that involve LISP-NAT:
       </t>
       <t><list style="numbers">
        <t>
         Hosts at LISP sites that use non-routable global EIDs
         speaking to non-LISP sites using global addresses.
        </t>
        <t>
         Hosts at LISP sites that use RFC 1918 private EIDs
         speaking to other sites, who may be either LISP or
         non-LISP sites.
       </t> 
       </list></t>
       <t>
        Note that LISP-NAT is not needed in the case of LISP-R
        (routable global EIDs) sources. This case occurs when
        a site is announcing its prefix into both the LISP mapping
        system and the Internet DFZ.  This is because the
        LISP-R source's address is routable, and return packets
        will be able to natively reach the site.  
       </t>
      <section title="Using LISP-NAT with LISP-NR EIDs" anchor="lispeid">
       <t>
        LISP-NAT allows a host with a LISP-NR EID to send packets to
        non-LISP hosts by translating the LISP-NR EID to a globally
        unique address (a LISP-R EID). This globally unique address
        may be either a PI or PA address.
        </t>
        <t>
         An example of this translation follows.  For this
         example, a site has been assigned a LISP-NR EID of
         203.0.113.0/24.  In order to utilize LISP-NAT, the site has
         also been provided the PA EID 192.0.2.0/24 and uses
         the first address (192.0.2.1) as the site's RLOC.  The
         rest of this PA space (192.0.2.2 to 192.0.2.254) is
         used as a translation pool for this site's hosts who need
         to send packets to non-LISP hosts.
        </t>
        <t>
         The translation table might look like the following: 
         </t>
      <figure title="Example Translation Table" anchor="translation-table">
       <artwork>
   Site NR-EID     Site R-EID     Site's RLOC    Translation Pool
   ==============================================================
   203.0.113.0/24  192.0.2.0/24    192.0.2.1      192.0.2.2-254
       </artwork>
      </figure>
        <t>
        The host 203.0.113.2 sends a packet (which, for the 
        purposes of this example, is destined for a non-LISP
        site) to its default route (the ITR).  The ITR receives
        the packet and determines that the destination is not a
        LISP site.  How the ITR makes this determination is up to
        the ITR's implementation of the EID-to-RLOC mapping system
        used (see, for example, <xref target="RFC6836"/>).
        </t>
        <t>
        The ITR then rewrites the source address of the packet
        from 203.0.113.2 to 192.0.2.2, which is the first
        available address in the LISP-R EID space available to
        it.  The ITR keeps this translation in a table in order
        to reverse this process when receiving packets destined
        to 192.0.2.2.
        </t>
        <t>
         Finally, when the ITR forwards this packet without
         encapsulating it, it uses the entry in its LISP-NAT table
         to translate the returning packets' destination IPs to
         the proper host.  
        </t>
     </section>
      <section title="LISP Sites with Hosts Using RFC 1918 Addresses Sending to Non-LISP Sites">
        <t>
      In the case where hosts using RFC 1918 addresses desire to
      send packets to non-LISP hosts, the LISP-NAT
      implementation acts much like an existing IPv4 NAT
      device that is doing address translation only (not port translation).
      The ITR providing the NAT service must use
      LISP-R EIDs for its global address pool and also provide
      all the standard NAT functions required today.
        </t>
    <t>
     Note that the RFC 1918 addresses above are private addresses and not EIDs,
     and that these RFC 1918 addresses are not found in the LISP mapping
     system.
    </t>
        <t>
      The source of the packet must be translated to a LISP-R
      EID in a manner similar to that discussed in <xref target="lispnat"/>,
      and this packet must be forwarded to the ITR's next hop for
      the destination, without LISP encapsulation.
        </t>
     </section>
      <section title="LISP Sites with Hosts Using RFC 1918 Addresses Sending Packets to Other LISP Sites"> 
        <t>
         LISP-NAT allows a host with an RFC 1918 address to
         send packets to LISP hosts by translating the RFC 1918
         address to a LISP EID.  After translation, the
         communication between the source and destination ITR and ETRs
         continues as described in <xref target="RFC6830"/>. 
        </t>
    <t>
     While the communication of LISP EIDs to LISP EIDs is, strictly speaking,
     outside the scope of interworking, it is included here in order to 
     complete the conceptual framework of LISP-NAT.
    </t>
        <t>
         An example of this translation and encapsulation follows.  For this
         example, a host has been assigned an RFC 1918 address of 192.168.1.2.
         In order to utilize LISP-NAT, the site also has been provided the
         LISP-R EID-Prefix 192.0.2.0/24 and uses the first address
         (192.0.2.1) as the site's RLOC.  The rest of this PA space
         (192.0.2.2 to 192.0.2.254) is used as a translation pool for this
         site's hosts who need to send packets to both non-LISP and LISP
         hosts.
        </t>
        <t>
         The host 192.168.1.2 sends a packet destined for a non-LISP site to
         its default route (the ITR).  The ITR receives the packet and
         determines that the destination is a LISP site.  How the ITR makes
         this determination is up to the ITR's implementation of the
         EID-to-RLOC mapping system. 
        </t>
        <t>
         The ITR then rewrites the source address of the packet from
         192.168.1.2 to 192.0.2.2, which is the first available address in
         the LISP EID space available to it.  The ITR keeps this translation
         in a table in order to reverse this process when receiving packets
         destined to 192.0.2.2.
        </t>
        <t>
         The ITR then LISP-encapsulates this packet (see <xref target="RFC6830"/> for details).
         The ITR uses the site's RLOC as the LISP outer header's source and
         the translation address as the LISP inner header's source.  Once it
         decapsulates returning traffic, it uses the entry in its LISP-NAT
         table to translate the returning packet's destination IP address and
         then forwards it to the proper host.
        </t>
      </section>
    <section title="LISP-NAT and Multiple EIDs">
      <t>
       With LISP-NAT, there are two EIDs possible for a given host: the
       LISP-R EID and the LISP-NR EID.  When a site has two addresses that a
       host might use for global reachability, name-to-address directories
       may need to be modified.
      </t>
      <t>
       This problem -- global vs. local addressability -- exists for NAT in general, but
       the specific issue described above is unique to location/identity
       separation schemes.  Some of these have suggested running a separate DNS
       instance for new types of EIDs.  This solves the problem but
       introduces complexity for the site.  Alternatively, using Proxy-ITRs can
       mitigate this problem, because the LISP-NR EID can be reached in all
       cases.
       </t>
      </section>
    </section>

    <section title="Discussion of Proxy-ITRs, LISP-NAT, and Proxy-ETRs" toc="default" anchor="disc-pitr-nat-petr">
     <t>
      In summary, there are three suggested mechanisms for interworking LISP with 
      non-LISP sites (for both IPv4 and IPv6).  In the LISP-NAT option, the LISP site
      can manage and control the interworking on its own.  In the Proxy-ITR case,
      the site is not required to manage the advertisement of its EID-Prefix into
      the DFZ, with the cost of potentially adding stretch to the connections of
      non-LISP sites sending packets to the LISP site.  The third option is Proxy-ETRs, 
      which are optionally used by sites relying on Proxy-ITRs to mitigate
      two caveats for LISP sites sending packets to non-LISP sites.  This means
      Proxy-ETRs are not usually expected to be deployed by themselves; rather,
      they will be used to assist LISP-NR sites that are already using Proxy-ITRs.
     </t>  
      <section title="How Proxy-ITRs and Proxy-ETRs Interact"> 
      <t>
      There is a subtle difference between symmetrical (LISP-NAT) and asymmetrical
      (Proxy-ITR and Proxy-ETR) interworking techniques.  Operationally,
      Proxy-ITRs and Proxy-ETRs can (and likely should) be
      decoupled, since Proxy-ITRs are best deployed closest to non-LISP sites
      and Proxy-ETRs are best located close to the LISP sites they are
      decapsulating for.  This asymmetric placement of the two
      network elements minimizes the stretch imposed on each direction of the
      packet flow while still allowing for coarsely aggregated
      announcements of EIDs into the Internet's routing table.
      </t>
      </section>
    </section>

    <section title="Security Considerations" toc="default" anchor="seccons">
      <t>
          Like any router or LISP ITR, Proxy-ITRs will have the opportunity to
          inspect traffic at the time that they encapsulate.  The location of
          these devices in the network can have implications for discarding
          malicious traffic on behalf of ETRs that request this behavior (by
          setting the ACT (action) bit in Map-Reply packets
          <xref target="RFC6830"/> to "Drop" for an EID or EID-Prefix).
          This is an area that would benefit from further experimentation and 
          analysis.
      </t>
      <t>
        LISP interworking via Proxy-ITRs should have no impact on the existing 
        network beyond what LISP ITRs and ETRs introduce when multihoming.  
        That is, if a site multihomes today (with LISP or BGP), there is a 
        possibility of asymmetric flows.
      </t>
      <t>  
          Proxy-ITRs and Proxy-ETRs will likely be operated by organizations
          other than those of the end site receiving or sending traffic. Care
          should be taken, then, in selecting a Proxy-ITR/Proxy-ETR provider 
          to insure that the quality of service meets the site's expectations.
      </t>
        <t>
        Proxy-ITRs and Proxy-ETRs share many of the same security issues as
        those discussed for ITRs and ETRs.  For further information, see the
        security considerations section of <xref target="RFC6830"/>.
      </t>
      <t>
       As with traditional NAT, LISP-NAT will obscure the actual host
       LISP-NR EID behind the LISP-R addresses used as the NAT pool.  
      </t>
      <t>
       When LISP sites send packets to non-LISP sites (these non-LISP sites
       rely on Proxy-ITRs to enable interworking), packets will have the site's
       EID as the source IP address.  These EIDs may not be recognized by their
       ISP's Unicast Reverse Path Forwarding (uRPF)
       rules enabled on the Provider Edge router.  Several options are
       available to the service provider.  For example, they could enable a
       less strict version of uRPF, where they only look for the existence
       of the EID-Prefix in the routing table.  Another option, which is
       more secure, is to add a static route for the customer on the PE router
       but not redistribute this route into the provider's routing table.
       Finally, Proxy-ETRs can enable LISP sites to bypass this uRPF check
       by encapsulating all of their egress traffic destined to non-LISP
       sites to the Proxy-ETR (thus ensuring that the outer IP source address
       is the site's RLOC).
      </t>
    </section>

    <section title="Acknowledgments" toc="default">
      <t>
       Thanks go to Christian Vogt, Lixia Zhang, Robin Whittle, Michael
       Menth, Xuewei Wang, and Noel Chiappa, who have made insightful
       comments with respect to LISP interworking and transition mechanisms.
      </t>
      <t> 
       A special thanks goes to Scott Brim for his initial
       brainstorming of these ideas and also for his careful
       review. 
      </t>
    </section>

  </middle>

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

<!-- draft-ietf-lisp (RFC 6830/cluster 62) -->
            <reference anchor="RFC6830">
                <front>
                    <title>The Locator/ID Separation Protocol (LISP)</title>
                    <author initials="D" surname="Farinacci">
                        <organization />
                    </author>
                    <author initials="V" surname="Fuller">
                        <organization />
                    </author>
                    <author initials="D" surname="Meyer">
                        <organization />
                    </author>
                    <author initials="D" surname="Lewis">
                        <organization />
                    </author>
                  <date month="January" year="2013"/>
                </front>
                <seriesInfo name="RFC" value="6830" />
            </reference>

<!-- draft-ietf-lisp-alt (RFC 6836/cluster 62) -->
            <reference anchor="RFC6836">
                <front>
                    <title>Locator/ID Separation Protocol Alternative Logical
Topology (LISP+ALT)</title>
                    <author initials="D" surname="Farinacci">
                        <organization />
                    </author>
                    <author initials="V" surname="Fuller">
                        <organization />
                    </author>
                    <author initials="D" surname="Meyer">
                        <organization />
                    </author>
                    <author initials="D" surname="Lewis">
                        <organization />
                    </author>
                  <date month="January" year="2013"/>
                </front>
                <seriesInfo name="RFC" value="6836"/>
            </reference>

      </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.2993" ?>
        
      <reference anchor="CRIO">
        <front>
          <title>CRIO: Scaling IP Routing with the Core Router-Integrated Overlay</title> 
             <author initials="X" surname="Zhang"
                     fullname="Xinyan (Joy) Zhang">
             </author>
             <author initials="P" surname="Francis"
                     fullname="Paul Francis">
             </author>
             <author initials="J" surname="Wang"
                     fullname="Jia Wang">
             </author>
             <author initials="K" surname="Yoshida"
                     fullname="Kaoru Yoshida">
             </author>
             <date month="November" year="2006" />
        </front>
      </reference>

    </references>

  </back>

</rfc>

<!--  LocalWords:  Interworking Cisco interworking EIDs RLOCs RLOC unicast Proxy-ITRs
 -->
<!--  LocalWords:  routable aggregatable decapsulates Proxy-ITR's namespace Anycast
 -->
<!--  LocalWords:  CRIO ETRs NR's ITRs ITR's xTRs Lixia Zhang IANA namespaces
 -->
<!--  LocalWords:  Vogt Proxy-ETR Proxy-ETRs Proxy-ETR's Proxy-ITR
 -->
