<?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="exp" docName="draft-ietf-lisp-site-external-connectivity-00"
     ipr="trust200902" obsoletes="">
  <front>
    <title abbrev="LISP External Connectivity">LISP Site External
    Connectivity</title>

    <author fullname="Prakash Jain" initials="P" surname="Jain">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city>San Jose</city>

          <region>CA</region>

          <code/>

          <country>USA</country>
        </postal>

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

    <author fullname="Victor Moreno" initials="V" surname="Moreno">
      <organization>Google</organization>

      <address>
        <postal>
          <street/>

          <city>Mountainview</city>

          <region>CA</region>

          <code/>

          <country>USA</country>
        </postal>

        <email>vimoreno@google.com</email>
      </address>
    </author>

    <author fullname="Sanjay Hooda" initials="S" surname="Hooda">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city>San Jose</city>

          <region>CA</region>

          <code/>

          <country>USA</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>shooda@cisco.com</email>

        <uri/>
      </address>
    </author>

    <date day="26" month="March" year="2024"/>

    <abstract>
      <t>This draft defines how to register/retrieve pETR mapping information
      in LISP when the destination is not registered/known to the local site
      and its mapping system (e.g. the destination is an internet or external
      site destination).</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">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>The LISP architecture and protocol [RFC9301] introduces two types of
      replies to a map-request sent by an ITR:</t>

      <t>- when the EID is known or registered to the mapping system, a
      regular map-reply with mapping information is sent, or</t>

      <t>- when the EID is unknown or known but not registered, a
      negative-map-reply (NMR) is sent.</t>

      <t>Currently the NMR does not convey pETR RLOC-set information to
      specify where the ITR should send the packet.</t>

      <t>This document describes how to use the LISP messages to register and
      provide pETR RLOC-set information for destinations which are EIDs not
      registered with the Mapping System, or simply are "not known" to be an
      existing EID. These destinations could be the destinations which are
      outside of the LISP site belonging to non-LISP domains, hence are not
      registered with the LISP Mapping System.</t>

      <t>The reachability of these destinations can be provided either by
      configuring pETR information directly into the Mapping System, or by the
      registration done by certain pETRs. The pETR registration is
      specifically useful when the traffic to these external destinations
      needs to be sent encapsulated to a preferred pETR/gateway chosen
      dynamically. This mechanism also helps to achieve faster
      convergence.</t>

      <t>This document also specifies the structure of the map-reply
      containing pETR RLOC-set information.</t>
    </section>

    <section title="Definition of Terms">
      <t>Same as defined in [RFC9300] and [RFC9301].</t>
    </section>

    <section title="pETR Registration">
      <t>pETRs having external or internet connectivity MAY register the pETR
      with the mapping system per Instance ID (IID) of the VPN
      [I-D.ietf-lisp-vpn]. The pETR Map-Register procedures and record format
      are the same as in [RFC9301] with the following contents:</t>

      <t>- An &ldquo;EID-Prefix&rdquo; as configurable "Distinguished Name"
      defined, agreed upon and &lsquo;distinguished&rsquo; by the mechanism
      according to [I-D.ietf-lisp-name-encoding].</t>

      <t>- RLOC-set for pETR information.</t>

      <t>- Each locator in the RLOC-set MAY be encoded as per
      [I-D.ietf-lisp-vpn]. This enables dynamic external connectivity in VPN
      environments.</t>

      <t>- Additional information MAY be encoded in vendor specific LCAF type
      [RFC9306] about the registering pETR such as its performance matrix,
      location, resource availability for the Mapping System to make
      preference decision.</t>
    </section>

    <section title="pETR Request/Subscription">
      <t>The Map-Request procedures and record format are the same as in
      [RFC9301] with the following contents:</t>

      <t>- An "EID-Prefix" MAY be configurable "Distinguished Name" defined,
      agreed upon and &lsquo;distinguished&rsquo; by the mechanism according
      to [I-D.ietf-lisp-name-encoding].</t>

      <t>- N-bit MAY be set as per [RFC9437]</t>

      <t>- Additional information MAY be encoded in vendor specific LCAF type
      [RFC9306] about the requesting ITR such as location, performance matrix
      to make preference decision.</t>
    </section>

    <section title="pETR Notification/Publication">
      <t>When pETR registers or updates the pETR registration with the mapping
      system, mapping system sends Map-Notify.</t>

      <t>With lisp-pubsub [RFC9437], N-bit SHOULD be set in the Map-Request
      from ITR. Then, whenever pETR gets updated in the mapping system,
      mapping system sends Map-Notify messages to update subscribed ITRs as
      per procedures in [RFC9437].</t>

      <t>When lisp-pubsub [RFC9437] is not available in the mapping system,
      then shorter TTL MAY be used for updating the map-caches at ITR as per
      procedures in [RFC9301].</t>

      <t>The pETR Map-Notify procedures and record format are the same as in
      [RFC9301] with the following contents:</t>

      <t>- An "EID-Prefix" as configurable "Distinguished Name" defined,
      agreed upon and &lsquo;distinguished&rsquo; by the mechanism according
      to [I-D.ietf-lisp-name-encoding].</t>

      <t>- RLOC-set for pETR information.</t>

      <t>- Each locator in the RLOC-set MAY be encoded as per
      [I-D.ietf-lisp-vpn]. This enables dynamic external connectivity in VPN
      environments.</t>

      <t>- TTL MAY be shorter than regular.</t>

      <t>- Additional information MAY be encoded in vendor specific LCAF type
      [RFC9306] about the registering pETR such as its performance matrix,
      location, resource availability to communicate preference decision.</t>
    </section>

    <section title="pETR Resolution">
      <t>When the Map-Server (or ETR) determines that the requested
      destination is external or unknown to the mapping system, it sends a
      Map-Reply containing the pETR information. The Map-Reply procedures and
      record format are the same as described in the Map-Server processing
      section of [RFC9301]. This Map-Reply has the following content (as
      defined per regular map-reply and negative-map-reply in [RFC9301]):</t>

      <t>- An EID-Prefix calculated as non-LISP "hole" per the procedures in
      [RFC9301] for negative map-reply.</t>

      <t>- RLOC count MUST be non-zero.</t>

      <t>- Each locator in the RLOC-set MAY be encoded as per
      [I-D.ietf-lisp-vpn]. This enables dynamic external connectivity in VPN
      environments.</t>

      <t>- TTL MAY be shorter than regular map-reply.</t>

      <t>- Additional information MAY be encoded in vendor specific LCAF type
      [RFC9306] about the mapping such as whether the mapping is based upon
      policy or registration.</t>
    </section>

    <section title="pETR Map-Cache Update">
      <t>On receiving pETR Map-Notify/Map-Reply from the mapping system, ITR
      MAY install/update map-cache and encapsulate the packets to pETR RLOCs
      as per [RFC 9300] for the destinations not known to the mapping system
      as EIDs or known EIDs not registered to the mapping system. This can be
      implemented as follows,</t>

      <t>- ITR SHOULD configure the known EID-blocks in its map-cache to
      always generate Map-Request for known EIDs. These would be more specific
      map-cache entries than &ldquo;hole&rdquo; EID-Prefix or default
      map-cache entries.</t>

      <t>- On receiving pETR Map-Notify/Map-Reply, ITR MAY install/update
      following map-cache entries with pETR RLOCs,</t>

      <t>- &ldquo;hole&rdquo; prefix [RFC9301] map-cache entry to encapsulate
      the packets to pETR RLOCs</t>

      <t>- default map-cache entry to encapsulate the packets to pETR
      RLOCs.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>No IANA considerations apply to this document.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>There are no additional security considerations except what already
      discussed in [RFC9301].</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Fabio Maino, Dino Farinacci and Padma
      Pillay-Esnault for the suggestions and review of this document.</t>
    </section>
  </middle>

  <back>
    <references title="Normative Reference">
      <?rfc include="reference.RFC.9300"?>

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

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

      <?rfc include='reference.I-D.draft-ietf-lisp-name-encoding-02'?>

      <?rfc include='reference.I-D.draft-ietf-lisp-vpn-12'?>

      <?rfc include='reference.RFC.9437'?>

      <?rfc include="reference.RFC.2119"?>
    </references>
  </back>
</rfc>
