<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->

<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->

<rfc category="info"
    xmlns:xi="http://www.w3.org/2001/XInclude"
    docName="draft-vgovindan-lisp-multicast-deploy-02"
    updates=""
    consensus="true"
    submissionType="IETF"
    ipr="trust200902"
    tocInclude="true"
    tocDepth="4"
    symRefs="true"
    sortRefs="true">

 <!-- ***** FRONT MATTER ***** -->

 <front>
   <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->
    <title abbrev="LISP Mcast Deployments"> LISP Multicast Deployment Experience</title>
    <seriesInfo name="Internet-Draft" value="draft-vgovindan-lisp-multicast-deploy-02"/>

    <author initials="V." surname="Govindan" fullname="Vengada Prasad Govindan">
      <organization>Cisco</organization>
      <address>
        <email>venggovi@cisco.com</email>
      </address>
    </author>

    <author initials="M." surname="Hamroz" fullname="Marcin Hamroz">
      <organization>Cisco</organization>
      <address>
        <email>mhamroz@cisco.com</email>
      </address>
    </author>

    <author initials="J." surname="Gawron" fullname="Jaroslaw Gawron">
      <organization>Cisco</organization>
      <address>
        <email>jagawron@cisco.com</email>
      </address>
    </author>



   <date year="2025" />

   <!-- Meta-data Declarations -->
   <area>Routing</area>
   <workgroup>LISP Working Group</workgroup>

    <abstract>
    <t> We present our experiences in supporting deployments of LISP Multicast
     using unicast and multicast underlays. This document details design
     considerations that can be useful for anyone interested in deploying 
     LISP multicast services over IP networks.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t> This document describes deployment experiences of inter domain
      multicast routing function in a network where Locator/ID Separation is
      deployed using the Locator/ID Separation Protocol (LISP) architecture as
      described in 
      <xref target = "I-D.ietf-lisp-rfc6831bis" format="default"/></t>
    </section>

    
    <section>
      <name> Terminology </name>
      <t> All of the terminology used in this document comes from 
         <xref target="RFC9301"/>
         <xref target="I-D.ietf-lisp-rfc6831bis"/>,
         <xref target="I-D.ietf-lisp-vpn"/> and
         <xref target="I-D.moreno-lisp-uberlay"/>.</t>
    </section>
    <section>
    <name> Scope of this document</name>
    <t> This document covers the following aspects: </t>
     <ul spacing="compact">
         <li>Deployments based on the procedures of 
             <xref target="I-D.ietf-lisp-rfc6831bis"/>.</li>
         <li>When using a multicast based underlay, LISP sites can provide
         support to forward Layer-2 Broadcast, Unknown Unicast and 
         Multicast (BUM) packets. </li>
         <li>Layer3 routed multicast services (ASM, SSM and BiDir) are
         provided by such LISP sites.</li>
         <li> Both IPv4 and IPv6 overlays are covered by this document. 
         Similarly, both IPv4 and IPv6 underlays are covered.</li>
     </ul>
    </section>
    <section>
    <name> Scope not covered by this document</name>
    <t> This document does not cover the following aspects: </t>
     <ul spacing="compact">
       <li> L3 routed Unicast forwarding or L2 forwarding between LISP sites.</li>
       <li>This document does not address services implemented using underlays
       such as BIER.</li>
       <li>Procedures and considerations required for migrating non-LISP based
       networks to LISP based networks.</li>
       <li>Extranet Multicast (Route Leaking).</li>
       <li>Signal Free LISP Multicast <xref target="I-D.ietf-lisp-rfc8378bis"/>.</li>
     </ul>
    </section>

  <section anchor="sect-2" numbered="true" toc="default">
     <name>Industry segments/ use-cases covered</name>
     <t>The deployment experiences outlined in this document capture learnings
        from various industry segments listed below (not exhaustive:)</t>
     <ul spacing="compact">
             <li> Educational Institutions (e.g. Universities with multiple 
                  campuses, school districts)</li>
             <li> Public Utilities like Airports, Stadiums and Ports</li>
             <li> Hospitals and Healthcare providers</li>
             <li> Enterprises including Financial Institutions spread 
              across continents and large geographical regions</li>
             <li> Technology vendors and factories</li>
             <li> Events like Expos, Tradeshows, Sporting events</li>
     </ul>
   </section>
  <section anchor="sect-21" numbered="true" toc="default">
     <name>Advantages and Cost of using "PIM-over-PIM"</name>
     <t> There are both advantages and costs in using a "PIM-over-PIM"
     design outlined in <xref target="I-D.ietf-lisp-rfc6831bis"/>:</t>
     <ul spacing="compact">
     <li> PIM <xref target="RFC7761"/> is a well-understood and deployed 
     protocol in many types of networks (Enterprise, Global Internet etc.).
     </li>
     <li> For the specific case of deploying PIM in the overlay in a LISP
     network, merely encapsulating the PIM protocol packet into a Unicast
     LISP packet and directing it towards the xTR that is chosen as the
     Upstream Multicast NH worked very well.</li>
     <li> Usage of  PIM Join Attributes for LISP is a very useful method
     for the receiver ETR to signal underlay transport attributes to the ITR
     <xref target="RFC8059"/>.  The motivations for doing so are explained in 
     the later sections of this document.</li>
     <li> The PIM neighborship was not fully established as exchange of PIM
     hellos were considered chatty. An alternate method of achieving this
     could be to use <xref target="RFC9739"/></li>
     <li>A simple but powerful optimization was done to use only SSM in the 
     underlay for supporting overlay Layer-3 multicast routing. </li>
    </ul>
   </section>

         <section anchor="sect-3.2.0" numbered="true" toc="default">
          <name>Underlay Deployment considerations</name>
             <section anchor="sect-3.2.0.1" numbered="true" toc="default">
              <name>Head-End Replication </name>
              <t>A small but significant subset of deployments have been 
              observed using the Head-End Replication (HER). This is 
              primarily done for low-volume multicast or for deployments 
              where there are restrictions in implementations for supporting 
              an underlay with native multicast.</t>
              <t> Another category of the deployments were early adopters of
              the technology when the software releases were limited to unicast
              underlay.</t>
              <t> The primary characteristic of such networks is the presence
              of a limited number of LISP sites in which receivers are 
              present. Please note that this does not necessarily mean
              that only a limited number of hosts receive the multicast.</t>
              <t> Since the ASICs that form the data plane have very 
              efficient methods to replicate multicast packets to local 
              receivers, any deployment that has a good localization of
              receivers to a limited number of LISP sites can still use
              a unicast underlay with high efficiency. </t>
              <t> On the positive side, there are widely deployed mechanisms
              for both traffic-engineering (e.g. Load balancing) and 
              fast convergence due to link/ node failures in unicast that can
              be reused for overlay routed multicast when using a unicast 
              underlay. </t>
              <t> Another very important use-case for considering a unicast
              underlay is to have migration done from (say) IPv4 to IPv6.</t>
              <t> It is also possible to perform the Head-End replication on
              an ITR or PITR. </t>
              <t>Although not covered in this document, the design of HER
              allows for the co-existence of RLOCs using both unicast and
              multicast underlays.</t>
             </section>
             <section anchor="sect-3.2.0.2" numbered="true" toc="default">
              <name>Native Multicast Underlay </name>
              <t>Native multicast underlay presents notable advantages over
                Head-End Replication, particularly in network topologies where
                replication occurs at multiple nodes between the ETR
                and the ITR. Despite 
                advancements in modern ASICs designed for high-performance 
                multicast packet replication at the Head-End, bandwidth 
                consumption remains a critical factor favoring the adoption of
                native multicast underlay. </t>
                <t> In native multicast mode, there is a mapping between the 
                overlay multicast group address and the underlay multicast 
                group. This mapping must be consistent across network devices 
                within a LISP domain to ensure uniformity. The simplest 
                method involves a 1:1 mapping between the overlay LISP group 
                address and the underlay multicast group address. To maintain
                uniqueness in this mapping process, implementations may 
                incorporate additional parameters, such as the source IP 
                address and LISP instance ID, providing sufficient entropy to
                ensure uniqueness across LISP instances.</t>
                <t>There exists recent work like 
                <xref target="I-D.ietf-lisp-group-mapping"/> that can be 
                leveraged here. </t>

              <t>Using native multicast in the underlay is used by the 
                 majority of the deployments known.</t>
              <ul spacing="compact">
                 <li> Underlays in most deployments were homogenous e.g. IPv6 
                  Unicast based underlay.</li>
                 <li> Upgrading from one underlay to another is a process that
                 requires a lot of planning. This is not covered in this 
                 document.</li>
              </ul>

             </section>
         </section>

     <section anchor="sect-3.1" numbered="true" toc="default">
     <name>Layer-2 BUM overlay deployment considerations
     </name>
     <t>There are three deployment options that can be considered here for
     deployment:</t>
     <ul spacing="compact">
     <li>Ingress Replication: Each L2 BUM packet is replicated by the ITR so
     each ETR receives a copy of the L2 packet encapsulated as unicast in the
     underlay.</li> 
     <li>Use ASM underlay: Since any xTR does not know the list of ITRs that
     can potentially send L2 BUM packets, it subscribes to an underlay multicast
     group based on the L2 LISP instance. There can be a m:n mapping of 'm' LISP
     instances to 'n' Underlay Multicast groups with m>n or m>>n. We have also
     seen many customers use n=1.</li>
     <li>Use BIDIR underlay: Since BIDIR is a commonly supported mode we can
     simply reduce the multicast state in the underlay to O(n) instead of 
     O(n*no.of ITRs) by choosing BIDIR over ASM. This mode is particularly
     popular when IPv6 underlay is used as the forwarding path resources
     (e.g. TCAM entries) required to support IPv6 multicast routing is double
     that of IPv4. </li>
     </ul>
        <section anchor="sect-3.2.0.2.1" numbered="true" toc="default">
         <name>RP for Layer-2 BUM Multicast Underlay </name>
          <ul spacing="compact">
            <li>When using a Multicast underlay for L2 BUM, we use ASM
            based underlay or a BIDIR based underlay. </li> 
            <li> This can be achieved by having an m LISP L2 
            service instances are mapped to n multicast groups where 
            m > n or m >> n since the number of LISP L2 instances are
            larger than the number of designated multicast groups to carry
            BUM traffic. </li>
            <li> Since this is done flexibly, heavy users of BUM
            can be allocated separate underlay groups for isolation.</li>
            <li> One of the most critical design element is the choice of 
             the RP Design. We have the following options:
               <ul spacing="compact">
               <li>Configuring static RPs: Use of anycast IP addresses with
               static RP is a popular choice observed in deployments. </li>
               <li>Electing RPs through mechanisms like PIM-BSR 
               <xref target="RFC5059"/> has been adopted by customers as well.
                </li>
               <li>Discovering RPs via the Mapping system is not covered in 
                this document.</li>
               </ul>
            </li>
           </ul>
        </section>
     </section>


     <section anchor="sect-3.2" numbered="true" toc="default">
      <name>Layer-3 overlay Multicast deployment considerations</name>
           <section anchor="sect-3.2.1" numbered="true" toc="default">
            <name>Layer-3 Routed Any-Source Multicast (ASM) services</name>
             <t> LISP overlays extend ASM to networks lacking native
             multicast support traditionally. Native multicast in the core
             boosts ASM resilience and optimizes traffic distribution.</t>
             <t>Head-end replication requires tuning to avoid ITR overload
             with many receivers or high traffic. LISP overlays enable ASM
             resilience by rerouting around underlay failures dynamically.</t>
             <t>ASM deployments scale receiver counts flexibly without 
             requiring underlay redesigns. Troubleshooting ASM demands 
             monitoring both LISP overlay and underlay states concurrently.</t>
             <t> Pre-validating underlay multicast capabilities ensures 
             reliable ASM performance consistently. Using native multicast 
             complicates failure diagnosis despite enhancing overall 
             resilience.</t>
              <section anchor="sect-3.2.1.1" numbered="true" toc="default">
               <name>Layer-3 overlay ASM RP placement and redundancy </name>
                <t>In a Layer-3 overlay, the placement of RPs is critical for
                 ensuring robust multicast service delivery.  Unlike 
                 traditional PIM-ASM, LISP multicast relies on static 
                 Rendezvous Point (RP) configurations due to the lack of
                 support for dynamic RP discovery mechanisms like Auto-RP
                 or Bootstrap Router (BSR).</t>
                 <t>Discovering RPs via the mapping system is possible but
                 not covered in this document. </t>
                 <t> RPs can be positioned both inside and outside the 
                 LISP domain. The typical configuration involves static RP 
                 setup and redundancy through the Anycast RP concept, 
                 which allows multiple RPs to share the same IP address, 
                 providing load balancing and fault tolerance. This setup 
                 requires synchronization between RPs using the MSDP to 
                 exchange information about active sources. </t>
                 <t>In some deployments, RP placements are a combination of 
                 RPs placed inside together with RPs placed outside the LISP 
                 domains. This configuration leverages advanced MSDP peering 
                 or group mesh peering to enhance multicast service resilience
                 and efficiency.</t>
                 <t>The RP placement significantly affects the convergence 
                 between the shared and source trees. It is essential that all 
                 xTRs within a given LISP instance use a consistent address 
                 scheme with identical mapping to ensure efficient multicast 
                 routing. The RP facilitates the initial setup of the sharedi
                 tree, allowing sources and receivers to establish direct 
                 multicast data flows.</t>
                 <!--<t>TODO: (S,G, RPT-prune) of receivers.</t>]-->
              </section>
              <section anchor="sect-3.2.1.2" numbered="true" toc="default">
               <name>Optimisation for short-lived streams </name>
               <t> When working with short lived streams (e.g. PA systems
               for airports) it was observed that using the shared tree was
               optimal. The cost of switching to the shortest-path tree
               can be avoided in such scenarios. However such choices
               are better done on a case-by-case basis e.g. based on the range
               of group addresses.</t>
              </section>
           </section>

           <section anchor="sect-3.2.2" numbered="true" toc="default">
            <name>Layer-3 Routed SSM services</name>
             <t>SSM services over a Layer-3 LISP domain connect multicast 
             sources and receivers via the overlay. Receivers join source trees
             (S,G) by signalling IGMPv3, which then is transported as PIM 
             packets over the LISP overlay. The typical SSM services would be 
             represented by Financial Data, IPTV and Live streaming applications. </t>
             <t>The traffic within a LISP domain, similar to the ASM would be 
             subject to encapsulation and depending on the multicast mode it 
             would be either head-end replication or native (overlay to 
             underlay multicast mapping).</t>
             <t>The sources and receivers can be connected to the LISP site or
             be located outside of the LISP domain. LISP overlay provides a 
             resiliency by rerouting traffic dynamically.</t>
             <t> SSM services eliminate RPs and shared trees, simplifying tree
              management. Direct (S,G) trees enhance scalability and reduce 
             latency for one-to-many uses.</t>
             <t> Receivers must support IGMPv3 (or MLDv2) to specify sources, 
             avoiding ASM fallback. Replication strategies need tuning to 
             balance ITR load and underlay bandwidth.</t>
           </section>
     </section>


  <section anchor="sect-4" numbered="true" toc="default">
     <name>Mobility considerations for LISP multicast</name>
     <t>TBD</t>
   </section>

  <section anchor="sect-5" numbered="true" toc="default">
     <name>Enabling Multicast flows for  multiple tenants and multiple site overlays </name>

      <section anchor="sect-5.0" numbered="true" toc="default">
      <name>Background reading</name>
         <t><xref target="I-D.moreno-lisp-uberlay"/> provides methods to operate
         and interconnect multiple LISP sites using Border xTR nodes.</t>
         <t><xref target="I-D.ietf-lisp-vpn"/> describes the use of the LISP
         to create Virtual Private Networks (VPNs).  LISP is used to
         provide segmentation in both the LISP data plane and control plane.</t>
         <t>Using the procedures and construct of the above two references, we
         have been to able to build and deploy solutions that cater to multiple
         tenants connected to multiple LISP sites spread across multiple site
         overlays.</t>
      </section>

     <section anchor="sect-5.1" numbered="true" toc="default">
     <name>LISP Uberlay deployment considerations</name>
      <t>One of the primary deployment use cases involves delivering multicast
      services across multiple site overlays or RLOC spaces
      <xref target="I-D.moreno-lisp-uberlay"/>. There are several
      methods for routing multicast packets when sources and recievers are 
      connected to LISP site overlays that are connected through VPNs.
      Two most common methods are given below:</t>
      <ul spacing="compact">
      <li>Forwarding the traffic natively, without any encapsulation,
      which typically results in extending the Forwarding Context 
      <xref target="I-D.ietf-lisp-vpn"/> segmentation beyond
      a specific LISP site overlay.</li> 
      <li> Implementing an overlay across the uberlay network.</li> </ul>
      <t> Choosing between these options has significant
      design implications for both unicast and multicast flows:</t>
      <t> In the native forwarding approach, traffic leaving a site overlay
      is decapsulated at the border xTRs and placed into the appropriate
      VRF corresponding to the Forwarding Context.
      This scenario creates considerable overhead in deploying
      multicast configurations across multiple site overlays, as each LISP
      Forwarding Context must be mapped to an individual VRF in uberlay. </t>

      <t>Implementing an overlay over the LISP uberlay network
      offers advantages by extending the LISP Forwarding Context between
      different LISP domains. In this case, Border xTRs in each LISP domain
      are responsible for decapsulating and re-encapsulating traffic
      between different site overlays.

      This can be achieved by using disjoint underlay multicast 
      groups in the different site overlays/ uberlay. PIM can be leveraged for
      signaling the different underlay group mappings for the site-overlays and uberlay.
      <xref target="RFC8059"/></t>
    </section>
</section>

  <section anchor="sect-6" numbered="true" toc="default">
     <name>Extranet Multicast (Route leaking)</name>
     <t>This feature is beyond the scope of this document.</t>
   </section>

    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>
    
    <section anchor="Security">
      <name>Security Considerations</name>
      <t> This informational document does not introduce any new 
          security considerations.
          <!--TBD: Should we talk about Best Practices here?-->
      </t>
    </section>
 
  </middle>


  <back>
    <references title="Normative References">
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5059.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7761.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8059.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9301.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lisp-rfc6831bis.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lisp-rfc8378bis.xml"/>
    </references>

    <references title="Informative References">
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9739.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.moreno-lisp-uberlay.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lisp-vpn.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lisp-group-mapping.xml"/>
    </references>

    <section anchor="Acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>A very special and sincere thanks to Dino Farinacci for his extensive
      and insightful comments for improving the content and the readability
      of this document.</t>
      <t>The authors would like to acknowledge Stig Venaas for his review.
      Many individuals also contributed to the discussions for the material
      of this draft including Arunkumar Nandakumar, Aswin Kuppusami, 
      Rajavel Ganesamoorthy, Sankar S and Sundara Moorthy. All contributions
      are gratefully acknowledged.</t>
    </section>
    
    <section anchor="Contributors" numbered="false">
      <name>Contributors</name>
      <t>TBD</t>
    </section>

 </back>
</rfc>
