<?xml version='1.0'encoding='utf-8'?>encoding='UTF-8'?> <!-- [rfced] Because this document updates RFC 8059, please review the errata reported for RFC 8059 (https://www.rfc-editor.org/errata_search.php?rfc=8059). We do not believe any are applicable to this document, but we would appreciate confirmation that this is correct. --> <!DOCTYPE rfc [ <!ENTITY nbsp " "> <!ENTITY zwsp "​"> <!ENTITY nbhy "‑"> <!ENTITY wj "⁠"> ]> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="exp" docName="draft-ietf-pim-jp-extensions-lisp-09" number="9798" consensus="true" ipr="trust200902" obsoletes="" updates="8059" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3"> <front> <title abbrev="PIM Join Attributes for LISPMcast"> PIMMulticast">PIM Join/Prune Attributes forLISPLocator/ID Separation Protocol (LISP) EnvironmentsusingUsing UnderlayMulticast </title>Multicast</title> <seriesInfoname="Internet-Draft" value="draft-ietf-pim-jp-extensions-lisp-09"/>name="RFC" value="9798"/> <author fullname="Vengada Prasad Govindan" initials="V" surname="Govindan"> <organization>Cisco</organization> <address> <email>venggovi@cisco.com</email> </address> </author> <author fullname="Stig Venaas" initials="S" surname="Venaas"> <organization>Cisco</organization> <address> <email>svenaas@cisco.com</email> </address> </author> <dateyear="2025"/>year="2025" month="May"/> <area>RTG</area> <workgroup>pim</workgroup> <!--If the month and year are both specified and are the current ones, xml2rfc will fill in the current day for you. If only the current year is specified, xml2rfc will fill[rfced] Please insert any keywords (beyond those that appear in thecurrent day and month for you. If the year is not the current one, it is necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the purpose of calculating the expiry date). With drafts it is normally sufficient to specify just the year. --> <!-- Meta-data Declarations --> <area>Routing</area> <workgroup>Internet Engineering Task Force</workgroup> <!-- WG name at the upperleft corner of the doc, IETF is finetitle) forindividual submissions. If this element is not present, the default is "Network Working Group", which is used by the RFC Editor as a nod to the history of the IETF. --> <keyword>template</keyword> <!-- Keywords will be incorporated into HTML output files in a meta tag but they have no effectuse ontext or nroff output. If you submit your draft to the RFC Editor, the keywords will be used for the search engine.https://www.rfc-editor.org/search. --> <keyword>example</keyword> <abstract> <t>This document specifies an update to the PIM Receiver RLOC Join/Prune attribute that supports the construction of multicast distribution trees where the source and receivers are located in different Locator/ID Separation Protocol (LISP) sites and are connected using underlay IP Multicast. This attribute allows the receiver site to signal the underlay multicast group to the control plane of the root Ingress Tunnel Router (ITR). This document updates RFC 8059. </t> </abstract> </front> <middle> <section numbered="true" toc="default"> <name>Introduction</name> <t> The construction of multicast distribution trees where the root and receivers are located in different LISP sites <xref target="RFC9300" format="default"/> is defined in <xref target="RFC6831" format="default"/>.</t> <t> <!-- [rfced] [RFC6831] appears to use the terms "(S-EID,G)" and "(S-RLOC,G)" rather than "(root-EID, G)" and "(root-RLOC, G)". This is clarified later in the paragraph, but perhaps the sentences should be closer together and the original term defined in RFC 6831 should be noted first. Original: [RFC6831] specifies that (root-EID, G) data packets are to be LISP- encapsulated into (root-RLOC, G) multicast packets. ... We use the term root-EID or root-RLOC to refer to the source of the multicast tree rooted at the EID or RLOC. Perhaps: [RFC6831] specifies that (EID, G) data packets are to be LISP- encapsulated into (RLOC, G) multicast packets. In this document, we use the term root-EID or root-RLOC to refer to the source of the multicast tree rooted at the EID or RLOC. ... --> <!-- [rfced] Seemingly, the text points readers to RFCs 6831 and 9300 for definitions of EID and RLOC. Please review. Original (both from the Introduction): Please refer to Section 3 of [RFC6831] for the definition of the terms EID and RLOC. ... This document uses terminology defined in [RFC9300], such as EID, RLOC, ITR, and ETR. --> <xref target="RFC6831" format="default"/> specifies that (root-EID, G) data packets are to beLISP- encapsulatedLISP-encapsulated into (root-RLOC, G) multicast packets. <xref target="RFC8059" format="default"/> defines PIM Join/Prune attribute extensions to construct multicast distribution trees. Please refer toSection 3 of<xref target="RFC6831"format="default"/>sectionFormat="of" section="3"/> for the definition of the termsEIDEndpoint ID (EID) andRLOC.Routing Locator (RLOC). We use the term root-EID or root-RLOC to refer to the source of the multicast tree rooted at the EID or RLOC. This document extends the Receiver ETR RLOC PIM Join/Prune attribute <xref target="RFC8059" format="default"/> to facilitate the construction of underlay multicast trees for (root-RLOC, G). </t> <t> Specifically, the assignment of the underlay multicast group needs to be done in consonance with the downstreamxTRTunnel Router (xTR) nodes needed to avoid unnecessary replication or traffic hairpinning. </t> <t> Since the Receiver RLOC Attribute defined in <xref target="RFC8059" format="default"/> only addresses the Ingress Replication case,an extension ofthis document extends the scope of that PIM Join/Prune attributeis defined by this draftto include scenarios where the underlay uses Multicast transport. The scope extensionproposed herecomplies with the base specification <xref target="RFC5384" format="default"/>. </t> <t>This document uses terminology defined in <xref target="RFC9300" format="default"/>, such as EID, RLOC, ITR, and ETR. </t> <section> <name>Requirements Language</name><t>The<t> The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described inBCP 14BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shownhere.</t>here. </t> </section> </section><section title="The case<section> <name>The Case forextendingExtending the Received ETR RLOC Attribute of RFC8059">8059</name> <t>WhenLISP basedLISP-based Multicast trees are constructed using IP Multicast in the underlay, the mapping between the overlay group address and the underlay group address becomes a crucial engineeringdecision:decision. </t><section title="Flexible mapping<section> <name>Flexible Mapping ofoverlayOverlay tounderlay group ranges:">Underlay Group Ranges</name> <t> Three distinct types of overlay to underlay group mappings are possible:Many to one</t> <ul> <li>Many-to-one mapping: Many (root-EID, G) flows originating from an RLOC can be mapped to a single underlay multicast (root-RLOC, G-u) flow.One to many</li> <li>One-to-many mapping: Conversely a single same overlay flow can be mapped to two or moreflows,flows -- e.g., (root-RLOC, G-u1) and (root-RLOC, G-u2) -- to cater to the requirements of downstream xTRnodes. One to onenodes.</li> <li>One-to-one mapping: Every (root-EID, G) flow is mapped to a unique (root-RLOC, G-u) flow.</t></li> </ul> </section><section title="Multicast<section> <name>Multicast Address Rangeconstraints:">Constraints</name> <t> Under certain conditions, different subsets of xTRs subscribing to the same overlay multicast stream may be constrained to use distinct underlay multicast mapping ranges. </t> <t> This introduces a trade-off between replication overhead and the flexibility of address range assignment, which may be necessary in specificuse-casesuse cases like Proxy Tunnel Routers or when using nodes with limited hardware resources as explainedbelow:below. </t> <dl newline="true" spacing="normal" indent="2"><dt><!-- [rfced] Is (PxTR) the same as the site border node? Original: Inter-site Proxy Tunnel Routers(PxTR):</dt> <dd>(PxTR): When multiple LISP sites are interconnected through a LISP-based transit, the site border node (PxTR) connects the site-facing interfaces with the external LISP core. Perhaps: Inter-site Proxy Tunnel Routers (PxTR): When multiple LISP sites are interconnected through a LISP-based transit, the site border node (i.e., PxTR) connects the site-facing interfaces with the external LISP core. --> <dt>Inter-site Proxy Tunnel Routers (PxTR):</dt> <dd>When multiple LISP sites are interconnected through a LISP-based transit, the site border node (PxTR) connects the site-facing interfaces with the external LISP core. In such cases, different ranges of multicast group addresses may be used for constructing (S-RLOC, G) trees within the LISP site and in the external LISP core. This distinction is desirable for various operationalreasonsreasons. </dd><dt> Hardware<dt>Hardware resource restrictions:</dt><dd> Platform<dd>Platform limitations may necessitate engineering decisions to restrict multicast address ranges in the underlay due to hardware resource constraints. </dd> </dl> </section> </section><section title="Updates<section> <name>Updates to RFC8059"> <section title="Scope">8059</name> <section> <name>Scope</name> <t>No changes are proposed to the syntax or semantics of the Transport Attribute defined in <xref target="RFC8059"format="default">RFC 8059</xref>.</t>format="default"/>.</t> <t> The scope of the updates to <xref target="RFC8059"format="default">RFC 8059</xref>format="default"/> is limited to the case where the "Transport" field of the Transport Attribute is set to zero (Multicast) only. </t> </section><section title="Receiver<section> <name>Receiver ETR RLOC Attribute</name> <!-- [rfced] For clarity, we suggest including a section number (at minimum) and/or the text being replaced. For example: Original: The definition of the "Receiver RLOC" field of the Receiver ETR RLOCAttribute">attribute RFC 8059 [RFC8059] is updated as follows: Receiver RLOC: The RLOC address on which the receiver ETR wishes to receive the encapsulated flow. A unicast IP Receiver RLOC address is used for unicast-encapsulated flows. Alternately, a multicast IP Receiver RLOC address is used for for multicast-encapsulated flows. A multicast IP address MUST be used only when the underlay network of the LISP core supports IP Multicast transport. Suggested: The definition of the "Receiver RLOC" field of the Receiver ETR RLOC attribute (see Section 5.1 of [RFC8059]) is updated as follows: OLD: Receiver RLOC: The RLOC address on which the receiver ETR wishes to receiver the unicast-encapsulated flow. NEW: Receiver RLOC: The RLOC address on which the receiver ETR wishes to receive the encapsulated flow. A unicast IP Receiver RLOC address is used for unicast-encapsulated flows. Alternately, a multicast IP Receiver RLOC address is used for multicast-encapsulated flows. A multicast IP address MUST be used only when the underlay network of the LISP core supports IP Multicast transport. --> <t>The definition of the "Receiver RLOC" field of the Receiver ETR RLOC attribute <xref target="RFC8059"format="default">RFC 8059</xref>format="default"/> is updated as follows:</t> <blockquote> <dl newline="true"spacing="normal" indent="1">spacing="normal"> <dt> Receiver RLOC:</dt> <dd> The RLOC address on which the receiver ETR wishes to receive the encapsulated flow. A unicast IP Receiver RLOC address is used for unicast-encapsulated flows. Alternately, a multicast IP Receiver RLOC address is used for for multicast-encapsulated flows. A multicast IP addressMUST<bcp14>MUST</bcp14> be used only when the underlay network of the LISP core supports IP Multicast transport.</dd> </dl> </blockquote> <t> The definitions of the other fields of the Receiver ETR RLOC Attribute remain unchanged. </t> <t> When the ITR needs to track the list of ETRs from which the PIM joins are received, the ITRMUST<bcp14>MUST</bcp14> use the source IP address field of the incoming PIM Join/Prune message. The source IP address of the PIM Join/PruneMUST<bcp14>MUST</bcp14> be an ETR RLOC IP address.</t> <!-- %<t>The root ITR MUST also discard all affected Join/Prune sources if the Transport Attribute value is set to any value other than zero and the Address field of the Receiver RLOC contains a multicast IP address. </t> --> </section><section title="Using<section> <name>Using the Receiver RLOCAttribute">Attribute</name> <t>When the ETR determines to use the multicast underlay:</t> <ul> <li>It chooses an underlay multicast group that it can join. This is a matter of local decision, which is beyond the scope of this document.</li> <li>It identifies the upstream LISP site where the underlay multicast tree needs to be rooted.</li> <li>It constructs the PIM Join/Prune message as specified in <xref target="RFC8059"format="default">RFC 8059</xref>.format="default"/>. Only the Receiver RLOC attribute is encoded as above. </li> </ul><t></t> <t>When the ITR receives a PIM Join/Prune message: </t> <ul> <!-- [rfced] [RFC6831] uses the term "outgoing interface list" and "OIF-list"; we do not see use the term "OutgoingInterfaceList". Please review. Original: * It allocates a new entry in the OutgoingInterfaceList RFC 6831 [RFC6831] for every unique underlay multicast mapping. --> <li>It allocates a new entry in the OutgoingInterfaceList <xref target="RFC6831"format="default">RFC 6831</xref>format="default"/> for every unique underlay multicast mapping. </li> <li>The ITRMAY<bcp14>MAY</bcp14> apply local policy to perform any kind of rate-limiting on the number of copies it needs to make in the underlay. Such actions are beyond the scope of this document.</li> </ul><t></t> </section> </section><!-- Possibly a 'Contributors' section ... --> <section anchor="Acknowledgements" numbered="true" toc="default"> <name>Acknowledgements</name> <t> The authors would like to thank Dino Farinacci, Victor Moreno, Alvaro Retana, Aswin Kuppusami, Joe Clarke and Peter Yee for their valuable comments. The authors also thank Sankaralingam T and Amit Kumar for their contributions to the document. The authors thank Gunter van de Velde for his valuable comments. </t> </section><section anchor="IANA" numbered="true" toc="default"> <name>IANA Considerations</name><t>No new requests to IANA.</t><t>This document has no IANA actions.</t> </section> <section anchor="Security" numbered="true" toc="default"> <name>Security Considerations</name> <t> An attack vector arises where an attacker sends numerous PIM Join messages with different group addresses. This could interfere with legitimate multicast traffic if the group addresses overlap. Additionally, resource exhaustion may occur if replication is requested for a large number of groups, potentially resulting in significant resource consumption. To mitigate these risks, PIM authentication mechanisms <xref target="RFC5796"format="default">RFC 5796</xref>format="default"/> could be employed to validate join requests. Furthermore, implementations may consider explicit tracking mechanisms to manage joins more effectively. Configurable controls could be introduced, allowing for a maximum permissible number of groups for each ETR RLOC used as the source of overlay joins. These controls would limit the impact of such attacks and ensure that resource allocation is managed appropriately. </t> </section> </middle><!-- *****BACK MATTER ***** --><back> <references> <name>Normative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5384.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9300.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5796.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6831.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8059.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> </references> <section anchor="Acknowledgements" numbered="false" toc="default"> <name>Acknowledgements</name> <t>The authors would like to thank <contact fullname="Dino Farinacci"/>, <contact fullname="Victor Moreno"/>, <contact fullname="Alvaro Retana"/>, <contact fullname="Aswin Kuppusami"/>, <contact fullname="Joe Clarke"/>, and <contact fullname="Peter Yee"/> for their valuable comments. The authors also thank <contact fullname="Sankaralingam T"/> and <contact fullname="Amit Kumar"/> for their contributions to the document. The authors thank <contact fullname="Gunter Van de Velde"/> for his valuable comments.</t> </section> <!--References split into informative[rfced] Throughout the text, the following terminology appears to be used inconsistently. Please review these occurrences and let us know if/how they may be made consistent. Multicast vs multicast Note that we expanded the following abbreviations andnormativelet us know if any updates are required. Routing Locator (RLOC) Tunnel Router (xTR) --> <!--There are 2 ways to insert reference entries from[rfced] Please review thecitation libraries: 1. define an ENTITY at"Inclusive Language" portion of thetop,online Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> anduse "ampersand character"RFC2629; here (as shown) 2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml") Bothlet us know if any changes arecited textuallyneeded. Updates of this nature typically result inthe same manner: by using xref elements. If you use the PI option, xml2rfc will, by default, try to find included filesmore precise language, which is helpful for readers. Note that our script did not flag any words inthe same directoryparticular, but this should still be reviewed asthe including file. You can also define the XML_LIBRARY environment variable withavalue containing a set of directories to search. These can be either in the local filing system or remote ones accessed by http (http://domain/dir/... ).--> <references title="Normative References"> <?rfc include="reference.RFC.2119.xml" ?> <?rfc include="reference.RFC.5384.xml" ?> <?rfc include="reference.RFC.9300.xml" ?> <?rfc include="reference.RFC.5796.xml" ?> <?rfc include="reference.RFC.6831.xml" ?> <?rfc include="reference.RFC.8059.xml" ?> <?rfc include="reference.RFC.8174.xml" ?> </references> <!-- Change Log v00 2020-12-10 GVP Initial versionbest practice. --> </back> </rfc>