<?xmlversion="1.0" encoding="US-ASCII"?> <!DOCTYPE rfc SYSTEM "rfc2629.dtd">version='1.0' encoding='utf-8'?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-lisp-rfc6830bis-38" indexInclude="true" ipr="trust200902"docName="draft-ietf-lisp-rfc6830bis-36" obsoletes="6830"> <?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"?>number="9300" obsoletes="6830" prepTime="2022-10-19T13:38:47" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en"> <link href="https://datatracker.ietf.org/doc/draft-ietf-lisp-rfc6830bis-38" rel="prev"/> <link href="https://dx.doi.org/10.17487/rfc9300" rel="alternate"/> <link href="urn:issn:2070-1721" rel="alternate"/> <front> <title abbrev="LISP">The Locator/ID Separation Protocol (LISP)</title> <seriesInfo name="RFC" value="9300" stream="IETF"/> <authorinitials='D'initials="D" surname="Farinacci"fullname='Dino Farinacci'> <organization>lispers.net</organization>fullname="Dino Farinacci"> <organization showOnFrontPage="true">lispers.net</organization> <address><email>farinacci@gmail.com</email></address><postal> <city>San Jose</city> <region>CA</region> <country>United States of America</country> </postal> <email>farinacci@gmail.com</email> </address> </author> <authorinitials='V'initials="V" surname="Fuller"fullname='Vince Fuller'> <organization>vaf.netfullname="Vince Fuller"> <organization showOnFrontPage="true">vaf.net Internet Consulting</organization> <address><email>vince.fuller@gmail.com</email></address><email>vince.fuller@gmail.com</email> </address> </author> <authorinitials='D'initials="D" surname="Meyer"fullname='Dave Meyer'> <organization>1-4-5.net</organization>fullname="Dave Meyer"> <organization showOnFrontPage="true">1-4-5.net</organization> <address><email>dmm@1-4-5.net</email></address><email>dmm@1-4-5.net</email> </address> </author> <authorinitials='D'initials="D" surname="Lewis"fullname='Darrel Lewis'> <organization>Ciscofullname="Darrel Lewis"> <organization showOnFrontPage="true">Cisco Systems</organization><address><postal> <street>170 Tasman Drive</street><address> <postal> <city>San Jose</city> <region>CA</region><country>USA</country><country>United States of America</country> </postal><email>darlewis@cisco.com</email></address><email>darlewis@cisco.com</email> </address> </author> <authorinitials='A' surname="Cabellos (Ed.)" fullname='Albert Cabellos'> <organization>UPC/BarcelonaTech</organization> <address><postal> <street>Campus Nord, C.initials="A" surname="Cabellos" fullname="Albert Cabellos" role="editor"> <organization showOnFrontPage="true">Universitat Politecnica de Catalunya</organization> <address> <postal> <street>c/ Jordi Girona1-3</street>s/n</street> <city>Barcelona</city><region>Catalunya</region><code>08034</code> <country>Spain</country> </postal><email>acabello@ac.upc.edu</email></address><email>acabello@ac.upc.edu</email> </address> </author> <date/> <abstract> <t>Thismonth="10" year="2022"/> <keyword>LISP data plane</keyword> <abstract pn="section-abstract"> <t indent="0" pn="section-abstract-1">This document describes theData-Planedata plane protocol for the Locator/ID Separation Protocol (LISP). LISP defines twonamespaces, End-pointnamespaces: Endpoint Identifiers(EIDs) that(EIDs), which identifyend-hostsend hosts; and Routing Locators(RLOCs) that(RLOCs), which identify network attachment points. With this, LISP effectively separates control fromdata,data and allows routers to create overlay networks. LISP-capable routers exchange encapsulated packets according to EID-to-RLOC mappings stored in a local Map-Cache.</t><t>LISP<t indent="0" pn="section-abstract-2">LISP requires no change to either host protocol stacks ortounderlay routers and offers TrafficEngineering, multihomingEngineering (TE), multihoming, and mobility, among other features.</t><t>This<t indent="0" pn="section-abstract-3">This document obsoletes RFC 6830.</t> </abstract> <boilerplate> <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1"> <name slugifiedName="name-status-of-this-memo">Status of This Memo</name> <t indent="0" pn="section-boilerplate.1-1"> This is an Internet Standards Track document. </t> <t indent="0" pn="section-boilerplate.1-2"> This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841. </t> <t indent="0" pn="section-boilerplate.1-3"> Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at <eref target="https://www.rfc-editor.org/info/rfc9300" brackets="none"/>. </t> </section> <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2"> <name slugifiedName="name-copyright-notice">Copyright Notice</name> <t indent="0" pn="section-boilerplate.2-1"> Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved. </t> <t indent="0" pn="section-boilerplate.2-2"> This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. </t> </section> </boilerplate> <toc> <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1"> <name slugifiedName="name-table-of-contents">Table of Contents</name> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1"> <li pn="section-toc.1-1.1"> <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2"> <li pn="section-toc.1-1.1.2.1"> <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-scope-of-applicability">Scope of Applicability</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.2"> <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-notation">Requirements Notation</xref></t> </li> <li pn="section-toc.1-1.3"> <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-definitions-of-terms">Definitions of Terms</xref></t> </li> <li pn="section-toc.1-1.4"> <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-basic-overview">Basic Overview</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2"> <li pn="section-toc.1-1.4.2.1"> <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-deployment-on-the-public-in">Deployment on the Public Internet</xref></t> </li> <li pn="section-toc.1-1.4.2.2"> <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-packet-flow-sequence">Packet Flow Sequence</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.5"> <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-lisp-encapsulation-details">LISP Encapsulation Details</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2"> <li pn="section-toc.1-1.5.2.1"> <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-lisp-ipv4-in-ipv4-header-fo">LISP IPv4-in-IPv4 Header Format</xref></t> </li> <li pn="section-toc.1-1.5.2.2"> <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-lisp-ipv6-in-ipv6-header-fo">LISP IPv6-in-IPv6 Header Format</xref></t> </li> <li pn="section-toc.1-1.5.2.3"> <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-tunnel-header-field-descrip">Tunnel Header Field Descriptions</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.6"> <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-lisp-eid-to-rloc-map-cache">LISP EID-to-RLOC Map-Cache</xref></t> </li> <li pn="section-toc.1-1.7"> <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-dealing-with-large-encapsul">Dealing with Large Encapsulated Packets</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2"> <li pn="section-toc.1-1.7.2.1"> <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-a-stateless-solution-to-mtu">A Stateless Solution to MTU Handling</xref></t> </li> <li pn="section-toc.1-1.7.2.2"> <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-a-stateful-solution-to-mtu-">A Stateful Solution to MTU Handling</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.8"> <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-using-virtualization-and-se">Using Virtualization and Segmentation with LISP</xref></t> </li> <li pn="section-toc.1-1.9"> <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-routing-locator-selection">Routing Locator Selection</xref></t> </li> <li pn="section-toc.1-1.10"> <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-routing-locator-reachabilit">Routing Locator Reachability</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2"> <li pn="section-toc.1-1.10.2.1"> <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-echo-nonce-algorithm">Echo-Nonce Algorithm</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.11"> <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-eid-reachability-within-a-l">EID Reachability within a LISP Site</xref></t> </li> <li pn="section-toc.1-1.12"> <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" format="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-routing-locator-hashing">Routing Locator Hashing</xref></t> </li> <li pn="section-toc.1-1.13"> <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" format="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-changing-the-contents-of-ei">Changing the Contents of EID-to-RLOC Mappings</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.13.2"> <li pn="section-toc.1-1.13.2.1"> <t indent="0" pn="section-toc.1-1.13.2.1.1"><xref derivedContent="13.1" format="counter" sectionFormat="of" target="section-13.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-locator-status-bits">Locator-Status-Bits</xref></t> </li> <li pn="section-toc.1-1.13.2.2"> <t indent="0" pn="section-toc.1-1.13.2.2.1"><xref derivedContent="13.2" format="counter" sectionFormat="of" target="section-13.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-database-map-versioning">Database Map-Versioning</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.14"> <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="14" format="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-multicast-considerations">Multicast Considerations</xref></t> </li> <li pn="section-toc.1-1.15"> <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="15" format="counter" sectionFormat="of" target="section-15"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-router-performance-consider">Router Performance Considerations</xref></t> </li> <li pn="section-toc.1-1.16"> <t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="16" format="counter" sectionFormat="of" target="section-16"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t> </li> <li pn="section-toc.1-1.17"> <t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="17" format="counter" sectionFormat="of" target="section-17"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-network-management-consider">Network Management Considerations</xref></t> </li> <li pn="section-toc.1-1.18"> <t indent="0" pn="section-toc.1-1.18.1"><xref derivedContent="18" format="counter" sectionFormat="of" target="section-18"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-changes-since-rfc-6830">Changes since RFC 6830</xref></t> </li> <li pn="section-toc.1-1.19"> <t indent="0" pn="section-toc.1-1.19.1"><xref derivedContent="19" format="counter" sectionFormat="of" target="section-19"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.19.2"> <li pn="section-toc.1-1.19.2.1"> <t indent="0" pn="section-toc.1-1.19.2.1.1"><xref derivedContent="19.1" format="counter" sectionFormat="of" target="section-19.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-lisp-udp-port-numbers">LISP UDP Port Numbers</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.20"> <t indent="0" pn="section-toc.1-1.20.1"><xref derivedContent="20" format="counter" sectionFormat="of" target="section-20"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.20.2"> <li pn="section-toc.1-1.20.2.1"> <t indent="0" pn="section-toc.1-1.20.2.1.1"><xref derivedContent="20.1" format="counter" sectionFormat="of" target="section-20.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t> </li> <li pn="section-toc.1-1.20.2.2"> <t indent="0" pn="section-toc.1-1.20.2.2.1"><xref derivedContent="20.2" format="counter" sectionFormat="of" target="section-20.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.21"> <t indent="0" pn="section-toc.1-1.21.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t> </li> <li pn="section-toc.1-1.22"> <t indent="0" pn="section-toc.1-1.22.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t> </li> </ul> </section> </toc> </front> <middle> <sectiontitle="Introduction"> <t>Thisnumbered="true" toc="include" removeInRFC="false" pn="section-1"> <name slugifiedName="name-introduction">Introduction</name> <t indent="0" pn="section-1-1">This document describes theLocator/IdentifierLocator/ID Separation Protocol (LISP). LISP is an encapsulation protocol built around the fundamental idea of separating the topological location of a network attachment point from the node's identity <xref target="CHIAPPA"/>.format="default" sectionFormat="of" derivedContent="CHIAPPA"/>. As aresultresult, LISP creates two namespaces: Endpoint Identifiers (EIDs),thatwhich are used to identifyend-hostsend hosts (e.g., nodes or VirtualMachines)Machines); and routable Routing Locators (RLOCs), which are used to identify network attachment points. LISP then defines functions for mapping between the two namespaces and for encapsulating traffic originated by devices using non-routable EIDs for transport across a network infrastructure that routes and forwards using RLOCs. LISP encapsulation uses a dynamic form of tunneling where no static provisioning is required or necessary.</t><t>LISP<t indent="0" pn="section-1-2">LISP is an overlay protocol that separates control fromData-Plane,data; this document specifies theData-Planedata plane as well as how LISP-capable routers (Tunnel Routers) exchange packets by encapsulating them to the appropriate location. TunnelroutersRouters are equipped with a cache, called the Map-Cache, that contains EID-to-RLOC mappings. The Map-Cache is populated using the LISPControl-Planecontrol plane protocol <xreftarget="I-D.ietf-lisp-rfc6833bis"/>.</t> <t>LISPtarget="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>.</t> <t indent="0" pn="section-1-3">LISP does not require changes to either the host protocol stack ortounderlay routers. By separating the EID from the RLOC space, LISP offers native TrafficEngineering, multihomingEngineering (TE), multihoming, and mobility, among other features.</t><t>Creation<t indent="0" pn="section-1-4">Creation of LISP was initially motivated by discussions during the IAB-sponsored Routing and Addressing Workshop held in Amsterdam in October 2006 (see <xref target="RFC4984"/>).</t> <t>Thisformat="default" sectionFormat="of" derivedContent="RFC4984"/>).</t> <t indent="0" pn="section-1-5">This document specifies the LISPData-Planedata plane encapsulation and other LISP forwarding node functionality while <xreftarget="I-D.ietf-lisp-rfc6833bis"/>target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/> specifies the LISP control plane. LISP deployment guidelines can be found in <xreftarget="RFC7215"/>target="RFC7215" format="default" sectionFormat="of" derivedContent="RFC7215"/>, and <xreftarget="RFC6835"/>target="RFC6835" format="default" sectionFormat="of" derivedContent="RFC6835"/> describes considerations for network operational management. Finally, <xreftarget="I-D.ietf-lisp-introduction"/>target="RFC9299" format="default" sectionFormat="of" derivedContent="RFC9299"/> describes the LISP architecture.</t><t>This<t indent="0" pn="section-1-6">This document obsoletes RFC 6830.</t> <sectiontitle="Scopeanchor="soa" numbered="true" toc="include" removeInRFC="false" pn="section-1.1"> <name slugifiedName="name-scope-of-applicability">Scope ofApplicability" anchor="soa"> <t>LISPApplicability</name> <t indent="0" pn="section-1.1-1">LISP was originally developed to address the Internet-wide route scaling problem <xreftarget="RFC4984"/>.target="RFC4984" format="default" sectionFormat="of" derivedContent="RFC4984"/>. While there are a number of approaches of interest for that problem, as LISPashas been developed and refined, a large number of other ways to use LISPuseshave been found and are beingused.implemented. As such, the design and development of LISPhashave changed so as to focus on these use cases. The common property of these uses is a large set of cooperating entities seeking to communicate over the public Internet or other large underlay IPinfrastructures,infrastructures while keeping the addressing and topology of the cooperating entities separate from the underlay and Internet topology, routing, and addressing.</t> </section> </section> <sectiontitle="Requirements Notation"> <t>Thenumbered="true" toc="include" removeInRFC="false" pn="section-2"> <name slugifiedName="name-requirements-notation">Requirements Notation</name> <t indent="0" pn="section-2-1"> 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 14 <xref target="RFC2119"/>BCP 14 <xreftarget="RFC8174"/>target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as shownhere.</t>here. </t> </section> <sectiontitle="Definition of Terms" anchor="DEFINITIONS"> <t><list style="hanging"> <t hangText="Addressanchor="DEFINITIONS" numbered="true" toc="include" removeInRFC="false" pn="section-3"> <name slugifiedName="name-definitions-of-terms">Definitions of Terms</name> <dl newline="false" spacing="normal" indent="3" pn="section-3-1"> <dt pn="section-3-1.1">Address Family Identifier (AFI):">AFI</dt> <dd pn="section-3-1.2">"AFI" is a term used to describe an address encoding in a packet. An address familythat pertains to addressesis an address format found inData-Plane headers.data plane packet headers, for example, an IPv4 address or an IPv6 address. See <xreftarget="AFN"/> and <xref target="RFC3232"/>target="AFN" format="default" sectionFormat="of" derivedContent="AFN"/>, <xref target="RFC2453" format="default" sectionFormat="of" derivedContent="RFC2453"/>, <xref target="RFC2677" format="default" sectionFormat="of" derivedContent="RFC2677"/>, and <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/> for details. An AFI value of 0 used in this specification indicates an unspecified encoded address where the length of the address is 0 octets following the 16-bit AFI value of0.</t> <t hangText="Anycast Address:">Anycast Address0.</dd> <dt pn="section-3-1.3">Anycast Address:</dt> <dd pn="section-3-1.4">"Anycast address" refers to the same IPv4 or IPv6 address configured and used on multiple systems at the same time. An EID or RLOC can be an anycast address in each of their own addressspaces.</t> <t hangText="Client-side:">Client-sidespaces.</dd> <dt pn="section-3-1.5">Client-side:</dt> <dd pn="section-3-1.6">"Client-side" is a term used in this document to indicate a connection initiation attempt by an end-system represented by anEID.</t> <t hangText="EgressEID.</dd> <dt pn="section-3-1.7">Egress Tunnel Router (ETR):">An</dt> <dd pn="section-3-1.8">An ETR is a router that accepts an IP packet where the destination address in the "outer" IP header is one of its own RLOCs. The router strips the "outer" header and forwards the packet based on the next IP header found. In general, an ETR receives LISP-encapsulated IP packets from the Internet on one side and sends decapsulated IP packets to site end-systems on the other side. ETR functionality does not have to be limited to a router device. A server host can be the endpoint of a LISP tunnel aswell.</t> <t hangText="EID-to-RLOCwell.</dd> <dt pn="section-3-1.9">EID-to-RLOC Database:">The</dt> <dd pn="section-3-1.10">The EID-to-RLOC Database is a distributed database that contains all known EID-Prefix-to-RLOC mappings. Each potential ETR typically contains a small piece of the database: the EID-to-RLOC mappings for the EID-Prefixes "behind" the router. These map to one of the router's own IP addresses that are routable on the underlay. Note that thereMAY<bcp14>MAY</bcp14> be transient conditions when the EID-Prefix for the LISP site and Locator-Set for each EID-Prefix may not be the same on all ETRs. This has no negative implications, since a partial set of Locators can beused.</t> <t hangText="EID-to-RLOCused.</dd> <dt pn="section-3-1.11">EID-to-RLOC Map-Cache:">The</dt> <dd pn="section-3-1.12">The EID-to-RLOC Map-Cache is a generally short-lived, on-demand table in anITRIngress Tunnel Router (ITR) that stores, tracks, and is responsible for timing out and otherwise validating EID-to-RLOC mappings. This cache is distinct from the full "database" of EID-to-RLOC mappings; it is dynamic, local to the ITR(s), and relatively small, while the database is distributed, relatively static, and much more widely scoped to LISPnodes.</t> <t hangText="EID-Prefix: ">Annodes.</dd> <dt pn="section-3-1.13">EID-Prefix: </dt> <dd pn="section-3-1.14">An EID-Prefix is a power-of-two block of EIDs that are allocated to a site by an address allocation authority. EID-Prefixes are associated with a set of RLOC addresses. EID-Prefix allocations can be broken up into smaller blocks when anRLOC setRLOC-Set is to be associated with the larger EID-Prefixblock.</t> <t hangText="End-System: ">Anblock.</dd> <dt pn="section-3-1.15">End-System: </dt> <dd pn="section-3-1.16">An end-system is an IPv4 or IPv6 device that originates packets with a single IPv4 or IPv6 header. The end-system supplies an EID value for the destination address field of the IP header when communicating outside of its routing domain. An end-system can be a host computer, a switch or router device, or any networkappliance.</t> <t hangText="Endpointappliance.</dd> <dt pn="section-3-1.17">Endpoint ID (EID):">An</dt> <dd pn="section-3-1.18">An EID is a 32-bit (for IPv4) or 128-bit (for IPv6) value that identifies a host. EIDs are generally only found in the source and destination address fields of the first(most inner)(innermost) LISP header of a packet. The host obtains a destination EIDthe same way it obtains a destination address today, for example,through a Domain Name System (DNS) <xref target="RFC1034"/>format="default" sectionFormat="of" derivedContent="RFC1034"/> lookup or Session Initiation Protocol (SIP) <xref target="RFC3261"/>format="default" sectionFormat="of" derivedContent="RFC3261"/> exchange. This behavior does not change when LISP is in use. The source EID is obtained via existing mechanisms used to set a host's "local" IP address. An EID used on the public InternetMUST<bcp14>MUST</bcp14> have the same properties as any other IP address used in that manner; this means, among other things, that itMUST<bcp14>MUST</bcp14> be unique. An EID is allocated to a host from an EID-Prefix block associated with the site where the host is located. An EID can be used by a host to refer to other hosts. Note that EID blocksMAY<bcp14>MAY</bcp14> be assigned in a hierarchical manner, independent of the network topology, to facilitate scaling of the mapping database. In addition, an EID block assigned to a siteMAY<bcp14>MAY</bcp14> have site-local structure (subnetting) for routing within the site; this structure is not visible to the underlay routing system. In theory, the bit string that represents an EID for one device can represent an RLOC for a different device. Whenused in discussions withdiscussing other Locator/ID separation proposals,a LISP EID will be called an "LEID". Throughout this document,any references to"EID"an EID in this document will refer toan LEID.</t> <t hangText="Ingressa LISP EID. </dd> <dt pn="section-3-1.19">Ingress Tunnel Router (ITR):">An</dt> <dd pn="section-3-1.20">An ITR is a router that resides in a LISP site. Packets sent by sources inside of the LISP site to destinations outside of the site are candidates for encapsulation by the ITR. The ITR treats the IP destination address as an EID and performs an EID-to-RLOC mapping lookup. The router then prepends an "outer" IP header with one of its routable RLOCs (in the RLOC space) in the source address field and the result of the mapping lookup in the destination address field. Note that this destination RLOC may be an intermediate, proxy device that has better knowledge of the EID-to-RLOC mapping closer to the destination EID. In general, an ITR receives IP packets from site end-systems on one side and sends LISP-encapsulated IP packets toward the Internet on the otherside.</t> <t hangText="LISPside.</dd> <dt pn="section-3-1.21">LISP Header:">LISP header</dt> <dd pn="section-3-1.22">"LISP header" is a term used in this document to refer to the outer IPv4 or IPv6 header, a UDP header, and aLISP-specificLISP- specific 8-octetheader thatheader, all of which follow the UDPheader and that anheader. An ITR prependsorLISP headers on packets, and an ETRstrips.</t> <t hangText="LISPstrips them.</dd> <dt pn="section-3-1.23">LISP Router:">A</dt> <dd pn="section-3-1.24">A LISP router is a router that performs the functions of any or all of the following:ITR, ETR, RTR, Proxy-ITR (PITR), or Proxy-ETR (PETR).</t> <t hangText="LISP Site:">LISPITRs, ETRs, Re-encapsulating Tunneling Routers (RTRs), Proxy-ITRs (PITRs), or Proxy-ETRs (PETRs).</dd> <dt pn="section-3-1.25">LISP Site:</dt> <dd pn="section-3-1.26">A LISP site is a set of routers in an edge network that are under a single technical administration. LISP routers that reside in the edge network are the demarcation points to separate the edge network from the corenetwork.</t> <t hangText="Locator-Status-Bits (LSBs):">network.</dd> <dt pn="section-3-1.27">Locator-Status-Bits (LSBs):</dt> <dd pn="section-3-1.28"> Locator-Status-Bits are present in the LISP header. They are used by ITRs to inform ETRs about the up/down status of all ETRs at the local site. These bits are used as a hint to convey up/down router status and not path reachability status. The LSBs can be verified by use of one of the Locator reachability algorithms described in <xref target="loc-reach"/>.format="default" sectionFormat="of" derivedContent="Section 10"/>. An ETRMUST rate-limit<bcp14>MUST</bcp14> rate limit the action it takes when it detects changes in theLocator-Status-Bits.</t> <t hangText="Proxy-ETRLocator-Status-Bits.</dd> <dt pn="section-3-1.29">Proxy-ETR (PETR):">A</dt> <dd pn="section-3-1.30">A PETR is defined and described in <xref target="RFC6832"/>.format="default" sectionFormat="of" derivedContent="RFC6832"/>. A PETR acts like an ETR but does so on behalf of LISP sites that send packets to destinations at non-LISPsites.</t> <t hangText="Proxy-ITRsites.</dd> <dt pn="section-3-1.31">Proxy-ITR (PITR):">A</dt> <dd pn="section-3-1.32">A PITR is defined and described in <xref target="RFC6832"/>.format="default" sectionFormat="of" derivedContent="RFC6832"/>. A PITR acts like an ITR but does so on behalf of non-LISP sites that send packets to destinations at LISPsites.</t> <t hangText="Recursivesites.</dd> <dt pn="section-3-1.33">Recursive Tunneling:">Recursive</dt> <dd pn="section-3-1.34">Recursive Tunneling occurs when a packet has more than one LISP IP header. Additional layers of tunnelingMAY<bcp14>MAY</bcp14> be employed to implement Traffic Engineering or otherre-routingrerouting as needed. When this is done, an additional "outer" LISP header is added, and the original RLOCs are preserved in the "inner"header.</t> <t hangText="Re-Encapsulatingheader.</dd> <dt pn="section-3-1.35">Re-encapsulating Tunneling Router (RTR):"></dt> <dd pn="section-3-1.36"> An RTR acts like an ETR to remove a LISP header, then acts as an ITR to prepend a new LISP header. This is known as Re-encapsulating Tunneling. Doing this allows a packet to bere-routedrerouted by the RTR without adding the overhead of additional tunnel headers. When using multiple mapping database systems, care must be taken to not createre- encapsulationre-encapsulation loops throughmisconfiguration.</t> <t hangText="Route-Returnability:">Route-returnabilitymisconfiguration.</dd> <dt pn="section-3-1.37">Route-Returnability:</dt> <dd pn="section-3-1.38">Route-returnability is an assumption that the underlying routing system will deliver packets to the destination. When combined with a nonce that is provided by a sender and returned by a receiver, this limits off-path data insertion. A route-returnability check is verified when a message is sent with a nonce, another message is returned with the same nonce, and the destination of the original message appears as the source of the returnedmessage.</t> <t hangText="Routingmessage.</dd> <dt pn="section-3-1.39">Routing Locator (RLOC):">An</dt> <dd pn="section-3-1.40">An RLOC is an IPv4 address <xref target="RFC0791"/>format="default" sectionFormat="of" derivedContent="RFC0791"/> or IPv6 address <xref target="RFC8200"/> addressformat="default" sectionFormat="of" derivedContent="RFC8200"/> of an Egress Tunnel Router (ETR). An RLOC is the output of an EID-to-RLOC mapping lookup. An EID maps to zero or more RLOCs. Typically, RLOCs are numbered from blocks that are assigned to a site at each point to which it attaches to the underlaynetwork;network, where the topology is defined by the connectivity of provider networks. Multiple RLOCs can be assigned to the same ETR device or to multiple ETR devices at asite.</t> <t hangText="Server-side:">Server-sidesite.</dd> <dt pn="section-3-1.41">Server-side:</dt> <dd pn="section-3-1.42">"Server-side" is a term used in this document to indicate that a connection initiation attempt is being accepted for a destinationEID.</t> <t hangText="xTR: ">AnEID.</dd> <dt pn="section-3-1.43">xTR: </dt> <dd pn="section-3-1.44">An xTR is a reference to an ITR or ETR when direction of data flow is not part of the context description. "xTR" refers to the router that is the tunnel endpoint and is used synonymously with the term "Tunnel Router". For example, "An xTR can be located at the Customer Edge (CE) router" indicates both ITR and ETR functionality at the CErouter.</t> </list></t>router.</dd> </dl> </section> <sectiontitle="Basic Overview" anchor="OVERVIEW"> <t>Oneanchor="OVERVIEW" numbered="true" toc="include" removeInRFC="false" pn="section-4"> <name slugifiedName="name-basic-overview">Basic Overview</name> <t indent="0" pn="section-4-1">One key concept of LISP is that end-systems operate the same waythey do today.when LISP is not in use as well as when LISP is in use. The IP addresses that hosts use for tracking sockets and connections, and for sending and receiving packets, do not change. In LISP terminology, these IP addresses are called Endpoint Identifiers (EIDs).</t><t>Routers<t indent="0" pn="section-4-2">Routers continue to forward packets based on IP destination addresses. When a packet is LISP encapsulated, these addresses are referred to asRouting Locators (RLOCs).RLOCs. Most routers along a path between two hosts will not change; they continue to perform routing/forwarding lookups on the destination addresses. For routers between the source host and the ITR as well as routers from the ETR to the destination host, the destination address is an EID. For the routers between the ITR and the ETR, the destination address is an RLOC.</t><t>Another<t indent="0" pn="section-4-3">Another key LISP concept is the "Tunnel Router". A Tunnel Router prepends LISP headers on host-originated packets and strips them prior to final delivery to their destination. The IP addresses in this"outer header""outer header" are RLOCs. During end-to-end packet exchange between two Internet hosts, an ITR prepends a new LISP header to each packet, and an ETR strips the new header. The ITR performs EID-to-RLOC lookups to determine the routing path to the ETR, which has the RLOC as one of its IP addresses. </t><t>Some<t indent="0" pn="section-4-4">Some basic rules governing LISP are:</t><t><list style="symbols"> <t>End-systems<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-5"> <li pn="section-4-5.1">End-systems only send to addresses that are EIDs. EIDs are typically IP addresses assigned to hosts (other types ofEIDEIDs are supported byLISP,LISP; see <xreftarget="RFC8060"/>target="RFC8060" format="default" sectionFormat="of" derivedContent="RFC8060"/> for further information). End-systems don't know that addresses are EIDs versus RLOCs but assume that packets get to their intended destinations. In a system where LISP is deployed, LISP routers intercept EID-addressed packets and assist in delivering them across the network core where EIDs cannot be routed. The procedure a host uses to send IP packets does notchange.</t> <t>LISPchange.</li> <li pn="section-4-5.2">LISP routersmostly dealprepend and strip outer headers withRouting LocatorRLOC addresses. Seedetails in<xref target="MOSTLY"/> to clarify what is meant by "mostly".</t> <t>RLOCsformat="default" sectionFormat="of" derivedContent="Section 4.2"/> for details.</li> <li pn="section-4-5.3">RLOCs are always IP addresses assigned to routers, preferably topologically oriented addresses from providerCIDR (ClasslessClassless Inter-DomainRouting)Routing (CIDR) blocks.</t> <t>When</li> <li pn="section-4-5.4">When a router originates packets, itMAY<bcp14>MAY</bcp14> use as a source address either an EID or RLOC. When acting as a host (e.g., when terminating a transport session such as SecureSHellShell (SSH), TELNET, or the Simple Network Management Protocol (SNMP)), itMAY<bcp14>MAY</bcp14> use an EID that is explicitly assigned for that purpose. An EID that identifies the router as a hostMUST NOT<bcp14>MUST NOT</bcp14> be used as an RLOC; an EID is only routable within the scope of a site. A typical BGP configuration might demonstrate this "hybrid" EID/RLOC usage where a router could use its "host-like" EID to terminateiBGPinternal BGP (iBGP) sessions to other routers in a site while at the same time using RLOCs to terminateeBGPexternal BGP (eBGP) sessions to routers outside thesite.</t> <t>Packetssite.</li> <li pn="section-4-5.5">Packets with EIDs in them are not expected to be deliveredend-to-endend to end in the absence of an EID-to-RLOC mapping operation. They are expected to be used locally for intra-site communication or to be encapsulated for inter-sitecommunication.</t> <t>EIDs MAYcommunication.</li> <li pn="section-4-5.6">EIDs <bcp14>MAY</bcp14> also be structured (subnetted) in a manner suitable for local routing within an Autonomous System(AS).</t> </list></t> <t>An(AS).</li> </ul> <t indent="0" pn="section-4-6">An additional LISP headerMAY<bcp14>MAY</bcp14> be prepended to packets by a TE-ITR whenre-routingrerouting of the path for a packet is desired. A potentialuse-caseuse case for this would be an ISP router that needs to perform Traffic Engineering for packets flowing through its network. In such a situation, termed "Recursive Tunneling", an ISP transit acts as an additional ITR, and the destination RLOC it uses for the new prepended header would be either a TE-ETR within the ISP (along an intra-ISPtraffic engineeredtraffic-engineered path) or a TE-ETR within another ISP (an inter-ISPtraffic engineeredtraffic-engineered path, where an agreement to build such a path exists). </t><t>In<t indent="0" pn="section-4-7">In order to avoid excessive packet overhead as well as possible encapsulation loops,this document RECOMMENDSit is <bcp14>RECOMMENDED</bcp14> that a maximum of two LISP headers can be prepended to a packet. For initial LISP deployments, it is assumed that two headers is sufficient, where the first prepended header is used at a site forLocation/Identityseparation of location and identity and the second prepended header is used inside a service provider for Traffic Engineering purposes.</t><t>Tunnel<t indent="0" pn="section-4-8">Tunnel Routers can be placed fairly flexibly in a multi-AS topology. For example, the ITR for a particular end-to-end packet exchange might be the first-hop or default router within a site for the source host. Similarly, the ETR might be the last-hop router directly connected to the destination host.AnotherAs another example, perhaps for a VPN service outsourced to an ISP by a site, the ITR could be thesite'ssite's border router at the service provider attachment point. Mixing and matching of site-operated, ISP-operated, and other Tunnel Routers is allowed for maximum flexibility. </t> <sectiontitle="Deploymentanchor="DPI" numbered="true" toc="include" removeInRFC="false" pn="section-4.1"> <name slugifiedName="name-deployment-on-the-public-in">Deployment on the PublicInternet" anchor="DPI"> <t>SeveralInternet</name> <t indent="0" pn="section-4.1-1">Several of the mechanisms in this document are intended for deployment in controlled, trustedenvironments,environments and are insecure for use over the public Internet. In particular, on the publicinternetInternet, xTRs:</t><t><list style="symbols"> <t>MUST<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1-2"> <li pn="section-4.1-2.1"> <bcp14>MUST</bcp14> set theN, L, E,N-, L-, E-, andV bitsV-bits in the LISP header (<xreftarget="header"/>) to zero.</t> <t>MUST NOTtarget="header" format="default" sectionFormat="of" derivedContent="Section 5.1"/>) to zero.</li> <li pn="section-4.1-2.2"> <bcp14>MUST NOT</bcp14> use Locator-Status-Bits andecho-nonce,Echo-Nonce, as described in <xreftarget="loc-reach"/>target="loc-reach" format="default" sectionFormat="of" derivedContent="Section 10"/>, forRouting Locator Reachability. Instead MUSTRLOC reachability. Instead, they <bcp14>MUST</bcp14> rely solely oncontrol-plane methods.</t> <t>MUST NOTcontrol plane methods.</li> <li pn="section-4.1-2.3"> <bcp14>MUST NOT</bcp14> useGleaninggleaning or Locator-Status-Bits and Map-Versioning, as described in <xreftarget="update_mapping"/>target="update_mapping" format="default" sectionFormat="of" derivedContent="Section 13"/>, to update the EID-to-RLOCMappings. Instead relyingmappings. Instead, they <bcp14>MUST</bcp14> rely solely oncontrol-plane methods.</t> </list></t>control plane methods.</li> </ul> </section> <sectiontitle="Packetanchor="MOSTLY" numbered="true" toc="include" removeInRFC="false" pn="section-4.2"> <name slugifiedName="name-packet-flow-sequence">Packet FlowSequence" anchor="MOSTLY"> <t>ThisSequence</name> <t indent="0" pn="section-4.2-1">This section provides an example of the unicast packet flow,includingalsoControl-Planeincluding control plane information as specified in <xreftarget="I-D.ietf-lisp-rfc6833bis"/>.target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>. The example also assumes the following conditions:</t><t><list style="symbols"> <t>Source<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.2-2"> <li pn="section-4.2-2.1">Source host"host1.abc.example.com""host1.abc.example.com" is sending a packet to"host2.xyz.example.com","host2.xyz.example.com", exactly as it would if the site was notnotusingLISP.</t> <t>EachLISP.</li> <li pn="section-4.2-2.2">Each site is multihomed, so each Tunnel Router has an address (RLOC) assigned from the service provider address block for each provider to which that particular Tunnel Router isattached.</t> <t>Theattached.</li> <li pn="section-4.2-2.3">The ITR(s) and ETR(s) are directly connected to the source and destination, respectively, but the source and destination can be located anywhere in the LISPsite.</t> <t>Asite.</li> <li pn="section-4.2-2.4">A Map-Request is sent for an external destination when the destination is not found in the forwarding table or matches a default route. Map-Requests are sent to the mapping database system by using the LISPControl-Planecontrol plane protocol documented in <xreftarget="I-D.ietf-lisp-rfc6833bis"/>.</t> <t>Map-Repliestarget="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>.</li> <li pn="section-4.2-2.5">Map-Replies are sent on the underlying routing systemtopologytopology, using the control plane protocol <xreftarget="I-D.ietf-lisp-rfc6833bis"/> Control-Plane protocol.</t> </list></t> <t>Clienttarget="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>.</li> </ul> <t indent="0" pn="section-4.2-3">Client host1.abc.example.com wants to communicate with server host2.xyz.example.com:</t><t><list style="numbers"> <t>host1.abc.example.com<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4.2-4"> <li pn="section-4.2-4.1" derivedCounter="1.">host1.abc.example.com wants to open a TCP connection to host2.xyz.example.com. It does a DNS lookup on host2.xyz.example.com. An A/AAAA record is returned. This address is the destination EID. The locally assigned address of host1.abc.example.com is used as the source EID. An IPv4 or IPv6 packet is built and forwarded through the LISP site as a normal IP packet until it reaches a LISPITR.</t> <t>TheITR.</li> <li pn="section-4.2-4.2" derivedCounter="2.">The LISP ITR must be able to map the destination EID to an RLOC of one of the ETRs at the destination site. A methodto dofor doing this is to send a LISP Map-Request, as specified in <xreftarget="I-D.ietf-lisp-rfc6833bis"/>.</t> <t>The mapping systemtarget="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>.</li> <li pn="section-4.2-4.3" derivedCounter="3.">The Mapping System helpsforwardingforward the Map-Request to the corresponding ETR. When the Map-Request arrives at one of the ETRs at the destination site, it will process the packet as a controlmessage.</t> <t>Themessage.</li> <li pn="section-4.2-4.4" derivedCounter="4.">The ETR looks at the destination EID of the Map-Request and matches it against the prefixes in the ETR's configured EID-to-RLOC mapping database. This is the list of EID-Prefixes the ETR is supporting for the site it resides in. If there is no match, the Map-Request is dropped. Otherwise, a LISP Map-Reply is returned to theITR.</t> <t>TheITR.</li> <li pn="section-4.2-4.5" derivedCounter="5.">The ITR receives the Map-Reply message, parses the message, and stores the mapping information from the packet. This information is stored in theITR'sITR's EID-to-RLOC Map-Cache. Note that the Map-Cache is an on-demand cache. An ITR will manage its Map-Cache in such a way that optimizes for its resourceconstraints.</t> <t>Subsequentconstraints.</li> <li pn="section-4.2-4.6" derivedCounter="6.">Subsequent packets from host1.abc.example.com to host2.xyz.example.com will have a LISP header prepended by the ITR using the appropriate RLOC as the LISP header destination address learned from the ETR. Note that the packetMAY<bcp14>MAY</bcp14> be sent to a different ETR than the one that returned the Map-Reply due to the source site's hashing policy or the destination site's Locator-Setpolicy.</t> <t>Thepolicy.</li> <li pn="section-4.2-4.7" derivedCounter="7.">The ETR receives these packets directly (since the destination address is one of its assigned IP addresses), checks the validity of the addresses, strips the LISP header, and forwards packets to the attached destinationhost.</t> <t>Inhost.</li> <li pn="section-4.2-4.8" derivedCounter="8.">In order to defer the need for a mapping lookup in the reverse direction, it is <bcp14>OPTIONAL</bcp14> for an ETRcan OPTIONALLYto create a cache entry that maps the source EID (inner-header source IP address) to the source RLOC (outer-header source IP address) in a received LISP packet. Such a cache entry is termed a "glean mapping" and only contains a single RLOC for the EID in question. More complete information about additional RLOCsSHOULD<bcp14>SHOULD</bcp14> be verified by sending a LISP Map-Request for that EID. Both the ITR and the ETRMAY<bcp14>MAY</bcp14> also influence the decision the other makes in selecting anRLOC.</t> </list></t>RLOC.</li> </ol> </section> </section> <sectiontitle="LISPnumbered="true" toc="include" removeInRFC="false" pn="section-5"> <name slugifiedName="name-lisp-encapsulation-details">LISP EncapsulationDetails"> <t>SinceDetails</name> <t indent="0" pn="section-5-1">Since additional tunnel headers are prepended, the packet becomes larger and can exceed the MTU of any link traversed from the ITR to the ETR. It isRECOMMENDED<bcp14>RECOMMENDED</bcp14> in IPv4 that packets do not get fragmented as they are encapsulated by the ITR. Instead, the packet is dropped and anICMP Unreachable/Fragmentation-NeededICMPv4 Unreachable / Fragmentation Needed message is returned to the source.</t><t>In<t indent="0" pn="section-5-2">In the case when fragmentation is needed,this specification RECOMMENDSit is <bcp14>RECOMMENDED</bcp14> that implementations provide support for one of the proposed fragmentation and reassembly schemes. Two existing schemes are detailed in <xref target="fragment"/>.</t> <t>Sinceformat="default" sectionFormat="of" derivedContent="Section 7"/>.</t> <t indent="0" pn="section-5-3">Since IPv4 or IPv6 addresses can be either EIDs or RLOCs, the LISP architecture supports IPv4 EIDs with IPv6 RLOCs (where the inner header is in IPv4 packet format and the outer header is in IPv6 packet format) or IPv6 EIDs with IPv4 RLOCs (where the inner header is in IPv6 packet format and the outer header is in IPv4 packet format). The next sub-sections illustrate packet formats for the homogeneous case (IPv4-in-IPv4 and IPv6-in-IPv6), but all 4 combinationsMUST<bcp14>MUST</bcp14> be supported. Additional types of EIDs are defined in <xref target="RFC8060"/>.</t> <t>Asformat="default" sectionFormat="of" derivedContent="RFC8060"/>.</t> <t indent="0" pn="section-5-4">As LISP uses UDP encapsulation to carry traffic between xTRs across the Internet, implementors should be aware of the provisions of <xreftarget="RFC8085"/>,target="RFC8085" format="default" sectionFormat="of" derivedContent="RFC8085"/>, especially those given insection 3.1.11its Section <xref target="RFC8085" section="3.1.11" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8085#section-3.1.11" derivedContent="RFC8085"/> on congestion control for UDP tunneling.</t><t>Implementors<t indent="0" pn="section-5-5">Implementors are encouraged to consider UDP checksum usage guidelines insection 3.4 of<xreftarget="RFC8085"/>target="RFC8085" sectionFormat="of" section="3.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8085#section-3.4" derivedContent="RFC8085"/> when it is desirable to protect UDP and LISP headers against corruption.</t> <sectiontitle="LISPanchor="header" numbered="true" toc="include" removeInRFC="false" pn="section-5.1"> <name slugifiedName="name-lisp-ipv4-in-ipv4-header-fo">LISP IPv4-in-IPv4 HeaderFormat" anchor="header"> <figure> <artwork><![CDATA[Format</name> <artwork name="" type="" align="left" alt="" pn="section-5.1-1"> 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / |Version| IHL | DSCP |ECN| Total Length | / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Identification |Flags| Fragment Offset | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ OH | Time to Live | Protocol = 17 | Header Checksum | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Source Routing Locator | \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ | Destination Routing Locator | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Source Port = xxxx | Dest Port = 4341 | UDP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ | UDP Length | UDP Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ L |N|L|E|V|I|R|K|K| Nonce/Map-Version | I \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ S / | Instance ID/Locator-Status-Bits | P +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / |Version| IHL | DSCP |ECN| Total Length | / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Identification |Flags| Fragment Offset | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IH | Time to Live | Protocol | Header Checksum | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Source EID | \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ | Destination EID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IHL = IP-Header-Length]]></artwork> </figure></artwork> </section> <sectiontitle="LISPnumbered="true" toc="include" removeInRFC="false" pn="section-5.2"> <name slugifiedName="name-lisp-ipv6-in-ipv6-header-fo">LISP IPv6-in-IPv6 HeaderFormat"> <figure> <artwork><![CDATA[Format</name> <artwork name="" type="" align="left" alt="" pn="section-5.2-1"> 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / |Version| DSCP |ECN| Flow Label | / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Payload Length | Next Header=17| Hop Limit | v +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | O + + u | | t + Source Routing Locator + e | | r + + | | H +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ d | | r + + | | ^ + Destination Routing Locator + | | | \ + + \ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Source Port = xxxx | Dest Port = 4341 | UDP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ | UDP Length | UDP Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ L |N|L|E|V|I|R|K|K| Nonce/Map-Version | I \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ S / | Instance ID/Locator-Status-Bits | P +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / |Version| DSCP |ECN| Flow Label | / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Payload Length | Next Header | Hop Limit | v +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | I + + n | | n + Source EID + e | | r + + | | H +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ d | | r + + | | ^ + Destination EID + \ | | \ + + \ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </figure></artwork> </section> <sectiontitle="Tunnelanchor="LRB" numbered="true" toc="include" removeInRFC="false" pn="section-5.3"> <name slugifiedName="name-tunnel-header-field-descrip">Tunnel Header FieldDescriptions" anchor="LRB" > <t><list style="hanging"> <t hangText="InnerDescriptions</name> <dl newline="false" spacing="normal" indent="3" pn="section-5.3-1"> <dt pn="section-5.3-1.1">Inner Header(IH):">The(IH):</dt> <dd pn="section-5.3-1.2">The inner header is the header on the datagram received from the originating host <xref target="RFC0791"/>format="default" sectionFormat="of" derivedContent="RFC0791"/> <xref target="RFC8200"/> <xref target="RFC2474"/>.format="default" sectionFormat="of" derivedContent="RFC8200"/> <xref target="RFC2474" format="default" sectionFormat="of" derivedContent="RFC2474"/>. The source and destination IP addresses areEIDs.</t> <t hangText="Outer Header: (OH)">TheEIDs.</dd> <dt pn="section-5.3-1.3">Outer Header (OH):</dt> <dd pn="section-5.3-1.4">The outer header is a new header prepended by an ITR. The address fields contain RLOCs obtained from the ingress router's EID-to-RLOCCache.Map-Cache. The IP protocol number is"UDP (17)""UDP (17)" from <xref target="RFC0768"/>.format="default" sectionFormat="of" derivedContent="RFC0768"/>. The setting of the Don't Fragment (DF) bit 'Flags' field is according to rules listed in Sections <xref target="MTU-STATELESS"format="counter"/>format="counter" sectionFormat="of" derivedContent="7.1"/> and <xref target="MTU-STATEFUL"format="counter"/>.</t> <t hangText="UDP Header:">Theformat="counter" sectionFormat="of" derivedContent="7.2"/>.</dd> <dt pn="section-5.3-1.5">UDP Header:</dt> <dd pn="section-5.3-1.6">The UDP header contains anITR selectedITR-selected source port when encapsulating a packet. See <xref target="loc-hash"/>format="default" sectionFormat="of" derivedContent="Section 12"/> for details on the hash algorithm used to select a source port based on the 5-tuple of the inner header. The destination portMUST<bcp14>MUST</bcp14> be set to the well-known IANA-assigned port value4341.</t> <t hangText="UDP Checksum:">The4341.</dd> <dt pn="section-5.3-1.7">UDP Checksum:</dt> <dd pn="section-5.3-1.8">The 'UDP Checksum' fieldSHOULD<bcp14>SHOULD</bcp14> be transmitted as zero by an ITR for either IPv4 <xref target="RFC0768"/> andformat="default" sectionFormat="of" derivedContent="RFC0768"/> or IPv6 encapsulation <xref target="RFC6935"/>format="default" sectionFormat="of" derivedContent="RFC6935"/> <xref target="RFC6936"/>.format="default" sectionFormat="of" derivedContent="RFC6936"/>. When a packet with a zero UDP checksum is received by an ETR, the ETRMUST<bcp14>MUST</bcp14> accept the packet for decapsulation. When an ITR transmits a non-zero value for the UDP checksum, itMUST<bcp14>MUST</bcp14> send a correctly computed value in this field. When an ETR receives a packet with a non-zero UDP checksum, itMAY<bcp14>MAY</bcp14> choose to verify the checksum value. If it chooses to perform suchverification,verification and the verification fails, the packetMUST<bcp14>MUST</bcp14> be silently dropped. If the ETR either chooses not to perform theverification,verification or performs the verification successfully, the packetMUST<bcp14>MUST</bcp14> be accepted for decapsulation. The handling of UDP zero checksums over IPv6 for all tunneling protocols, including LISP, is subject to the applicability statement in <xreftarget="RFC6936"/>.</t> <t hangText="UDP Length:">Thetarget="RFC6936" format="default" sectionFormat="of" derivedContent="RFC6936"/>.</dd> <dt pn="section-5.3-1.9">UDP Length:</dt> <dd pn="section-5.3-1.10">The 'UDP Length' field is set for an IPv4-encapsulated packet to be the sum of the inner-header IPv4 Total Length plus the UDP and LISP header lengths. For an IPv6-encapsulated packet, the 'UDP Length' field is the sum of the inner-header IPv6 Payload Length, the size of the IPv6 header (40 octets), and the size of the UDP and LISPheaders.</t> <t hangText="N:">Theheaders.</dd> <dt pn="section-5.3-1.11">N:</dt> <dd pn="section-5.3-1.12">The N-bit is the nonce-present bit. When this bit is set to 1, the low-order 24 bits of the first 32 bits of the LISP header contain aNonce.nonce. See <xreftarget="echo-nonce"/>target="echo-nonce" format="default" sectionFormat="of" derivedContent="Section 10.1"/> for details. Both N- and V-bitsMUST NOT<bcp14>MUST NOT</bcp14> be set in the same packet. If they are, a decapsulating ETRMUST<bcp14>MUST</bcp14> treat the 'Nonce/Map-Version' field as having aNoncenonce valuepresent.</t> <t hangText="L:">Thepresent.</dd> <dt pn="section-5.3-1.13">L:</dt> <dd pn="section-5.3-1.14">The L-bit is the 'Locator-Status-Bits' field enabled bit. When this bit is set to 1, the Locator-Status-Bits in the second32 bits32 bits of the LISP header are inuse.</t> </list></t> <figure> <artwork><![CDATA[use.</dd> </dl> <artwork name="" type="" align="left" alt="" pn="section-5.3-2"> x 1 x x 0 x x x +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |N|L|E|V|I|R|K|K| Nonce/Map-Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Locator-Status-Bits | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </figure> <t><list style="hanging"> <t hangText="E:">The</artwork> <dl newline="false" spacing="normal" indent="3" pn="section-5.3-3"> <dt pn="section-5.3-3.1">E:</dt> <dd pn="section-5.3-3.2">The E-bit is theecho-nonce-requestEcho-Nonce-request bit. This bitMUST<bcp14>MUST</bcp14> be ignored and has no meaning when the N-bit is set to 0. When the N-bit is set to 1 and this bit is set to 1, an ITR is requesting that the nonce value in the 'Nonce' field be echoed back in LISP-encapsulated packets when the ITR is also an ETR. See <xreftarget="echo-nonce"/> for details.</t> <t hangText="V:">Thetarget="echo-nonce" format="default" sectionFormat="of" derivedContent="Section 10.1"/> for details.</dd> <dt pn="section-5.3-3.3">V:</dt> <dd pn="section-5.3-3.4">The V-bit is the Map-Version present bit. When this bit is set to 1, the N-bitMUST<bcp14>MUST</bcp14> be 0. Refer to <xreftarget="map-versioning" />target="RFC9302" format="default" sectionFormat="of" derivedContent="RFC9302"/> for moredetails.details on Database Map-Versioning. This bit indicates that the LISP header is encoded in thiscase as:</t> </list></t> <figure> <artwork><![CDATA[case as:</dd> </dl> <artwork name="" type="" align="left" alt="" pn="section-5.3-4"> 0 x 0 1 x x x x +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |N|L|E|V|I|R|K|K| Source Map-Version | Dest Map-Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Instance ID/Locator-Status-Bits | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </figure> <t><list style="hanging"> <t hangText="I:">The</artwork> <dl newline="false" spacing="normal" indent="3" pn="section-5.3-5"> <dt pn="section-5.3-5.1">I:</dt> <dd pn="section-5.3-5.2">The I-bit is the Instance ID bit. See <xref target="instance"/>format="default" sectionFormat="of" derivedContent="Section 8"/> for more details. When this bit is set to 1, the 'Locator-Status-Bits' field is reduced to 8 bits and the high-order 24 bits are used as an Instance ID. If the L-bit is set to 0, then the low-order8 bits8 bits are transmitted as zero and ignored on receipt. The format of the LISP header would look likethis:</t> </list></t> <figure> <artwork><![CDATA[this:</dd> </dl> <artwork name="" type="" align="left" alt="" pn="section-5.3-6"> x x x x 1 x x x +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |N|L|E|V|I|R|K|K| Nonce/Map-Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Instance ID | LSBs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </figure> <t><list style="hanging"> <t hangText="R:">The</artwork> <dl newline="false" spacing="normal" indent="3" pn="section-5.3-7"> <dt pn="section-5.3-7.1">R:</dt> <dd pn="section-5.3-7.2">The R-bit is aReservedreserved and unassigned bit for future use. ItMUST<bcp14>MUST</bcp14> be set to 0 on transmit andMUST<bcp14>MUST</bcp14> be ignored onreceipt.</t> <t hangText="KK:">Thereceipt.</dd> <dt pn="section-5.3-7.3">KK:</dt> <dd pn="section-5.3-7.4">The KK-bits are a 2-bit field used when encapsulated packets are encrypted. The field is set to 00 when the packet is not encrypted. See <xref target="RFC8061"/>format="default" sectionFormat="of" derivedContent="RFC8061"/> for furtherinformation.</t> <t hangText="LISP Nonce:">Theinformation.</dd> <dt pn="section-5.3-7.5">LISP Nonce:</dt> <dd pn="section-5.3-7.6">The LISP 'Nonce' field is a 24-bit value that is randomly generated by an ITR when the N-bit is set to 1. Nonce generation algorithms are an implementation matter but are required to generate different nonces when sending to different RLOCs. The nonce is also used when the E-bit is set to request the nonce value to be echoed by the other side when packets are returned. When the E-bit is clear but the N-bit is set, a remote ITR is either echoing a previously requestedecho-nonceEcho-Nonce or providing a random nonce. See <xref target="echo-nonce"/>format="default" sectionFormat="of" derivedContent="Section 10.1"/> for more details. Finally, when both theNN- andV-bitV-bits are not set (N=0, V=0), then both theNonce'Nonce' andMap-Version'Map-Version' fields are set to 0 and ignored onreceipt.</t> <t hangText="LISPreceipt.</dd> <dt pn="section-5.3-7.7">LISP Locator-Status-Bits(LSBs):">When(LSBs):</dt> <dd pn="section-5.3-7.8">When the L-bit is also set, the 'Locator-Status-Bits' field in the LISP header is set by an ITR to indicate to an ETR the up/down status of the Locators in the source site. Each RLOC in a Map-Reply is assigned an ordinal value from 0 to n-1 (when there are n RLOCs in a mapping entry). The Locator-Status-Bits are numbered from 0 to n-1 from the least significant bit of the field. The field is 32 bits when the I-bit is set to 0 and is 8 bits when the I-bit is set to 1. When a Locator-Status-Bit is set to 1, the ITR is indicating to the ETR that the RLOC associated with the bit ordinal has up status. See <xref target="loc-reach"/>format="default" sectionFormat="of" derivedContent="Section 10"/> for details on how an ITR can determine the status of the ETRs at the same site. When a site has multiple EID-Prefixes that result in multiple mappings (where each could have a different Locator-Set), the Locator-Status-Bits setting in an encapsulated packetMUST<bcp14>MUST</bcp14> reflect the mapping for the EID-Prefix that the inner-header source EID address matches (longest-match). If the LSB for an anycast Locator is set to 1, then there is at least one RLOC with that address, and the ETR is considered'up'.</t> </list></t> <t>When'up'.</dd> </dl> <t indent="0" pn="section-5.3-8">When doing ITR/PITR encapsulation:</t><t><list style="symbols"> <t>The<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5.3-9"> <li pn="section-5.3-9.1">The outer-header 'Time to Live' field (or 'Hop Limit' field, in the case of IPv6)SHOULD<bcp14>SHOULD</bcp14> be copied from the inner-header 'Time to Live' field.</t> <t>The</li> <li pn="section-5.3-9.2">The outer-header IPv4 'Differentiated Services CodePoint' (DSCP)Point (DSCP)' fieldor the(or 'Traffic Class' field, in the case ofIPv6, SHOULDIPv6) <bcp14>SHOULD</bcp14> be copied from the inner-header IPv4DSCP'DSCP' fieldor(or 'Traffic Class'fieldfield, in the case ofIPv6,IPv6) to theouter-header.outer header. Guidelines for this can be foundatin <xreftarget="RFC2983"/>.</t> <t>Thetarget="RFC2983" format="default" sectionFormat="of" derivedContent="RFC2983"/>.</li> <li pn="section-5.3-9.3">The IPv4 'Explicit CongestionNotification' (ECN)Notification (ECN)' field and bits 6 and 7 of the IPv6 'Traffic Class' fieldrequiresrequire special treatment in order to avoid discarding indications of congestion as specified in <xreftarget="RFC6040"/>.</t> </list></t> <t>Whentarget="RFC6040" format="default" sectionFormat="of" derivedContent="RFC6040"/>.</li> </ul> <t indent="0" pn="section-5.3-10">When doing ETR/PETR decapsulation:</t><t><list style="symbols"> <t>The<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5.3-11"> <li pn="section-5.3-11.1">The inner-header IPv4 'Time to Live' fieldor(or 'Hop Limit'fieldfield, in the case ofIPv6, MUSTIPv6) <bcp14>MUST</bcp14> be copied from the outer-header 'Time to Live'/'Hop Limit'field,field when the'TimeTime toLive'/'Hop Limit'Live / Hop Limit value of the outer header is less than the'TimeTime toLive'/'Hop Limit'Live / Hop Limit value of the inner header. Failing to perform this check can cause the'TimeTime toLive'/'Hop Limit'Live / Hop Limit of the inner header to increment across encapsulation/decapsulation cycles. This check is also performed when doing initial encapsulation, when a packet comes to an ITR or PITR destined for a LISPsite.</t> <t>Thesite.</li> <li pn="section-5.3-11.2">The outer-header IPv4 'Differentiated Services CodePoint' (DSCP)Point (DSCP)' fieldor the(or 'Traffic Class'fieldfield, in the case ofIPv6, SHOULDIPv6) <bcp14>SHOULD</bcp14> be copied from the outer-headerIPv4 DSCP'IPv4 DSCP' fieldor(or 'Traffic Class'fieldfield, in the case ofIPv6,IPv6) to theinner-header.inner header. Guidelines for this can be foundatin <xreftarget="RFC2983"/>.</t> <t>Thetarget="RFC2983" format="default" sectionFormat="of" derivedContent="RFC2983"/>.</li> <li pn="section-5.3-11.3">The IPv4 'Explicit CongestionNotification' (ECN)Notification (ECN)' field and bits 6 and 7 of the IPv6 'Traffic Class'field, requiresfield require special treatment in order to avoid discarding indications of congestion as specified in <xreftarget="RFC6040"/>.target="RFC6040" format="default" sectionFormat="of" derivedContent="RFC6040"/>. Note that implementations exist that copy the 'ECN' field from the outer header to the innerheaderheader, even though <xreftarget="RFC6040"/>target="RFC6040" format="default" sectionFormat="of" derivedContent="RFC6040"/> does not recommend this behavior. It isRECOMMENDED<bcp14>RECOMMENDED</bcp14> that implementations change to support the behavior discussed in <xreftarget="RFC6040"/>.</t> </list></t> <t>Notetarget="RFC6040" format="default" sectionFormat="of" derivedContent="RFC6040"/>.</li> </ul> <t indent="0" pn="section-5.3-12">Note that if an ETR/PETR is also an ITR/PITR and chooses to re-encapsulate after decapsulating, the net effect of this is that the new outer header will carry the same Time to Live as the old outer header minus 1.</t><t>Copying<t indent="0" pn="section-5.3-13">Copying the Time to Live(TTL)serves two purposes: first, it preserves the distance the host intended the packet to travel; second, and more importantly, it provides for suppression of looping packets in the event there is a loop of concatenated tunnels due to misconfiguration.</t><t>Some xTRs<t indent="0" pn="section-5.3-14"> Some xTRs, PETRs, andPxTRs performsPITRs perform re-encapsulation operations and need to treatthe 'Explicit Congestion Notification' (ECN)ECN functions in a special way. Because the re-encapsulation operation is a sequence of two operations, namely a decapsulation followed by an encapsulation, the ECN bitsMUST<bcp14>MUST</bcp14> be treated as described above for these two operations.</t><t><t indent="0" pn="section-5.3-15"> The LISPdataplanedata plane protocol is not backwards compatible with <xreftarget="RFC6830"/>target="RFC6830" format="default" sectionFormat="of" derivedContent="RFC6830"/> and does not have explicit support for introducing future protocol changes(e.g.(e.g., an explicit version field). However, the LISP control plane <xreftarget="I-D.ietf-lisp-rfc6833bis"/>target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/> allows an ETR to registerdataplanedata plane capabilities by means of newLCAFLISP Canonical Address Format (LCAF) types <xreftarget="RFC8060"/>.target="RFC8060" format="default" sectionFormat="of" derivedContent="RFC8060"/>. In thiswayway, an ITR can be made aware of thedataplanedata plane capabilities of anETR,ETR and encapsulate accordingly. The specification of the new LCAF types, the new LCAF mechanisms, and theiruse, isuse are out of the scope of this document. </t> </section> </section> <sectiontitle="LISPanchor="Map-Cache" numbered="true" toc="include" removeInRFC="false" pn="section-6"> <name slugifiedName="name-lisp-eid-to-rloc-map-cache">LISP EID-to-RLOCMap-Cache" anchor="Map-Cache"> <t>ITRsMap-Cache</name> <t indent="0" pn="section-6-1">ITRs and PITRs maintain an on-demand cache, referred to as the LISP EID-to-RLOC Map-Cache, that contains mappings fromEID-prefixesEID-Prefixes tolocator sets.Locator-Sets. The cache is used to encapsulate packets from the EID space to the corresponding RLOC network attachment point.</t><t>When<t indent="0" pn="section-6-2">When an ITR/PITR receives a packet from inside of the LISP site to destinations outside of thesitesite, a longest-prefix match lookup of the EID is done to the Map-Cache.</t><t>When<t indent="0" pn="section-6-3">When the lookup succeeds, the Locator-Set retrieved from the Map-Cache is used to send the packet to the EID's topological location.</t><t>If<t indent="0" pn="section-6-4">If the lookup fails, the ITR/PITR needs to retrieve the mapping using the LISPControl-Planecontrol plane protocol <xreftarget="I-D.ietf-lisp-rfc6833bis"/>.target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>. While the mapping is being retrieved, the ITR/PITR can either drop or buffer the packets. This document does not have specific recommendations about the action to be taken. It is up to the deployer to consider whether or not it is desirable to buffer packets and deploy a LISP implementation that offers the desiredbehaviour.behavior. Once the mapping isresolvedresolved, it is then stored in the local Map-Cache to forward subsequent packets addressed to the sameEID-prefix.</t> <t>TheEID-Prefix.</t> <t indent="0" pn="section-6-5">The Map-Cache is a local cache ofmappings,mappings; entries are expired based on the associated Time tolive.Live. In addition, entries can be updated with more currentinformation,information; see <xref target="update_mapping"/>format="default" sectionFormat="of" derivedContent="Section 13"/> for further information on this. Finally, the Map-Cache also contains reachability information about EIDs andRLOCs,RLOCs and uses LISP reachability information mechanisms to determine the reachability ofRLOCs,RLOCs; see <xref target="loc-reach"/>format="default" sectionFormat="of" derivedContent="Section 10"/> for the specific mechanisms.</t> </section> <sectiontitle="Dealinganchor="fragment" numbered="true" toc="include" removeInRFC="false" pn="section-7"> <name slugifiedName="name-dealing-with-large-encapsul">Dealing with Large EncapsulatedPackets" anchor="fragment"> <t>ThisPackets</name> <t indent="0" pn="section-7-1">This section proposes two mechanisms to deal with packets that exceed thepathPath MTU (PMTU) between the ITR and ETR.</t><t>It<t indent="0" pn="section-7-2">It is left to the implementor to decide if the stateless or stateful mechanismSHOULD<bcp14>SHOULD</bcp14> be implemented. Both or neither can be used, since it is a local decision in the ITR regarding how to deal with MTU issues, and sites can interoperate with differing mechanisms.</t><t>Both<t indent="0" pn="section-7-3">Both stateless and stateful mechanisms also apply to Re-encapsulating and Recursive Tunneling, so any actions below referring to an ITR also apply to a TE-ITR.</t> <section anchor="MTU-STATELESS"title="Anumbered="true" toc="include" removeInRFC="false" pn="section-7.1"> <name slugifiedName="name-a-stateless-solution-to-mtu">A Stateless Solution to MTUHandling"> <t>AnHandling</name> <t indent="0" pn="section-7.1-1">An ITR stateless solution to handle MTU issues is described as follows:</t><t><list style="numbers"> <t>Define<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-7.1-2"> <li pn="section-7.1-2.1" derivedCounter="1.">Define H to be the size, in octets, of the outer header an ITR prepends to a packet. This includes the UDP and LISP headerlengths.</t> <t>Definelengths.</li> <li pn="section-7.1-2.2" derivedCounter="2.">Define L to be the size, in octets, of the maximum-sized packet an ITR can send to an ETR without the need for the ITR or any intermediate routers to fragment the packet. The network administrator of the LISP deployment has to determine whatisthe suitable value of L is, so as to make sure that no MTU issuesarise.</t> <t>Definearise.</li> <li pn="section-7.1-2.3" derivedCounter="3.">Define an architectural constant S for the maximum size of a packet, in octets, an ITRMUST<bcp14>MUST</bcp14> receive from the source so the effective MTU can be met. That is, L = S +H.</t> </list></t> <t>WhenH.</li> </ol> <t indent="0" pn="section-7.1-3">When an ITR receives a packet from a site-facing interface and adds H octets worth of encapsulation to yield a packet size greater than L octets (meaning the received packet size was greater than S octets from the source), it resolves the MTU issue by first splitting the original packet into 2 equal-sized fragments. A LISP header is then prepended to each fragment. The size of the encapsulated fragments is then (S/2 + H), which is less than the ITR's estimate of thepath MTUPMTU between the ITR and its correspondent ETR.</t><t>When<t indent="0" pn="section-7.1-4">When an ETR receives encapsulated fragments, it treats them as two individually encapsulated packets. It strips the LISP headers and then forwards each fragment to the destination host of the destination site. The two fragments are reassembled at the destination host into the single IP datagram that was originated by the source host. Note that reassembly can happen at the ETR if the encapsulated packet was fragmented at or after the ITR.</t><t>This<t indent="0" pn="section-7.1-5">This behaviorMUST<bcp14>MUST</bcp14> beperformedimplemented by the ITR only when the source host originates a packet with the 'DF' field of the IP header set to 0. When the 'DF' field of the IP header is set to1,1 or the packet is an IPv6 packet originated by the source host, the ITR will drop the packet when the size (adding in the size of the encapsulation header) is greater than L and send an ICMPv4ICMP Unreachable/Fragmentation-NeededUnreachable / Fragmentation Needed or ICMPv6"PacketPacket TooBig"Big (PTB) message to the source with a value of S, where S is (L - H).</t><t>When<t indent="0" pn="section-7.1-6">When the outer-header encapsulation uses an IPv4 header, an implementationSHOULD<bcp14>SHOULD</bcp14> set the DF bit to 1 so ETR fragment reassembly can be avoided. An implementationMAY<bcp14>MAY</bcp14> set the DF bit in such headers to 0 if it has good reason to believe there are unresolvablepath MTUPMTU issues between the sending ITR and the receiving ETR.</t><t>This specification RECOMMENDS<t indent="0" pn="section-7.1-7">It is <bcp14>RECOMMENDED</bcp14> that L be defined as 1500. Additional information about in-network MTU and fragmentation issues can be foundatin <xreftarget="RFC4459"/>.</t>target="RFC4459" format="default" sectionFormat="of" derivedContent="RFC4459"/>.</t> </section> <section anchor="MTU-STATEFUL"title="Anumbered="true" toc="include" removeInRFC="false" pn="section-7.2"> <name slugifiedName="name-a-stateful-solution-to-mtu-">A Stateful Solution to MTUHandling"> <t>AnHandling</name> <t indent="0" pn="section-7.2-1">An ITR stateful solution to handle MTU issues is described as follows:</t><t><list style="numbers"> <t>The<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-7.2-2"> <li pn="section-7.2-2.1" derivedCounter="1.">The ITR will keep state of the effective MTU for each Locator per Map-Cache entry. The effective MTU is what the core network can deliver along the path between the ITR andETR.</t> <t>WhenETR.</li> <li pn="section-7.2-2.2" derivedCounter="2.">When an IPv4-encapsulated packet with the DF bit set to1,1 exceeds what the core network can deliver, one of the intermediate routers on the path will send ananICMPv4Unreachable/Fragmentation-NeededUnreachable / Fragmentation Needed message to theITR, respectively.ITR. The ITR will parse the ICMP message to determine which Locator is affected by the effective MTU change and then record the new effective MTU value in the Map-Cacheentry.</t> <t>Whenentry.</li> <li pn="section-7.2-2.3" derivedCounter="3.">When a packet is received by the ITR from a source inside of the site and the size of the packet is greater than the effective MTU stored with the Map-Cache entry associated with the destination EID the packet is for, the ITR will send an ICMPv4ICMP Unreachable/Fragmentation-NeededUnreachable / Fragmentation Needed message back to the source. The packet size advertised by the ITR in the ICMP message is the effective MTU minus the LISP encapsulationlength.</t> </list></t> <t>Evenlength.</li> </ol> <t indent="0" pn="section-7.2-3">Even though this mechanism is stateful, it has advantages over the stateless IP fragmentation mechanism, by not involving the destination host with reassembly of ITR fragmented packets.</t><t>Please<t indent="0" pn="section-7.2-4">Please note that<xref target="RFC1191"/> and <xref target="RFC1981"/>, which describe the use ofusing ICMP packets for PMTU discovery, as described in <xref target="RFC1191" format="default" sectionFormat="of" derivedContent="RFC1191"/> and <xref target="RFC8201" format="default" sectionFormat="of" derivedContent="RFC8201"/>, canbehave suboptimallyresult in suboptimal behavior in the presence of ICMPblack holespacket losses or off-path attackers that spoof ICMP. Possible mitigations include ITRs and ETRs cooperating on MTU probe packets(<xref target="RFC4821"/>,<xreftarget="I-D.ietf-tsvwg-datagram-plpmtud"/>),target="RFC4821" format="default" sectionFormat="of" derivedContent="RFC4821"/> <xref target="RFC8899" format="default" sectionFormat="of" derivedContent="RFC8899"/> or ITRs storing the beginning of large packets to verify that they match the echoed packet in an ICMPFrag Needed/PTB.</t> </section></section>Fragmentation Needed / PTB message.</t> </section> </section> <section anchor="instance"title="Usingnumbered="true" toc="include" removeInRFC="false" pn="section-8"> <name slugifiedName="name-using-virtualization-and-se">Using Virtualization and Segmentation withLISP"> <t>ThereLISP</name> <t indent="0" pn="section-8-1">There are several cases where segregation is needed at the EID level. For instance, this is the case for deployments containing overlapping addresses, traffic isolationpoliciespolicies, or multi-tenant virtualization. For these and other scenarios where segregation is needed, Instance IDs are used.</t><t>An<t indent="0" pn="section-8-2">An Instance ID can be carried in a LISP-encapsulated packet. An ITR that prepends a LISP header will copy a 24-bit value used by the LISP router to uniquely identify the address space. The value is copied to the 'Instance ID' field of the LISP header, and the I-bit is setto 1.</t> <t>Whento 1.</t> <t indent="0" pn="section-8-3">When an ETR decapsulates a packet, the Instance ID from the LISP header is used as a table identifier to locate the forwarding table to use for the inner destination EID lookup.</t><t>For<t indent="0" pn="section-8-4">For example, an 802.1Q VLAN tag or VPN identifier could be used as a 24-bit Instance ID. See <xreftarget="I-D.ietf-lisp-vpn"/>target="I-D.ietf-lisp-vpn" format="default" sectionFormat="of" derivedContent="LISP-VPN"/> for details regarding LISP VPNuse-case details.use cases. Please note that the Instance ID is notprotected,protected; an on-path attacker can modify the tagsandand, for instance, allowcommunicatonscommunications between logically isolated VLANs.</t><t>Participants<t indent="0" pn="section-8-5">Participants within a LISP deployment must agree on the meaning of Instance ID values. The source and destination EIDsMUST<bcp14>MUST</bcp14> belong to the same Instance ID. </t><t>Instance<t indent="0" pn="section-8-6">The Instance IDSHOULD NOT<bcp14>SHOULD NOT</bcp14> be used with overlapping IPv6 EID addresses.</t> </section> <sectiontitle="Routingnumbered="true" toc="include" removeInRFC="false" pn="section-9"> <name slugifiedName="name-routing-locator-selection">Routing LocatorSelection"> <t>TheSelection</name> <t indent="0" pn="section-9-1">The Map-Cache contains the state used by ITRs and PITRs to encapsulate packets. When an ITR/PITR receives a packet from inside the LISP site to a destination outside of thesitesite, a longest-prefix match lookup of the EID is done to the Map-Cache (see <xref target="Map-Cache"/>).format="default" sectionFormat="of" derivedContent="Section 6"/>). The lookup returns a single Locator-Set containing a list of RLOCs corresponding to the EID's topological location. Each RLOC in the Locator-Set is associated with a'Priority'Priority and'Weight',Weight; this information is used to select the RLOC to encapsulate.</t><t>The<t indent="0" pn="section-9-2">The RLOC with the lowest'Priority'Priority is selected. An RLOC with'Priority'Priority 255 means thatMUST NOTit <bcp14>MUST NOT</bcp14> be used for forwarding. When multiple RLOCs have the same'Priority'Priority, then the'Weight'Weight states how toload balanceload-balance traffic among them. The value of the'Weight'Weight represents the relative weight of the total packets that match the mapping entry.</t><t>The<t indent="0" pn="section-9-3">The following are different scenarios for choosing RLOCs and the controls that are available:</t><t><list style="symbols"> <t>The<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9-4"> <li pn="section-9-4.1">The server-side returns one RLOC. The client-side can only use one RLOC. The server-side has complete control of theselection.</t> <t>Theselection.</li> <li pn="section-9-4.2">The server-side returns a list of RLOCs where a subset of the list has the same best Priority. The client can only use the subset list according to the weighting assigned by the server-side. In this case, the server-side controls both the subset list andload-splittingload splitting across its members. The client-side can use RLOCs outside of the subset list if it determines that the subset list is unreachable (unless RLOCs are set to a Priority of 255). Some sharing of control exists: the server-side determines the destination RLOC list and load distribution while the client-side has the option of using alternatives to this list if RLOCs in the list areunreachable.</t> <t>Theunreachable.</li> <li pn="section-9-4.3">The server-side sets a Weight of zero for the RLOC subset list. In this case, the client-side can choose how the traffic load is spread across the subset list. See <xreftarget="loc-hash"/>target="loc-hash" format="default" sectionFormat="of" derivedContent="Section 12"/> for details on load-sharing mechanisms. Control is shared by the server-side determining the list and the client-side determining load distribution. Again, the client can use alternative RLOCs if the server-provided list of RLOCs isunreachable.</t> <t>Eitherunreachable.</li> <li pn="section-9-4.4">Either side (more likely the server-side ETR) decides to "glean" the RLOCs. For example, if the server-side ETR gleans RLOCs, then the client-side ITR gives theclient-side ITRserver-side ETR responsibility for bidirectional RLOC reachability and preferability. Server-side ETR gleaning of the client-side ITR RLOC is done by caching the inner-header source EID and the outer-header source RLOC of received packets. The client-side ITR controls how traffic is returned andcan alternate usingcan, as an alternative, use an outer-header source RLOC, which then can be added to the list the server-side ETR uses to return traffic. Since no Priority or Weights are provided using this method, the server-side ETRMUST<bcp14>MUST</bcp14> assume that each client-side ITR RLOC uses the same best Priority with a Weight of zero. In addition, since EID-Prefix encoding cannot be conveyed in data packets, the EID-to-RLOCCacheMap-Cache on Tunnel Routers can growto bevery large. Gleaning has several important considerations. A "gleaned" Map-Cache entry is only stored and used for aRECOMMENDED<bcp14>RECOMMENDED</bcp14> period of 3 seconds, pending verification. VerificationMUST<bcp14>MUST</bcp14> be performed by sending a Map-Request to the source EID (the inner-header IP source address) of the received encapsulated packet. A reply to this "verifying Map-Request" is used to fully populate the Map-Cache entry for the "gleaned" EID and is stored and used for the time indicatedfromin the'TTL''Time to Live' field of a received Map-Reply. When a verifiedMap- CacheMap-Cache entry is stored, data gleaning no longer occurs for subsequent packets that have a source EID that matches the EID-Prefix of the verified entry. This "gleaning" mechanismMUST NOT<bcp14>MUST NOT</bcp14> be used over the public Internet andSHOULD<bcp14>SHOULD</bcp14> only be used in trusted and closed deployments. Refer to <xreftarget="SECURITY"/>target="SECURITY" format="default" sectionFormat="of" derivedContent="Section 16"/> for security issues regarding thismechanism.</t> </list></t> <t>RLOCsmechanism.</li> </ul> <t indent="0" pn="section-9-5">RLOCs that appear in EID-to-RLOC Map-Reply messages are assumed to be reachable when the R-bit <xreftarget="I-D.ietf-lisp-rfc6833bis"/>target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/> for the Locator record is set to 1. When the R-bit is set to 0, an ITR or PITRMUST NOT<bcp14>MUST NOT</bcp14> encapsulate to the RLOC. Neither the information contained in a Map-Reply nor that stored in the mapping database system provides reachability information for RLOCs. Note that reachability is not part of themapping systemMapping System and is determined using one or more of theRouting LocatorRLOC reachability algorithms described in the next section.</t> </section> <section anchor="loc-reach"title="Routingnumbered="true" toc="include" removeInRFC="false" pn="section-10"> <name slugifiedName="name-routing-locator-reachabilit">Routing LocatorReachability"> <t>Several Data-PlaneReachability</name> <t indent="0" pn="section-10-1">Several data plane mechanisms for determining RLOC reachability are currently defined. Please note that additionalControl-Plane basedreachability mechanisms based on the control plane are defined in <xreftarget="I-D.ietf-lisp-rfc6833bis"/>.</t> <t><list style="numbers"> <t>Antarget="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>.</t> <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-10-2"> <li pn="section-10-2.1" derivedCounter="1.">An ETRMAY<bcp14>MAY</bcp14> examine the Locator-Status-Bits in the LISP header of an encapsulated data packet received from an ITR. If the ETR is also acting as an ITR and has traffic to return to the original ITR site, it can use this status information to help select anRLOC.</t> <t>WhenRLOC.</li> <li pn="section-10-2.2" derivedCounter="2.">When an ETR receives an encapsulated packet from an ITR, the source RLOC from the outer header of the packet is likely to be reachable. Please note that in some scenarios the RLOC from the outer header can beana spoofablefield.</t> <t>Anfield.</li> <li pn="section-10-2.3" derivedCounter="3.">An ITR/ETR pair can use the'Echo-Noncing'Echo-Noncing Locator reachability algorithms described in thissection.</t> </list></t> <t>Whensection.</li> </ol> <t indent="0" pn="section-10-3">When determining Locator up/down reachability by examining the Locator-Status-Bits from the LISP-encapsulated data packet, an ETR will receive an up-to-date status from an encapsulating ITR about reachability for all ETRs at the site. CE-based ITRs at the source site can determine reachability relative to each other using the site IGP as follows:</t><t><list style="symbols"> <t>Under<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-10-4"> <li pn="section-10-4.1">Under normal circumstances, each ITR will advertise a default route into the siteIGP.</t> <t>IfIGP.</li> <li pn="section-10-4.2">If an ITR fails or if the upstream link to itsPEProvider Edge fails, its default route will either time out or bewithdrawn.</t> </list></t> <t>Eachwithdrawn.</li> </ul> <t indent="0" pn="section-10-5">Each ITR can thus observe the presence or lack of a default route originated by the others to determine the Locator-Status-Bits it sets for them.</t><t>When<t indent="0" pn="section-10-6">When ITRs at the site are not deployed in CE routers, the IGP can still be used to determine the reachability of Locators, provided they are injected into the IGP. This is typically done when a /32 address is configured on a loopback interface.</t><t><t indent="0" pn="section-10-7"> RLOCs listed in a Map-Reply are numbered with ordinals 0 to n-1. The Locator-Status-Bits in a LISP-encapsulated packet are numbered from 0 to n-1 starting with the least significant bit. For example, if an RLOC listed in the 3rd position of the Map-Reply goes down (ordinal value 2), then all ITRs at the site will clear the 3rd least significant bit (xxxx x0xx) of the 'Locator-Status-Bits' field for the packets they encapsulate.</t><t>When<t indent="0" pn="section-10-8">When an xTR decides to use'Locator-Status-Bits'Locator-Status-Bits to affect reachability information, it acts as follows: ETRs decapsulating a packet will check for any change in the 'Locator-Status-Bits' field. When a bit goes from 1 to 0, the ETR, ifactingalso acting as an ITR, will refrain from encapsulating packets to an RLOC that is indicated as down. It will only resume using that RLOC if the corresponding Locator-Status-Bit returns to a value of 1. Locator-Status-Bits are associated with a Locator-Set per EID-Prefix. Therefore, when a Locator becomes unreachable, the Locator-Status-Bit that corresponds to that Locator's position in the list returned by the last Map-Reply will be set to zero for that particular EID-Prefix. </t><t>Locator-Status-Bits MUST NOT<t indent="0" pn="section-10-9">Locator-Status-Bits <bcp14>MUST NOT</bcp14> be used over the public Internet andSHOULD<bcp14>SHOULD</bcp14> only be used in trusted and closed deployments. Inadditionaddition, Locator-Status-BitsSHOULD<bcp14>SHOULD</bcp14> be coupled with Map-Versioning(<xref target="map-versioning"/>)<xref target="RFC9302" format="default" sectionFormat="of" derivedContent="RFC9302"/> to prevent race conditions where Locator-Status-Bits are interpreted as referring to different RLOCs than intended. Refer to <xreftarget="SECURITY"/>target="SECURITY" format="default" sectionFormat="of" derivedContent="Section 16"/> for security issues regarding this mechanism.</t><t>If<t indent="0" pn="section-10-10">If an ITR encapsulates a packet to an ETR and the packet is received and decapsulated by the ETR, it isimpliedimplied, but not confirmed by theITRITR, that the ETR's RLOC is reachable. In most cases, the ETR can also reach the ITR but cannot assume this to be true, due to the possibility of path asymmetry. In the presence of unidirectional traffic flow from an ITR to an ETR, the ITRSHOULD NOT<bcp14>SHOULD NOT</bcp14> use the lack of return traffic as an indication that the ETR is unreachable. Instead, itMUST<bcp14>MUST</bcp14> use an alternate mechanism to determine reachability.</t><t>The<t indent="0" pn="section-10-11">The security considerations of <xreftarget="SECURITY"/>target="SECURITY" format="default" sectionFormat="of" derivedContent="Section 16"/> related todata-planedata plane reachabilityappliesapply to thedata-planedata plane RLOC reachability mechanisms described in this section.</t> <section anchor="echo-nonce"title="Echo Nonce Algorithm"> <t>Whennumbered="true" toc="include" removeInRFC="false" pn="section-10.1"> <name slugifiedName="name-echo-nonce-algorithm">Echo-Nonce Algorithm</name> <t indent="0" pn="section-10.1-1">When data flows bidirectionally between Locators from different sites, aData-Planedata plane mechanism called "nonce echoing" can be used to determine reachability between an ITR and ETR. When an ITR wants to solicit a nonce echo, it sets the N- and E-bits and places a 24-bit nonce <xref target="RFC4086"/>format="default" sectionFormat="of" derivedContent="RFC4086"/> in the LISP header of the next encapsulated data packet.</t><t>When<t indent="0" pn="section-10.1-2">When this packet is received by the ETR, the encapsulated packet is forwarded as normal. When the ETR is an xTR (co-located as an ITR), it then sends a data packet to the ITR (when it is an xTR co-located as anETR), itETR) and includes the nonce received earlier with the N-bit set and E-bit cleared. The ITR sees this "echoed nonce" and knows that the path to and from the ETR is up.</t><t>The<t indent="0" pn="section-10.1-3">The ITR will set the E-bit and N-bit for every packet it sends while in theecho-nonce-requestEcho-Nonce-request state. The time the ITR waits to process the echoed nonce before it determines that the path is unreachable is variable and is a choice left for the implementation.</t><t>If<t indent="0" pn="section-10.1-4">If the ITR is receiving packets from the ETR but does not see the nonce echoed while being in theecho-nonce-requestEcho-Nonce-request state, then the path to the ETR is unreachable. This decisionMAY<bcp14>MAY</bcp14> be overridden by other Locator reachability algorithms. Once the ITR determines that the path to the ETR is down, it can switch to another Locator for that EID-Prefix.</t><t>Note<t indent="0" pn="section-10.1-5">Note that "ITR" and "ETR" are relative terms here. Both devicesMUST<bcp14>MUST</bcp14> be implementing both ITR and ETR functionality for theecho nonceEcho-Nonce mechanism to operate.</t><t>The<t indent="0" pn="section-10.1-6">The ITR and ETRMAY<bcp14>MAY</bcp14> both go into theecho-nonce-requestEcho-Nonce-request state at the same time. The number of packets sent or the time during whichecho nonce requestsEcho-Nonce request packets are sent is an implementation-specific setting. In this case, an xTR receiving theecho-nonce-requestEcho-Nonce request packets will suspend theecho-nonce-requestEcho-Nonce state andsetup a 'echo-nonce-request-state'set up an 'Echo-Nonce-request-state' timer. After the'echo-nonce-request-state''Echo-Nonce-request-state' timerexpiresexpires, it will resume theecho-nonce-requestEcho-Nonce state.</t><t>This<t indent="0" pn="section-10.1-7">This mechanism does not completely solve the forward path reachability problem, as traffic may be unidirectional. That is, the ETR receiving traffic at a siteMAY<bcp14>MAY</bcp14> not be the same device as an ITR that transmits traffic from that site, or the site-to-site traffic is unidirectional so there is no ITR returning traffic.</t><t>The echo-nonce<t indent="0" pn="section-10.1-8">The Echo-Nonce algorithm is bilateral. That is, if one side sets the E-bit and the other side is not enabled forecho-noncing,Echo-Noncing, then the echoing of the nonce does not occur and the requesting side may erroneously consider the Locator unreachable. An ITRSHOULD<bcp14>SHOULD</bcp14> set the E-bit in an encapsulated data packet when it knows the ETR is enabled forecho-noncing.Echo-Noncing. This is conveyed by the E-bit in the Map-Reply message.</t><t>Many<t indent="0" pn="section-10.1-9">Many implementations default to not advertising that they areecho-nonceEcho-Nonce capable in Map-Replymessagesmessages, and soRLOC-probingRLOC-Probing tends to be used for RLOC reachability.</t><t>The echo-nonce<t indent="0" pn="section-10.1-10">The Echo-Nonce mechanismMUST NOT<bcp14>MUST NOT</bcp14> be used over the public Internet andMUST<bcp14>MUST</bcp14> only be used in trusted and closed deployments. Refer to <xreftarget="SECURITY"/>target="SECURITY" format="default" sectionFormat="of" derivedContent="Section 16"/> for security issues regarding this mechanism.</t> </section> </section> <section anchor="eid-reach"title="EIDnumbered="true" toc="include" removeInRFC="false" pn="section-11"> <name slugifiedName="name-eid-reachability-within-a-l">EID Reachability within a LISPSite"> <t>ASite</name> <t indent="0" pn="section-11-1">A siteMAY<bcp14>MAY</bcp14> be multihomed using two or more ETRs. The hosts and infrastructure within a site will be addressed using one or more EID-Prefixes that are mapped to the RLOCs of the relevant ETRs in themapping system.Mapping System. One possible failure mode is for an ETR to lose reachability to one or more of the EID-Prefixes within its own site. When this occurs when the ETR sends Map-Replies, it can clear the R-bit associated with its own Locator. And when the ETR is also an ITR, it can clear its Locator-Status-Bit in the encapsulation data header.</t><t>It<t indent="0" pn="section-11-2">It is recognized that there are no simple solutions to the site partitioning problem because it is hard to know which part of the EID-Prefix range is partitioned and which Locators can reach any sub-ranges of the EID-Prefixes. Note that this is not a new problem introduced by the LISP architecture.TheAt the time of this writing, this problem existstodaywhen a multihomed site uses BGP to advertise its reachability upstream.</t> </section> <section anchor="loc-hash"title="Routingnumbered="true" toc="include" removeInRFC="false" pn="section-12"> <name slugifiedName="name-routing-locator-hashing">Routing LocatorHashing"> <t>WhenHashing</name> <t indent="0" pn="section-12-1">When an ETR provides an EID-to-RLOC mapping in a Map-Reply message that is stored in the Map-Cache of a requesting ITR, the Locator-Set for the EID-PrefixMAY<bcp14>MAY</bcp14> contain different Priority and Weight values for eachlocator address.Routing Locator Address. When more than one best Priority Locator exists, the ITR can decide how to load-share traffic against the corresponding Locators.</t><t>The<t indent="0" pn="section-12-2">The following hash algorithmMAY<bcp14>MAY</bcp14> be used by an ITR to select a Locator for a packet destined to an EID for the EID-to-RLOC mapping:</t><t><list style="numbers"> <t>Either<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-12-3"> <li pn="section-12-3.1" derivedCounter="1.">Either a source and destination address hash or thetraditionalcommonly used 5-tuple hash can be used. Thetraditionalcommonly used 5-tuple hash includes the source and destination addresses; source and destination TCP, UDP, or Stream Control Transmission Protocol (SCTP) port numbers; and the IP protocol number field or IPv6 next-protocol fields of a packet that a host originates from within a LISP site. When a packet is not a TCP, UDP, or SCTP packet, the source and destination addresses only from the header are used to compute thehash.</t> <t>Takehash.</li> <li pn="section-12-3.2" derivedCounter="2.">Take the hash value and divide it by the number of Locators stored in the Locator-Set for the EID-to-RLOCmapping.</t> <t>Themapping.</li> <li pn="section-12-3.3" derivedCounter="3.">The remainder will yield a value of 0 to "number of Locators minus 1". Use the remainder to select the Locator in theLocator-Set.</t> </list></t> <t>TheLocator-Set.</li> </ol> <t indent="0" pn="section-12-4">The specific hash algorithm the ITR uses for load-sharing is out of scope for this document and does not prevent interoperability.</t><t>The Source<t indent="0" pn="section-12-5">The source portSHOULD<bcp14>SHOULD</bcp14> be the same for all packets belonging to the same flow. Also note that when a packet is LISP encapsulated, the source port number in the outer UDP header needs to be set. Selecting a hashed value allows core routers that are attached to Link Aggregation Groups (LAGs) to load-split the encapsulated packets across member links of such LAGs. Otherwise, core routers would see a single flow, since packets have a source address of the ITR, for packets that are originated by different EIDs at the source site. A suggested setting for the source port number computed by an ITR is a 5-tuple hash function on the inner header, as described above. The source portSHOULD<bcp14>SHOULD</bcp14> be the same for all packets belonging to the same flow.</t><t>Many<t indent="0" pn="section-12-6">Many core router implementations use a 5-tuple hash to decide how to balance packet load across members of a LAG. The 5-tuple hash includes the source and destination addresses of the packet and the source and destination ports when the protocol number in the packet is TCP or UDP. For this reason, UDP encoding is used for LISP encapsulation. In this scenario, when the outer header is IPv6, the flow labelMAY<bcp14>MAY</bcp14> also be set following the procedures specified in <xreftarget="RFC6438"/>.target="RFC6438" format="default" sectionFormat="of" derivedContent="RFC6438"/>. When the inner header is IPv6thenand the flow label is not zero, itMAY<bcp14>MAY</bcp14> be used to compute the hash.</t> </section> <section anchor="update_mapping"title="Changingnumbered="true" toc="include" removeInRFC="false" pn="section-13"> <name slugifiedName="name-changing-the-contents-of-ei">Changing the Contents of EID-to-RLOCMappings"> <t>SinceMappings</name> <t indent="0" pn="section-13-1">Since the LISP architecture uses a caching scheme to retrieve and store EID-to-RLOC mappings, the only way an ITR can get a more up-to-date mapping is to re-request the mapping. However, the ITRs do not know when the mappings change, and the ETRs do not keep track of which ITRs requesteditstheir mappings. For scalability reasons, it is desirable to maintain thisapproachapproach, but implementors need to provide a way for ETRs to change their mappings and inform the sites that are currently communicating with the ETR site using such mappings.</t><t>This<t indent="0" pn="section-13-2">This section defines twoData-Planedata plane mechanism for updating EID-to-RLOC mappings. Additionally, theSolicit-Map RequestSolicit-Map-Request (SMR)Control-Planecontrol plane updating mechanism is specified in <xreftarget="I-D.ietf-lisp-rfc6833bis" />.</t>target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>.</t> <section anchor="lsb-changing"title="Locator-Status-Bits"> <t>Locator-Status-Bits (LSB)numbered="true" toc="include" removeInRFC="false" pn="section-13.1"> <name slugifiedName="name-locator-status-bits">Locator-Status-Bits</name> <t indent="0" pn="section-13.1-1">Locator-Status-Bits (LSBs) can also be used to keep track of the Locator status (up or down) when EID-to-RLOC mappings are changing. WhenLSBLSBs are used in a LISP deployment, all LISPtunnel routers MUSTTunnel Routers <bcp14>MUST</bcp14> implement both ITR and ETR capabilities(therefore(therefore, alltunnel routersTunnel Routers are effectively xTRs). In thissectionsection, the term "source xTR" is used to refer to the xTR setting the LSB and "destination xTR" is used to refer to the xTR receiving the LSB. The procedure is as follows: </t><t>First, when<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-13.1-2"> <li pn="section-13.1-2.1" derivedCounter="1.">When a Locator record is added or removed from the Locator-Set, the source xTR will signal this by sendinga Solicit-Map Request (SMR) Control-Planean SMR control plane message <xreftarget="I-D.ietf-lisp-rfc6833bis" />target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/> to the destination xTR. At thispointpoint, the source xTRMUST NOT<bcp14>MUST NOT</bcp14> use the LSB(L-bit = 0)field, when the L-bit is 0, since the destination xTR site has outdated information. The source xTR willsetupset up a 'use-LSB'timer.</t> <t>Second and astimer.</li> <li pn="section-13.1-2.2" derivedCounter="2.">As defined in <xreftarget="I-D.ietf-lisp-rfc6833bis" />,target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>, upon reception of the SMRmessagemessage, the destination xTR will retrieve the updated EID-to-RLOC mappings by sending aMap-Request.</t> <t>And third, whenMap-Request.</li> <li pn="section-13.1-2.3" derivedCounter="3.">When the 'use-LSB' timer expires, the source xTR can useagainthe LSB again with the destination xTR to signal the Locator status (up or down). The specific value for the 'use-LSB' timer depends on the LISPdeployment,deployment; the 'use-LSB' timer needs to be large enough for the destination xTR toretreiveretrieve the updated EID-to-RLOC mappings. ARECOMMENDED<bcp14>RECOMMENDED</bcp14> value for the 'use-LSB' timer is 5minutes.</t>minutes.</li> </ol> </section> <section anchor="map-versioning"title="Database Map-Versioning"> <t>Whennumbered="true" toc="include" removeInRFC="false" pn="section-13.2"> <name slugifiedName="name-database-map-versioning">Database Map-Versioning</name> <t indent="0" pn="section-13.2-1">When there is unidirectional packet flow between an ITR and ETR, and the EID-to-RLOC mappings change on the ETR, it needs to inform the ITR so encapsulation to a removed Locator can stop and can instead be started to a new Locator in the Locator-Set.</t><t>An ETR, when it sends<t indent="0" pn="section-13.2-2">An ETR can send Map-Replymessages, conveys its ownmessages carrying a Map-VersionNumber.Number <xref target="RFC9302" format="default" sectionFormat="of" derivedContent="RFC9302"/> in an EID-Record. This is known as the Destination Map-Version Number. ITRs include the Destination Map-Version Number in packets they encapsulate to thesite. When an ETR decapsulates a packet and detects that the Destination Map-Version Number is less than the current version for its mapping, the SMR procedure described in <xref target="I-D.ietf-lisp-rfc6833bis" /> occurs.</t> <t>Ansite.</t> <t indent="0" pn="section-13.2-3">An ITR, when it encapsulates packets to ETRs, can convey its ownMap-VersionMap- Version Number. This is known as the Source Map-VersionNumber. When an ETR decapsulates a packet and detects that the Source Map-Version Number is greater than the last Map-Version Number sentNumber.</t> <t indent="0" pn="section-13.2-4">When presented ina Map-Reply from the ITR's site, the ETR will send a Map-Request to oneEID-Records ofthe ETRs for the source site.</t> <t>A Map-Version Number is used asMap-Register messages <xref target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>, asequence number per EID-Prefix, so values that are greater are considered to be more recent. A value of 0 for the Source Map-Version Number or the DestinationMap-Version Numberconveys no versioning information, and an ITR does no comparison with previously received Map-Version Numbers.</t> <t>A Map-Version Number can be included in Map-Register messages as well. Thisis a good way for the Map-Server <xref target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/> to assure that all ETRs for a site registering to itwill be synchronized according to Map-Version Number.</t> <t>Map-Version requires that ETRs within the LISP siteare synchronizedwith respectaccording to the Map-VersionNumber, EID-prefix and the set and status (up/down) of the RLOCs. The use of Map-Versioning without proper synchronization may cause traffic disruption. The synchronization protocol is out-of-the-scope of this document, but MUST keep ETRs synchronized within a 1 minute window.</t> <t>Map-Versioning MUST NOT be used over the public Internet and SHOULD only be used in trusted and closed deployments. Refer to <xref target="SECURITY"/> for security issues regarding this mechanism.</t> <t>SeeNumber.</t> <t indent="0" pn="section-13.2-5">See <xreftarget="I-D.ietf-lisp-6834bis" />target="RFC9302" format="default" sectionFormat="of" derivedContent="RFC9302"/> for a more detailed analysis and description of Database Map-Versioning.</t> </section> </section> <sectiontitle="Multicast Considerations" anchor="multicast"> <t>Aanchor="multicast" numbered="true" toc="include" removeInRFC="false" pn="section-14"> <name slugifiedName="name-multicast-considerations">Multicast Considerations</name> <t indent="0" pn="section-14-1">A multicast group address, as defined in the original Internet architecture, is an identifier of a grouping of topologically independent receiver host locations. The address encoding itself does not determine the location of the receiver(s). The multicast routingprotocol,protocol and the network-based state the protocolcreates,creates determine where the receivers are located.</t><t>In<t indent="0" pn="section-14-2">In the context of LISP, a multicast group address is both an EID anda Routing Locator.an RLOC. Therefore, no specific semantic or action needs to be taken for a destination address, as it would appear in an IP header. Therefore, a group address that appears in an inner IP header built by a source host will be used as the destination EID. The outer IP header (the destinationRouting LocatorRLOC address), prepended by a LISP router, can use the same group address as the destinationRouting Locator,RLOC, use a multicast or unicastRouting LocatorRLOC obtained from a Mapping System lookup, or use other means to determine the group address mapping.</t><t>With<t indent="0" pn="section-14-3">With respect to the sourceRouting LocatorRLOC address, the ITR prepends its own IP address as the source address of the outer IP header, just like it would if the destination EID was a unicast address. This sourceRouting LocatorRLOC address, like any otherRouting LocatorRLOC address,MUST<bcp14>MUST</bcp14> be routable on the underlay.</t><t>There<t indent="0" pn="section-14-4">There are two approaches forLISP-Multicast,LISP-Multicast <xref target="RFC6831" format="default" sectionFormat="of" derivedContent="RFC6831"/>: one that uses native multicast routing in the underlay with no support from the Mapping System andthe otheranother that uses only unicast routing in the underlay with support from the Mapping System. See <xreftarget="RFC6831"/>target="RFC6831" format="default" sectionFormat="of" derivedContent="RFC6831"/> and <xreftarget="RFC8378"/>,target="RFC8378" format="default" sectionFormat="of" derivedContent="RFC8378"/>, respectively, for details. Details for LISP-Multicast and interworking with non-LISP sites are described in <xreftarget="RFC6831"/>target="RFC6831" format="default" sectionFormat="of" derivedContent="RFC6831"/> and <xreftarget="RFC6832"/>.</t>target="RFC6832" format="default" sectionFormat="of" derivedContent="RFC6832"/>, respectively.</t> </section> <sectiontitle="Routeranchor="PUNT" numbered="true" toc="include" removeInRFC="false" pn="section-15"> <name slugifiedName="name-router-performance-consider">Router PerformanceConsiderations" anchor="PUNT"> <t>LISPConsiderations</name> <t indent="0" pn="section-15-1">LISP is designed to be very"hardware-based"hardware based and forwarding friendly". A few implementation techniques can be used to incrementally implement LISP:</t><t><list style="symbols"> <t>When<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-15-2"> <li pn="section-15-2.1">When a tunnel-encapsulated packet is received by an ETR, the outer destination address may not be the address of the router. This makes it challenging for the control plane to get packets from the hardware. This may be mitigated by creating special Forwarding Information Base (FIB) entries for the EID-Prefixes of EIDs served by the ETR (those for which the router provides an RLOC translation). These FIB entries are marked with a flag indicating thatControl-Planecontrol plane processingSHOULD<bcp14>SHOULD</bcp14> be performed. The forwarding logic of testing for particular IP protocol number values is not necessary. There are a few proven cases where no changes to existing deployed hardware were needed to support the LISPData-Plane.</t> <t>Ondata plane.</li> <li pn="section-15-2.2">On an ITR, prepending a new IP header consists of adding more octets to aMACMessage Authentication Code (MAC) rewrite string and prepending the string as part of the outgoing encapsulation procedure. Routers that support Generic Routing Encapsulation (GRE) tunneling <xreftarget="RFC2784"/>target="RFC2784" format="default" sectionFormat="of" derivedContent="RFC2784"/> or 6to4 tunneling <xreftarget="RFC3056"/>target="RFC3056" format="default" sectionFormat="of" derivedContent="RFC3056"/> may already support thisaction.</t> <t>Aaction.</li> <li pn="section-15-2.3">A packet's source address or the interface on which the packet was receivedoncan be used to selectVRF (Virtual Routing/Forwarding).Virtual Routing and Forwarding (VRF). TheVRF'sVRF system's routing table can be used to find EID-to-RLOCmappings.</t> </list></t> <t>Formappings.</li> </ul> <t indent="0" pn="section-15-3">For performance issues related to Map-Cache management, see <xref target="SECURITY"/>.</t>format="default" sectionFormat="of" derivedContent="Section 16"/>.</t> </section> <sectiontitle="Security Considerations" anchor="SECURITY"> <t>Inanchor="SECURITY" numbered="true" toc="include" removeInRFC="false" pn="section-16"> <name slugifiedName="name-security-considerations">Security Considerations</name> <t indent="0" pn="section-16-1">In whatfollowsfollows, we highlight security considerations that apply when LISP is deployed in environments such as those specified in <xreftarget="soa"/>.</t> <t>Thetarget="soa" format="default" sectionFormat="of" derivedContent="Section 1.1"/>.</t> <t indent="0" pn="section-16-2">The optionalmechanisms ofgleaning mechanism is offered to directly obtain a mapping from theLISP encapsulatedLISP-encapsulated packets. Specifically, an xTR can learn the EID-to-RLOC mapping by inspecting the source RLOC and source EID of an encapsulatedpacket,packet and insert this new mapping into its Map-Cache. An off-path attacker can spoof the source EID address to divert the traffic sent to the victim's spoofed EID. If the attacker spoofs the source RLOC, it can mount a DoS attack by redirecting traffic to the spoofed victim's RLOC, potentially overloading it.</t><t>The<t indent="0" pn="section-16-3">The LISPData-Planedata plane defines several mechanisms to monitor RLOCData-Plane reachability,data plane reachability; in thiscontext Locator-Status Bits, Nonce-Presentcontext, Locator-Status-Bits, nonce-present bits, and Echo-Nonce bits of the LISP encapsulation header can be manipulated by an attacker to mount a DoS attack. An off-path attacker able to spoof the RLOC and/or nonce of a victim's xTR can manipulate such mechanisms to declare false information about the RLOC's reachability status.</t><t>For<t indent="0" pn="section-16-4">An example of suchattacks,attacks is when an off-path attacker can exploit theecho-nonceEcho-Nonce mechanism by sending data packets to an ITR with a random nonce from an ETR's spoofed RLOC. Note that the attackermustonly has a small window of time within which to guess a valid nonce that the ITR is requesting to beechoed within a small window of time.echoed. The goal is to convince the ITR that the ETR's RLOC is reachable even when it may not be reachable. If the attack is successful, the ITR believes the wrong reachability status of the ETR's RLOC untilRLOC-probingRLOC-Probing detects the correct status. This time frame is on the order of10stens of seconds. This specific attack can be mitigated by preventing RLOC spoofing in the network by deployinguRPF BCP 38Unicast Reverse Path Forwarding (uRPF) per <xreftarget="RFC2827"/>.target="RFC8704" format="default" sectionFormat="of" derivedContent="RFC8704">BCP 84</xref>. Inaddition and inorder to exploit this vulnerability, the off-path attacker must also sendecho-nonceEcho-Nonce packets at a high rate. If the nonces have never been requested by the ITR, it can protect itself from erroneous reachability attacks.</t><t>A<t indent="0" pn="section-16-5">A LISP-specific uRPF check is also possible. When decapsulating, an ETR can check that the source EID and RLOC are valid EID-to-RLOC mappings by checking the Mapping System.</t><t>Map-Versioning<t indent="0" pn="section-16-6">Map-Versioning is aData-Planedata plane mechanism used to signal to a peering xTR that a local EID-to-RLOC mapping has beenupdated,updated so that the peering xTR uses a LISPControl-Planecontrol plane signaling message to retrieve a fresh mapping. This can be used by an attacker to forge themap-versioning'Map-Version' field of aLISP encapsulatedLISP-encapsulated header and force an excessive amount of signaling between xTRs that may overloadthem.</t> <t>Locator-Status-Bits, echo-noncethem. Further security considerations on Map-Versioning can be found in <xref target="RFC9302" format="default" sectionFormat="of" derivedContent="RFC9302"/>.</t> <t indent="0" pn="section-16-7">Locator-Status-Bits, the Echo-Nonce mechanism, andmap-versioning MUST NOTMap-Versioning <bcp14>MUST NOT</bcp14> be used over the public Internet andSHOULD<bcp14>SHOULD</bcp14> only be used in trusted and closed deployments. Inadditionaddition, Locator-Status-BitsSHOULD<bcp14>SHOULD</bcp14> be coupled withmap-versioningMap-Versioning to prevent race conditions where Locator-Status-Bits are interpreted as referring to different RLOCs than intended.</t><t>LISP<t indent="0" pn="section-16-8">LISP implementations and deploymentswhichthat permit outer header fragments of IPv6LISP encapsulatedLISP-encapsulated packets as a means of dealing with MTU issues should also use implementation techniques in ETRs to prevent this from being a DoS attack vector. Limits on the number of fragments awaiting reassembly at an ETR, RTR, or PETR, and the rate of admitting suchfragmentsfragments, may be used.</t> </section> <sectiontitle="Networknumbered="true" toc="include" removeInRFC="false" pn="section-17"> <name slugifiedName="name-network-management-consider">Network ManagementConsiderations"> <t>ConsiderationsConsiderations</name> <t indent="0" pn="section-17-1">Considerations for network management tools exist so the LISP protocol suite can be operationally managed. These mechanisms can be found in <xref target="RFC7052"/>format="default" sectionFormat="of" derivedContent="RFC7052"/> and <xref target="RFC6835"/>.</t>format="default" sectionFormat="of" derivedContent="RFC6835"/>.</t> </section> <sectiontitle="Changesnumbered="true" toc="include" removeInRFC="false" pn="section-18"> <name slugifiedName="name-changes-since-rfc-6830">Changes since RFC6830"> <t>For6830</name> <t indent="0" pn="section-18-1">For implementation considerations, the following changes have been made to this document sinceRFC 6830<xref target="RFC6830" format="default" sectionFormat="of" derivedContent="RFC6830"/> was published:</t><t><list style="symbols"> <t>It<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-18-2"> <li pn="section-18-2.1">It is no longer mandated that a maximum number of 2 LISP headers be prepended to a packet. If there isaan application need for more than 2 LISP headers, an implementation can support more. However, it isRECOMMENDED<bcp14>RECOMMENDED</bcp14> that a maximum oftwo2 LISP headers can be prepended to apacket.</t> <t>Thepacket.</li> <li pn="section-18-2.2">The 3 reserved flag bits in the LISP header have been allocated for <xreftarget="RFC8061"/>.target="RFC8061" format="default" sectionFormat="of" derivedContent="RFC8061"/>. The low-order 2 bits of the 3-bit field (now named theKK bits)KK-bits) are used as a key identifier. The 1 remaining bit is still documented as reserved andunassigned.</t> <t>Data-Planeunassigned.</li> <li pn="section-18-2.3">Data plane gleaning for creatingmap-cacheMap-Cache entries has been made optional. Any ITR implementations that depend on or assume that the remote ETR is gleaning should not do so. This does not create any interoperabilityproblemsproblems, since thecontrol-plane map-cachecontrol plane Map-Cache population procedures are unilateral and are the typical method formap-cache population.</t> <t>The bulkpopulating the Map-Cache.</li> <li pn="section-18-2.4">Most of the changes to thisdocumentdocument, whichreducesreduce itslengthlength, are due to moving the LISPcontrol-planecontrol plane messaging and procedures to <xreftarget="I-D.ietf-lisp-rfc6833bis" />.</t> </list></t>target="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>.</li> </ul> </section> <sectiontitle="IANA Considerations" anchor="IANA"> <t>Thisanchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-19"> <name slugifiedName="name-iana-considerations">IANA Considerations</name> <t indent="0" pn="section-19-1">This section provides guidance to the Internet Assigned Numbers Authority (IANA) regarding registration of values related to thisData-Planedata plane LISP specification, in accordance withBCP 26<xref target="RFC8126"/>.</t>format="default" sectionFormat="of" derivedContent="RFC8126">BCP 26</xref>.</t> <sectiontitle="LISPnumbered="true" toc="include" removeInRFC="false" pn="section-19.1"> <name slugifiedName="name-lisp-udp-port-numbers">LISP UDP PortNumbers"> <t>The IANA registryNumbers</name> <t indent="0" pn="section-19.1-1">IANA has allocated UDP port number 4341 for the LISPData-Plane.data plane. IANA has updated the description for UDP port 4341 as follows:</t><figure> <artwork><![CDATA[ lisp-data 4341 udp LISP<table anchor="iana-port-number" align="center" pn="table-1"> <name/> <thead> <tr> <th align="left" colspan="1" rowspan="1">Service Name</th> <th align="left" colspan="1" rowspan="1">Port Number</th> <th align="left" colspan="1" rowspan="1">Transport Protocol</th> <th align="left" colspan="1" rowspan="1">Description</th> <th align="left" colspan="1" rowspan="1">Reference</th> </tr> </thead> <tbody> <tr> <td align="left" colspan="1" rowspan="1">lisp-data</td> <td align="left" colspan="1" rowspan="1">4341</td> <td align="left" colspan="1" rowspan="1">udp</td> <td align="left" colspan="1" rowspan="1">LISP DataPackets ]]></artwork> </figure>Packets</td> <td align="left" colspan="1" rowspan="1">RFC 9300</td> </tr> </tbody> </table> </section> </section> </middle> <back> <displayreference target="I-D.ietf-lisp-vpn" to="LISP-VPN"/> <references pn="section-20"> <name slugifiedName="name-references">References</name> <referencestitle='Normative References'> <?rfc include="reference.RFC.2827'?> <?rfc include="reference.RFC.2119'?> <?rfc include="reference.RFC.6040'?> <?rfc include="reference.RFC.2474'?> <?rfc include="reference.RFC.8200'?> <?rfc include="reference.RFC.0768'?> <?rfc include="reference.RFC.6438'?> <?rfc include="reference.RFC.0791'?> <?rfc include="reference.RFC.2983'?> <?rfc include="reference.RFC.6830'?> <?rfc include="reference.RFC.6831'?> <?rfc include="reference.RFC.8378'?> <?rfc include="reference.RFC.8174'?> <?rfc include="reference.RFC.8126'?> <?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-lisp-rfc6833bis.xml'?> <?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-lisp-6834bis.xml'?>pn="section-20.1"> <name slugifiedName="name-normative-references">Normative References</name> <reference anchor="RFC0768" target="https://www.rfc-editor.org/info/rfc768" quoteTitle="true" derivedAnchor="RFC0768"> <front> <title>User Datagram Protocol</title> <author fullname="J. Postel" initials="J." surname="Postel"/> <date month="August" year="1980"/> </front> <seriesInfo name="STD" value="6"/> <seriesInfo name="RFC" value="768"/> <seriesInfo name="DOI" value="10.17487/RFC0768"/> </reference> <reference anchor="RFC0791" target="https://www.rfc-editor.org/info/rfc791" quoteTitle="true" derivedAnchor="RFC0791"> <front> <title>Internet Protocol</title> <author fullname="J. Postel" initials="J." surname="Postel"/> <date month="September" year="1981"/> </front> <seriesInfo name="STD" value="5"/> <seriesInfo name="RFC" value="791"/> <seriesInfo name="DOI" value="10.17487/RFC0791"/> </reference> <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119"> <front> <title>Key words for use in RFCs to Indicate Requirement Levels</title> <author fullname="S. Bradner" initials="S." surname="Bradner"/> <date month="March" year="1997"/> <abstract> <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t> </abstract> </front> <seriesInfo name="BCP" value="14"/> <seriesInfo name="RFC" value="2119"/> <seriesInfo name="DOI" value="10.17487/RFC2119"/> </reference> <reference anchor="RFC2474" target="https://www.rfc-editor.org/info/rfc2474" quoteTitle="true" derivedAnchor="RFC2474"> <front> <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title> <author fullname="K. Nichols" initials="K." surname="Nichols"/> <author fullname="S. Blake" initials="S." surname="Blake"/> <author fullname="F. Baker" initials="F." surname="Baker"/> <author fullname="D. Black" initials="D." surname="Black"/> <date month="December" year="1998"/> <abstract> <t indent="0">This document defines the IP header field, called the DS (for differentiated services) field. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="2474"/> <seriesInfo name="DOI" value="10.17487/RFC2474"/> </reference> <reference anchor="RFC2983" target="https://www.rfc-editor.org/info/rfc2983" quoteTitle="true" derivedAnchor="RFC2983"> <front> <title>Differentiated Services and Tunnels</title> <author fullname="D. Black" initials="D." surname="Black"/> <date month="October" year="2000"/> <abstract> <t indent="0">This document considers the interaction of Differentiated Services (diffserv) with IP tunnels of various forms. This memo provides information for the Internet community.</t> </abstract> </front> <seriesInfo name="RFC" value="2983"/> <seriesInfo name="DOI" value="10.17487/RFC2983"/> </reference> <reference anchor="RFC6040" target="https://www.rfc-editor.org/info/rfc6040" quoteTitle="true" derivedAnchor="RFC6040"> <front> <title>Tunnelling of Explicit Congestion Notification</title> <author fullname="B. Briscoe" initials="B." surname="Briscoe"/> <date month="November" year="2010"/> <abstract> <t indent="0">This document redefines how the explicit congestion notification (ECN) field of the IP header should be constructed on entry to and exit from any IP-in-IP tunnel. On encapsulation, it updates RFC 3168 to bring all IP-in-IP tunnels (v4 or v6) into line with RFC 4301 IPsec ECN processing. On decapsulation, it updates both RFC 3168 and RFC 4301 to add new behaviours for previously unused combinations of inner and outer headers. The new rules ensure the ECN field is correctly propagated across a tunnel whether it is used to signal one or two severity levels of congestion; whereas before, only one severity level was supported. Tunnel endpoints can be updated in any order without affecting pre-existing uses of the ECN field, thus ensuring backward compatibility. Nonetheless, operators wanting to support two severity levels (e.g., for pre-congestion notification -- PCN) can require compliance with this new specification. A thorough analysis of the reasoning for these changes and the implications is included. In the unlikely event that the new rules do not meet a specific need, RFC 4774 gives guidance on designing alternate ECN semantics, and this document extends that to include tunnelling issues. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="6040"/> <seriesInfo name="DOI" value="10.17487/RFC6040"/> </reference> <reference anchor="RFC6438" target="https://www.rfc-editor.org/info/rfc6438" quoteTitle="true" derivedAnchor="RFC6438"> <front> <title>Using the IPv6 Flow Label for Equal Cost Multipath Routing and Link Aggregation in Tunnels</title> <author fullname="B. Carpenter" initials="B." surname="Carpenter"/> <author fullname="S. Amante" initials="S." surname="Amante"/> <date month="November" year="2011"/> <abstract> <t indent="0">The IPv6 flow label has certain restrictions on its use. This document describes how those restrictions apply when using the flow label for load balancing by equal cost multipath routing and for link aggregation, particularly for IP-in-IPv6 tunneled traffic. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="6438"/> <seriesInfo name="DOI" value="10.17487/RFC6438"/> </reference> <reference anchor="RFC6830" target="https://www.rfc-editor.org/info/rfc6830" quoteTitle="true" derivedAnchor="RFC6830"> <front> <title>The Locator/ID Separation Protocol (LISP)</title> <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> <author fullname="V. Fuller" initials="V." surname="Fuller"/> <author fullname="D. Meyer" initials="D." surname="Meyer"/> <author fullname="D. Lewis" initials="D." surname="Lewis"/> <date month="January" year="2013"/> <abstract> <t indent="0">This document describes a network-layer-based protocol that enables separation of IP addresses into two new numbering spaces: Endpoint Identifiers (EIDs) and Routing Locators (RLOCs). No changes are required to either host protocol stacks or to the "core" of the Internet infrastructure. The Locator/ID Separation Protocol (LISP) can be incrementally deployed, without a "flag day", and offers Traffic Engineering, multihoming, and mobility benefits to early adopters, even when there are relatively few LISP-capable sites.</t> <t indent="0">Design and development of LISP was largely motivated by the problem statement produced by the October 2006 IAB Routing and Addressing Workshop. This document defines an Experimental Protocol for the Internet community.</t> </abstract> </front> <seriesInfo name="RFC" value="6830"/> <seriesInfo name="DOI" value="10.17487/RFC6830"/> </reference> <reference anchor="RFC6831" target="https://www.rfc-editor.org/info/rfc6831" quoteTitle="true" derivedAnchor="RFC6831"> <front> <title>The Locator/ID Separation Protocol (LISP) for Multicast Environments</title> <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> <author fullname="D. Meyer" initials="D." surname="Meyer"/> <author fullname="J. Zwiebel" initials="J." surname="Zwiebel"/> <author fullname="S. Venaas" initials="S." surname="Venaas"/> <date month="January" year="2013"/> <abstract> <t indent="0">This document describes how inter-domain multicast routing will function in an environment where Locator/ID Separation is deployed using the Locator/ID Separation Protocol (LISP) architecture. This document defines an Experimental Protocol for the Internet community.</t> </abstract> </front> <seriesInfo name="RFC" value="6831"/> <seriesInfo name="DOI" value="10.17487/RFC6831"/> </reference> <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126"> <front> <title>Guidelines for Writing an IANA Considerations Section in RFCs</title> <author fullname="M. Cotton" initials="M." surname="Cotton"/> <author fullname="B. Leiba" initials="B." surname="Leiba"/> <author fullname="T. Narten" initials="T." surname="Narten"/> <date month="June" year="2017"/> <abstract> <t indent="0">Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t> <t indent="0">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t> <t indent="0">This is the third edition of this document; it obsoletes RFC 5226.</t> </abstract> </front> <seriesInfo name="BCP" value="26"/> <seriesInfo name="RFC" value="8126"/> <seriesInfo name="DOI" value="10.17487/RFC8126"/> </reference> <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174"> <front> <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> <author fullname="B. Leiba" initials="B." surname="Leiba"/> <date month="May" year="2017"/> <abstract> <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t> </abstract> </front> <seriesInfo name="BCP" value="14"/> <seriesInfo name="RFC" value="8174"/> <seriesInfo name="DOI" value="10.17487/RFC8174"/> </reference> <reference anchor="RFC8200" target="https://www.rfc-editor.org/info/rfc8200" quoteTitle="true" derivedAnchor="RFC8200"> <front> <title>Internet Protocol, Version 6 (IPv6) Specification</title> <author fullname="S. Deering" initials="S." surname="Deering"/> <author fullname="R. Hinden" initials="R." surname="Hinden"/> <date month="July" year="2017"/> <abstract> <t indent="0">This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t> </abstract> </front> <seriesInfo name="STD" value="86"/> <seriesInfo name="RFC" value="8200"/> <seriesInfo name="DOI" value="10.17487/RFC8200"/> </reference> <reference anchor="RFC8378" target="https://www.rfc-editor.org/info/rfc8378" quoteTitle="true" derivedAnchor="RFC8378"> <front> <title>Signal-Free Locator/ID Separation Protocol (LISP) Multicast</title> <author fullname="V. Moreno" initials="V." surname="Moreno"/> <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> <date month="May" year="2018"/> <abstract> <t indent="0">When multicast sources and receivers are active at Locator/ID Separation Protocol (LISP) sites, the core network is required to use native multicast so packets can be delivered from sources to group members. When multicast is not available to connect the multicast sites together, a signal-free mechanism can be used to allow traffic to flow between sites. The mechanism described in this document uses unicast replication and encapsulation over the core network for the data plane and uses the LISP mapping database system so encapsulators at the source LISP multicast site can find decapsulators at the receiver LISP multicast sites.</t> </abstract> </front> <seriesInfo name="RFC" value="8378"/> <seriesInfo name="DOI" value="10.17487/RFC8378"/> </reference> <reference anchor="RFC8704" target="https://www.rfc-editor.org/info/rfc8704" quoteTitle="true" derivedAnchor="RFC8704"> <front> <title>Enhanced Feasible-Path Unicast Reverse Path Forwarding</title> <author fullname="K. Sriram" initials="K." surname="Sriram"/> <author fullname="D. Montgomery" initials="D." surname="Montgomery"/> <author fullname="J. Haas" initials="J." surname="Haas"/> <date month="February" year="2020"/> <abstract> <t indent="0">This document identifies a need for and proposes improvement of the unicast Reverse Path Forwarding (uRPF) techniques (see RFC 3704) for detection and mitigation of source address spoofing (see BCP 38). Strict uRPF is inflexible about directionality, the loose uRPF is oblivious to directionality, and the current feasible-path uRPF attempts to strike a balance between the two (see RFC 3704). However, as shown in this document, the existing feasible-path uRPF still has shortcomings. This document describes enhanced feasible-path uRPF (EFP-uRPF) techniques that are more flexible (in a meaningful way) about directionality than the feasible-path uRPF (RFC 3704). The proposed EFP-uRPF methods aim to significantly reduce false positives regarding invalid detection in source address validation (SAV). Hence, they can potentially alleviate ISPs' concerns about the possibility of disrupting service for their customers and encourage greater deployment of uRPF techniques. This document updates RFC 3704.</t> </abstract> </front> <seriesInfo name="BCP" value="84"/> <seriesInfo name="RFC" value="8704"/> <seriesInfo name="DOI" value="10.17487/RFC8704"/> </reference> <reference anchor="RFC9301" target="https://www.rfc-editor.org/info/rfc9301" quoteTitle="true" derivedAnchor="RFC9301"> <front> <title>Locator/ID Separation Protocol (LISP) Control Plane</title> <author initials="D" surname="Farinacci" fullname="Dino Farinacci"> <organization showOnFrontPage="true"/> </author> <author initials="F" surname="Maino" fullname="Fabio Maino"> <organization showOnFrontPage="true"/> </author> <author initials="V" surname="Fuller" fullname="Vince Fuller"> <organization showOnFrontPage="true"/> </author> <author initials="A" surname="Cabellos" fullname="Albert Cabellos" role="editor"> <organization showOnFrontPage="true"/> </author> <date month="October" year="2022"/> </front> <seriesInfo name="RFC" value="9301"/> <seriesInfo name="DOI" value="10.17487/RFC9301"/> </reference> <reference anchor="RFC9302" target="https://www.rfc-editor.org/info/rfc9302" quoteTitle="true" derivedAnchor="RFC9302"> <front> <title>Locator/ID Separation Protocol (LISP) Map-Versioning</title> <author initials="L" surname="Iannone" fullname="Luigi Iannone"> <organization showOnFrontPage="true"/> </author> <author initials="D" surname="Saucez" fullname="Damien Saucez"> <organization showOnFrontPage="true"/> </author> <author initials="O" surname="Bonaventure" fullname="Olivier Bonaventure"> <organization showOnFrontPage="true"/> </author> <date month="October" year="2022"/> </front> <seriesInfo name="RFC" value="9302"/> <seriesInfo name="DOI" value="10.17487/RFC9302"/> </reference> </references> <referencestitle="Informative References"> <?rfc include="reference.RFC.1191'?> <?rfc include="reference.RFC.1981'?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tsvwg-datagram-plpmtud.xml'?> <?rfc include="reference.RFC.4821'?> <?rfc include="reference.RFC.3232'?> <?rfc include="reference.RFC.4086'?> <?rfc include="reference.RFC.4459'?> <?rfc include="reference.RFC.1918'?> <?rfc include="reference.RFC.8061'?> <?rfc include="reference.RFC.7215'?> <?rfc include="reference.RFC.7052'?> <?rfc include="reference.RFC.1034'?> <?rfc include="reference.RFC.3261'?> <?rfc include="reference.RFC.2784'?> <?rfc include="reference.RFC.3056'?> <?rfc include="reference.RFC.4984'?> <?rfc include="reference.RFC.6832'?> <?rfc include="reference.RFC.6835'?> <?rfc include="reference.RFC.8060'?> <?rfc include="reference.RFC.6935'?> <?rfc include="reference.RFC.6936'?> <?rfc include="reference.RFC.8085'?> <?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-lisp-introduction.xml'?> <?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-lisp-vpn.xml'?>pn="section-20.2"> <name slugifiedName="name-informative-references">Informative References</name> <reference anchor="AFN" target="http://www.iana.org/assignments/address-family-numbers" quoteTitle="true" derivedAnchor="AFN"> <front> <title>Address Family Numbers</title> <author> <organization showOnFrontPage="true">IANA</organization> </author> </front> </reference> <reference anchor="CHIAPPA"target="http://mercury.lcs.mit.edu/~jnc/tech/endpoints.txt">target="http://mercury.lcs.mit.edu/~jnc/tech/endpoints.txt" quoteTitle="true" derivedAnchor="CHIAPPA"> <front> <title>Endpoints and Endpointnames:Names: A Proposed</title>Enhancement to the Internet Architecture</title> <author initials="J."surname="Chiappa">surname="Chiappa" fullname="J. Noel Chiappa"> <organization/>showOnFrontPage="true"/> </author> <date year="1999"/> </front> </reference> <referenceanchor="AFN" target="http://www.iana.org/assignments/address-family-numbers">anchor="I-D.ietf-lisp-vpn" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-lisp-vpn-10" derivedAnchor="LISP-VPN"> <front><title>Address Family Numbers</title> <author> <organization>IANA</organization><title>LISP Virtual Private Networks (VPNs)</title> <author initials="V." surname="Moreno" fullname="Victor Moreno"> <organization showOnFrontPage="true">Google LLC</organization> </author> <author initials="D." surname="Farinacci" fullname="Dino Farinacci"> <organization showOnFrontPage="true">lispers.net</organization> </author> <date month="October" day="3" year="2022"/> <abstract> <t indent="0"> This document describes the use of the Locator/ID Separation Protocol (LISP) to create Virtual Private Networks (VPNs). LISP is used to provide segmentation in both the LISP data plane and control plane. These VPNs can be created over the top of the Internet or over private transport networks, and can be implemented by Enterprises or Service Providers. The goal of these VPNs is to leverage the characteristics of LISP - routing scalability, simply expressed Ingress site TE Policy, IP Address Family traversal, and mobility, in ways that provide value to network operators. </t> </abstract> </front> <seriesInfo name="Internet-Draft" value="draft-ietf-lisp-vpn-10"/> <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-lisp-vpn-10.txt"/> <refcontent>Work in Progress</refcontent> </reference> <reference anchor="RFC1034" target="https://www.rfc-editor.org/info/rfc1034" quoteTitle="true" derivedAnchor="RFC1034"> <front> <title>Domain names - concepts and facilities</title> <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/> <date month="November" year="1987"/> <abstract> <t indent="0">This RFC is the revised basic definition of The Domain Name System. It obsoletes RFC-882. This memo describes the domain style names and their used for host address look up and electronic mail forwarding. It discusses the clients and servers in the domain name system and the protocol used between them.</t> </abstract> </front> <seriesInfo name="STD" value="13"/> <seriesInfo name="RFC" value="1034"/> <seriesInfo name="DOI" value="10.17487/RFC1034"/> </reference> <reference anchor="RFC1191" target="https://www.rfc-editor.org/info/rfc1191" quoteTitle="true" derivedAnchor="RFC1191"> <front> <title>Path MTU discovery</title> <author fullname="J. Mogul" initials="J." surname="Mogul"/> <author fullname="S. Deering" initials="S." surname="Deering"/> <date month="November" year="1990"/> <abstract> <t indent="0">This memo describes a technique for dynamically discovering the maximum transmission unit (MTU) of an arbitrary internet path. It specifies a small change to the way routers generate one type of ICMP message. For a path that passes through a router that has not been so changed, this technique might not discover the correct Path MTU, but it will always choose a Path MTU as accurate as, and in many cases more accurate than, the Path MTU that would be chosen by current practice. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="1191"/> <seriesInfo name="DOI" value="10.17487/RFC1191"/> </reference> <reference anchor="RFC2453" target="https://www.rfc-editor.org/info/rfc2453" quoteTitle="true" derivedAnchor="RFC2453"> <front> <title>RIP Version 2</title> <author fullname="G. Malkin" initials="G." surname="Malkin"/> <date month="November" year="1998"/> <abstract> <t indent="0">This document specifies an extension of the Routing Information Protocol (RIP) to expand the amount of useful information carried in RIP messages and to add a measure of security. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="STD" value="56"/> <seriesInfo name="RFC" value="2453"/> <seriesInfo name="DOI" value="10.17487/RFC2453"/> </reference> <reference anchor="RFC2677" target="https://www.rfc-editor.org/info/rfc2677" quoteTitle="true" derivedAnchor="RFC2677"> <front> <title>Definitions of Managed Objects for the NBMA Next Hop Resolution Protocol (NHRP)</title> <author fullname="M. Greene" initials="M." surname="Greene"/> <author fullname="J. Cucchiara" initials="J." surname="Cucchiara"/> <author fullname="J. Luciani" initials="J." surname="Luciani"/> <date month="August"year="2016"/>year="1999"/> <abstract> <t indent="0">This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="2677"/> <seriesInfo name="DOI" value="10.17487/RFC2677"/> </reference> <reference anchor="RFC2784" target="https://www.rfc-editor.org/info/rfc2784" quoteTitle="true" derivedAnchor="RFC2784"> <front> <title>Generic Routing Encapsulation (GRE)</title> <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> <author fullname="T. Li" initials="T." surname="Li"/> <author fullname="S. Hanks" initials="S." surname="Hanks"/> <author fullname="D. Meyer" initials="D." surname="Meyer"/> <author fullname="P. Traina" initials="P." surname="Traina"/> <date month="March" year="2000"/> <abstract> <t indent="0">This document specifies a protocol for encapsulation of an arbitrary network layer protocol over another arbitrary network layer protocol. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="2784"/> <seriesInfo name="DOI" value="10.17487/RFC2784"/> </reference> <reference anchor="RFC3056" target="https://www.rfc-editor.org/info/rfc3056" quoteTitle="true" derivedAnchor="RFC3056"> <front> <title>Connection of IPv6 Domains via IPv4 Clouds</title> <author fullname="B. Carpenter" initials="B." surname="Carpenter"/> <author fullname="K. Moore" initials="K." surname="Moore"/> <date month="February" year="2001"/> <abstract> <t indent="0">This memo specifies an optional interim mechanism for IPv6 sites to communicate with each other over the IPv4 network without explicit tunnel setup, and for them to communicate with native IPv6 domains via relay routers. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="3056"/> <seriesInfo name="DOI" value="10.17487/RFC3056"/> </reference> <reference anchor="RFC3261" target="https://www.rfc-editor.org/info/rfc3261" quoteTitle="true" derivedAnchor="RFC3261"> <front> <title>SIP: Session Initiation Protocol</title> <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/> <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/> <author fullname="G. Camarillo" initials="G." surname="Camarillo"/> <author fullname="A. Johnston" initials="A." surname="Johnston"/> <author fullname="J. Peterson" initials="J." surname="Peterson"/> <author fullname="R. Sparks" initials="R." surname="Sparks"/> <author fullname="M. Handley" initials="M." surname="Handley"/> <author fullname="E. Schooler" initials="E." surname="Schooler"/> <date month="June" year="2002"/> <abstract> <t indent="0">This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="3261"/> <seriesInfo name="DOI" value="10.17487/RFC3261"/> </reference> <reference anchor="RFC4086" target="https://www.rfc-editor.org/info/rfc4086" quoteTitle="true" derivedAnchor="RFC4086"> <front> <title>Randomness Requirements for Security</title> <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/> <author fullname="J. Schiller" initials="J." surname="Schiller"/> <author fullname="S. Crocker" initials="S." surname="Crocker"/> <date month="June" year="2005"/> <abstract> <t indent="0">Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t> <t indent="0">Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t> </abstract> </front> <seriesInfo name="BCP" value="106"/> <seriesInfo name="RFC" value="4086"/> <seriesInfo name="DOI" value="10.17487/RFC4086"/> </reference> <reference anchor="RFC4459" target="https://www.rfc-editor.org/info/rfc4459" quoteTitle="true" derivedAnchor="RFC4459"> <front> <title>MTU and Fragmentation Issues with In-the-Network Tunneling</title> <author fullname="P. Savola" initials="P." surname="Savola"/> <date month="April" year="2006"/> <abstract> <t indent="0">Tunneling techniques such as IP-in-IP when deployed in the middle of the network, typically between routers, have certain issues regarding how large packets can be handled: whether such packets would be fragmented and reassembled (and how), whether Path MTU Discovery would be used, or how this scenario could be operationally avoided. This memo justifies why this is a common, non-trivial problem, and goes on to describe the different solutions and their characteristics at some length. This memo provides information for the Internet community.</t> </abstract> </front> <seriesInfo name="RFC" value="4459"/> <seriesInfo name="DOI" value="10.17487/RFC4459"/> </reference> <reference anchor="RFC4760" target="https://www.rfc-editor.org/info/rfc4760" quoteTitle="true" derivedAnchor="RFC4760"> <front> <title>Multiprotocol Extensions for BGP-4</title> <author fullname="T. Bates" initials="T." surname="Bates"/> <author fullname="R. Chandra" initials="R." surname="Chandra"/> <author fullname="D. Katz" initials="D." surname="Katz"/> <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/> <date month="January" year="2007"/> <abstract> <t indent="0">This document defines extensions to BGP-4 to enable it to carry routing information for multiple Network Layer protocols (e.g., IPv6, IPX, L3VPN, etc.). The extensions are backward compatible - a router that supports the extensions can interoperate with a router that doesn't support the extensions. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="4760"/> <seriesInfo name="DOI" value="10.17487/RFC4760"/> </reference> <reference anchor="RFC4821" target="https://www.rfc-editor.org/info/rfc4821" quoteTitle="true" derivedAnchor="RFC4821"> <front> <title>Packetization Layer Path MTU Discovery</title> <author fullname="M. Mathis" initials="M." surname="Mathis"/> <author fullname="J. Heffner" initials="J." surname="Heffner"/> <date month="March" year="2007"/> <abstract> <t indent="0">This document describes a robust method for Path MTU Discovery (PMTUD) that relies on TCP or some other Packetization Layer to probe an Internet path with progressively larger packets. This method is described as an extension to RFC 1191 and RFC 1981, which specify ICMP-based Path MTU Discovery for IP versions 4 and 6, respectively. [STANDARDS-TRACK]</t> </abstract> </front> <seriesInfo name="RFC" value="4821"/> <seriesInfo name="DOI" value="10.17487/RFC4821"/> </reference> <reference anchor="RFC4984" target="https://www.rfc-editor.org/info/rfc4984" quoteTitle="true" derivedAnchor="RFC4984"> <front> <title>Report from the IAB Workshop on Routing and Addressing</title> <author fullname="D. Meyer" initials="D." role="editor" surname="Meyer"/> <author fullname="L. Zhang" initials="L." role="editor" surname="Zhang"/> <author fullname="K. Fall" initials="K." role="editor" surname="Fall"/> <date month="September" year="2007"/> <abstract> <t indent="0">This document reports the outcome of the Routing and Addressing Workshop that was held by the Internet Architecture Board (IAB) on October 18-19, 2006, in Amsterdam, Netherlands. The primary goal of the workshop was to develop a shared understanding of the problems that the large backbone operators are facing regarding the scalability of today's Internet routing system. The key workshop findings include an analysis of the major factors that are driving routing table growth, constraints in router technology, and the limitations of today's Internet addressing architecture. It is hoped that these findings will serve as input to the IETF community and help identify next steps towards effective solutions.</t> <t indent="0">Note that this document is a report on the proceedings of the workshop. The views and positions documented in this report are those of the workshop participants and not of the IAB. Furthermore, note that work on issues related to this workshop report is continuing, and this document does not intend to reflect the increased understanding of issues nor to discuss the range of potential solutions that may be the outcome of this ongoing work. This memo provides information for the Internet community.</t> </abstract> </front> <seriesInfo name="RFC" value="4984"/> <seriesInfo name="DOI" value="10.17487/RFC4984"/> </reference> <reference anchor="RFC6832" target="https://www.rfc-editor.org/info/rfc6832" quoteTitle="true" derivedAnchor="RFC6832"> <front> <title>Interworking between Locator/ID Separation Protocol (LISP) and Non-LISP Sites</title> <author fullname="D. Lewis" initials="D." surname="Lewis"/> <author fullname="D. Meyer" initials="D." surname="Meyer"/> <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> <author fullname="V. Fuller" initials="V." surname="Fuller"/> <date month="January" year="2013"/> <abstract> <t indent="0">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. This document defines an Experimental Protocol for the Internet community.</t> </abstract> </front> <seriesInfo name="RFC" value="6832"/> <seriesInfo name="DOI" value="10.17487/RFC6832"/> </reference> <reference anchor="RFC6835" target="https://www.rfc-editor.org/info/rfc6835" quoteTitle="true" derivedAnchor="RFC6835"> <front> <title>The Locator/ID Separation Protocol Internet Groper (LIG)</title> <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> <author fullname="D. Meyer" initials="D." surname="Meyer"/> <date month="January" year="2013"/> <abstract> <t indent="0">A simple tool called the Locator/ID Separation Protocol (LISP) Internet Groper or 'lig' can be used to query the LISP mapping database. This document describes how it works. This document is not an Internet Standards Track specification; it is published for informational purposes.</t> </abstract> </front> <seriesInfo name="RFC" value="6835"/> <seriesInfo name="DOI" value="10.17487/RFC6835"/> </reference> <reference anchor="RFC6935" target="https://www.rfc-editor.org/info/rfc6935" quoteTitle="true" derivedAnchor="RFC6935"> <front> <title>IPv6 and UDP Checksums for Tunneled Packets</title> <author fullname="M. Eubanks" initials="M." surname="Eubanks"/> <author fullname="P. Chimento" initials="P." surname="Chimento"/> <author fullname="M. Westerlund" initials="M." surname="Westerlund"/> <date month="April" year="2013"/> <abstract> <t indent="0">This document updates the IPv6 specification (RFC 2460) to improve performance when a tunnel protocol uses UDP with IPv6 to tunnel packets. The performance improvement is obtained by relaxing the IPv6 UDP checksum requirement for tunnel protocols whose header information is protected on the "inner" packet being carried. Relaxing this requirement removes the overhead associated with the computation of UDP checksums on IPv6 packets that carry the tunnel protocol packets. This specification describes how the IPv6 UDP checksum requirement can be relaxed when the encapsulated packet itself contains a checksum. It also describes the limitations and risks of this approach and discusses the restrictions on the use of this method.</t> </abstract> </front> <seriesInfo name="RFC" value="6935"/> <seriesInfo name="DOI" value="10.17487/RFC6935"/> </reference> <reference anchor="RFC6936" target="https://www.rfc-editor.org/info/rfc6936" quoteTitle="true" derivedAnchor="RFC6936"> <front> <title>Applicability Statement for the Use of IPv6 UDP Datagrams with Zero Checksums</title> <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/> <author fullname="M. Westerlund" initials="M." surname="Westerlund"/> <date month="April" year="2013"/> <abstract> <t indent="0">This document provides an applicability statement for the use of UDP transport checksums with IPv6. It defines recommendations and requirements for the use of IPv6 UDP datagrams with a zero UDP checksum. It describes the issues and design principles that need to be considered when UDP is used with IPv6 to support tunnel encapsulations, and it examines the role of the IPv6 UDP transport checksum. The document also identifies issues and constraints for deployment on network paths that include middleboxes. An appendix presents a summary of the trade-offs that were considered in evaluating the safety of the update to RFC 2460 that changes the use of the UDP checksum with IPv6.</t> </abstract> </front> <seriesInfo name="RFC" value="6936"/> <seriesInfo name="DOI" value="10.17487/RFC6936"/> </reference> <reference anchor="RFC7052" target="https://www.rfc-editor.org/info/rfc7052" quoteTitle="true" derivedAnchor="RFC7052"> <front> <title>Locator/ID Separation Protocol (LISP) MIB</title> <author fullname="G. Schudel" initials="G." surname="Schudel"/> <author fullname="A. Jain" initials="A." surname="Jain"/> <author fullname="V. Moreno" initials="V." surname="Moreno"/> <date month="October" year="2013"/> <abstract> <t indent="0">This document defines the MIB module that contains managed objects to support the monitoring devices of the Locator/ID Separation Protocol (LISP). These objects provide information useful for monitoring LISP devices, including determining basic LISP configuration information, LISP functional status, and operational counters and other statistics.</t> </abstract> </front> <seriesInfo name="RFC" value="7052"/> <seriesInfo name="DOI" value="10.17487/RFC7052"/> </reference> <reference anchor="RFC7215" target="https://www.rfc-editor.org/info/rfc7215" quoteTitle="true" derivedAnchor="RFC7215"> <front> <title>Locator/Identifier Separation Protocol (LISP) Network Element Deployment Considerations</title> <author fullname="L. Jakab" initials="L." surname="Jakab"/> <author fullname="A. Cabellos-Aparicio" initials="A." surname="Cabellos-Aparicio"/> <author fullname="F. Coras" initials="F." surname="Coras"/> <author fullname="J. Domingo-Pascual" initials="J." surname="Domingo-Pascual"/> <author fullname="D. Lewis" initials="D." surname="Lewis"/> <date month="April" year="2014"/> <abstract> <t indent="0">This document is a snapshot of different Locator/Identifier Separation Protocol (LISP) deployment scenarios. It discusses the placement of new network elements introduced by the protocol, representing the thinking of the LISP working group as of Summer 2013. LISP deployment scenarios may have evolved since then. This memo represents one stable point in that evolution of understanding.</t> </abstract> </front> <seriesInfo name="RFC" value="7215"/> <seriesInfo name="DOI" value="10.17487/RFC7215"/> </reference> <reference anchor="RFC8060" target="https://www.rfc-editor.org/info/rfc8060" quoteTitle="true" derivedAnchor="RFC8060"> <front> <title>LISP Canonical Address Format (LCAF)</title> <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> <author fullname="D. Meyer" initials="D." surname="Meyer"/> <author fullname="J. Snijders" initials="J." surname="Snijders"/> <date month="February" year="2017"/> <abstract> <t indent="0">This document defines a canonical address format encoding used in Locator/ID Separation Protocol (LISP) control messages and in the encoding of lookup keys for the LISP Mapping Database System.</t> </abstract> </front> <seriesInfo name="RFC" value="8060"/> <seriesInfo name="DOI" value="10.17487/RFC8060"/> </reference> <reference anchor="RFC8061" target="https://www.rfc-editor.org/info/rfc8061" quoteTitle="true" derivedAnchor="RFC8061"> <front> <title>Locator/ID Separation Protocol (LISP) Data-Plane Confidentiality</title> <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> <author fullname="B. Weis" initials="B." surname="Weis"/> <date month="February" year="2017"/> <abstract> <t indent="0">This document describes a mechanism for encrypting traffic encapsulated using the Locator/ID Separation Protocol (LISP). The design describes how key exchange is achieved using existing LISP control-plane mechanisms as well as how to secure the LISP data plane from third-party surveillance attacks.</t> </abstract> </front> <seriesInfo name="RFC" value="8061"/> <seriesInfo name="DOI" value="10.17487/RFC8061"/> </reference> <reference anchor="RFC8085" target="https://www.rfc-editor.org/info/rfc8085" quoteTitle="true" derivedAnchor="RFC8085"> <front> <title>UDP Usage Guidelines</title> <author fullname="L. Eggert" initials="L." surname="Eggert"/> <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/> <author fullname="G. Shepherd" initials="G." surname="Shepherd"/> <date month="March" year="2017"/> <abstract> <t indent="0">The User Datagram Protocol (UDP) provides a minimal message-passing transport that has no inherent congestion control mechanisms. This document provides guidelines on the use of UDP for the designers of applications, tunnels, and other protocols that use UDP. Congestion control guidelines are a primary focus, but the document also provides guidance on other topics, including message sizes, reliability, checksums, middlebox traversal, the use of Explicit Congestion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.</t> <t indent="0">Because congestion control is critical to the stable operation of the Internet, applications and other protocols that choose to use UDP as an Internet transport must employ mechanisms to prevent congestion collapse and to establish some degree of fairness with concurrent traffic. They may also need to implement additional mechanisms, depending on how they use UDP.</t> <t indent="0">Some guidance is also applicable to the design of other protocols (e.g., protocols layered directly on IP or via IP-based tunnels), especially when these protocols do not themselves provide congestion control.</t> <t indent="0">This document obsoletes RFC 5405 and adds guidelines for multicast UDP usage.</t> </abstract> </front> <seriesInfo name="BCP" value="145"/> <seriesInfo name="RFC" value="8085"/> <seriesInfo name="DOI" value="10.17487/RFC8085"/> </reference> <reference anchor="RFC8201" target="https://www.rfc-editor.org/info/rfc8201" quoteTitle="true" derivedAnchor="RFC8201"> <front> <title>Path MTU Discovery for IP version 6</title> <author fullname="J. McCann" initials="J." surname="McCann"/> <author fullname="S. Deering" initials="S." surname="Deering"/> <author fullname="J. Mogul" initials="J." surname="Mogul"/> <author fullname="R. Hinden" initials="R." role="editor" surname="Hinden"/> <date month="July" year="2017"/> <abstract> <t indent="0">This document describes Path MTU Discovery (PMTUD) for IP version 6. It is largely derived from RFC 1191, which describes Path MTU Discovery for IP version 4. It obsoletes RFC 1981.</t> </abstract> </front> <seriesInfo name="STD" value="87"/> <seriesInfo name="RFC" value="8201"/> <seriesInfo name="DOI" value="10.17487/RFC8201"/> </reference> <reference anchor="RFC8899" target="https://www.rfc-editor.org/info/rfc8899" quoteTitle="true" derivedAnchor="RFC8899"> <front> <title>Packetization Layer Path MTU Discovery for Datagram Transports</title> <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/> <author fullname="T. Jones" initials="T." surname="Jones"/> <author fullname="M. Tüxen" initials="M." surname="Tüxen"/> <author fullname="I. Rüngeler" initials="I." surname="Rüngeler"/> <author fullname="T. Völker" initials="T." surname="Völker"/> <date month="September" year="2020"/> <abstract> <t indent="0">This document specifies Datagram Packetization Layer Path MTU Discovery (DPLPMTUD). This is a robust method for Path MTU Discovery (PMTUD) for datagram Packetization Layers (PLs). It allows a PL, or a datagram application that uses a PL, to discover whether a network path can support the current size of datagram. This can be used to detect and reduce the message size when a sender encounters a packet black hole. It can also probe a network path to discover whether the maximum packet size can be increased. This provides functionality for datagram transports that is equivalent to the PLPMTUD specification for TCP, specified in RFC 4821, which it updates. It also updates the UDP Usage Guidelines to refer to this method for use with UDP datagrams and updates SCTP.</t> <t indent="0">The document provides implementation notes for incorporating Datagram PMTUD into IETF datagram transports or applications that use datagram transports.</t> <t indent="0">This specification updates RFC 4960, RFC 4821, RFC 6951, RFC 8085, and RFC 8261.</t> </abstract> </front> <seriesInfo name="RFC" value="8899"/> <seriesInfo name="DOI" value="10.17487/RFC8899"/> </reference> <reference anchor="RFC9299" target="https://www.rfc-editor.org/info/rfc9299" quoteTitle="true" derivedAnchor="RFC9299"> <front> <title>An Architectural Introduction to the Locator/ID Separation Protocol (LISP)</title> <author initials="A" surname="Cabellos" fullname="Albert Cabellos"> <organization showOnFrontPage="true"/> </author> <author initials="D" surname="Saucez" fullname="Damien Saucez" role="editor"> <organization showOnFrontPage="true"/> </author> <date month="October" year="2022"/> </front> <seriesInfo name="RFC" value="9299"/> <seriesInfo name="DOI" value="10.17487/RFC9299"/> </reference> </references> </references> <sectiontitle="Acknowledgments"> <t>Annumbered="false" toc="include" removeInRFC="false" pn="section-appendix.a"> <name slugifiedName="name-acknowledgments">Acknowledgments</name> <t indent="0" pn="section-appendix.a-1">An initial thank you goes toDave Oran<contact fullname="Dave Oran"/> for planting the seeds for the initial ideas for LISP. His consultation continues to provide value to the LISP authors.</t><t>A<t indent="0" pn="section-appendix.a-2">A special and appreciative thank you goes toNoel Chiappa<contact fullname="Noel Chiappa"/> for providing architectural impetus over the past decades on separation of location and identity, as well as detailed reviews of the LISP architecture and documents, coupled with enthusiasm for making LISP a practical and incremental transition for the Internet.</t><t>The<t indent="0" pn="section-appendix.a-3">The original authors would like to gratefully acknowledge many people who have contributed discussions and ideas to the making of this proposal. They includeScott Brim, Andrew Partan, John Zwiebel, Jason Schiller, Lixia Zhang, Dorian Kim, Peter Schoenmaker, Vijay Gill, Geoff Huston, David Conrad, Mark Handley, Ron Bonica, Ted Seely, Mark Townsley, Chris Morrow, Brian Weis, Dave McGrew, Peter Lothberg, Dave Thaler, Eliot Lear, Shane Amante, Ved Kafle, Olivier Bonaventure, Luigi Iannone, Robin Whittle, Brian Carpenter, Joel Halpern, Terry Manderson, Roger Jorgensen, Ran Atkinson, Stig Venaas, Iljitsch<contact fullname="Scott Brim"/>, <contact fullname="Andrew Partan"/>, <contact fullname="John Zwiebel"/>, <contact fullname="Jason Schiller"/>, <contact fullname="Lixia Zhang"/>, <contact fullname="Dorian Kim"/>, <contact fullname="Peter Schoenmaker"/>, <contact fullname="Vijay Gill"/>, <contact fullname="Geoff Huston"/>, <contact fullname="David Conrad"/>, <contact fullname="Mark Handley"/>, <contact fullname="Ron Bonica"/>, <contact fullname="Ted Seely"/>, <contact fullname="Mark Townsley"/>, <contact fullname="Chris Morrow"/>, <contact fullname="Brian Weis"/>, <contact fullname="Dave McGrew"/>, <contact fullname="Peter Lothberg"/>, <contact fullname="Dave Thaler"/>, <contact fullname="Eliot Lear"/>, <contact fullname="Shane Amante"/>, <contact fullname="Ved Kafle"/>, <contact fullname="Olivier Bonaventure"/>, <contact fullname="Luigi Iannone"/>, <contact fullname="Robin Whittle"/>, <contact fullname="Brian Carpenter"/>, <contact fullname="Joel Halpern"/>, <contact fullname="Terry Manderson"/>, <contact fullname="Roger Jorgensen"/>, <contact fullname="Ran Atkinson"/>, <contact fullname="Stig Venaas"/>, <contact fullname="Iljitsch vanBeijnum, Roland Bless, Dana Blair, Bill Lynch, Marc Woolward, Damien Saucez, Damian Lezama, AttillaBeijnum"/>, <contact fullname="Roland Bless"/>, <contact fullname="Dana Blair"/>, <contact fullname="Bill Lynch"/>, <contact fullname="Marc Woolward"/>, <contact fullname="Damien Saucez"/>, <contact fullname="Damian Lezama"/>, <contact fullname="Attilla DeGroot, Parantap Lahiri, David Black, Roque Gagliano, Isidor Kouvelas, Jesper Skriver, Fred Templin, Margaret Wasserman, Sam Hartman, Michael Hofling, Pedro Marques, Jari Arkko, Gregg Schudel, Srinivas Subramanian, Amit Jain, Xu Xiaohu, Dhirendra Trivedi, Yakov Rekhter, John Scudder, John Drake, Dimitri Papadimitriou, Ross Callon, Selina Heimlich, Job Snijders, Vina Ermagan, Fabio Maino, Victor Moreno, Chris White, Clarence Filsfils, Alia Atlas, Florin Coras and Alberto Rodriguez.</t> <t>ThisGroot"/>, <contact fullname="Parantap Lahiri"/>, <contact fullname="David Black"/>, <contact fullname="Roque Gagliano"/>, <contact fullname="Isidor Kouvelas"/>, <contact fullname="Jesper Skriver"/>, <contact fullname="Fred Templin"/>, <contact fullname="Margaret Wasserman"/>, <contact fullname="Sam Hartman"/>, <contact fullname="Michael Hofling"/>, <contact fullname="Pedro Marques"/>, <contact fullname="Jari Arkko"/>, <contact fullname="Gregg Schudel"/>, <contact fullname="Srinivas Subramanian"/>, <contact fullname="Amit Jain"/>, <contact fullname="Xu Xiaohu"/>, <contact fullname="Dhirendra Trivedi"/>, <contact fullname="Yakov Rekhter"/>, <contact fullname="John Scudder"/>, <contact fullname="John Drake"/>, <contact fullname="Dimitri Papadimitriou"/>, <contact fullname="Ross Callon"/>, <contact fullname="Selina Heimlich"/>, <contact fullname="Job Snijders"/>, <contact fullname="Vina Ermagan"/>, <contact fullname="Fabio Maino"/>, <contact fullname="Victor Moreno"/>, <contact fullname="Chris White"/>, <contact fullname="Clarence Filsfils"/>, <contact fullname="Alia Atlas"/>, <contact fullname="Florin Coras"/>, and <contact fullname="Alberto Rodriguez"/>.</t> <t indent="0" pn="section-appendix.a-4">This work originated in the Routing Research Group (RRG) of the IRTF. An individual submission was converted into the IETF LISPworking groupWorking Group document that became this RFC.</t><t>The<t indent="0" pn="section-appendix.a-5">The LISPworking groupWorking Group would like to give a special thanks toJari Arkko,<contact fullname="Jari Arkko"/>, the Internet Area AD at the time that the set of LISP documentswerewas being prepared for IESGlast call, andLast Call, for his meticulous reviews and detailed commentaries on the 7working group last callWorking Group Last Call documents progressing towardstandards-trackStandards Track RFCs.</t><t>The<t indent="0" pn="section-appendix.a-6">The current authors would like to give a sincere thank you to the people whohelphelped put LISP onstandards trackthe Standards Track in the IETF. They includeJoel Halpern, Luigi Iannone, Deborah Brungard, Fabio Maino, Scott Bradner, Kyle Rose, Takeshi Takahashi, Sarah Banks, Pete Resnick, Colin Perkins, Mirja Kuhlewind, Francis Dupont, Benjamin Kaduk, Eric Rescorla, Alvaro Retana, Alexey Melnikov, Alissa Cooper, Suresh Krishnan, Alberto Rodriguez-Natal, Vina Ermagen, Mohamed Boucadair, Brian Trammell, Sabrina Tanamal, and John Drake.<contact fullname="Joel Halpern"/>, <contact fullname="Luigi Iannone"/>, <contact fullname="Deborah Brungard"/>, <contact fullname="Fabio Maino"/>, <contact fullname="Scott Bradner"/>, <contact fullname="Kyle Rose"/>, <contact fullname="Takeshi Takahashi"/>, <contact fullname="Sarah Banks"/>, <contact fullname="Pete Resnick"/>, <contact fullname="Colin Perkins"/>, <contact fullname="Mirja Kühlewind"/>, <contact fullname="Francis Dupont"/>, <contact fullname="Benjamin Kaduk"/>, <contact fullname="Eric Rescorla"/>, <contact fullname="Alvaro Retana"/>, <contact fullname="Alexey Melnikov"/>, <contact fullname="Alissa Cooper"/>, <contact fullname="Suresh Krishnan"/>, <contact fullname="Alberto Rodriguez-Natal"/>, <contact fullname="Vina Ermagan"/>, <contact fullname="Mohamed Boucadair"/>, <contact fullname="Brian Trammell"/>, <contact fullname="Sabrina Tanamal"/>, and <contact fullname="John Drake"/>. The contributions they offered greatly added to the security, scale, and robustness of the LISP architecture and protocols.</t> </section> <sectiontitle="Document Change Log"> <t>[RFC Editor: Please delete this section on publication as RFC.]</t> <section title="Changes to draft-ietf-lisp-rfc6830bis-27"> <t><list style="symbols"> <t>Posted November 2019.</t> <t>Fixed how LSB behave in the presence of new/removed locators.</t> <t>Added ETR synchronization requirements when using Map-Versioning.</t> <t>Fixed a large set of minor comments and edits.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-27"> <t><list style="symbols"> <t>Posted April 2019 post telechat.</t> <t>Made editorial corrections per Warren's suggestions.</t> <t>Put in suggested text from Luigi that Mirja agreed with.</t> <t>LSB, Echo-Nonce and Map-Versioning SHOULD be only used in closed environments.</t> <t>Removed paragraph stating that Instance-ID can be 32-bit in the control-plane.</t> <t>6831/8378 are now normative.</t> <t>Rewritten Security Considerations according to the changes.</t> <t>Stated that LSB SHOULD be coupled with Map-Versioning.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-26"> <t><list style="symbols"> <t>Posted late October 2018.</t> <t>Changed description about "reserved" bits to state "reserved and unassigned".</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-25"> <t><list style="symbols"> <t>Posted mid October 2018.</t> <t>Added more to the Security Considerations section with discussion about echo-nonce attacks.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-24"> <t><list style="symbols"> <t>Posted mid October 2018.</t> <t>Final editorial changes for Eric and Ben.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-23"> <t><list style="symbols"> <t>Posted early October 2018.</t> <t>Added an applicability statement in section 1 to address security concerns from Telechat.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-22"> <t><list style="symbols"> <t>Posted early October 2018.</t> <t>Changes to reflect comments post Telechat.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-21"> <t><list style="symbols"> <t>Posted late-September 2018.</t> <t>Changes to reflect comments from Sep 27th Telechat.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-20"> <t><list style="symbols"> <t>Posted late-September 2018.</t> <t>Fix old reference to RFC3168, changed to RFC6040.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-19"> <t><list style="symbols"> <t>Posted late-September 2018.</t> <t>More editorial changes.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-18"> <t><list style="symbols"> <t>Posted mid-September 2018.</t> <t>Changes to reflect comments from Secdir review (Mirja).</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-17"> <t><list style="symbols"> <t>Posted September 2018.</t> <t>Indicate in the "Changes since RFC 6830" section why the document has been shortened in length.</t> <t>Make reference to RFC 8085 about UDP congestion control.</t> <t>More editorial changes from multiple IESG reviews.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-16"> <t><list style="symbols"> <t>Posted late August 2018.</t> <t>Distinguish the message type names between ICMP for IPv4 and ICMP for IPv6 for handling MTU issues.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-15"> <t><list style="symbols"> <t>Posted August 2018.</t> <t>Final editorial changes before RFC submission for Proposed Standard.</t> <t>Added section "Changes since RFC 6830" so implementers are informed of any changes since the last RFC publication.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-14"> <t><list style="symbols"> <t>Posted July 2018 IETF week.</t> <t>Put obsolete of RFC 6830 in Intro section in addition to abstract.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-13"> <t><list style="symbols"> <t>Posted March IETF Week 2018.</t> <t>Clarified that a new nonce is required per RLOC.</t> <t>Removed 'Clock Sweep' section. This text must be placed in a new OAM document.</t> <t>Some references changed from normative to informative</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-12"> <t><list style="symbols"> <t>Posted July 2018.</t> <t>Fixed Luigi editorial comments to ready draft for RFC status.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-11"> <t><list style="symbols"> <t>Posted March 2018.</t> <t>Removed sections 16, 17 and 18 (Mobility, Deployment and Traceroute considerations). This text must be placed in a new OAM document.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-10"> <t><list style="symbols"> <t>Posted March 2018.</t> <t>Updated section 'Router Locator Selection' stating that the Data-Plane MUST follow what's stored in the Map-Cache (priorities and weights).</t> <t>Section 'Routing Locator Reachability': Removed bullet point 2 (ICMP Network/Host Unreachable),3 (hints from BGP),4 (ICMP Port Unreachable),5 (receive a Map-Reply as a response) and RLOC probing </t> <t>Removed 'Solicit-Map Request'.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-09"> <t><list style="symbols"> <t>Posted January 2018.</t> <t>Add more details in section 5.3 about DSCP processing during encapsulation and decapsulation.</t> <t>Added clarity to definitions in the Definition of Terms section from various commenters.</t> <t>Removed PA and PI definitions from Definitionanchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b"> <name slugifiedName="name-authors-addresses">Authors' Addresses</name> <author initials="D" surname="Farinacci" fullname="Dino Farinacci"> <organization showOnFrontPage="true">lispers.net</organization> <address> <postal> <city>San Jose</city> <region>CA</region> <country>United States ofTerms section.</t> <t>More editorial changes.</t> <t>Removed 4342 from IANA section and move to RFC6833 IANA section.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-08"> <t><list style="symbols"> <t>Posted January 2018.</t> <t>Remove references to research work for any protocol mechanisms.</t> <t>Document scanned to make sure it is RFC 2119 compliant.</t> <t>Made changes to reflect comments from document WG shepherd Luigi Iannone.</t> <t>Ran IDNITs on the document.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-07"> <t><list style="symbols"> <t>Posted November 2017.</t> <t>Rephrase how Instance-IDs are used and don't refer to <xref target="RFC1918"/> addresses.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-06"> <t><list style="symbols"> <t>Posted October 2017.</t> <t>Put RTR definition before it is used.</t> <t>Rename references that are now working group drafts.</t> <t>Remove "EIDs MUST NOT be used as used by a host to refer to other hosts. Note that EID blocks MAY LISP RLOCs".</t> <t>Indicate what address-family can appear in data packets.</t> <t>ETRs may, rather than will, be the ones to send Map-Replies.</t> <t>Recommend, rather than mandate, max encapsulation headers to 2.</t> <t>Reference VPN draft when introducing Instance-ID.</t> <t>Indicate that SMRs can be sent when ITR/ETR are in the same node.</t> <t>Clarify when private addresses can be used.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-05"> <t><list style="symbols"> <t>Posted August 2017.</t> <t>Make it clear that a Re-encapsulating Tunnel Router is an RTR.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-04"> <t><list style="symbols"> <t>Posted July 2017.</t> <t>Changed referenceAmerica</country> </postal> <email>farinacci@gmail.com</email> </address> </author> <author initials="V" surname="Fuller" fullname="Vince Fuller"> <organization showOnFrontPage="true">vaf.net Internet Consulting</organization> <address> <email>vince.fuller@gmail.com</email> </address> </author> <author initials="D" surname="Meyer" fullname="Dave Meyer"> <organization showOnFrontPage="true">1-4-5.net</organization> <address> <email>dmm@1-4-5.net</email> </address> </author> <author initials="D" surname="Lewis" fullname="Darrel Lewis"> <organization showOnFrontPage="true">Cisco Systems</organization> <address> <postal> <city>San Jose</city> <region>CA</region> <country>United States ofIPv6 RFC2460 to RFC8200.</t> <t>Indicate that the applicability statement for UDP zero checksums over IPv6 adheres to RFC6936.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-03"> <t><list style="symbols"> <t>Posted May 2017.</t> <t>Move the control-plane related codepoints in the IANA Considerations section to RFC6833bis.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-02"> <t><list style="symbols"> <t>Posted April 2017.</t> <t>Reflect some editorial comments from Damien Sausez.</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-01"> <t><list style="symbols"> <t>Posted March 2017.</t> <t>Include references to new RFCs published.</t> <t>Change references from RFC6833 to RFC6833bis.</t> <t>Clarified LCAF text in the IANA section.</t> <t>Remove references to "experimental".</t> </list></t> </section> <section title="Changes to draft-ietf-lisp-rfc6830bis-00"> <t><list style="symbols"> <t>Posted December 2016.</t> <t>Created working group document from draft-farinacci-lisp -rfc6830-00 individual submission. No other changes made.</t> </list></t> </section>America</country> </postal> <email>darlewis@cisco.com</email> </address> </author> <author initials="A" surname="Cabellos" fullname="Albert Cabellos" role="editor"> <organization showOnFrontPage="true">Universitat Politecnica de Catalunya</organization> <address> <postal> <street>c/ Jordi Girona s/n</street> <city>Barcelona</city> <code>08034</code> <country>Spain</country> </postal> <email>acabello@ac.upc.edu</email> </address> </author> </section> </back> </rfc>