<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<!--  Edited by Dino Farinacci farinacci@gmail.com -->

<?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="exp" docName="draft-ietf-lisp-eid-anonymity-15"
     ipr="trust200902">

    <front>
        <title>LISP EID Anonymity</title>

        <author initials='D' surname="Farinacci" fullname='Dino Farinacci'>
            <organization>lispers.net</organization>
	    <address><postal>
                <street></street>
		<city>San Jose</city> <region>CA</region>
		<code></code>
		<country>USA</country>
  	    </postal>
	    <email>farinacci@gmail.com</email></address>
        </author>
        <author initials='P' surname="Pillay-Esnault" 
            fullname='Padma Pillay-Esnault'>
            <organization>Independent</organization>
	    <address><postal>
                <street></street>
		<city>Santa Clara</city> <region>CA</region>
		<code></code>
		<country>USA</country>
  	    </postal>
	    <email>padma.ietf@gmail.com</email></address>
        </author>
        <author initials='W' surname="Haddad" 
            fullname='Wassim Haddad'>
            <organization>Ericsson</organization>
	    <address><postal>
                <street></street>
		<city>Santa Clara</city> <region>CA</region>
		<code></code>
		<country>USA</country>
  	    </postal>
	    <email>wassim.haddad@ericsson.com</email></address>
        </author>

	<date></date>
	<area>Routing</area>
	<workgroup>Network Working Group</workgroup>
	<keyword>LISP; EID; RLOC; privacy</keyword>

        <abstract>
          <t>This specification will describe how ephemeral LISP EIDs
          can be used to create source anonymity. The idea makes use of
          frequently changing EIDs much like how a credit-card system
          uses a different credit-card numbers for each
          transaction.</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"/>.</t>
	</note>
    </front>

    <middle>
	<section title="Introduction">
      <t>The LISP architecture <xref target="RFC9300"/> specifies two
      namespaces, End-Point IDs (EIDs) and Routing Locators
      (RLOCs). An EID identifies a node in the network and the RLOC
      indicates the EID's topological location. Typically EIDs are
      globally unique so an end-node system can connect to any other
      end-node system on the Internet. Privately used EIDs are allowed
      when scoped within a VPN but must always be unique within that
      scope. Therefore, address allocation is required by network
      administration to avoid address collisions or duplicate address
      use. In a multiple namespace architecture like LISP, typically
      the EID will stay fixed while the RLOC can change. This occurs
      when the EID is mobile or when the LISP site the EID resides in
      changes its connection to the Internet.</t>

	  <t>LISP creates the opportunity where EIDs are fixed and won't
	  change. This draft will examine a technique to allow a end-node
	  system to use a temporary address. The lifetime of a temporary
	  address can be the same as a lifetime of an address in use today
	  on the Internet or can have traditionally shorter lifetimes,
	  possibly on the order of a day or even change as frequent as new
	  connection attempts.</t>
    </section>

	<section title="Definition of Terms">
	  <t><list style="hanging">
	    <t hangText="Ephemeral-EID -">is an IP address that is
	    created randomly for use for a temporary period of
	    time. An Ephemeral-EID has all the properties of an EID as
	    defined in <xref target="RFC9300"/>. Ephemeral-EIDs are not
	    stored in the Domain Name System (DNS) and should not be
	    used in long-term address referrals.</t>

	    <t hangText="Client End-Node -">is a network node that
	    originates and consumes packets.  It is a system that
	    originates packets or initiates the establishment of
	    transport-layer connections. It does not offer services as a
	    server system would. It accesses servers and attempts to
	    do it anonymously.</t>
      </list></t>
    </section>

	<section title="Overview">
      <t>A client end-node can assign its own ephemeral EID and use it
      to talk to any system on the Internet. The system is acting as a
      client where it initiates communication and desires to be an
      inaccessible resource from any other system. The ephemeral EID
      is used as a destination address solely to return packets to
      resources the ephemeral EID connects to. A client-node may
      simultaneously use a traditional EID along with ephemeral EIDs
      in parallel and are not mutually exclusive.  A client may choose
      to use the ephemeral EIDs with some peers only where it needs to
      preserve anonymity.</t>

	  <t>Here is the procedure a client end-node would use:</t>

	  <t><list style="numbers">
        <t>Client end-node desires to talk on the network. It creates
        and assigns an ephemeral-EID on any interface.  The client
        end-node may also assign multiple ephemeral-EIDs on the same
        interface or across different interfaces.</t>

	    <t>If the client end-node is a LISP xTR, it will register
	    ephemeral-EIDs mapped to underlay routable RLOCs. If the
	    client end-node is not a LISP xTR, it can send packets on
	    the network where a LISP router xTR will register the
	    ephemeral-EIDs with its RLOC-set.</t>

	    <t>The client end-node originates packets with a source
	    address equal to the ephemeral-EID and will receive packets
	    addressed to the ephemeral-EID.</t>

	    <t>When the client end-node decides to stop using an
	    ephemeral-EID, it will deregister it from the mapping system
	    and create and assign a new ephemeral-EID, or decide to
	    configure a static global address, or participate in DHCP to
	    get assigned a leased address.</t>
	  </list></t>

	  <t>Note that the ephemeral-EID can be mobile just like any
	  other EID so if it is initially registered to the mapping
	  system with one or more RLOCs, later the RLOC-set can change as
	  the ephemeral-EID roams.</t>
	</section>

	<section title="Design Details">
	  <t>This specification proposes the use of the experimental
	  LISP EID-block 2001:5::/32 <xref target="RFC7954"/> when
	  IPv6 is used. See IANA Considerations section for a specific
	  sub-block allocation request. When IPv4 is used, the Class E
	  block 240.0.0.0/4 is being proposed.</t>

	  <t>The client end-node system will use the rest of the host
	  bits to allocate a random number to be used as the
	  ephemeral-EID. The EID can be created manually or via a
	  programatic interface. When the EID address is going to
	  change frequently, it is suggested to use a programatic
	  interface. The probability of address collision is unlikely for
	  IPv6 EIDs but could occur for IPv4 EIDs. A client end-node can
	  create an ephemeral-EID and then look it up in the mapping system
	  to see if it exists. If the EID exists in the mapping system, the
	  client end-node can attempt creation of a new random number for
	  the ephemeral-EID. See <xref target="PERF"/> where 
	  ephemeral-EIDs can be preallocated and registered to the mapping
	  system before use.</t>

	  <t>When the client end-node system is co-located with the
	  RLOC and acts as an xTR, it should register the binding
	  before sending packets. This eliminates a race condition for
	  returning packets not knowing where to encapsulate packets
	  to the ephemeral-EID's RLOCs. See <xref target="PERF"/> for
	  alternatives for fixing this race condition problem.  When
	  the client end-node system is not acting as an xTR, it
	  should send some packets so its ephemeral-EID can be
	  discovered by an xTR which supports EID-mobility <xref
	  target="I-D.ietf-lisp-eid-mobility"/> so mapping system
	  registration can occur before the destination returns
	  packets. When the end-node system is acting as an xTR, the
	  EID and RLOC-set is co-located in the same node. So when the
	  EID is created, the xTR can register the mapping versus waiting
	  for packet transmission.</t>
	</section>

	<section title="Other Types of Ephemeral-EIDs">
	  <t>When IPv6 Ephemeral-EIDs are used, an alternative to a
	  random number can be used. For example, the low-order bits
	  of the IPv6 address could be a cryptographic hash of a
	  public-key. Mechanisms from <xref target="RFC3972"/> could
	  be used for EIDs. Using this approach allows the sender with
	  a hashed EID to be authenticated. So packet signatures can
	  be verified by the corresponding public-key. When hashed
	  EIDs are used, the EID can change frequently as rekeying may
	  be required for enhanced security. LISP specific control
	  message signature mechanims can be found in <xref
	  target="I-D.farinacci-lisp-ecdsa-auth"/>.</t>
    </section>

	<section title="Interworking Considerations">
	  <t>If a client end-node is communicating with a system that
	  is not in a LISP site, the procedures from <xref
	  target="RFC6832"/> should be followed. The PITR will be
	  required to originate route advertisements for the
	  ephemeral-EID sub-block <xref target="RFC7954"/> so it can
	  attract packets sourced by non-LISP sites destined to
	  ephemeral-EIDs. However, in the general case, the coarse
	  block from <xref target="RFC7954"/> will be advertised which
	  would cover the sub-block. For IPv4, the 240.0.0.0/4 must be
	  advertised into the IPv4 routing system.</t>
	</section>

	<section title="Multicast Considerations">
	  <t>A client end-node system can be a member of a multicast
	  group fairly easily since its address is not used for
	  multicast communication as a receiver.  This is due to the
	  design characteristics of IGMP
	  <xref target="RFC3376"/> 
	  <xref target="RFC2236"/> 
	  <xref target="RFC1112"/> 
	  and MLD 
	  <xref target="RFC2710"/> 
	  <xref target="RFC3810"/>.</t> 

	  <t>When a client end-node system is a multicast source, there is
	  ephemeral (S,G) state that is created and maintained in the
	  network via multicast routing protocols such as PIM <xref
	  target="RFC4602"/> and when PIM is used with LISP <xref
	  target="RFC6802"/>.  In addition, when <xref target="RFC8378"/>
	  is used, ephemeral-EID state is created in the mapping
	  database. This doesn't present any problems other than the
	  amount of state that may exist in the network if not timed out
	  and removed promptly.</t>

	  <t>However, there exists a multicast source discovery
	  problem when PIM-SSM <xref target="RFC4607"/> is
	  used. Members that join (S,G) channels via out of band
	  mechanisms. These mechanisms need to support
	  ephemeral-EIDs. Otherwise, PIM-ASM <xref target="RFC4602"/>
	  or PIM-Bidir <xref target="RFC5015"/> will need to be
	  used.</t>
	</section>
	
	<section title="Performance Improvements" anchor="PERF">
	  <t>An optimization to reduce the race condition between
	  registering ephemeral-EIDs and returning packets as well as
	  reducing the probability of ephemeral-EID address collision is to
	  preload the mapping database with a list of ephemeral-EIDs
	  before using them. It comes at the expense of rebinding all of
	  registered ephemeral-EIDs when there is an RLOC change. There is
	  work in progress to consider adding a level of indirection
	  here so a single entry gets the RLOC update and the list of
	  ephemeral-EIDs point to the single entry.</t>
	</section>

    <section title="Security Considerations">
	  <t>When LISP-crypto <xref target="RFC8061"/> is used the EID
	  payload is more secure through encryption providing EID
	  obfuscation of the ephemeral-EID as well as the global-EID
	  it is communicating with. But the obfuscation only occurs
	  between xTRs. So the randomness of a ephemeral-EID inside of
	  LISP sites provide a new level of privacy.</t>
	</section>

    <section title="IANA Considerations">
	  <t>This specification is requesting the sub-block
	  2001:5:ffff::/48 for ephemeral-EID usage.</t>
	</section>
  </middle>

  <back>
    <references title='Normative References'>
	  <?rfc include='reference.RFC.2119'?>
	  <?rfc include='reference.RFC.9300'?>
	  <?rfc include='reference.RFC.6832'?>
	  <?rfc include='reference.RFC.3376'?>
	  <?rfc include='reference.RFC.2236'?>
	  <?rfc include='reference.RFC.1112'?>
	  <?rfc include='reference.RFC.2710'?>
	  <?rfc include='reference.RFC.3810'?>
	  <?rfc include='reference.RFC.4602'?>
	  <?rfc include='reference.RFC.6802'?>
	  <?rfc include='reference.RFC.4607'?>
	  <?rfc include='reference.RFC.5015'?>
	  <?rfc include='reference.RFC.3972'?>
	  <?rfc include='reference.RFC.7954'?>
	  <?rfc include='reference.RFC.8061'?>
	  <?rfc include='reference.RFC.8378'?>
    </references>

	<references title="Informative References">
	  <?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-lisp-eid-mobility.xml'?>
	  <?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.farinacci-lisp-ecdsa-auth.xml'?>
    </references>

    <section title="Acknowledgments">
      <t>The author would like to thank the LISP WG for their
      review and acceptance of this draft.</t>
    </section>

    <section title="Document Change Log">
      <t>[RFC Editor: Please delete this section on publication as RFC.]</t>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-15">
        <t><list style="symbols"> 
          <t>Posted August 2023.</t>
          <t>Update references (to propsed standard documents) and document timer.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-14">
        <t><list style="symbols"> 
          <t>Posted March 2023.</t>
          <t>Update references (to propsed standard documents) and document timer.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-13">
        <t><list style="symbols">
          <t>Posted September 2022.</t>
          <t>Update document timer and references.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-12">
        <t><list style="symbols">
          <t>Posted March 2022.</t>
          <t>Update document timer and references.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-11">
        <t><list style="symbols">
          <t>Posted end of September 2021.</t>
          <t>Update document timer and references.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-10">
        <t><list style="symbols">
          <t>Posted end of March 2021.</t>
          <t>Update document timer and references.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-09">
        <t><list style="symbols">
          <t>Posted end of October 2020.</t>
          <t>Update document timer and references.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-08">
        <t><list style="symbols">
          <t>Posted end of April 2020.</t>
          <t>Update document timer and references.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-07">
        <t><list style="symbols">
          <t>Posted end of October 2019.</t>
          <t>Update document timer and references.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-06">
        <t><list style="symbols">
          <t>Posted end of March 2019.</t>
          <t>Padma had more basic edits and some clarification text.</t>
        </list></t>
	  </section>

     <section title="Changes to draft-ietf-lisp-eid-anonymity-05">
        <t><list style="symbols">
          <t>Posted March IETF week 2019.</t>
          <t>Do not state that ephemeral EIDs make the privacy problem
          worse.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-04">
        <t><list style="symbols">
          <t>Posted October 2018 before Bangkok IETF deadline.</t>
          <t>Made Padma requested changes to refer to ephemeral-EIDs allowed
          to have many on one interface and can be registered with more than
          1 RLOC but one RLOC-set.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-03">
        <t><list style="symbols">
          <t>Posted October 2018.</t>
          <t>Update document timer and references.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-02">
        <t><list style="symbols">
          <t>Posted April 2018.</t>
          <t>Update document timer and references.</t>
        </list></t>
	  </section>

      <section title="Changes to draft-ietf-lisp-eid-anonymity-01">
        <t><list style="symbols"> 
          <t>Posted October 2017.</t>
	      <t>Add to section 5 that PKI can be used to authenticate 
	      EIDs.</t>
	      <t>Update references.</t>
	    </list></t>
	  </section>

          <section title="Changes to draft-ietf-lisp-eid-anonymity-00">
            <t><list style="symbols"> 
              <t>Posted August 2017.</t>
	      <t>Made draft-farinacci-lisp-eid-anonymity-02 a LISP working
	      group document.</t>
	    </list></t>
	  </section>

          <section title="Changes to draft-farinacci-lisp-eid-anonymity-02">
            <t><list style="symbols"> 
              <t>Posted April 2017.</t>
	      <t>Added section describing how ephemeral-EIDs can use a public
	      key hash as an alternative to a random number.</t>
	      <t>Indciate when an EID/RLOC co-located, that the xTR can
	      register the EID when it is configured or changed versus
	      waiting for a packet to be sent as in the EID/RLOC separated
	      case.</t>
	    </list></t>
	  </section>

          <section title="Changes to draft-farinacci-lisp-eid-anonymity-01">
            <t><list style="symbols"> 
              <t>Posted October 2016.</t>
	      <t>Update document timer.</t>
	    </list></t>
	  </section>

          <section title="Changes to draft-farinacci-lisp-eid-anonymity-00">
            <t><list style="symbols"> 
              <t>Posted April 2016.</t>
	      <t>Initial posting.</t>
	    </list></t>
	  </section>

        </section>

    </back>
</rfc>
