rfc9300xml2.original.xml | rfc9300.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse | ||||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | nsus="true" docName="draft-ietf-lisp-rfc6830bis-38" indexInclude="true" ipr="tru | |||
st200902" number="9300" obsoletes="6830" prepTime="2022-10-19T13:38:47" scripts= | ||||
<rfc category="std" ipr="trust200902" docName="draft-ietf-lisp-rfc6830bis-36" | "Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" | |||
obsoletes="6830"> | tocInclude="true" xml:lang="en"> | |||
<link href="https://datatracker.ietf.org/doc/draft-ietf-lisp-rfc6830bis-38" re | ||||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | l="prev"/> | |||
<link href="https://dx.doi.org/10.17487/rfc9300" rel="alternate"/> | ||||
<?rfc toc="yes" ?> | <link href="urn:issn:2070-1721" rel="alternate"/> | |||
<?rfc symrefs="yes" ?> | <front> | |||
<?rfc sortrefs="yes"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<?rfc rfcedstyle="yes"?> | ||||
<front> | ||||
<title abbrev="LISP">The Locator/ID Separation Protocol (LISP)</title> | <title abbrev="LISP">The Locator/ID Separation Protocol (LISP)</title> | |||
<author initials='D' surname="Farinacci" fullname='Dino Farinacci'> | <seriesInfo name="RFC" value="9300" stream="IETF"/> | |||
<organization>lispers.net</organization> | <author initials="D" surname="Farinacci" fullname="Dino Farinacci"> | |||
<address> | <organization showOnFrontPage="true">lispers.net</organization> | |||
<email>farinacci@gmail.com</email></address> | <address> | |||
<postal> | ||||
<city>San Jose</city> | ||||
<region>CA</region> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<email>farinacci@gmail.com</email> | ||||
</address> | ||||
</author> | </author> | |||
<author initials="V" surname="Fuller" fullname="Vince Fuller"> | ||||
<author initials='V' surname="Fuller" fullname='Vince Fuller'> | <organization showOnFrontPage="true">vaf.net Internet Consulting</organiza | |||
<organization>vaf.net Internet Consulting</organization> | tion> | |||
<address> | <address> | |||
<email>vince.fuller@gmail.com</email></address> | <email>vince.fuller@gmail.com</email> | |||
</address> | ||||
</author> | </author> | |||
<author initials="D" surname="Meyer" fullname="Dave Meyer"> | ||||
<author initials='D' surname="Meyer" fullname='Dave Meyer'> | <organization showOnFrontPage="true">1-4-5.net</organization> | |||
<organization>1-4-5.net</organization> | <address> | |||
<address> | <email>dmm@1-4-5.net</email> | |||
<email>dmm@1-4-5.net</email></address> | </address> | |||
</author> | </author> | |||
<author initials="D" surname="Lewis" fullname="Darrel Lewis"> | ||||
<author initials='D' surname="Lewis" fullname='Darrel Lewis'> | <organization showOnFrontPage="true">Cisco Systems</organization> | |||
<organization>Cisco Systems</organization> | <address> | |||
<address><postal> | <postal> | |||
<street>170 Tasman Drive</street> | <city>San Jose</city> | |||
<city>San Jose</city> <region>CA</region> | <region>CA</region> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<email>darlewis@cisco.com</email></address> | <email>darlewis@cisco.com</email> | |||
</address> | ||||
</author> | </author> | |||
<author initials="A" surname="Cabellos" fullname="Albert Cabellos" role="edi | ||||
<author initials='A' surname="Cabellos (Ed.)" fullname='Albert Cabellos'> | tor"> | |||
<organization>UPC/BarcelonaTech</organization> | <organization showOnFrontPage="true">Universitat Politecnica de Catalunya< | |||
<address><postal> | /organization> | |||
<street>Campus Nord, C. Jordi Girona 1-3</street> | <address> | |||
<city>Barcelona</city> <region>Catalunya</region> | <postal> | |||
<country>Spain</country> | <street>c/ Jordi Girona s/n</street> | |||
</postal> | <city>Barcelona</city> | |||
<email>acabello@ac.upc.edu</email></address> | <code>08034</code> | |||
</author> | <country>Spain</country> | |||
</postal> | ||||
<date /> | <email>acabello@ac.upc.edu</email> | |||
</address> | ||||
<abstract> | </author> | |||
<t>This document describes the Data-Plane protocol for the | <date month="10" year="2022"/> | |||
<keyword>LISP data plane</keyword> | ||||
<abstract pn="section-abstract"> | ||||
<t indent="0" pn="section-abstract-1">This document describes the data pla | ||||
ne protocol for the | ||||
Locator/ID Separation Protocol (LISP). LISP defines two | Locator/ID Separation Protocol (LISP). LISP defines two | |||
namespaces, End-point Identifiers (EIDs) that identify end-hosts | namespaces: Endpoint Identifiers (EIDs), which identify end hosts; | |||
and Routing Locators (RLOCs) that identify network attachment | and Routing Locators (RLOCs), which identify network attachment | |||
points. With this, LISP effectively separates control from data, | points. With this, LISP effectively separates control from data | |||
and allows routers to create overlay networks. LISP-capable | and allows routers to create overlay networks. LISP-capable | |||
routers exchange encapsulated packets according to EID-to-RLOC | routers exchange encapsulated packets according to EID-to-RLOC | |||
mappings stored in a local Map-Cache.</t> | mappings stored in a local Map-Cache.</t> | |||
<t indent="0" pn="section-abstract-2">LISP requires no change to either ho | ||||
<t>LISP requires no change to either host protocol stacks or | st protocol stacks or | |||
to underlay routers and offers Traffic Engineering, | underlay routers and offers Traffic Engineering (TE), | |||
multihoming and mobility, among other features.</t> | multihoming, and mobility, among other features.</t> | |||
<t indent="0" pn="section-abstract-3">This document obsoletes RFC 6830.</t | ||||
<t>This document obsoletes RFC 6830.</t> | > | |||
</abstract> | </abstract> | |||
</front> | <boilerplate> | |||
<section anchor="status-of-memo" numbered="false" removeInRFC="false" toc= | ||||
<middle> | "exclude" pn="section-boilerplate.1"> | |||
<name slugifiedName="name-status-of-this-memo">Status of This Memo</name | ||||
<section title="Introduction"> | > | |||
<t>This document describes the Locator/Identifier Separation | <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="non | ||||
e"/>. | ||||
</t> | ||||
</section> | ||||
<section anchor="copyright" numbered="false" removeInRFC="false" toc="excl | ||||
ude" 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" p | ||||
n="section-toc.1"> | ||||
<name slugifiedName="name-table-of-contents">Table of Contents</name> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to | ||||
c.1-1"> | ||||
<li pn="section-toc.1-1.1"> | ||||
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref der | ||||
ivedContent="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="sectio | ||||
n-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-sc | ||||
ope-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 der | ||||
ivedContent="2" format="counter" sectionFormat="of" target="section-2"/>. <xref | ||||
derivedContent="" format="title" sectionFormat="of" target="name-requirements-n | ||||
otation">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" form | ||||
at="counter" sectionFormat="of" target="section-3"/>. <xref derivedContent="" f | ||||
ormat="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" form | ||||
at="counter" sectionFormat="of" target="section-4"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-basic-overview">Basic Overview</xr | ||||
ef></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-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 derived | ||||
Content="" format="title" sectionFormat="of" target="name-deployment-on-the-publ | ||||
ic-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 derived | ||||
Content="" 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" form | ||||
at="counter" sectionFormat="of" target="section-5"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-lisp-encapsulation-details">LISP E | ||||
ncapsulation Details</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-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 derived | ||||
Content="" format="title" sectionFormat="of" target="name-lisp-ipv4-in-ipv4-head | ||||
er-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 derived | ||||
Content="" format="title" sectionFormat="of" target="name-lisp-ipv6-in-ipv6-head | ||||
er-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 derived | ||||
Content="" format="title" sectionFormat="of" target="name-tunnel-header-field-de | ||||
scrip">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" form | ||||
at="counter" sectionFormat="of" target="section-6"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-lisp-eid-to-rloc-map-cache">LISP E | ||||
ID-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" form | ||||
at="counter" sectionFormat="of" target="section-7"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-dealing-with-large-encapsul">Deali | ||||
ng with Large Encapsulated Packets</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-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 derived | ||||
Content="" format="title" sectionFormat="of" target="name-a-stateless-solution-t | ||||
o-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 derived | ||||
Content="" 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" form | ||||
at="counter" sectionFormat="of" target="section-8"/>. <xref derivedContent="" f | ||||
ormat="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" form | ||||
at="counter" sectionFormat="of" target="section-9"/>. <xref derivedContent="" f | ||||
ormat="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" fo | ||||
rmat="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-routing-locator-reachabilit">Rou | ||||
ting Locator Reachability</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-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 deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-echo-nonce-algorith | ||||
m">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" fo | ||||
rmat="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" fo | ||||
rmat="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" fo | ||||
rmat="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-changing-the-contents-of-ei">Cha | ||||
nging the Contents of EID-to-RLOC Mappings</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-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 deri | ||||
vedContent="" 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 deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-database-map-versio | ||||
ning">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" fo | ||||
rmat="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-multicast-considerations">Multic | ||||
ast Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.15"> | ||||
<t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="15" fo | ||||
rmat="counter" sectionFormat="of" target="section-15"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-router-performance-consider">Rou | ||||
ter 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" fo | ||||
rmat="counter" sectionFormat="of" target="section-16"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-security-considerations">Securit | ||||
y Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.17"> | ||||
<t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="17" fo | ||||
rmat="counter" sectionFormat="of" target="section-17"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-network-management-consider">Net | ||||
work 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" fo | ||||
rmat="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" fo | ||||
rmat="counter" sectionFormat="of" target="section-19"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-iana-considerations">IANA Consid | ||||
erations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-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 deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-lisp-udp-port-numbe | ||||
rs">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" fo | ||||
rmat="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="sectio | ||||
n-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 deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-normative-reference | ||||
s">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 deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-informative-referen | ||||
ces">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="" form | ||||
at="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent=" | ||||
" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgment | ||||
s</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.22"> | ||||
<t indent="0" pn="section-toc.1-1.22.1"><xref derivedContent="" form | ||||
at="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent=" | ||||
" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Add | ||||
resses</xref></t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
</toc> | ||||
</front> | ||||
<middle> | ||||
<section numbered="true" toc="include" removeInRFC="false" pn="section-1"> | ||||
<name slugifiedName="name-introduction">Introduction</name> | ||||
<t indent="0" pn="section-1-1">This document describes the Locator/ID Sepa | ||||
ration | ||||
Protocol (LISP). LISP is an encapsulation protocol built around the | Protocol (LISP). LISP is an encapsulation protocol built around the | |||
fundamental idea of separating the topological location of a network | fundamental idea of separating the topological location of a network | |||
attachment point from the node's identity <xref target="CHIAPPA" | attachment point from the node's identity <xref target="CHIAPPA" format="defau | |||
/>. As a result LISP creates two namespaces: Endpoint Identifiers | lt" sectionFormat="of" derivedContent="CHIAPPA"/>. As a result, LISP creates two | |||
(EIDs), that are used to identify end-hosts (e.g., nodes or Virtual | namespaces: Endpoint Identifiers | |||
Machines) and routable Routing Locators (RLOCs), used to identify | (EIDs), which are used to identify end hosts (e.g., nodes or Virtual | |||
Machines); and routable Routing Locators (RLOCs), which are used to identify | ||||
network attachment points. LISP then defines functions for mapping | network attachment points. LISP then defines functions for mapping | |||
between the two namespaces and for encapsulating traffic | between the two namespaces and for encapsulating traffic | |||
originated by devices using non-routable EIDs for transport across a | originated by devices using non-routable EIDs for transport across a | |||
network infrastructure that routes and forwards using RLOCs. LISP | network infrastructure that routes and forwards using RLOCs. LISP | |||
encapsulation uses a dynamic form of tunneling where no static provisioning | encapsulation uses a dynamic form of tunneling where no static provisioning | |||
is required or necessary.</t> | is required or necessary.</t> | |||
<t indent="0" pn="section-1-2">LISP is an overlay protocol that separates | ||||
<t>LISP is an overlay protocol that separates control from | control from data; this | |||
Data-Plane, this document specifies the Data-Plane as well as how LISP-capable | document specifies the data plane as well as how LISP-capable | |||
routers (Tunnel Routers) exchange packets by encapsulating them to | routers (Tunnel Routers) exchange packets by encapsulating them to | |||
the appropriate location. Tunnel routers are equipped with a cache, | the appropriate location. Tunnel Routers are equipped with a cache, | |||
called Map-Cache, that contains EID-to-RLOC mappings. The Map-Cache | called the Map-Cache, that contains EID-to-RLOC mappings. The Map-Cache | |||
is populated using the LISP Control-Plane protocol <xref | is populated using the LISP control plane protocol <xref target="RFC9301" form | |||
target="I-D.ietf-lisp-rfc6833bis"/>.</t> | at="default" sectionFormat="of" derivedContent="RFC9301"/>.</t> | |||
<t indent="0" pn="section-1-3">LISP does not require changes to either the | ||||
<t>LISP does not require changes to either the host protocol stack or to | host protocol stack or | |||
underlay routers. By separating the EID from the RLOC space, LISP | underlay routers. By separating the EID from the RLOC space, LISP | |||
offers native Traffic Engineering, multihoming and mobility, among | offers native Traffic Engineering (TE), multihoming, and mobility, among | |||
other features.</t> | other features.</t> | |||
<t indent="0" pn="section-1-4">Creation of LISP was initially motivated by | ||||
<t>Creation of LISP was initially motivated by discussions during | discussions during | |||
the IAB-sponsored Routing and Addressing Workshop held in Amsterdam | the IAB-sponsored Routing and Addressing Workshop held in Amsterdam | |||
in October 2006 (see <xref target="RFC4984" />).</t> | in October 2006 (see <xref target="RFC4984" format="default" sectionFormat="of | |||
" derivedContent="RFC4984"/>).</t> | ||||
<t>This document specifies the LISP Data-Plane encapsulation and | <t indent="0" pn="section-1-5">This document specifies the LISP data plane | |||
other LISP forwarding node functionality while <xref | encapsulation and | |||
target="I-D.ietf-lisp-rfc6833bis"/> specifies the LISP control | other LISP forwarding node functionality while <xref target="RFC9301" format=" | |||
plane. LISP deployment guidelines can be found in <xref | default" sectionFormat="of" derivedContent="RFC9301"/> specifies the LISP contro | |||
target="RFC7215"/> and <xref target="RFC6835"/> describes | l | |||
considerations for network operational management. Finally, <xref | plane. LISP deployment guidelines can be found in <xref target="RFC7215" forma | |||
target="I-D.ietf-lisp-introduction"/> describes the LISP architecture.</t> | t="default" sectionFormat="of" derivedContent="RFC7215"/>, and <xref target="RFC | |||
6835" format="default" sectionFormat="of" derivedContent="RFC6835"/> describes | ||||
<t>This document obsoletes RFC 6830.</t> | considerations for network operational management. Finally, <xref target="RFC | |||
9299" format="default" sectionFormat="of" derivedContent="RFC9299"/> describes t | ||||
<section title="Scope of Applicability" anchor="soa"> | he LISP architecture.</t> | |||
<t>LISP was originally developed to address the Internet-wide | <t indent="0" pn="section-1-6">This document obsoletes RFC 6830.</t> | |||
route scaling problem <xref target="RFC4984"/>. While there are a | <section anchor="soa" numbered="true" toc="include" removeInRFC="false" pn | |||
number of approaches of interest for that problem, as LISP as been | ="section-1.1"> | |||
developed and refined, a large number of other LISP uses have been | <name slugifiedName="name-scope-of-applicability">Scope of Applicability | |||
found and are being used. As such, the design and development of | </name> | |||
LISP has changed so as to focus on these use cases. The common | <t indent="0" pn="section-1.1-1">LISP was originally developed to addres | |||
s the Internet-wide | ||||
route scaling problem <xref target="RFC4984" format="default" sectionFormat= | ||||
"of" derivedContent="RFC4984"/>. | ||||
While there are a number of approaches of | ||||
interest for that problem, as LISP has been developed and refined, a | ||||
large number of other ways to use LISP have been found and are being | ||||
implemented. As such, the design and development of | ||||
LISP have changed so as to focus on these use cases. The common | ||||
property of these uses is a large set of cooperating entities | property of these uses is a large set of cooperating entities | |||
seeking to communicate over the public Internet or other large | seeking to communicate over the public Internet or other large | |||
underlay IP infrastructures, while keeping the addressing and | underlay IP infrastructures while keeping the addressing and | |||
topology of the cooperating entities separate from the underlay | topology of the cooperating entities separate from the underlay | |||
and Internet topology, routing, and addressing.</t> | and Internet topology, routing, and addressing.</t> | |||
</section> | ||||
</section> | </section> | |||
</section> | <section numbered="true" toc="include" removeInRFC="false" pn="section-2"> | |||
<name slugifiedName="name-requirements-notation">Requirements Notation</na | ||||
<section title="Requirements Notation"> | me> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | <t indent="0" pn="section-2-1"> | |||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOUL | |||
described in BCP 14 <xref target="RFC2119"/> <xref | D</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>N | |||
target="RFC8174"/> when, and only when, they appear in all capitals, | OT RECOMMENDED</bcp14>", | |||
as shown here.</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
</section> | be interpreted as | |||
described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="o | ||||
<section title="Definition of Terms" anchor="DEFINITIONS"> | f" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFor | |||
<t><list style="hanging"> | mat="of" derivedContent="RFC8174"/> | |||
when, and only when, they appear in all capitals, as shown here. | ||||
<t hangText="Address Family Identifier (AFI): ">AFI is a term used | </t> | |||
to describe an address encoding in a packet. An address family | </section> | |||
that pertains to addresses found in Data-Plane headers. See <xref | <section anchor="DEFINITIONS" numbered="true" toc="include" removeInRFC="fal | |||
target="AFN"/> and <xref target="RFC3232"/> for details. An AFI | se" 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): </dt> | ||||
<dd pn="section-3-1.2">"AFI" is a term used | ||||
to describe an address encoding in a packet. An address family is an addr | ||||
ess | ||||
format found in data plane packet headers, | ||||
for example, an IPv4 address or an IPv6 address. See <xref target="AFN" f | ||||
ormat="default" sectionFormat="of" derivedContent="AFN"/>, <xref target="RFC2453 | ||||
" format="default" sectionFormat="of" derivedContent="RFC2453"/>, <xref target=" | ||||
RFC2677" format="default" sectionFormat="of" derivedContent="RFC2677"/>, and <xr | ||||
ef target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760" | ||||
/> for details. An AFI | ||||
value of 0 used in this specification indicates an unspecified | value of 0 used in this specification indicates an unspecified | |||
encoded address where the length of the address is 0 octets | encoded address where the length of the address is 0 octets | |||
following the 16-bit AFI value of 0.</t> | following the 16-bit AFI value of 0.</dd> | |||
<dt pn="section-3-1.3">Anycast Address:</dt> | ||||
<t hangText="Anycast Address:">Anycast Address refers to the same | <dd pn="section-3-1.4">"Anycast address" refers to the same | |||
IPv4 or IPv6 address configured | IPv4 or IPv6 address configured | |||
and used on multiple systems at the same time. An EID or RLOC can | and used on multiple systems at the same time. An EID or RLOC can | |||
be an anycast address in each of their own address spaces.</t> | be an anycast address in each of their own address spaces.</dd> | |||
<dt pn="section-3-1.5">Client-side:</dt> | ||||
<t hangText="Client-side:">Client-side is a term used in this | <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 | document to indicate a connection initiation attempt by an end-system | |||
represented by an EID.</t> | represented by an EID.</dd> | |||
<dt pn="section-3-1.7">Egress Tunnel Router (ETR): </dt> | ||||
<t hangText="Egress Tunnel Router (ETR): ">An ETR is a router that | <dd pn="section-3-1.8">An ETR is a router that | |||
accepts an IP packet where the destination address in the "outer" | accepts an IP packet where the destination address in the "outer" | |||
IP header is one of its own RLOCs. The router strips 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 | header and forwards the packet based on the next IP header | |||
found. In general, an ETR receives LISP-encapsulated IP packets | found. In general, an ETR receives LISP-encapsulated IP packets | |||
from the Internet on one side and sends decapsulated IP packets to | from the Internet on one side and sends decapsulated IP packets to | |||
site end-systems on the other side. ETR functionality does not | 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 | have to be limited to a router device. A server host can be the | |||
endpoint of a LISP tunnel as well.</t> | endpoint of a LISP tunnel as well.</dd> | |||
<dt pn="section-3-1.9">EID-to-RLOC Database: </dt> | ||||
<t hangText="EID-to-RLOC Database: ">The EID-to-RLOC Database is a | <dd pn="section-3-1.10">The EID-to-RLOC Database is a | |||
distributed database that contains all known EID-Prefix-to-RLOC | distributed database that contains all known EID-Prefix-to-RLOC | |||
mappings. Each potential ETR typically contains a small piece of | mappings. Each potential ETR typically contains a small piece of | |||
the database: the EID-to-RLOC mappings for the EID-Prefixes | the database: the EID-to-RLOC mappings for the EID-Prefixes | |||
"behind" the router. These map to one of the router's own IP | "behind" the router. These map to one of the router's own IP | |||
addresses that are routable on the underlay. | addresses that are routable on the underlay. | |||
Note that there MAY be transient conditions when the EID-Prefix | Note that there <bcp14>MAY</bcp14> be transient conditions when the EID-Pref ix | |||
for the LISP site and Locator-Set for each EID-Prefix may not be the | 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 | same on all ETRs. This has no negative implications, since a | |||
partial set of Locators can be used.</t> | partial set of Locators can be used.</dd> | |||
<dt pn="section-3-1.11">EID-to-RLOC Map-Cache: </dt> | ||||
<t hangText="EID-to-RLOC Map-Cache: ">The EID-to-RLOC Map-Cache is | <dd pn="section-3-1.12">The EID-to-RLOC Map-Cache is a | |||
generally short-lived, on-demand table in an ITR that stores, tracks, and | generally short-lived, on-demand table in an Ingress Tunnel Router (ITR) tha | |||
t stores, tracks, and | ||||
is responsible for timing out and otherwise validating EID-to-RLOC | is responsible for timing out and otherwise validating EID-to-RLOC | |||
mappings. This cache is distinct from the full "database" of | mappings. This cache is distinct from the full "database" of | |||
EID-to-RLOC mappings; it is dynamic, local to the ITR(s), and | EID-to-RLOC mappings; it is dynamic, local to the ITR(s), and | |||
relatively small, while the database is distributed, relatively | relatively small, while the database is distributed, relatively | |||
static, and much more widely scoped to LISP nodes.</t> | static, and much more widely scoped to LISP nodes.</dd> | |||
<dt pn="section-3-1.13">EID-Prefix: </dt> | ||||
<t hangText="EID-Prefix: ">An EID-Prefix is a power-of-two block | <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 | of EIDs that are allocated to a site by an address allocation | |||
authority. EID-Prefixes are associated with a set of RLOC | authority. EID-Prefixes are associated with a set of RLOC | |||
addresses. EID-Prefix allocations can be broken up into smaller | addresses. EID-Prefix allocations can be broken up into smaller | |||
blocks when an RLOC set is to be associated with the larger | blocks when an RLOC-Set is to be associated with the larger | |||
EID-Prefix block.</t> | EID-Prefix block.</dd> | |||
<dt pn="section-3-1.15">End-System: </dt> | ||||
<t hangText="End-System: ">An end-system is an IPv4 or IPv6 device | <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 | that originates packets with a single IPv4 or IPv6 header. The | |||
end-system supplies an EID value for the destination address field | end-system supplies an EID value for the destination address field | |||
of the IP header when communicating outside of its routing domain. | of the IP header when communicating outside of its routing domain. | |||
An end-system can be a host computer, a switch or router device, | An end-system can be a host computer, a switch or router device, | |||
or any network appliance.</t> | or any network appliance.</dd> | |||
<dt pn="section-3-1.17">Endpoint ID (EID): </dt> | ||||
<t hangText="Endpoint ID (EID): ">An EID is a 32-bit (for IPv4) or | <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 | 128-bit (for IPv6) value that identifies a host. EIDs are generally | |||
only found in the source and destination | only found in the source and destination | |||
address fields of the first (most inner) LISP header of a | address fields of the first (innermost) LISP header of a | |||
packet. The host obtains a destination EID the same way it obtains | packet. The host obtains a destination | |||
a destination address today, for example, through a Domain Name | EID through a Domain Name System (DNS) <xref target="RFC1034" format="defau | |||
System (DNS) <xref target="RFC1034" /> lookup or Session | lt" sectionFormat="of" derivedContent="RFC1034"/> | |||
Initiation Protocol (SIP) <xref target="RFC3261" /> exchange. The | lookup or Session Initiation Protocol (SIP) <xref target="RFC3261" format="d | |||
efault" 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 | source EID is obtained via existing mechanisms used to set a | |||
host's "local" IP address. An EID used on the public Internet MUST | host's "local" IP address. An EID used on the public Internet <bcp14>MUST</b cp14> | |||
have the same properties as any other IP address used in that | have the same properties as any other IP address used in that | |||
manner; this means, among other things, that it MUST be | manner; this means, among other things, that it <bcp14>MUST</bcp14> be | |||
unique. An EID is allocated to a host from an EID-Prefix block | 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 | 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 blocks MAY | used by a host to refer to other hosts. Note that EID blocks <bcp14>MAY</bcp 14> | |||
be assigned in a hierarchical manner, independent of the network | be assigned in a hierarchical manner, independent of the network | |||
topology, to facilitate scaling of the mapping database. In | topology, to facilitate scaling of the mapping database. In | |||
addition, an EID block assigned to a site MAY have site-local | addition, an EID block assigned to a site <bcp14>MAY</bcp14> have site-local | |||
structure (subnetting) for routing within the site; this structure | structure (subnetting) for routing within the site; this structure | |||
is not visible to the underlay routing system. In theory, the bit | is not visible to the underlay routing system. In theory, the bit | |||
string that represents an EID for one device can represent an RLOC | string that represents an EID for one device can represent an RLOC | |||
for a different device. When used in discussions with other | for a different device. When discussing other Locator/ID separation proposal | |||
Locator/ID separation proposals, a LISP EID will be called an | s, any | |||
"LEID". Throughout this document, any references to "EID" refer to | references to an EID in this document will refer to a LISP EID. | |||
an LEID.</t> | </dd> | |||
<dt pn="section-3-1.19">Ingress Tunnel Router (ITR): </dt> | ||||
<t hangText="Ingress Tunnel Router (ITR): ">An ITR is a router | <dd pn="section-3-1.20">An ITR is a router | |||
that resides in a LISP site. Packets sent by sources inside of the | that resides in a LISP site. Packets sent by sources inside of the | |||
LISP site to destinations outside of the site are candidates for | LISP site to destinations outside of the site are candidates for | |||
encapsulation by the ITR. The ITR treats the IP destination | encapsulation by the ITR. The ITR treats the IP destination | |||
address as an EID and performs an EID-to-RLOC mapping lookup. The | 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 | router then prepends an "outer" IP header with one of its routable | |||
RLOCs (in the RLOC space) in the source address field and the | RLOCs (in the RLOC space) in the source address field and the | |||
result of the mapping lookup in the destination address field. | result of the mapping lookup in the destination address field. | |||
Note that this destination RLOC may be an intermediate, proxy | Note that this destination RLOC may be an intermediate, proxy | |||
device that has better knowledge of the EID-to-RLOC mapping closer | device that has better knowledge of the EID-to-RLOC mapping closer | |||
to the destination EID. In general, an ITR receives IP packets | to the destination EID. In general, an ITR receives IP packets | |||
from site end-systems on one side and sends LISP-encapsulated IP | from site end-systems on one side and sends LISP-encapsulated IP | |||
packets toward the Internet on the other side.</t> | packets toward the Internet on the other side.</dd> | |||
<dt pn="section-3-1.21">LISP Header: </dt> | ||||
<t hangText="LISP Header: ">LISP header is a term used in this | <dd pn="section-3-1.22">"LISP header" is a term used in this document to | |||
document to refer to the outer IPv4 or IPv6 header, a UDP header, | refer | |||
and a LISP-specific 8-octet header that follow the UDP header and | to the outer IPv4 or IPv6 header, a UDP header, and a LISP- | |||
that an ITR prepends or an ETR strips.</t> | specific 8-octet header, all of which follow the UDP header. An | |||
ITR prepends LISP headers on packets, and an ETR strips them.</dd> | ||||
<t hangText="LISP Router: ">A LISP router is a router that | <dt pn="section-3-1.23">LISP Router: </dt> | |||
performs the functions of any or all of the following: ITR, ETR, RTR, | <dd pn="section-3-1.24">A LISP router is a router that | |||
Proxy-ITR (PITR), or Proxy-ETR (PETR).</t> | performs the functions of any or all of the following: ITRs, ETRs, Re-encaps | |||
ulating Tunneling Routers (RTRs), | ||||
<t hangText="LISP Site:">LISP site is a set of routers in an edge | 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 | network that are under a single technical administration. LISP | |||
routers that reside in the edge network are the demarcation points | routers that reside in the edge network are the demarcation points | |||
to separate the edge network from the core network.</t> | to separate the edge network from the core network.</dd> | |||
<dt pn="section-3-1.27">Locator-Status-Bits (LSBs):</dt> | ||||
<t hangText="Locator-Status-Bits (LSBs):"> Locator-Status-Bits are | <dd pn="section-3-1.28"> Locator-Status-Bits are | |||
present in the LISP header. They are used by ITRs to inform ETRs | 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 | 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 | 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 | reachability status. The LSBs can be verified by use of one of the | |||
Locator reachability algorithms described in <xref | Locator reachability algorithms described in <xref target="loc-reach" format | |||
target="loc-reach" />. An ETR MUST rate-limit the action it takes | ="default" sectionFormat="of" derivedContent="Section 10"/>. An ETR <bcp14>MUST< | |||
when it detects changes in the Locator-Status-Bits.</t> | /bcp14> rate limit the action it takes | |||
when it detects changes in the Locator-Status-Bits.</dd> | ||||
<t hangText="Proxy-ETR (PETR): ">A PETR is defined and described | <dt pn="section-3-1.29">Proxy-ETR (PETR): </dt> | |||
in <xref target="RFC6832" />. A PETR acts like an ETR but does so | <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 | on behalf of LISP sites that send packets to destinations at | |||
non-LISP sites.</t> | non-LISP sites.</dd> | |||
<dt pn="section-3-1.31">Proxy-ITR (PITR): </dt> | ||||
<t hangText="Proxy-ITR (PITR): ">A PITR is defined and described | <dd pn="section-3-1.32">A PITR is defined and described | |||
in <xref target="RFC6832" />. A PITR acts like an ITR but does so | 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 | on behalf of non-LISP sites that send packets to destinations at | |||
LISP sites.</t> | LISP sites.</dd> | |||
<dt pn="section-3-1.33">Recursive Tunneling: </dt> | ||||
<t hangText="Recursive Tunneling: ">Recursive Tunneling occurs | <dd pn="section-3-1.34">Recursive Tunneling occurs | |||
when a packet has more than one LISP IP header. Additional layers | when a packet has more than one LISP IP header. Additional layers | |||
of tunneling MAY be employed to implement Traffic Engineering or | of tunneling <bcp14>MAY</bcp14> be employed to implement Traffic Engineering | |||
other re-routing as needed. When this is done, an additional | or | |||
other rerouting as needed. When this is done, an additional | ||||
"outer" LISP header is added, and the original RLOCs are preserved | "outer" LISP header is added, and the original RLOCs are preserved | |||
in the "inner" header.</t> | in the "inner" header.</dd> | |||
<dt pn="section-3-1.35">Re-encapsulating Tunneling Router (RTR): </dt> | ||||
<t hangText="Re-Encapsulating Tunneling Router (RTR): "> | <dd pn="section-3-1.36"> | |||
An RTR acts like an ETR to remove a LISP header, then acts as an | 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 | ITR to prepend a new LISP header. This is known as | |||
Re-encapsulating Tunneling. Doing this allows a packet to be | Re-encapsulating Tunneling. Doing this allows a packet to be | |||
re-routed by the RTR without adding the overhead of additional | rerouted by the RTR without adding the overhead of additional | |||
tunnel headers. When using multiple mapping database systems, care | tunnel headers. When using multiple mapping database systems, care | |||
must be taken to not create re- encapsulation loops through | must be taken to not create re-encapsulation loops through | |||
misconfiguration.</t> | misconfiguration.</dd> | |||
<dt pn="section-3-1.37">Route-Returnability:</dt> | ||||
<t hangText="Route-Returnability:">Route-returnability is an | <dd pn="section-3-1.38">Route-returnability is an | |||
assumption that the underlying routing system will deliver packets | assumption that the underlying routing system will deliver packets | |||
to the destination. When combined with a nonce that is provided by | to the destination. When combined with a nonce that is provided by | |||
a sender and returned by a receiver, this limits off-path data | a sender and returned by a receiver, this limits off-path data | |||
insertion. A route-returnability check is verified when a message | insertion. A route-returnability check is verified when a message | |||
is sent with a nonce, another message is returned with the same | is sent with a nonce, another message is returned with the same | |||
nonce, and the destination of the original message appears as the | nonce, and the destination of the original message appears as the | |||
source of the returned message.</t> | source of the returned message.</dd> | |||
<dt pn="section-3-1.39">Routing Locator (RLOC): </dt> | ||||
<t hangText="Routing Locator (RLOC): ">An RLOC is an IPv4 <xref | <dd pn="section-3-1.40">An RLOC is an IPv4 address <xref target="RFC0791 | |||
target="RFC0791" /> or IPv6 <xref target="RFC8200" /> address of | " format="default" sectionFormat="of" derivedContent="RFC0791"/> or IPv6 address | |||
<xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8 | ||||
200"/> of | ||||
an Egress Tunnel Router (ETR). An RLOC is the output of an | an Egress Tunnel Router (ETR). An RLOC is the output of an | |||
EID-to-RLOC mapping lookup. An EID maps to zero or more | EID-to-RLOC mapping lookup. An EID maps to zero or more | |||
RLOCs. Typically, RLOCs are numbered from blocks that | RLOCs. Typically, RLOCs are numbered from blocks that | |||
are assigned to a site at each point to which it attaches to the | are assigned to a site at each point to which it attaches to the | |||
underlay network; where the topology is defined by the connectivity | underlay network, where the topology is defined by the connectivity | |||
of provider networks. Multiple RLOCs can be assigned to the same | of provider networks. Multiple RLOCs can be assigned to the same | |||
ETR device or to multiple ETR devices at a site.</t> | ETR device or to multiple ETR devices at a site.</dd> | |||
<dt pn="section-3-1.41">Server-side:</dt> | ||||
<t hangText="Server-side:">Server-side is a term used in this | <dd pn="section-3-1.42">"Server-side" is a term used in this | |||
document to indicate that a connection initiation attempt is being | document to indicate that a connection initiation attempt is being | |||
accepted for a destination EID.</t> | accepted for a destination EID.</dd> | |||
<dt pn="section-3-1.43">xTR: </dt> | ||||
<t hangText="xTR: ">An xTR is a reference to an ITR or ETR when | <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. | direction of data flow is not part of the context description. | |||
"xTR" refers to the router that is the tunnel endpoint and is used | "xTR" refers to the router that is the tunnel endpoint and is used | |||
synonymously with the term "Tunnel Router". For example, "An xTR | synonymously with the term "Tunnel Router". For example, "An xTR | |||
can be located at the Customer Edge (CE) router" indicates both | can be located at the Customer Edge (CE) router" indicates both | |||
ITR and ETR functionality at the CE router.</t> | ITR and ETR functionality at the CE router.</dd> | |||
</dl> | ||||
</list></t> | </section> | |||
</section> | <section anchor="OVERVIEW" numbered="true" toc="include" removeInRFC="false" | |||
pn="section-4"> | ||||
<section title="Basic Overview" anchor="OVERVIEW"> | <name slugifiedName="name-basic-overview">Basic Overview</name> | |||
<t>One key concept of LISP is that end-systems operate the same way | <t indent="0" pn="section-4-1">One key concept of LISP is that end-systems | |||
they do today. The IP addresses that hosts use for tracking sockets | operate the same way | |||
when LISP is not in use as well as when LISP is in use. The IP addresses t | ||||
hat | ||||
hosts use for tracking sockets | ||||
and connections, and for sending and receiving packets, do not | and connections, and for sending and receiving packets, do not | |||
change. In LISP terminology, these IP addresses are called Endpoint | change. In LISP terminology, these IP addresses are called Endpoint | |||
Identifiers (EIDs).</t> | Identifiers (EIDs).</t> | |||
<t indent="0" pn="section-4-2">Routers continue to forward packets based o | ||||
<t>Routers continue to forward packets based on IP destination | n IP destination | |||
addresses. When a packet is LISP encapsulated, these addresses are | addresses. When a packet is LISP encapsulated, these addresses are | |||
referred to as Routing Locators (RLOCs). Most routers along a path | referred to as RLOCs. Most routers along a path | |||
between two hosts will not change; they continue to perform | between two hosts will not change; they continue to perform | |||
routing/forwarding lookups on the destination addresses. For routers | routing/forwarding lookups on the destination addresses. For routers | |||
between the source host and the ITR as well as routers from the ETR | 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 | to the destination host, the destination address is an EID. For the | |||
routers between the ITR and the ETR, the destination address is an | routers between the ITR and the ETR, the destination address is an | |||
RLOC.</t> | RLOC.</t> | |||
<t indent="0" pn="section-4-3">Another key LISP concept is the "Tunnel Rou | ||||
<t>Another key LISP concept is the "Tunnel Router". A Tunnel Router | ter". A Tunnel Router | |||
prepends LISP headers on host-originated packets and strips them | prepends LISP headers on host-originated packets and strips them | |||
prior to final delivery to their destination. The IP addresses in | prior to final delivery to their destination. The IP addresses in | |||
this "outer header" are RLOCs. During end-to-end packet | this "outer header" are RLOCs. During end-to-end packet | |||
exchange between two Internet hosts, an ITR prepends a new LISP | exchange between two Internet hosts, an ITR prepends a new LISP | |||
header to each packet, and an ETR strips the new header. The ITR | 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 | performs EID-to-RLOC lookups to determine the routing path to the | |||
ETR, which has the RLOC as one of its IP addresses. </t> | ETR, which has the RLOC as one of its IP addresses. </t> | |||
<t indent="0" pn="section-4-4">Some basic rules governing LISP are:</t> | ||||
<t>Some basic rules governing LISP are:</t> | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-5 | |||
<t><list style="symbols"> | "> | |||
<t>End-systems only send to addresses that are EIDs. EIDs are | <li pn="section-4-5.1">End-systems only send to addresses that are EIDs. | |||
typically IP addresses assigned to hosts (other types of EID are | EIDs are | |||
supported by LISP, see <xref target="RFC8060"/> for further | typically IP addresses assigned to hosts (other types of EIDs are | |||
supported by LISP; see <xref target="RFC8060" format="default" sectionForm | ||||
at="of" derivedContent="RFC8060"/> for further | ||||
information). End-systems don't know that addresses are EIDs | information). End-systems don't know that addresses are EIDs | |||
versus RLOCs but assume that packets get to their intended | versus RLOCs but assume that packets get to their intended | |||
destinations. In a system where LISP is deployed, LISP routers | destinations. In a system where LISP is deployed, LISP routers | |||
intercept EID-addressed packets and assist in delivering them | intercept EID-addressed packets and assist in delivering them | |||
across the network core where EIDs cannot be routed. The | across the network core where EIDs cannot be routed. The | |||
procedure a host uses to send IP packets does not change.</t> | procedure a host uses to send IP packets does not change.</li> | |||
<li pn="section-4-5.2">LISP routers prepend and strip outer headers with | ||||
<t>LISP routers mostly deal with Routing Locator addresses. See | RLOC addresses. See <xref target="MOSTLY" format="default" sectionFormat="of" | |||
details in <xref target="MOSTLY" /> to clarify what is meant by | derivedContent="Section 4.2"/> for details.</li> | |||
"mostly".</t> | <li pn="section-4-5.3">RLOCs are always IP addresses assigned to routers | |||
, preferably | ||||
<t>RLOCs are always IP addresses assigned to routers, preferably | topologically oriented addresses from provider Classless | |||
topologically oriented addresses from provider CIDR (Classless | Inter-Domain Routing (CIDR) blocks. </li> | |||
Inter-Domain Routing) blocks. </t> | <li pn="section-4-5.4">When a router originates packets, it <bcp14>MAY</ | |||
bcp14> use as a source | ||||
<t>When a router originates packets, it MAY use as a source | ||||
address either an EID or RLOC. When acting as a host (e.g., when | address either an EID or RLOC. When acting as a host (e.g., when | |||
terminating a transport session such as Secure SHell (SSH), | terminating a transport session such as Secure Shell (SSH), | |||
TELNET, or the Simple Network Management Protocol (SNMP)), it | TELNET, or the Simple Network Management Protocol (SNMP)), it | |||
MAY use an EID that is explicitly assigned for that purpose. An | <bcp14>MAY</bcp14> use an EID that is explicitly assigned for that purpose | |||
EID that identifies the router as a host MUST NOT be used as an | . An | |||
EID that identifies the router as a host <bcp14>MUST NOT</bcp14> be used a | ||||
s an | ||||
RLOC; an EID is only routable within the scope of a site. A | RLOC; an EID is only routable within the scope of a site. A | |||
typical BGP configuration might demonstrate this "hybrid" | typical BGP configuration might demonstrate this "hybrid" | |||
EID/RLOC usage where a router could use its "host-like" EID to | EID/RLOC usage where a router could use its "host-like" EID to | |||
terminate iBGP sessions to other routers in a site while at the | terminate internal BGP (iBGP) sessions to other routers in a site while at | |||
same time using RLOCs to terminate eBGP sessions to routers | the | |||
outside the site.</t> | same time using RLOCs to terminate external BGP (eBGP) sessions to routers | |||
outside the site.</li> | ||||
<t>Packets with EIDs in them are not expected to be delivered | <li pn="section-4-5.5">Packets with EIDs in them are not expected to be | |||
end-to-end in the absence of an EID-to-RLOC mapping | delivered | |||
end to end in the absence of an EID-to-RLOC mapping | ||||
operation. They are expected to be used locally for intra-site | operation. They are expected to be used locally for intra-site | |||
communication or to be encapsulated for inter-site | communication or to be encapsulated for inter-site | |||
communication.</t> | communication.</li> | |||
<li pn="section-4-5.6">EIDs <bcp14>MAY</bcp14> also be structured (subne | ||||
<t>EIDs MAY also be structured (subnetted) in a manner suitable | tted) in a manner suitable | |||
for local routing within an Autonomous System (AS).</t> | for local routing within an Autonomous System (AS).</li> | |||
</list></t> | </ul> | |||
<t indent="0" pn="section-4-6">An additional LISP header <bcp14>MAY</bcp14 | ||||
<t>An additional LISP header MAY be prepended to packets by a | > be prepended to packets by a | |||
TE-ITR when re-routing of the path for a packet is desired. A | TE-ITR when rerouting of the path for a packet is desired. A | |||
potential use-case for this would be an ISP router that needs to | potential use case for this would be an ISP router that needs to | |||
perform Traffic Engineering for packets flowing through its | perform Traffic Engineering for packets flowing through its | |||
network. In such a situation, termed "Recursive Tunneling", an ISP | network. In such a situation, termed "Recursive Tunneling", an ISP | |||
transit acts as an additional ITR, and the destination RLOC it | transit acts as an additional ITR, and the destination RLOC it | |||
uses for the new prepended header would be either a TE-ETR within | uses for the new prepended header would be either a TE-ETR within | |||
the ISP (along an intra-ISP traffic engineered path) or a TE-ETR | the ISP (along an intra-ISP traffic-engineered path) or a TE-ETR | |||
within another ISP (an inter-ISP traffic engineered path, where an | within another ISP (an inter-ISP traffic-engineered path, where an | |||
agreement to build such a path exists). </t> | agreement to build such a path exists). </t> | |||
<t indent="0" pn="section-4-7">In order to avoid excessive packet overhead | ||||
<t>In order to avoid excessive packet overhead as well as possible | as well as possible | |||
encapsulation loops, this document RECOMMENDS that a maximum of two | encapsulation loops, it is <bcp14>RECOMMENDED</bcp14> that a maximum of two | |||
LISP headers can be prepended to a packet. For initial LISP | LISP headers can be prepended to a packet. For initial LISP | |||
deployments, it is assumed that two headers is sufficient, where | deployments, it is assumed that two headers is sufficient, where | |||
the first prepended header is used at a site for Location/Identity | the first prepended header is used at a site for separation of location and | |||
separation and the second prepended header is used inside a | identity and the second prepended header is used inside a | |||
service provider for Traffic Engineering purposes.</t> | service provider for Traffic Engineering purposes.</t> | |||
<t indent="0" pn="section-4-8">Tunnel Routers can be placed fairly flexibl | ||||
<t>Tunnel Routers can be placed fairly flexibly in a multi-AS | y in a multi-AS | |||
topology. For example, the ITR for a particular end-to-end packet | topology. For example, the ITR for a particular end-to-end packet | |||
exchange might be the first-hop or default router within a site | exchange might be the first-hop or default router within a site | |||
for the source host. Similarly, the ETR might be the last-hop | for the source host. Similarly, the ETR might be the last-hop | |||
router directly connected to the destination host. Another | router directly connected to the destination host. As another | |||
example, perhaps for a VPN service outsourced to an ISP by a site, | example, perhaps for a VPN service outsourced to an ISP by a site, | |||
the ITR could be the site's border router at the service | the ITR could be the site's border router at the service | |||
provider attachment point. Mixing and matching of site-operated, | provider attachment point. Mixing and matching of site-operated, | |||
ISP-operated, and other Tunnel Routers is allowed for maximum | ISP-operated, and other Tunnel Routers is allowed for maximum | |||
flexibility. </t> | flexibility. </t> | |||
<section anchor="DPI" numbered="true" toc="include" removeInRFC="false" pn | ||||
<section title="Deployment on the Public Internet" anchor="DPI"> | ="section-4.1"> | |||
<t>Several of the mechanisms in this document are intended for deployme | <name slugifiedName="name-deployment-on-the-public-in">Deployment on the | |||
nt in controlled, | Public Internet</name> | |||
trusted environments, and are insecure for use over the public Intern | <t indent="0" pn="section-4.1-1">Several of the mechanisms in this docum | |||
et. | ent are intended for deployment in controlled, | |||
In particular, on the public internet xTRs:</t> | trusted environments and are insecure for use over the public Interne | |||
t. | ||||
<t><list style="symbols"> | In particular, on the public Internet, xTRs:</t> | |||
<t>MUST set the N, L, E, and V bits in the LISP header (<xref targe | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4 | |||
t="header"/>) to zero.</t> | .1-2"> | |||
<t>MUST NOT use Locator-Status-Bits and echo-nonce, as described in | <li pn="section-4.1-2.1"> | |||
<xref target="loc-reach"/> for Routing Locator Reachability. | <bcp14>MUST</bcp14> set the N-, L-, E-, and V-bits in the LISP heade | |||
Instead MUST rely solely on control-plane methods.</t> | r (<xref target="header" format="default" sectionFormat="of" derivedContent="Sec | |||
<t>MUST NOT use Gleaning or Locator-Status-Bits and Map-Versioning, | tion 5.1"/>) to zero.</li> | |||
as described in <xref target="update_mapping"/> to update the EID-to-RLOC Mappi | <li pn="section-4.1-2.2"> | |||
ngs. | <bcp14>MUST NOT</bcp14> use Locator-Status-Bits and Echo-Nonce, as d | |||
Instead relying solely on control-plane methods.</t> | escribed in <xref target="loc-reach" format="default" sectionFormat="of" derived | |||
</list></t> | Content="Section 10"/>, for RLOC reachability. | |||
Instead, they <bcp14>MUST</bcp14> rely solely on control plane meth | ||||
</section> | ods.</li> | |||
<li pn="section-4.1-2.3"> | ||||
<section title="Packet Flow Sequence" anchor="MOSTLY"> | <bcp14>MUST NOT</bcp14> use gleaning or Locator-Status-Bits and Map- | |||
<t>This section provides an example of the unicast packet flow, | Versioning, as described in <xref target="update_mapping" format="default" secti | |||
including also Control-Plane information as specified in <xref | onFormat="of" derivedContent="Section 13"/>, to update the EID-to-RLOC mappings. | |||
target="I-D.ietf-lisp-rfc6833bis"/>. The example also assumes | Instead, they <bcp14>MUST</bcp14> rely solely on control plane me | |||
thods.</li> | ||||
</ul> | ||||
</section> | ||||
<section anchor="MOSTLY" numbered="true" toc="include" removeInRFC="false" | ||||
pn="section-4.2"> | ||||
<name slugifiedName="name-packet-flow-sequence">Packet Flow Sequence</na | ||||
me> | ||||
<t indent="0" pn="section-4.2-1">This section provides an example of the | ||||
unicast packet flow, | ||||
also including control plane information as specified in <xref target="RFC | ||||
9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>. The examp | ||||
le also assumes | ||||
the following conditions:</t> | the following conditions:</t> | |||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4 | ||||
<t><list style="symbols"> | .2-2"> | |||
<t>Source host "host1.abc.example.com" is sending a | <li pn="section-4.2-2.1">Source host "host1.abc.example.com" is sendin | |||
packet to "host2.xyz.example.com", exactly as it would if the | g a | |||
site was not | packet to "host2.xyz.example.com", exactly as it would if the site was | |||
not using LISP.</t> | not using LISP.</li> | |||
<li pn="section-4.2-2.2">Each site is multihomed, so each Tunnel Route | ||||
<t>Each site is multihomed, so each Tunnel Router has an | r has an | |||
address (RLOC) assigned from the service provider address | address (RLOC) assigned from the service provider address | |||
block for each provider to which that particular Tunnel Router | block for each provider to which that particular Tunnel Router | |||
is attached.</t> | is attached.</li> | |||
<li pn="section-4.2-2.3">The ITR(s) and ETR(s) are directly connected | ||||
<t>The ITR(s) and ETR(s) are directly connected to the source | to the source | |||
and destination, respectively, but the source and destination | and destination, respectively, but the source and destination | |||
can be located anywhere in the LISP site.</t> | can be located anywhere in the LISP site.</li> | |||
<li pn="section-4.2-2.4">A Map-Request is sent for an external destina | ||||
<t>A Map-Request is sent for an external destination when the | tion when the | |||
destination is not found in the forwarding table or matches a | destination is not found in the forwarding table or matches a | |||
default route. Map-Requests are sent to the mapping database | default route. Map-Requests are sent to the mapping database | |||
system by using the LISP Control-Plane protocol documented in | system by using the LISP control plane protocol documented in | |||
<xref target="I-D.ietf-lisp-rfc6833bis"/>.</t> | <xref target="RFC9301" format="default" sectionFormat="of" derivedConten | |||
t="RFC9301"/>.</li> | ||||
<t>Map-Replies are sent on the underlying routing system | <li pn="section-4.2-2.5">Map-Replies are sent on the underlying routin | |||
topology using the <xref target="I-D.ietf-lisp-rfc6833bis"/> | g system | |||
Control-Plane protocol.</t> | topology, using the | |||
</list></t> | control plane protocol <xref target="RFC9301" format="default" sectionFo | |||
rmat="of" derivedContent="RFC9301"/>.</li> | ||||
<t>Client host1.abc.example.com wants to communicate with | </ul> | |||
<t indent="0" pn="section-4.2-3">Client host1.abc.example.com wants to c | ||||
ommunicate with | ||||
server host2.xyz.example.com:</t> | server host2.xyz.example.com:</t> | |||
<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4. | ||||
<t><list style="numbers"> | 2-4"> | |||
<li pn="section-4.2-4.1" derivedCounter="1.">host1.abc.example.com want | ||||
<t>host1.abc.example.com wants to open a TCP connection to | s to open a TCP connection to | |||
host2.xyz.example.com. It does a DNS lookup on | host2.xyz.example.com. It does a DNS lookup on | |||
host2.xyz.example.com. An A/AAAA record is returned. This | host2.xyz.example.com. An A/AAAA record is returned. This | |||
address is the destination EID. The locally assigned address | address is the destination EID. The locally assigned address | |||
of host1.abc.example.com is used as the source EID. An IPv4 | of host1.abc.example.com is used as the source EID. An IPv4 | |||
or IPv6 packet is built and forwarded through the LISP site | or IPv6 packet is built and forwarded through the LISP site | |||
as a normal IP packet until it reaches a LISP ITR.</t> | as a normal IP packet until it reaches a LISP ITR.</li> | |||
<li pn="section-4.2-4.2" derivedCounter="2.">The LISP ITR must be able | ||||
<t>The LISP ITR must be able to map the destination EID to an | to map the destination EID to an | |||
RLOC of one of the ETRs at the destination site. A method | RLOC of one of the ETRs at the destination site. A method | |||
to do this is to send a LISP Map-Request, as specified in | for doing this is to send a LISP Map-Request, as specified in | |||
<xref target="I-D.ietf-lisp-rfc6833bis"/>.</t> | <xref target="RFC9301" format="default" sectionFormat="of" derivedConte | |||
nt="RFC9301"/>.</li> | ||||
<t>The mapping system helps forwarding the Map-Request to the | <li pn="section-4.2-4.3" derivedCounter="3.">The Mapping System helps | |||
forward the Map-Request to the | ||||
corresponding ETR. When the Map-Request arrives at one of the | corresponding ETR. When the Map-Request arrives at one of the | |||
ETRs at the destination site, it will process the packet as a | ETRs at the destination site, it will process the packet as a | |||
control message.</t> | control message.</li> | |||
<li pn="section-4.2-4.4" derivedCounter="4.">The ETR looks at the dest | ||||
<t>The ETR looks at the destination EID of the Map-Request | ination EID of the Map-Request | |||
and matches it against the prefixes in the ETR's configured | and matches it against the prefixes in the ETR's configured | |||
EID-to-RLOC mapping database. This is the list of | EID-to-RLOC mapping database. This is the list of | |||
EID-Prefixes the ETR is supporting for the site it resides | EID-Prefixes the ETR is supporting for the site it resides | |||
in. If there is no match, the Map-Request is | in. If there is no match, the Map-Request is | |||
dropped. Otherwise, a LISP Map-Reply is returned to the | dropped. Otherwise, a LISP Map-Reply is returned to the | |||
ITR.</t> | ITR.</li> | |||
<li pn="section-4.2-4.5" derivedCounter="5.">The ITR receives the Map- | ||||
<t>The ITR receives the Map-Reply message, parses the message, | Reply message, parses the message, | |||
and stores the mapping information from the packet. This informa tion | and stores the mapping information from the packet. This informa tion | |||
is stored in the ITR's EID-to-RLOC Map-Cache. Note that th e | is stored in the ITR's EID-to-RLOC Map-Cache. Note that the | |||
Map-Cache is an on-demand cache. An ITR will manage its | Map-Cache is an on-demand cache. An ITR will manage its | |||
Map-Cache in such a way that optimizes for its resource | Map-Cache in such a way that optimizes for its resource | |||
constraints.</t> | constraints.</li> | |||
<li pn="section-4.2-4.6" derivedCounter="6.">Subsequent packets from h | ||||
<t>Subsequent packets from host1.abc.example.com to | ost1.abc.example.com to | |||
host2.xyz.example.com will have a LISP header prepended by | host2.xyz.example.com will have a LISP header prepended by | |||
the ITR using the appropriate RLOC as the LISP header | the ITR using the appropriate RLOC as the LISP header | |||
destination address learned from the ETR. Note that the | destination address learned from the ETR. Note that the | |||
packet MAY be sent to a different ETR than the one that | packet <bcp14>MAY</bcp14> be sent to a different ETR than the one that | |||
returned the Map-Reply due to the source site's hashing | returned the Map-Reply due to the source site's hashing | |||
policy or the destination site's Locator-Set policy.</t> | policy or the destination site's Locator-Set policy.</li> | |||
<li pn="section-4.2-4.7" derivedCounter="7.">The ETR receives these pa | ||||
<t>The ETR receives these packets directly (since the | ckets directly (since the | |||
destination address is one of its assigned IP addresses), | destination address is one of its assigned IP addresses), | |||
checks the validity of the addresses, strips the LISP header, | checks the validity of the addresses, strips the LISP header, | |||
and forwards packets to the attached destination host.</t> | and forwards packets to the attached destination host.</li> | |||
<li pn="section-4.2-4.8" derivedCounter="8.">In order to defer the nee | ||||
<t>In order to defer the need for a mapping lookup in the | d for a mapping lookup in the | |||
reverse direction, an ETR can OPTIONALLY create a cache entry | reverse direction, it is <bcp14>OPTIONAL</bcp14> for an ETR to | |||
create a cache entry | ||||
that maps the source EID (inner-header source IP address) to | that maps the source EID (inner-header source IP address) to | |||
the source RLOC (outer-header source IP address) in a | the source RLOC (outer-header source IP address) in a | |||
received LISP packet. Such a cache entry is termed a | received LISP packet. Such a cache entry is termed a | |||
"glean mapping" and only contains a single RLOC for the EID | "glean mapping" and only contains a single RLOC for the EID | |||
in question. More complete information about additional | in question. More complete information about additional | |||
RLOCs SHOULD be verified by sending a LISP Map-Request for | RLOCs <bcp14>SHOULD</bcp14> be verified by sending a LISP Map-Request f | |||
that EID. Both the ITR and the ETR MAY also influence the | or | |||
decision the other makes in selecting an RLOC.</t> | that EID. Both the ITR and the ETR <bcp14>MAY</bcp14> also influence th | |||
</list></t> | e | |||
</section> | decision the other makes in selecting an RLOC.</li> | |||
</section> | </ol> | |||
</section> | ||||
<section title="LISP Encapsulation Details"> | </section> | |||
<t>Since additional tunnel headers are prepended, the packet | <section numbered="true" toc="include" removeInRFC="false" pn="section-5"> | |||
<name slugifiedName="name-lisp-encapsulation-details">LISP Encapsulation D | ||||
etails</name> | ||||
<t indent="0" pn="section-5-1">Since additional tunnel headers are prepend | ||||
ed, the packet | ||||
becomes larger and can exceed the MTU of any link traversed from | becomes larger and can exceed the MTU of any link traversed from | |||
the ITR to the ETR. It is RECOMMENDED in IPv4 that packets do not | the ITR to the ETR. It is <bcp14>RECOMMENDED</bcp14> in IPv4 that packets d o not | |||
get fragmented as they are encapsulated by the ITR. Instead, the | get fragmented as they are encapsulated by the ITR. Instead, the | |||
packet is dropped and an ICMP Unreachable/Fragmentation-Needed | packet is dropped and an ICMPv4 Unreachable / Fragmentation Needed | |||
message is returned to the source.</t> | message is returned to the source.</t> | |||
<t indent="0" pn="section-5-2">In the case when fragmentation is needed, i | ||||
<t>In the case when fragmentation is needed, this specification | t is | |||
RECOMMENDS that implementations provide support for one of the | <bcp14>RECOMMENDED</bcp14> that implementations provide support for one of t | |||
he | ||||
proposed fragmentation and reassembly schemes. Two existing | proposed fragmentation and reassembly schemes. Two existing | |||
schemes are detailed in <xref target="fragment" />.</t> | schemes are detailed in <xref target="fragment" format="default" sectionForm | |||
at="of" derivedContent="Section 7"/>.</t> | ||||
<t>Since IPv4 or IPv6 addresses can be either EIDs or RLOCs, the | <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 | LISP architecture supports IPv4 EIDs with IPv6 RLOCs (where the | |||
inner header is in IPv4 packet format and the outer header is in | 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 | 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 | header is in IPv6 packet format and the outer header is in IPv4 | |||
packet format). The next sub-sections illustrate packet formats | packet format). The next sub-sections illustrate packet formats | |||
for the homogeneous case (IPv4-in-IPv4 and IPv6-in-IPv6), but all | for the homogeneous case (IPv4-in-IPv4 and IPv6-in-IPv6), but all | |||
4 combinations MUST be supported. Additional types of EIDs are | 4 combinations <bcp14>MUST</bcp14> be supported. Additional types of EIDs ar | |||
defined in <xref target="RFC8060" />.</t> | e | |||
defined in <xref target="RFC8060" format="default" sectionFormat="of" derive | ||||
<t>As LISP uses UDP encapsulation to carry traffic between xTRs | dContent="RFC8060"/>.</t> | |||
<t indent="0" pn="section-5-4">As LISP uses UDP encapsulation to carry tra | ||||
ffic between xTRs | ||||
across the Internet, implementors should be aware of the | across the Internet, implementors should be aware of the | |||
provisions of <xref target="RFC8085"/>, especially those given in | provisions of <xref target="RFC8085" format="default" sectionFormat="of" der | |||
section 3.1.11 on congestion control for UDP tunneling.</t> | ivedContent="RFC8085"/>, especially those given in its | |||
Section <xref target="RFC8085" section="3.1.11" sectionFormat="bare" format= | ||||
<t>Implementors are encouraged to consider UDP checksum usage | "default" derivedLink="https://rfc-editor.org/rfc/rfc8085#section-3.1.11" derive | |||
guidelines in section 3.4 of <xref target="RFC8085"/> when it is | dContent="RFC8085"/> on congestion control for UDP tunneling.</t> | |||
<t indent="0" pn="section-5-5">Implementors are encouraged to consider UDP | ||||
checksum usage | ||||
guidelines in <xref target="RFC8085" sectionFormat="of" section="3.4" format | ||||
="default" derivedLink="https://rfc-editor.org/rfc/rfc8085#section-3.4" derivedC | ||||
ontent="RFC8085"/> when it is | ||||
desirable to protect UDP and LISP headers against corruption.</t> | desirable to protect UDP and LISP headers against corruption.</t> | |||
<section anchor="header" numbered="true" toc="include" removeInRFC="false" | ||||
<section title="LISP IPv4-in-IPv4 Header Format" anchor="header"> | pn="section-5.1"> | |||
<figure> <artwork><![CDATA[ | <name slugifiedName="name-lisp-ipv4-in-ipv4-header-fo">LISP IPv4-in-IPv4 | |||
Header Format</name> | ||||
<artwork name="" type="" align="left" alt="" pn="section-5.1-1"> | ||||
0 1 2 3 | 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 | 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 | | / |Version| IHL | DSCP |ECN| Total Length | | |||
/ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Identification |Flags| Fragment Offset | | | | Identification |Flags| Fragment Offset | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
OH | Time to Live | Protocol = 17 | Header Checksum | | OH | Time to Live | Protocol = 17 | Header Checksum | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Source Routing Locator | | | | Source Routing Locator | | |||
skipping to change at line 610 ¶ | skipping to change at line 729 ¶ | |||
| | Identification |Flags| Fragment Offset | | | | Identification |Flags| Fragment Offset | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
IH | Time to Live | Protocol | Header Checksum | | IH | Time to Live | Protocol | Header Checksum | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Source EID | | | | Source EID | | |||
\ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
\ | Destination EID | | \ | Destination EID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
IHL = IP-Header-Length | IHL = IP-Header-Length | |||
]]></artwork> </figure> | </artwork> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-5.2 | ||||
<section title="LISP IPv6-in-IPv6 Header Format"> | "> | |||
<figure> <artwork><![CDATA[ | <name slugifiedName="name-lisp-ipv6-in-ipv6-header-fo">LISP IPv6-in-IPv6 | |||
Header Format</name> | ||||
<artwork name="" type="" align="left" alt="" pn="section-5.2-1"> | ||||
0 1 2 3 | 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 | 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 | | / |Version| DSCP |ECN| Flow Label | | |||
/ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Payload Length | Next Header=17| Hop Limit | | | | Payload Length | Next Header=17| Hop Limit | | |||
v +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | v +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
O + + | O + + | |||
u | | | u | | | |||
skipping to change at line 666 ¶ | skipping to change at line 785 ¶ | |||
| | | | | | |||
H +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | H +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
d | | | d | | | |||
r + + | r + + | |||
| | | | | | |||
^ + Destination EID + | ^ + Destination EID + | |||
\ | | | \ | | | |||
\ + + | \ + + | |||
\ | | | \ | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> </figure> | </artwork> | |||
</section> | </section> | |||
<section anchor="LRB" numbered="true" toc="include" removeInRFC="false" pn | ||||
<section title="Tunnel Header Field Descriptions" anchor="LRB" > | ="section-5.3"> | |||
<t><list style="hanging"> <t hangText="Inner Header | <name slugifiedName="name-tunnel-header-field-descrip">Tunnel Header Fie | |||
(IH):">The inner header is the header on the datagram | ld Descriptions</name> | |||
received from the originating host <xref target="RFC0791" /> | <dl newline="false" spacing="normal" indent="3" pn="section-5.3-1"> | |||
<xref target="RFC8200" /> <xref target="RFC2474"/>. The | <dt pn="section-5.3-1.1">Inner Header (IH):</dt> | |||
source and destination IP addresses are EIDs.</t> | <dd pn="section-5.3-1.2">The inner header is the header on the datagra | |||
m | ||||
<t hangText="Outer Header: (OH)">The outer header is a new | received from the originating host <xref target="RFC0791" format="defa | |||
ult" sectionFormat="of" derivedContent="RFC0791"/> | ||||
<xref target="RFC8200" format="default" sectionFormat="of" derivedCo | ||||
ntent="RFC8200"/> <xref target="RFC2474" format="default" sectionFormat="of" der | ||||
ivedContent="RFC2474"/>. The | ||||
source and destination IP addresses are EIDs.</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 | header prepended by an ITR. The address fields contain RLOCs | |||
obtained from the ingress router's EID-to-RLOC Cache. The IP | obtained from the ingress router's EID-to-RLOC Map-Cache. The IP | |||
protocol number is "UDP (17)" from <xref | protocol number is "UDP (17)" from <xref target="RFC0768" format="defa | |||
target="RFC0768" />. The setting of the Don't Fragment (DF) | ult" sectionFormat="of" derivedContent="RFC0768"/>. The setting of the Don't Fr | |||
agment (DF) | ||||
bit 'Flags' field is according to rules listed in Sections | bit 'Flags' field is according to rules listed in Sections | |||
<xref target="MTU-STATELESS" format="counter"/> and <xref | <xref target="MTU-STATELESS" format="counter" sectionFormat="of" deriv | |||
target="MTU-STATEFUL" format="counter"/>.</t> | edContent="7.1"/> and <xref target="MTU-STATEFUL" format="counter" sectionFormat | |||
="of" derivedContent="7.2"/>.</dd> | ||||
<t hangText="UDP Header:">The UDP header contains an ITR | <dt pn="section-5.3-1.5">UDP Header:</dt> | |||
selected source port when encapsulating a packet. See <xref | <dd pn="section-5.3-1.6">The UDP header contains an ITR-selected sourc | |||
target="loc-hash" /> for details on the hash algorithm used | e port when encapsulating a packet. See <xref target="loc-hash" format="default" | |||
sectionFormat="of" derivedContent="Section 12"/> for details on the hash algori | ||||
thm used | ||||
to select a source port based on the 5-tuple of the inner | to select a source port based on the 5-tuple of the inner | |||
header. The destination port MUST be set to the well-known | header. The destination port <bcp14>MUST</bcp14> be set to the well-kn | |||
IANA-assigned port value 4341.</t> | own | |||
IANA-assigned port value 4341.</dd> | ||||
<t hangText="UDP Checksum:">The 'UDP Checksum' field SHOULD | <dt pn="section-5.3-1.7">UDP Checksum:</dt> | |||
be transmitted as zero by an ITR for either IPv4 <xref | <dd pn="section-5.3-1.8">The 'UDP Checksum' field <bcp14>SHOULD</bcp14 | |||
target="RFC0768" /> and IPv6 encapsulation <xref | > | |||
target="RFC6935" /> <xref target="RFC6936" />. When a | be transmitted as zero by an ITR for either IPv4 <xref target="RFC0768 | |||
" format="default" sectionFormat="of" derivedContent="RFC0768"/> or IPv6 encapsu | ||||
lation <xref target="RFC6935" format="default" sectionFormat="of" derivedContent | ||||
="RFC6935"/> <xref target="RFC6936" format="default" sectionFormat="of" derivedC | ||||
ontent="RFC6936"/>. When a | ||||
packet with a zero UDP checksum is received by an ETR, the | packet with a zero UDP checksum is received by an ETR, the | |||
ETR MUST accept the packet for decapsulation. When an ITR | ETR <bcp14>MUST</bcp14> accept the packet for decapsulation. When an | |||
transmits a non-zero value for the UDP checksum, it MUST | ITR | |||
transmits a non-zero value for the UDP checksum, it <bcp14>MUST</bcp14 | ||||
> | ||||
send a correctly computed value in this field. When an ETR | send a correctly computed value in this field. When an ETR | |||
receives a packet with a non-zero UDP checksum, it MAY | receives a packet with a non-zero UDP checksum, it <bcp14>MAY</bcp14> | |||
choose to verify the checksum value. If it chooses to | choose to verify the checksum value. If it chooses to | |||
perform such verification, and the verification fails, the | perform such verification and the verification fails, the | |||
packet MUST be silently dropped. If the ETR chooses not to | packet <bcp14>MUST</bcp14> be silently dropped. If the ETR either cho | |||
perform the verification, or performs the verification | oses not to | |||
successfully, the packet MUST be accepted for | perform the verification or performs the verification | |||
successfully, the packet <bcp14>MUST</bcp14> be accepted for | ||||
decapsulation. The handling of UDP zero checksums over IPv6 | decapsulation. The handling of UDP zero checksums over IPv6 | |||
for all tunneling protocols, including LISP, is subject to | for all tunneling protocols, including LISP, is subject to | |||
the applicability statement in <xref target="RFC6936"/>.</t> | the applicability statement in <xref target="RFC6936" format="default" | |||
sectionFormat="of" derivedContent="RFC6936"/>.</dd> | ||||
<t hangText="UDP Length:">The 'UDP Length' field is set for | <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 | an IPv4-encapsulated packet to be the sum of the | |||
inner-header IPv4 Total Length plus the UDP and LISP header | inner-header IPv4 Total Length plus the UDP and LISP header | |||
lengths. For an IPv6-encapsulated packet, the 'UDP Length' | lengths. For an IPv6-encapsulated packet, the 'UDP Length' | |||
field is the sum of the inner-header IPv6 Payload 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 | the size of the IPv6 header (40 octets), and the size of the | |||
UDP and LISP headers.</t> | UDP and LISP headers.</dd> | |||
<dt pn="section-5.3-1.11">N:</dt> | ||||
<t hangText="N:">The N-bit is the nonce-present bit. When | <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 | this bit is set to 1, the low-order 24 bits of the first 32 | |||
bits of the LISP header contain a Nonce. See <xref | bits of the LISP header contain a nonce. See <xref target="echo-nonce" | |||
target="echo-nonce"/> for details. Both N- and V-bits MUST | format="default" sectionFormat="of" derivedContent="Section 10.1"/> for details | |||
NOT be set in the same packet. If they are, a decapsulating | . Both N- and V-bits <bcp14>MUST NOT</bcp14> be set in the same packet. If they | |||
ETR MUST treat the 'Nonce/Map-Version' field as having a | are, a decapsulating | |||
Nonce value present.</t> | ETR <bcp14>MUST</bcp14> treat the 'Nonce/Map-Version' field as having | |||
a | ||||
<t hangText="L:">The L-bit is the 'Locator-Status-Bits' | nonce value present.</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 | field enabled bit. When this bit is set to 1, the | |||
Locator-Status-Bits in the second 32 bits of the LISP | Locator-Status-Bits in the second 32 bits of the LISP | |||
header are in use.</t> | header are in use.</dd> | |||
</list></t> | </dl> | |||
<artwork name="" type="" align="left" alt="" pn="section-5.3-2"> | ||||
<figure> <artwork><![CDATA[ | x 1 x x 0 x x x | |||
x 1 x x 0 x x x | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |N|L|E|V|I|R|K|K| Nonce/Map-Version | | |||
|N|L|E|V|I|R|K|K| Nonce/Map-Version | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Locator-Status-Bits | | |||
| Locator-Status-Bits | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | </artwork> | |||
]]></artwork> </figure> | <dl newline="false" spacing="normal" indent="3" pn="section-5.3-3"> | |||
<dt pn="section-5.3-3.1">E:</dt> | ||||
<t><list style="hanging"> | <dd pn="section-5.3-3.2">The E-bit is the Echo-Nonce-request bit. | |||
<t hangText="E:">The E-bit is the echo-nonce-request bit. | This bit <bcp14>MUST</bcp14> be ignored and has no meaning when the N- | |||
This bit MUST be ignored and has no meaning when the N-bit | bit | |||
is set to 0. When the N-bit is set to 1 and this bit is set | 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 | to 1, an ITR is requesting that the nonce value in the | |||
'Nonce' field be echoed back in LISP-encapsulated packets | 'Nonce' field be echoed back in LISP-encapsulated packets | |||
when the ITR is also an ETR. See <xref target="echo-nonce"/> | when the ITR is also an ETR. See <xref target="echo-nonce" format="def | |||
for details.</t> | ault" sectionFormat="of" derivedContent="Section 10.1"/> | |||
for details.</dd> | ||||
<t hangText="V:">The V-bit is the Map-Version present | <dt pn="section-5.3-3.3">V:</dt> | |||
bit. When this bit is set to 1, the N-bit MUST be 0. Refer | <dd pn="section-5.3-3.4">The V-bit is the Map-Version present | |||
to <xref target="map-versioning" /> for more details. This | bit. When this bit is set to 1, the N-bit <bcp14>MUST</bcp14> be 0. Re | |||
fer | ||||
to <xref target="RFC9302" format="default" sectionFormat="of" derivedC | ||||
ontent="RFC9302"/> for more details on Database Map-Versioning. This | ||||
bit indicates that the LISP header is encoded in this | bit indicates that the LISP header is encoded in this | |||
case as:</t> | case as:</dd> | |||
</list></t> | </dl> | |||
<artwork name="" type="" align="left" alt="" pn="section-5.3-4"> | ||||
<figure> <artwork><![CDATA[ | 0 x 0 1 x x x x | |||
0 x 0 1 x x x x | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |N|L|E|V|I|R|K|K| Source Map-Version | Dest Map-Version | | |||
|N|L|E|V|I|R|K|K| Source Map-Version | Dest Map-Version | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Instance ID/Locator-Status-Bits | | |||
| Instance ID/Locator-Status-Bits | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | </artwork> | |||
]]></artwork> </figure> | <dl newline="false" spacing="normal" indent="3" pn="section-5.3-5"> | |||
<dt pn="section-5.3-5.1">I:</dt> | ||||
<t><list style="hanging"> | <dd pn="section-5.3-5.2">The I-bit is the Instance ID bit. See <xref t | |||
<t hangText="I:">The I-bit is the Instance ID bit. See <xref | arget="instance" format="default" sectionFormat="of" derivedContent="Section 8"/ | |||
target="instance" /> for more details. When this bit is set | > for more details. When this bit is set | |||
to 1, the 'Locator-Status-Bits' field is reduced to 8 bits | 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 | and the high-order 24 bits are used as an Instance ID. If | |||
the L-bit is set to 0, then the low-order 8 bits are | the L-bit is set to 0, then the low-order 8 bits are | |||
transmitted as zero and ignored on receipt. The format of | transmitted as zero and ignored on receipt. The format of | |||
the LISP header would look like this:</t> | the LISP header would look like this:</dd> | |||
</list></t> | </dl> | |||
<artwork name="" type="" align="left" alt="" pn="section-5.3-6"> | ||||
<figure> <artwork><![CDATA[ | x x x x 1 x x x | |||
x x x x 1 x x x | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |N|L|E|V|I|R|K|K| Nonce/Map-Version | | |||
|N|L|E|V|I|R|K|K| Nonce/Map-Version | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Instance ID | LSBs | | |||
| Instance ID | LSBs | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | </artwork> | |||
]]></artwork> </figure> | <dl newline="false" spacing="normal" indent="3" pn="section-5.3-7"> | |||
<dt pn="section-5.3-7.1">R:</dt> | ||||
<t><list style="hanging"> | <dd pn="section-5.3-7.2">The R-bit is a reserved and unassigned bit | |||
<t hangText="R:">The R-bit is a Reserved and unassigned bit | for future use. It <bcp14>MUST</bcp14> be set to 0 on transmit and <bc | |||
for future use. It MUST be set to 0 on transmit and MUST be | p14>MUST</bcp14> be | |||
ignored on receipt.</t> | ignored on receipt.</dd> | |||
<dt pn="section-5.3-7.3">KK:</dt> | ||||
<t hangText="KK:">The KK-bits are a 2-bit field used when | <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 | encapsulated packets are encrypted. The field is set to 00 | |||
when the packet is not encrypted. See <xref | when the packet is not encrypted. See <xref target="RFC8061" format=" | |||
target="RFC8061" /> for further information.</t> | default" sectionFormat="of" derivedContent="RFC8061"/> for further information.< | |||
/dd> | ||||
<t hangText="LISP Nonce:">The LISP 'Nonce' field is a 24-bit | <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 | value that is randomly generated by an ITR when the N-bit is | |||
set to 1. Nonce generation algorithms are an implementation | set to 1. Nonce generation algorithms are an implementation | |||
matter but are required to generate different nonces when | 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 | 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 | 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 | packets are returned. When the E-bit is clear but the N-bit | |||
is set, a remote ITR is either echoing a previously | is set, a remote ITR is either echoing a previously | |||
requested echo-nonce or providing a random nonce. See <xref | requested Echo-Nonce or providing a random nonce. See <xref target="ec | |||
target="echo-nonce" /> for more details. Finally, when | ho-nonce" format="default" sectionFormat="of" derivedContent="Section 10.1"/> fo | |||
both the N and V-bit are not set (N=0, V=0), then both the Nonce | r more details. Finally, when | |||
and Map-Version fields are set to 0 and ignored on receipt.</t> | both the N- and V-bits are not set (N=0, V=0), then both the 'Nonce' | |||
and 'Map-Version' fields are set to 0 and ignored on receipt.</dd> | ||||
<t hangText="LISP Locator-Status-Bits (LSBs):">When the | <dt pn="section-5.3-7.7">LISP Locator-Status-Bits (LSBs):</dt> | |||
<dd pn="section-5.3-7.8">When the | ||||
L-bit is also set, the 'Locator-Status-Bits' field in 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 | 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 | 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 | in a Map-Reply is assigned an ordinal value from 0 to n-1 | |||
(when there are n RLOCs in a mapping entry). The | (when there are n RLOCs in a mapping entry). The | |||
Locator-Status-Bits are numbered from 0 to n-1 from the | Locator-Status-Bits are numbered from 0 to n-1 from the | |||
least significant bit of the field. The field is 32 bits | 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 | 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 | 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 | indicating to the ETR that the RLOC associated with the bit | |||
ordinal has up status. See <xref target="loc-reach" /> for | ordinal has up status. See <xref target="loc-reach" format="default" s ectionFormat="of" derivedContent="Section 10"/> for | |||
details on how an ITR can determine the status of the ETRs | details on how an ITR can determine the status of the ETRs | |||
at the same site. When a site has multiple EID-Prefixes | at the same site. When a site has multiple EID-Prefixes | |||
that result in multiple mappings (where each could have a | that result in multiple mappings (where each could have a | |||
different Locator-Set), the Locator-Status-Bits setting in | different Locator-Set), the Locator-Status-Bits setting in | |||
an encapsulated packet MUST reflect the mapping for the | an encapsulated packet <bcp14>MUST</bcp14> reflect the mapping for the | |||
EID-Prefix that the inner-header source EID address | EID-Prefix that the inner-header source EID address | |||
matches (longest-match). If the LSB for an anycast Locator is set to 1 , then | 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 | there is at least one RLOC with that address, and the ETR is | |||
considered 'up'.</t> | considered 'up'.</dd> | |||
</list></t> | </dl> | |||
<t indent="0" pn="section-5.3-8">When doing ITR/PITR encapsulation:</t> | ||||
<t>When doing ITR/PITR encapsulation:</t> | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5 | |||
.3-9"> | ||||
<t><list style="symbols"> | <li pn="section-5.3-9.1">The outer-header 'Time to Live' field (or 'Ho | |||
<t>The outer-header 'Time to Live' field (or 'Hop Limit' | p Limit' | |||
field, in the case of IPv6) SHOULD be copied from the | field, in the case of IPv6) <bcp14>SHOULD</bcp14> be copied from the | |||
inner-header 'Time to Live' field. </t> | inner-header 'Time to Live' field. </li> | |||
<li pn="section-5.3-9.2">The outer-header IPv4 'Differentiated Service | ||||
<t>The outer-header IPv4 'Differentiated Services Code Point' | s Code Point | |||
(DSCP) field or the 'Traffic Class' field, in the case of | (DSCP)' field (or 'Traffic Class' field, in the case of | |||
IPv6, SHOULD be copied from the inner-header IPv4 DSCP field or | IPv6) <bcp14>SHOULD</bcp14> be copied from the inner-header IPv4 ' | |||
'Traffic Class' field in the case of IPv6, to the | DSCP' field (or | |||
outer-header. Guidelines for this can be found at <xref target="RF | 'Traffic Class' field, in the case of IPv6) to the | |||
C2983"/>.</t> | outer header. Guidelines for this can be found in <xref target="RF | |||
C2983" format="default" sectionFormat="of" derivedContent="RFC2983"/>.</li> | ||||
<t>The IPv4 'Explicit Congestion Notification' (ECN) field and bits | <li pn="section-5.3-9.3">The IPv4 'Explicit Congestion Notification (E | |||
6 and 7 of the IPv6 'Traffic Class' field requires special | CN)' field and bits | |||
6 and 7 of the IPv6 'Traffic Class' field require special | ||||
treatment in order to avoid discarding indications of | treatment in order to avoid discarding indications of | |||
congestion as specified in <xref target="RFC6040"/>.</t> | congestion as specified in <xref target="RFC6040" format="default" se | |||
</list></t> | ctionFormat="of" derivedContent="RFC6040"/>.</li> | |||
</ul> | ||||
<t>When doing ETR/PETR decapsulation:</t> | <t indent="0" pn="section-5.3-10">When doing ETR/PETR decapsulation:</t> | |||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5 | ||||
<t><list style="symbols"> | .3-11"> | |||
<t>The inner-header IPv4 'Time to Live' field or 'Hop Limit' | <li pn="section-5.3-11.1">The inner-header IPv4 'Time to Live' field ( | |||
field in the case of IPv6, MUST be copied from the | or 'Hop Limit' | |||
outer-header 'Time to Live'/'Hop Limit' field, when the 'Time to Li | field, in the case of IPv6) <bcp14>MUST</bcp14> be copied from the | |||
ve'/'Hop Limit' | outer-header 'Time to Live'/'Hop Limit' field when the Time to Live | |||
value of the outer header is less than the 'Time to Live'/'Hop Limi | / Hop Limit | |||
t' | value of the outer header is less than the Time to Live / Hop Limit | |||
value of the inner header. Failing to perform this check | value of the inner header. Failing to perform this check | |||
can cause the 'Time to Live'/'Hop Limit' of the inner header to inc rement | can cause the Time to Live / Hop Limit of the inner header to incre ment | |||
across encapsulation/decapsulation cycles. This check is | across encapsulation/decapsulation cycles. This check is | |||
also performed when doing initial encapsulation, when a | also performed when doing initial encapsulation, when a | |||
packet comes to an ITR or PITR destined for a LISP site.</t> | packet comes to an ITR or PITR destined for a LISP site.</li> | |||
<li pn="section-5.3-11.2">The outer-header IPv4 'Differentiated Servic | ||||
<t>The outer-header IPv4 'Differentiated Services Code Point' | es Code Point | |||
(DSCP) field or the 'Traffic Class' field in the case of | (DSCP)' field (or 'Traffic Class' field, in the case of | |||
IPv6, SHOULD be copied from the outer-header IPv4 DSCP field or | IPv6) <bcp14>SHOULD</bcp14> be copied from the outer-header 'IPv4 D | |||
'Traffic Class' field in the case of IPv6, to the | SCP' field (or | |||
inner-header. Guidelines for this can be found at <xref target="RFC | 'Traffic Class' field, in the case of IPv6) to the | |||
2983"/>.</t> | inner header. Guidelines for this can be found in <xref target="RFC | |||
2983" format="default" sectionFormat="of" derivedContent="RFC2983"/>.</li> | ||||
<t>The IPv4 'Explicit Congestion Notification' (ECN) field and bits | <li pn="section-5.3-11.3">The IPv4 'Explicit Congestion Notification ( | |||
6 and 7 of the IPv6 'Traffic Class' field, requires special | ECN)' field and bits | |||
6 and 7 of the IPv6 'Traffic Class' field require special | ||||
treatment in order to avoid discarding indications of | treatment in order to avoid discarding indications of | |||
congestion as specified in <xref target="RFC6040"/>. Note | congestion as specified in <xref target="RFC6040" format="default" sec tionFormat="of" derivedContent="RFC6040"/>. Note | |||
that implementations exist that copy the 'ECN' field from | that implementations exist that copy the 'ECN' field from | |||
the outer header to the inner header even though <xref | the outer header to the inner header, even though <xref target="RFC604 | |||
target="RFC6040"/> does not recommend this behavior. It is | 0" format="default" sectionFormat="of" derivedContent="RFC6040"/> does not recom | |||
RECOMMENDED that implementations change to support the | mend this behavior. It is | |||
behavior in <xref target="RFC6040"/>.</t> | <bcp14>RECOMMENDED</bcp14> that implementations change to support the | |||
</list></t> | behavior discussed in <xref target="RFC6040" format="default" sectionF | |||
ormat="of" derivedContent="RFC6040"/>.</li> | ||||
<t>Note that if an ETR/PETR is also an ITR/PITR and chooses to | </ul> | |||
<t indent="0" pn="section-5.3-12">Note that if an ETR/PETR is also an IT | ||||
R/PITR and chooses to | ||||
re-encapsulate after decapsulating, the net effect of this | re-encapsulate after decapsulating, the net effect of this | |||
is that the new outer header will carry the same Time to | is that the new outer header will carry the same Time to | |||
Live as the old outer header minus 1.</t> | Live as the old outer header minus 1.</t> | |||
<t indent="0" pn="section-5.3-13">Copying the Time to Live serves two pu | ||||
<t>Copying the Time to Live (TTL) serves two purposes: | rposes: | |||
first, it preserves the distance the host intended the packet to | first, it preserves the distance the host intended the packet to | |||
travel; second, and more importantly, it provides for | travel; second, and more importantly, it provides for | |||
suppression of looping packets in the event there is a loop of | suppression of looping packets in the event there is a loop of | |||
concatenated tunnels due to misconfiguration.</t> | concatenated tunnels due to misconfiguration.</t> | |||
<t indent="0" pn="section-5.3-14"> Some xTRs, PETRs, and PITRs perform r | ||||
<t>Some xTRs and PxTRs performs re-encapsulation operations | e-encapsulation operations and | |||
and need to treat the 'Explicit Congestion Notification' (ECN) | need to treat ECN functions in a special way. Because the re-encapsulatio | |||
in a special way. Because the re-encapsulation operation is a | n | |||
operation is a | ||||
sequence of two operations, namely a decapsulation followed by | sequence of two operations, namely a decapsulation followed by | |||
an encapsulation, the ECN bits MUST be treated as described | an encapsulation, the ECN bits <bcp14>MUST</bcp14> be treated as describ ed | |||
above for these two operations.</t> | above for these two operations.</t> | |||
<t indent="0" pn="section-5.3-15"> | ||||
<t> | The LISP data plane protocol is not backwards compatible with | |||
The LISP dataplane protocol is not backwards compatible with | <xref target="RFC6830" format="default" sectionFormat="of" derive | |||
<xref target="RFC6830"/> and does not have explicit support for i | dContent="RFC6830"/> and does not have explicit support for introducing | |||
ntroducing | future protocol changes (e.g., an explicit version field). Howeve | |||
future protocol changes (e.g. an explicit version field). However | r, | |||
, | the LISP control plane <xref target="RFC9301" format="default" se | |||
the LISP control plane <xref | ctionFormat="of" derivedContent="RFC9301"/> allows an ETR to register | |||
target="I-D.ietf-lisp-rfc6833bis"/> allows an ETR to register | data plane capabilities by means of new LISP Canonical Address Fo | |||
dataplane capabilities by means of new LCAF types <xref target="R | rmat (LCAF) types <xref target="RFC8060" format="default" sectionFormat="of" der | |||
FC8060"/>. | ivedContent="RFC8060"/>. | |||
In this way an ITR can be made aware of the dataplane capabilitie | In this way, an ITR can be made aware of the data plane capabilit | |||
s | ies | |||
of an ETR, and encapsulate accordingly. The specification of the | of an ETR and encapsulate accordingly. The specification of the n | |||
new | ew | |||
LCAF types, new LCAF mechanisms, and their use, is out of the | LCAF types, the new LCAF mechanisms, and their use are out of the | |||
scope of this document. | scope of this document. | |||
</t> | </t> | |||
</section> | ||||
</section> | </section> | |||
</section> | <section anchor="Map-Cache" numbered="true" toc="include" removeInRFC="false | |||
" pn="section-6"> | ||||
<section title="LISP EID-to-RLOC Map-Cache" anchor="Map-Cache"> | <name slugifiedName="name-lisp-eid-to-rloc-map-cache">LISP EID-to-RLOC Map | |||
-Cache</name> | ||||
<t>ITRs and PITRs maintain an on-demand cache, referred as LISP | <t indent="0" pn="section-6-1">ITRs and PITRs maintain an on-demand cache, | |||
EID-to-RLOC Map-Cache, that contains mappings from EID-prefixes | referred to as the LISP | |||
to locator sets. The cache is used to encapsulate packets from | EID-to-RLOC Map-Cache, that contains mappings from EID-Prefixes | |||
to Locator-Sets. The cache is used to encapsulate packets from | ||||
the EID space to the corresponding RLOC network attachment point.</t> | the EID space to the corresponding RLOC network attachment point.</t> | |||
<t indent="0" pn="section-6-2">When an ITR/PITR receives a packet from ins | ||||
<t>When an ITR/PITR receives a packet from inside of the LISP | ide of the LISP | |||
site to destinations outside of the site a longest-prefix match | site to destinations outside of the site, a longest-prefix match | |||
lookup of the EID is done to the Map-Cache.</t> | lookup of the EID is done to the Map-Cache.</t> | |||
<t indent="0" pn="section-6-3">When the lookup succeeds, the Locator-Set r | ||||
<t>When the lookup succeeds, the Locator-Set retrieved from the | etrieved from the | |||
Map-Cache is used to send the packet to the EID's topological | Map-Cache is used to send the packet to the EID's topological | |||
location.</t> | location.</t> | |||
<t indent="0" pn="section-6-4">If the lookup fails, the ITR/PITR needs to | ||||
<t>If the lookup fails, the ITR/PITR needs to retrieve the | retrieve the | |||
mapping using the LISP Control-Plane protocol <xref | mapping using the LISP control plane protocol <xref target="RFC9301" format | |||
target="I-D.ietf-lisp-rfc6833bis"/>. While the mapping is being retrieved, | ="default" sectionFormat="of" derivedContent="RFC9301"/>. While the mapping is b | |||
eing retrieved, | ||||
the ITR/PITR can either drop or buffer the packets. This document does n ot have specific | the ITR/PITR can either drop or buffer the packets. This document does n ot have specific | |||
recommendations about the action to be taken. | recommendations about the action to be taken. | |||
It is up to the deployer to consider whether or not it is desirable to b uffer packets | It is up to the deployer to consider whether or not it is desirable to b uffer packets | |||
and deploy a LISP implementation that offers the desired behaviour. Once the mapping is resolved | and deploy a LISP implementation that offers the desired behavior. Once the mapping is resolved, | |||
it is then stored in the local Map-Cache to forward subsequent packets a ddressed to | it is then stored in the local Map-Cache to forward subsequent packets a ddressed to | |||
the same EID-prefix.</t> | the same EID-Prefix.</t> | |||
<t indent="0" pn="section-6-5">The Map-Cache is a local cache of mappings; | ||||
<t>The Map-Cache is a local cache of mappings, entries are | entries are | |||
expired based on the associated Time to live. In addition, | expired based on the associated Time to Live. In addition, | |||
entries can be updated with more current information, see <xref | entries can be updated with more current information; see <xref target="upd | |||
target="update_mapping" /> for further information on | ate_mapping" format="default" sectionFormat="of" derivedContent="Section 13"/> f | |||
or further information on | ||||
this. Finally, the Map-Cache also contains reachability | this. Finally, the Map-Cache also contains reachability | |||
information about EIDs and RLOCs, and uses LISP reachability | information about EIDs and RLOCs and uses LISP reachability | |||
information mechanisms to determine the reachability of RLOCs, | information mechanisms to determine the reachability of RLOCs; | |||
see <xref target="loc-reach" /> for the specific mechanisms.</t> | see <xref target="loc-reach" format="default" sectionFormat="of" derivedCon | |||
tent="Section 10"/> for the specific mechanisms.</t> | ||||
</section> | </section> | |||
<section anchor="fragment" numbered="true" toc="include" removeInRFC="false" | ||||
<section title="Dealing with Large Encapsulated Packets" anchor="fragment"> | pn="section-7"> | |||
<name slugifiedName="name-dealing-with-large-encapsul">Dealing with Large | ||||
<t>This section proposes two mechanisms to deal with | Encapsulated Packets</name> | |||
packets that exceed the path MTU between the ITR and ETR.</t> | <t indent="0" pn="section-7-1">This section proposes two mechanisms to dea | |||
l with | ||||
<t>It is left to the implementor to decide if the stateless or | packets that exceed the Path MTU (PMTU) between the ITR and ETR.</t> | |||
stateful mechanism SHOULD be implemented. Both or neither can be | <t indent="0" pn="section-7-2">It is left to the implementor to decide if | |||
the stateless or | ||||
stateful mechanism <bcp14>SHOULD</bcp14> be implemented. Both or neither can | ||||
be | ||||
used, since it is a local decision in the ITR regarding how | used, since it is a local decision in the ITR regarding how | |||
to deal with MTU issues, and sites can interoperate with differing | to deal with MTU issues, and sites can interoperate with differing | |||
mechanisms.</t> | mechanisms.</t> | |||
<t indent="0" pn="section-7-3">Both stateless and stateful mechanisms also | ||||
<t>Both stateless and stateful mechanisms also apply to | apply to | |||
Re-encapsulating and Recursive Tunneling, so any actions | Re-encapsulating and Recursive Tunneling, so any actions | |||
below referring to an ITR also apply to a TE-ITR.</t> | below referring to an ITR also apply to a TE-ITR.</t> | |||
<section anchor="MTU-STATELESS" numbered="true" toc="include" removeInRFC= | ||||
<section anchor="MTU-STATELESS" title="A Stateless Solution to MTU Handling" | "false" pn="section-7.1"> | |||
> | <name slugifiedName="name-a-stateless-solution-to-mtu">A Stateless Solut | |||
<t>An ITR stateless solution to handle MTU issues is described as | ion to MTU Handling</name> | |||
<t indent="0" pn="section-7.1-1">An ITR stateless solution to handle MTU | ||||
issues is described as | ||||
follows:</t> | follows:</t> | |||
<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-7. | ||||
<t><list style="numbers"> | 1-2"> | |||
<t>Define H to be the size, in octets, of the outer header an ITR | <li pn="section-7.1-2.1" derivedCounter="1.">Define H to be the size, i | |||
prepends to a packet. This includes the UDP and LISP header lengths.</t> | n octets, of the outer header an ITR | |||
prepends to a packet. This includes the UDP and LISP header lengths.</li> | ||||
<t>Define L to be the size, in octets, of the maximum-sized packet | <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 | an ITR can send to an ETR without the need for the ITR or any | |||
intermediate routers to fragment the packet. | intermediate routers to fragment the packet. | |||
The network administrator of the LISP deployment has to determine | The network administrator of the LISP deployment has to determine | |||
what is the suitable value of L so to make sure that no MTU issues arise. | what the suitable value of L is, so as to make sure that no MTU issues ar | |||
</t> | ise.</li> | |||
<li pn="section-7.1-2.3" derivedCounter="3.">Define an architectural c | ||||
<t>Define an architectural constant S for the maximum size of a | onstant S for the maximum size of a | |||
packet, in octets, an ITR MUST receive from the source so the | packet, in octets, an ITR <bcp14>MUST</bcp14> receive from the source so the | |||
effective MTU can be met. That is, L = S + H.</t> | effective MTU can be met. That is, L = S + H.</li> | |||
</list></t> | </ol> | |||
<t indent="0" pn="section-7.1-3">When an ITR receives a packet from a si | ||||
<t>When an ITR receives a packet from a site-facing interface and | te-facing interface and | |||
adds H octets worth of encapsulation to yield a packet size | adds H octets worth of encapsulation to yield a packet size | |||
greater than L octets (meaning the received packet size was | greater than L octets (meaning the received packet size was | |||
greater than S octets from the source), it resolves the MTU issue | greater than S octets from the source), it resolves the MTU issue | |||
by first splitting the original packet into 2 equal-sized | by first splitting the original packet into 2 equal-sized | |||
fragments. A LISP header is then prepended to each fragment. The | fragments. A LISP header is then prepended to each fragment. The | |||
size of the encapsulated fragments is then (S/2 + H), which is | size of the encapsulated fragments is then (S/2 + H), which is | |||
less than the ITR's estimate of the path MTU between the ITR and | less than the ITR's estimate of the PMTU between the ITR and | |||
its correspondent ETR.</t> | its correspondent ETR.</t> | |||
<t indent="0" pn="section-7.1-4">When an ETR receives encapsulated fragm | ||||
<t>When an ETR receives encapsulated fragments, it treats them | ents, it treats them | |||
as two individually encapsulated packets. It strips the LISP | as two individually encapsulated packets. It strips the LISP | |||
headers and then forwards each fragment to the destination host of | headers and then forwards each fragment to the destination host of | |||
the destination site. The two fragments are reassembled at | the destination site. The two fragments are reassembled at | |||
the destination host into the single IP datagram that was | the destination host into the single IP datagram that was | |||
originated by the source host. Note that reassembly can happen | originated by the source host. Note that reassembly can happen | |||
at the ETR if the encapsulated packet was fragmented at or after the | at the ETR if the encapsulated packet was fragmented at or after the | |||
ITR.</t> | ITR.</t> | |||
<t indent="0" pn="section-7.1-5">This behavior <bcp14>MUST</bcp14> be im | ||||
<t>This behavior MUST be performed by the ITR only when the source | plemented by the ITR only when the source | |||
host originates a packet with the 'DF' field of the IP header set | 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 to 1, or the | to 0. When the 'DF' field of the IP header is set to 1 or the | |||
packet is an IPv6 packet originated by the source host, the ITR | 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 | will drop the packet when the size (adding in the size of the | |||
encapsulation header) is greater than L and send an ICMPv4 ICMP | encapsulation header) is greater than L and send an ICMPv4 | |||
Unreachable/Fragmentation-Needed or ICMPv6 "Packet Too Big" | Unreachable / Fragmentation Needed or ICMPv6 Packet Too Big (PTB) | |||
message to the source with a value of S, where S is (L - H).</t> | message to the source with a value of S, where S is (L - H).</t> | |||
<t indent="0" pn="section-7.1-6">When the outer-header encapsulation use | ||||
<t>When the outer-header encapsulation uses an IPv4 header, an | s an IPv4 header, an | |||
implementation SHOULD set the DF bit to 1 so ETR fragment | implementation <bcp14>SHOULD</bcp14> set the DF bit to 1 so ETR fragment | |||
reassembly can be avoided. An implementation MAY set the DF | reassembly can be avoided. An implementation <bcp14>MAY</bcp14> set the DF | |||
bit in such headers to 0 if it has good reason to believe | bit in such headers to 0 if it has good reason to believe | |||
there are unresolvable path MTU issues between the sending ITR | there are unresolvable PMTU issues between the sending ITR | |||
and the receiving ETR.</t> | and the receiving ETR.</t> | |||
<t indent="0" pn="section-7.1-7">It is <bcp14>RECOMMENDED</bcp14> that L | ||||
<t>This specification RECOMMENDS that L be defined as 1500. | be defined as 1500. | |||
Additional information about in-network MTU and fragmentation issues can be | Additional information about in-network MTU and fragmentation issues can be | |||
found at <xref target="RFC4459"/>.</t> | found in <xref target="RFC4459" format="default" sectionFormat="of" derivedConte | |||
</section> | nt="RFC4459"/>.</t> | |||
</section> | ||||
<section anchor="MTU-STATEFUL" title="A Stateful Solution to MTU Handling"> | <section anchor="MTU-STATEFUL" numbered="true" toc="include" removeInRFC=" | |||
<t>An ITR stateful solution to handle MTU issues is described as | false" pn="section-7.2"> | |||
<name slugifiedName="name-a-stateful-solution-to-mtu-">A Stateful Soluti | ||||
on to MTU Handling</name> | ||||
<t indent="0" pn="section-7.2-1">An ITR stateful solution to handle MTU | ||||
issues is described as | ||||
follows:</t> | follows:</t> | |||
<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-7. | ||||
<t><list style="numbers"> | 2-2"> | |||
<t>The ITR will keep state of the effective MTU for each Locator | <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 | per Map-Cache entry. The effective MTU is what the core network | |||
can deliver along the path between the ITR and ETR.</t> | can deliver along the path between the ITR and ETR.</li> | |||
<li pn="section-7.2-2.2" derivedCounter="2.">When an IPv4-encapsulated | ||||
<t>When an IPv4-encapsulated packet with the DF bit set to 1, exceeds wh | packet with the DF bit set to 1 exceeds what the core network | |||
at the core network | ||||
can deliver, one of the intermediate routers on the path will | can deliver, one of the intermediate routers on the path will | |||
send an an ICMPv4 | send an ICMPv4 | |||
Unreachable/Fragmentation-Needed to the ITR, respectively. The | Unreachable / Fragmentation Needed message to the ITR. The | |||
ITR will parse the ICMP message to determine which Locator is | ITR will parse the ICMP message to determine which Locator is | |||
affected by the effective MTU change and then record the new | affected by the effective MTU change and then record the new | |||
effective MTU value in the Map-Cache entry.</t> | effective MTU value in the Map-Cache entry.</li> | |||
<li pn="section-7.2-2.3" derivedCounter="3.">When a packet is received | ||||
<t>When a packet is received by the ITR from a source inside | by the ITR from a source inside | |||
of the site and the size of the packet is greater than the | of the site and the size of the packet is greater than the | |||
effective MTU stored with the Map-Cache entry associated with | effective MTU stored with the Map-Cache entry associated with | |||
the destination EID the packet is for, the ITR will send an | the destination EID the packet is for, the ITR will send an | |||
ICMPv4 ICMP Unreachable/Fragmentation-Needed message back to the source. The packet size | ICMPv4 Unreachable / Fragmentation Needed message back to the source. Th e packet size | |||
advertised by the ITR in the ICMP message is the effective | advertised by the ITR in the ICMP message is the effective | |||
MTU minus the LISP encapsulation length.</t> | MTU minus the LISP encapsulation length.</li> | |||
</list></t> | </ol> | |||
<t indent="0" pn="section-7.2-3">Even though this mechanism is stateful, | ||||
<t>Even though this mechanism is stateful, it has advantages over | it has advantages over | |||
the stateless IP fragmentation mechanism, by not involving the | the stateless IP fragmentation mechanism, by not involving the | |||
destination host with reassembly of ITR fragmented packets.</t> | destination host with reassembly of ITR fragmented packets.</t> | |||
<t indent="0" pn="section-7.2-4">Please note that using ICMP packets for | ||||
<t>Please note that <xref target="RFC1191"/> and <xref target="RFC1981"/>, w | PMTU discovery, as described | |||
hich describe the use | in <xref target="RFC1191" format="default" sectionFormat="of" derivedContent="RF | |||
of ICMP packets for PMTU discovery, can behave suboptimally in the | C1191"/> and <xref target="RFC8201" format="default" sectionFormat="of" derivedC | |||
presence of ICMP black holes or off-path attackers that spoof ICMP. | ontent="RFC8201"/>, can result in suboptimal behavior in the | |||
presence of ICMP packet losses or off-path attackers that spoof ICMP. | ||||
Possible mitigations include ITRs and ETRs cooperating on MTU probe | Possible mitigations include ITRs and ETRs cooperating on MTU probe | |||
packets (<xref target="RFC4821"/>, <xref target="I-D.ietf-tsvwg-datagram-p lpmtud"/>), or ITRs | packets <xref target="RFC4821" format="default" sectionFormat="of" derived Content="RFC4821"/> <xref target="RFC8899" format="default" sectionFormat="of" d erivedContent="RFC8899"/> or ITRs | |||
storing the beginning of large packets to verify that they match | storing the beginning of large packets to verify that they match | |||
the echoed packet in ICMP Frag Needed/PTB.</t> | the echoed packet in an ICMP Fragmentation Needed / PTB message.</t> | |||
</section></section> | </section> | |||
</section> | ||||
<section anchor="instance" title="Using Virtualization and Segmentation with | <section anchor="instance" numbered="true" toc="include" removeInRFC="false" | |||
LISP"> | pn="section-8"> | |||
<t>There are several cases where segregation is needed at the | <name slugifiedName="name-using-virtualization-and-se">Using Virtualizatio | |||
n and Segmentation with LISP</name> | ||||
<t indent="0" pn="section-8-1">There are several cases where segregation i | ||||
s needed at the | ||||
EID level. For instance, this is the case for deployments | EID level. For instance, this is the case for deployments | |||
containing overlapping addresses, traffic isolation policies | containing overlapping addresses, traffic isolation policies, | |||
or multi-tenant virtualization. For these and other scenarios | or multi-tenant virtualization. For these and other scenarios | |||
where segregation is needed, Instance IDs are used.</t> | where segregation is needed, Instance IDs are used.</t> | |||
<t indent="0" pn="section-8-2">An Instance ID can be carried in a LISP-enc | ||||
<t>An Instance ID can be carried in a LISP-encapsulated | apsulated | |||
packet. An ITR that prepends a LISP header will copy a | packet. An ITR that prepends a LISP header will copy a | |||
24-bit value used by the LISP router to uniquely identify | 24-bit value used by the LISP router to uniquely identify | |||
the address space. The value is copied to the 'Instance ID' | the address space. The value is copied to the 'Instance ID' | |||
field of the LISP header, and the I-bit is set to 1.</t> | field of the LISP header, and the I-bit is set to 1.</t> | |||
<t indent="0" pn="section-8-3">When an ETR decapsulates a packet, the Inst | ||||
<t>When an ETR decapsulates a packet, the Instance ID from the | ance ID from the | |||
LISP header is used as a table identifier to locate the | LISP header is used as a table identifier to locate the | |||
forwarding table to use for the inner destination EID | forwarding table to use for the inner destination EID | |||
lookup.</t> | lookup.</t> | |||
<t indent="0" pn="section-8-4">For example, an 802.1Q VLAN tag or VPN iden | ||||
<t>For example, an 802.1Q VLAN tag or VPN identifier could be | tifier could be | |||
used as a 24-bit Instance ID. See <xref target="I-D.ietf-lisp-vpn"/> | used as a 24-bit Instance ID. See <xref target="I-D.ietf-lisp-vpn" forma | |||
for LISP VPN use-case details. Please note that the Instance ID | t="default" sectionFormat="of" derivedContent="LISP-VPN"/> | |||
is not protected, an on-path attacker can modify the tags and for instan | for details regarding LISP VPN use cases. Please note that the Instance | |||
ce, | ID | |||
allow communicatons between logically isolated VLANs.</t> | is not protected; an on-path attacker can modify the tags and, for insta | |||
nce, | ||||
<t>Participants within a LISP deployment must agree | allow communications between logically isolated VLANs.</t> | |||
<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 EIDs | on the meaning of Instance ID values. The source and destination EIDs | |||
MUST belong to the same Instance ID. | <bcp14>MUST</bcp14> belong to the same Instance ID. | |||
</t> | </t> | |||
<t indent="0" pn="section-8-6">The Instance ID <bcp14>SHOULD NOT</bcp14> b | ||||
<t>Instance ID SHOULD NOT be used with overlapping IPv6 EID addresses.</ | e used with overlapping IPv6 EID addresses.</t> | |||
t> | ||||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-9"> | ||||
<section title="Routing Locator Selection"> | <name slugifiedName="name-routing-locator-selection">Routing Locator Selec | |||
tion</name> | ||||
<t>The Map-Cache contains the state used by ITRs and PITRs to | <t indent="0" pn="section-9-1">The Map-Cache contains the state used by IT | |||
Rs and PITRs to | ||||
encapsulate packets. When an ITR/PITR receives a packet from | encapsulate packets. When an ITR/PITR receives a packet from | |||
inside the LISP site to a destination outside of the site a | inside the LISP site to a destination outside of the site, a | |||
longest-prefix match lookup of the EID is done to the | longest-prefix match lookup of the EID is done to the | |||
Map-Cache (see <xref target="Map-Cache" />). The lookup | Map-Cache (see <xref target="Map-Cache" format="default" sectionF ormat="of" derivedContent="Section 6"/>). The lookup | |||
returns a single Locator-Set containing a list of RLOCs | returns a single Locator-Set containing a list of RLOCs | |||
corresponding to the EID's topological location. Each RLOC in | corresponding to the EID's topological location. Each RLOC in | |||
the Locator-Set is associated with a 'Priority' and 'Weight', | the Locator-Set is associated with a Priority and Weight; | |||
this information is used to select the RLOC to | this information is used to select the RLOC to | |||
encapsulate.</t> | encapsulate.</t> | |||
<t indent="0" pn="section-9-2">The RLOC with the lowest Priority is select | ||||
<t>The RLOC with the lowest 'Priority' is selected. An RLOC | ed. An RLOC | |||
with 'Priority' 255 means that MUST NOT be used for | with Priority 255 means that it <bcp14>MUST NOT</bcp14> be used f | |||
forwarding. When multiple RLOCs have the same 'Priority' then | or | |||
the 'Weight' states how to load balance traffic among them. | forwarding. When multiple RLOCs have the same Priority, then | |||
The value of the 'Weight' represents the relative weight of | the Weight states how to load-balance traffic among them. | |||
The value of the Weight represents the relative weight of | ||||
the total packets that match the mapping entry.</t> | the total packets that match the mapping entry.</t> | |||
<t indent="0" pn="section-9-3">The following are different scenarios for c | ||||
<t>The following are different scenarios for choosing | hoosing | |||
RLOCs and the controls that are available:</t> | RLOCs and the controls that are available:</t> | |||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9-4 | ||||
<t><list style="symbols"> | "> | |||
<li pn="section-9-4.1">The server-side returns one RLOC. The client-side | ||||
<t>The server-side returns one RLOC. The client-side can only | can only | |||
use one RLOC. The server-side has complete control of the | use one RLOC. The server-side has complete control of the | |||
selection.</t> | selection.</li> | |||
<li pn="section-9-4.2">The server-side returns a list of RLOCs where a s | ||||
<t>The server-side returns a list of RLOCs where a subset | ubset | |||
of the list has the same best Priority. The client can only use | of the list has the same best Priority. The client can only use | |||
the subset list according to the | the subset list according to the | |||
weighting assigned by the server-side. In this case, the | weighting assigned by the server-side. In this case, the | |||
server-side controls both the subset list and load-splitting | server-side controls both the subset list and load splitting | |||
across its members. The client-side can use RLOCs outside | across its members. The client-side can use RLOCs outside | |||
of the subset list if it determines that the subset | of the subset list if it determines that the subset | |||
list is unreachable (unless RLOCs are set to a Priority of 255). | list is unreachable (unless RLOCs are set to a Priority of 255). | |||
Some sharing of control exists: the server-side determines | Some sharing of control exists: the server-side determines | |||
the destination RLOC list and load distribution while the | the destination RLOC list and load distribution while the | |||
client-side has the option of using alternatives to this list if | client-side has the option of using alternatives to this list if | |||
RLOCs in the list are unreachable.</t> | RLOCs in the list are unreachable.</li> | |||
<li pn="section-9-4.3">The server-side sets a Weight of zero for the RLO | ||||
<t>The server-side sets a Weight of zero for the RLOC subset | C subset | |||
list. In this case, the client-side can choose how the traffic | list. In this case, the client-side can choose how the traffic | |||
load is spread across the subset list. See <xref | load is spread across the subset list. See <xref target="loc-hash" forma | |||
target="loc-hash"/> for details on load-sharing mechanisms. | t="default" sectionFormat="of" derivedContent="Section 12"/> for details on load | |||
-sharing mechanisms. | ||||
Control is shared by the server-side determining the list and | Control is shared by the server-side determining the list and | |||
the client-side determining load distribution. Again, the | the client-side determining load distribution. Again, the | |||
client can use alternative RLOCs if the server-provided list | client can use alternative RLOCs if the server-provided list | |||
of RLOCs is unreachable.</t> | of RLOCs is unreachable.</li> | |||
<li pn="section-9-4.4">Either side (more likely the server-side ETR) dec | ||||
<t>Either side (more likely the server-side ETR) decides to "glean" | ides to "glean" | |||
the RLOCs. For example, if the server-side ETR gleans RLOCs, | the RLOCs. For example, if the server-side ETR gleans RLOCs, then | |||
then the client-side ITR gives the client-side ITR responsibility | the client-side ITR gives the server-side ETR responsibility for | |||
for bidirectional RLOC reachability and preferability. Server-side | bidirectional RLOC reachability and preferability. Server-side | |||
ETR gleaning of the client-side ITR RLOC is done by caching the | ETR gleaning of the client-side ITR RLOC is done by caching the | |||
inner-header source EID and the outer-header source RLOC of | inner-header source EID and the outer-header source RLOC of | |||
received packets. The client-side ITR controls how traffic is | received packets. The client-side ITR controls how traffic is | |||
returned and can alternate using an outer-header source RLOC, | returned and can, as an alternative, use an outer-header source | |||
which then can be added to the list the server-side ETR uses | RLOC, which then can be added to the list the server-side ETR uses | |||
to return traffic. Since no Priority or Weights are provided | to return traffic. Since no Priority or Weights are provided | |||
using this method, the server-side ETR MUST assume that each | using this method, the server-side ETR <bcp14>MUST</bcp14> assume that | |||
each | ||||
client-side ITR RLOC uses the same best Priority with a Weight | client-side ITR RLOC uses the same best Priority with a Weight | |||
of zero. In addition, since EID-Prefix encoding cannot be conveyed | of zero. In addition, since EID-Prefix encoding cannot be conveyed | |||
in data packets, the EID-to-RLOC Cache on Tunnel Routers can grow | in data packets, the EID-to-RLOC Map-Cache on Tunnel Routers can grow | |||
to be very large. Gleaning has several important considerations. | very large. Gleaning has several important considerations. | |||
A "gleaned" Map-Cache entry is only stored and used for a RECOMMENDED | A "gleaned" Map-Cache entry is only stored and used for a <bcp14>RECOM | |||
period of 3 seconds, | MENDED</bcp14> period of 3 seconds, | |||
pending verification. Verification MUST be performed by | pending verification. Verification <bcp14>MUST</bcp14> be performed b | |||
y | ||||
sending a Map-Request to the source EID (the inner-header IP source | sending a Map-Request to the source EID (the inner-header IP source | |||
address) of the received encapsulated packet. A reply to this | address) of the received encapsulated packet. A reply to this | |||
"verifying Map-Request" is used to fully populate the Map-Cache entry | "verifying Map-Request" is used to fully populate the Map-Cache entry | |||
for the "gleaned" EID and is stored and used for the time indicated | for the "gleaned" EID and is stored and used for the time indicated | |||
from the 'TTL' field of a received Map-Reply. When a verified Map- | in the 'Time to Live' field of a received Map-Reply. When a verified | |||
Cache entry is stored, data gleaning no longer occurs for subsequent | Map-Cache entry is stored, data gleaning no longer occurs for subsequent | |||
packets that have a source EID that matches the EID-Prefix of the | packets that have a source EID that matches the EID-Prefix of the | |||
verified entry. This "gleaning" mechanism MUST NOT be used over | verified entry. This "gleaning" mechanism <bcp14>MUST NOT</bcp14> be | |||
the public Internet and SHOULD only be used in trusted and closed | used over | |||
deployments. Refer to <xref target="SECURITY"/> for security issues r | the public Internet and <bcp14>SHOULD</bcp14> only be used in trusted | |||
egarding this | and closed | |||
mechanism.</t> | deployments. Refer to <xref target="SECURITY" format="default" sectio | |||
nFormat="of" derivedContent="Section 16"/> for security issues regarding this | ||||
</list></t> | mechanism.</li> | |||
</ul> | ||||
<t>RLOCs that appear in EID-to-RLOC Map-Reply messages are | <t indent="0" pn="section-9-5">RLOCs that appear in EID-to-RLOC Map-Reply | |||
assumed to be reachable when the R-bit <xref | messages are | |||
target="I-D.ietf-lisp-rfc6833bis"/> for the Locator record is set | assumed to be reachable when the R-bit <xref target="RFC9301" format="de | |||
to 1. When the R-bit is set to 0, an ITR or PITR MUST NOT | fault" sectionFormat="of" derivedContent="RFC9301"/> for the Locator record is s | |||
et | ||||
to 1. When the R-bit is set to 0, an ITR or PITR <bcp14>MUST NOT</bcp14 | ||||
> | ||||
encapsulate to the RLOC. Neither the information contained in | encapsulate to the RLOC. Neither the information contained in | |||
a Map-Reply nor that stored in the mapping database system | a Map-Reply nor that stored in the mapping database system | |||
provides reachability information for RLOCs. Note that | provides reachability information for RLOCs. Note that | |||
reachability is not part of the mapping system and is | reachability is not part of the Mapping System and is | |||
determined using one or more of the Routing Locator | determined using one or more of the RLOC | |||
reachability algorithms described in the next section.</t> | reachability algorithms described in the next section.</t> | |||
</section> | </section> | |||
<section anchor="loc-reach" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="loc-reach" title="Routing Locator Reachability"> | " pn="section-10"> | |||
<name slugifiedName="name-routing-locator-reachabilit">Routing Locator Rea | ||||
<t>Several Data-Plane mechanisms for determining RLOC | chability</name> | |||
<t indent="0" pn="section-10-1">Several data plane mechanisms for determin | ||||
ing RLOC | ||||
reachability are currently defined. Please note that | reachability are currently defined. Please note that | |||
additional Control-Plane based reachability mechanisms are | additional reachability mechanisms based on the control plane are | |||
defined in <xref target="I-D.ietf-lisp-rfc6833bis"/>.</t> | defined in <xref target="RFC9301" format="default" sectionFormat="of" de | |||
rivedContent="RFC9301"/>.</t> | ||||
<t><list style="numbers"> | <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-10-2 | |||
"> | ||||
<t>An ETR MAY examine the Locator-Status-Bits in the LISP | <li pn="section-10-2.1" derivedCounter="1.">An ETR <bcp14>MAY</bcp14> exa | |||
mine the Locator-Status-Bits in the LISP | ||||
header of an encapsulated data packet received from an | header of an encapsulated data packet received from an | |||
ITR. If the ETR is also acting as an ITR and has | ITR. If the ETR is also acting as an ITR and has | |||
traffic to return to the original ITR site, it can use | traffic to return to the original ITR site, it can use | |||
this status information to help select an RLOC.</t> | this status information to help select an RLOC.</li> | |||
<li pn="section-10-2.2" derivedCounter="2.">When an ETR receives an enca | ||||
<t>When an ETR receives an encapsulated packet from an ITR, | psulated packet from an ITR, | |||
the source RLOC from the outer header of the packet is likely | the source RLOC from the outer header of the packet is likely | |||
to be reachable. Please note that in some scenarios the | to be reachable. Please note that in some scenarios the | |||
RLOC from the outer header can be an spoofable field.</t> | RLOC from the outer header can be a spoofable field.</li> | |||
<li pn="section-10-2.3" derivedCounter="3.">An ITR/ETR pair can use the | ||||
<t>An ITR/ETR pair can use the 'Echo-Noncing' Locator | Echo-Noncing Locator | |||
reachability algorithms described in this section.</t> | reachability algorithms described in this section.</li> | |||
</ol> | ||||
</list></t> | <t indent="0" pn="section-10-3">When determining Locator up/down reachabil | |||
ity by | ||||
<t>When determining Locator up/down reachability by | ||||
examining the Locator-Status-Bits from the LISP-encapsulated | examining the Locator-Status-Bits from the LISP-encapsulated | |||
data packet, an ETR will receive up-to-date status from an | data packet, an ETR will receive an up-to-date status from an | |||
encapsulating ITR about reachability for all ETRs at the | encapsulating ITR about reachability for all ETRs at the | |||
site. CE-based ITRs at the source site can determine | site. CE-based ITRs at the source site can determine | |||
reachability relative to each other using the site IGP as | reachability relative to each other using the site IGP as | |||
follows:</t> | follows:</t> | |||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-10- | ||||
<t><list style="symbols"> | 4"> | |||
<li pn="section-10-4.1">Under normal circumstances, each ITR will advert | ||||
<t>Under normal circumstances, each ITR will advertise | ise | |||
a default route into the site IGP.</t> | a default route into the site IGP.</li> | |||
<li pn="section-10-4.2">If an ITR fails or if the upstream link to its P | ||||
<t>If an ITR fails or if the upstream link to its PE | rovider Edge | |||
fails, its default route will either time out or be | fails, its default route will either time out or be | |||
withdrawn.</t> | withdrawn.</li> | |||
</ul> | ||||
</list></t> | <t indent="0" pn="section-10-5">Each ITR can thus observe the presence or | |||
lack of a | ||||
<t>Each ITR can thus observe the presence or lack of a | ||||
default route originated by the others to determine the | default route originated by the others to determine the | |||
Locator-Status-Bits it sets for them.</t> | Locator-Status-Bits it sets for them.</t> | |||
<t indent="0" pn="section-10-6">When ITRs at the site are not deployed in | ||||
<t>When ITRs at the site are not deployed in CE routers, the IGP | CE routers, the IGP | |||
can still be used to determine the reachability of Locators, | can still be used to determine the reachability of Locators, | |||
provided they are injected into the IGP. This is | provided they are injected into the IGP. This is | |||
typically done when a /32 address is configured on a loopback | typically done when a /32 address is configured on a loopback | |||
interface.</t> | interface.</t> | |||
<t indent="0" pn="section-10-7"> RLOCs listed in a Map-Reply are numbered | ||||
<t> RLOCs listed in a Map-Reply are numbered with ordinals | with ordinals | |||
0 to n-1. The Locator-Status-Bits in a LISP-encapsulated | 0 to n-1. The Locator-Status-Bits in a LISP-encapsulated | |||
packet are numbered from 0 to n-1 starting with the least | packet are numbered from 0 to n-1 starting with the least | |||
significant bit. For example, if an RLOC listed in the 3rd | significant bit. For example, if an RLOC listed in the 3rd | |||
position of the Map-Reply goes down (ordinal value 2), | position of the Map-Reply goes down (ordinal value 2), | |||
then all ITRs at the site will clear the 3rd least | then all ITRs at the site will clear the 3rd least | |||
significant bit (xxxx x0xx) of the 'Locator-Status-Bits' | significant bit (xxxx x0xx) of the 'Locator-Status-Bits' | |||
field for the packets they encapsulate.</t> | field for the packets they encapsulate.</t> | |||
<t indent="0" pn="section-10-8">When an xTR decides to use Locator-Status- | ||||
<t>When an xTR decides to use 'Locator-Status-Bits' | Bits | |||
to affect reachability information, it acts as follows: | to affect reachability information, it acts as follows: | |||
ETRs decapsulating a packet will check for any change in | ETRs decapsulating a packet will check for any change in | |||
the 'Locator-Status-Bits' field. When a bit goes from 1 to 0, the | the 'Locator-Status-Bits' field. When a bit goes from 1 to 0, the | |||
ETR, if acting also as an ITR, will refrain from encapsulating | ETR, if also acting as an ITR, will refrain from encapsulating | |||
packets to an RLOC that is indicated as down. It will only resume | packets to an RLOC that is indicated as down. It will only resume | |||
using that RLOC if the corresponding Locator-Status-Bit | using that RLOC if the corresponding Locator-Status-Bit | |||
returns to a value of 1. Locator-Status-Bits are associated with a Loc ator-Set | returns to a value of 1. Locator-Status-Bits are associated with a Loc ator-Set | |||
per EID-Prefix. Therefore, when a Locator becomes unreachable, the | per EID-Prefix. Therefore, when a Locator becomes unreachable, the | |||
Locator-Status-Bit that corresponds to that Locator's position in 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 | list returned by the last Map-Reply will be set to zero for that | |||
particular EID-Prefix. | particular EID-Prefix. | |||
</t> | </t> | |||
<t indent="0" pn="section-10-9">Locator-Status-Bits <bcp14>MUST NOT</bcp14 | ||||
<t>Locator-Status-Bits MUST NOT be used | > be used | |||
over the public Internet and SHOULD only be used in trusted | over the public Internet and <bcp14>SHOULD</bcp14> only be used | |||
and closed deployments. In addition Locator-Status-Bits | in trusted | |||
SHOULD be coupled with Map-Versioning (<xref target="map-versioni | and closed deployments. In addition, Locator-Status-Bits | |||
ng"/>) | <bcp14>SHOULD</bcp14> be coupled with Map-Versioning <xref target | |||
="RFC9302" format="default" sectionFormat="of" derivedContent="RFC9302"/> | ||||
to prevent race conditions where Locator-Status-Bits are interpreted as | to prevent race conditions where Locator-Status-Bits are interpreted as | |||
referring to different RLOCs than intended. Refer to <xref target="SECURITY" /> | referring to different RLOCs than intended. Refer to <xref target="SECURITY" format="default" sectionFormat="of" derivedContent="Section 16"/> | |||
for security issues regarding this mechanism.</t> | for security issues regarding this mechanism.</t> | |||
<t indent="0" pn="section-10-10">If an ITR encapsulates a packet to an ETR | ||||
<t>If an ITR encapsulates a packet to an ETR and the packet is | and the packet is | |||
received and decapsulated by the ETR, it is implied but not | received and decapsulated by the ETR, it is implied, but not | |||
confirmed by the ITR that the ETR's RLOC is reachable. In | confirmed by the ITR, that the ETR's RLOC is reachable. In | |||
most cases, the ETR can also reach the ITR but cannot assume | most cases, the ETR can also reach the ITR but cannot assume | |||
this to be true, due to the possibility of path asymmetry. In | this to be true, due to the possibility of path asymmetry. In | |||
the presence of unidirectional traffic flow from an ITR to an | the presence of unidirectional traffic flow from an ITR to an | |||
ETR, the ITR SHOULD NOT use the lack of return traffic as an | ETR, the ITR <bcp14>SHOULD NOT</bcp14> use the lack of return traffic as | |||
indication that the ETR is unreachable. Instead, it MUST use | an | |||
indication that the ETR is unreachable. Instead, it <bcp14>MUST</bcp14> | ||||
use | ||||
an alternate mechanism to determine reachability.</t> | an alternate mechanism to determine reachability.</t> | |||
<t indent="0" pn="section-10-11">The security considerations of <xref targ | ||||
<t>The security considerations of <xref target="SECURITY"/> | et="SECURITY" format="default" sectionFormat="of" derivedContent="Section 16"/> | |||
related to data-plane reachability applies to the data-plane | related to data plane reachability apply to the data plane | |||
RLOC reachability mechanisms described in this section.</t> | RLOC reachability mechanisms described in this section.</t> | |||
<section anchor="echo-nonce" numbered="true" toc="include" removeInRFC="fa | ||||
<section anchor="echo-nonce" title="Echo Nonce Algorithm"> | lse" pn="section-10.1"> | |||
<t>When data flows bidirectionally between Locators from | <name slugifiedName="name-echo-nonce-algorithm">Echo-Nonce Algorithm</na | |||
different sites, a Data-Plane mechanism called "nonce | me> | |||
<t indent="0" pn="section-10.1-1">When data flows bidirectionally betwee | ||||
n Locators from | ||||
different sites, a data plane mechanism called "nonce | ||||
echoing" can be used to determine reachability between an ITR | echoing" can be used to determine reachability between an ITR | |||
and ETR. When an ITR wants to solicit a nonce echo, it sets | 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 | the N- and E-bits and places a 24-bit nonce <xref target="RFC4086" form | |||
target="RFC4086" /> in the LISP header of the next | at="default" sectionFormat="of" derivedContent="RFC4086"/> in the LISP header of | |||
the next | ||||
encapsulated data packet.</t> | encapsulated data packet.</t> | |||
<t indent="0" pn="section-10.1-2">When this packet is received by the ET | ||||
<t>When this packet is received by the ETR, the encapsulated | R, the encapsulated | |||
packet is forwarded as normal. When the ETR is an xTR | packet is forwarded as normal. When the ETR is an xTR | |||
(co-located as an ITR), it then sends a data packet to the | (co-located as an ITR), it then sends a data packet to the | |||
ITR (when it is an xTR co-located as an ETR), it includes the | ITR (when it is an xTR co-located as an ETR) and includes the | |||
nonce received earlier with the N-bit set and E-bit | nonce received earlier with the N-bit set and E-bit | |||
cleared. The ITR sees this "echoed nonce" and knows that the | cleared. The ITR sees this "echoed nonce" and knows that the | |||
path to and from the ETR is up.</t> | path to and from the ETR is up.</t> | |||
<t indent="0" pn="section-10.1-3">The ITR will set the E-bit and N-bit f | ||||
<t>The ITR will set the E-bit and N-bit for every packet it | or every packet it | |||
sends while in the echo-nonce-request state. The time the | sends while in the Echo-Nonce-request state. The time the | |||
ITR waits to process the echoed nonce before it determines | ITR waits to process the echoed nonce before it determines that | |||
the path is unreachable is variable and is a choice left for | the path is unreachable is variable and is a choice left for | |||
the implementation.</t> | the implementation.</t> | |||
<t indent="0" pn="section-10.1-4">If the ITR is receiving packets from t | ||||
<t>If the ITR is receiving packets from the ETR but does not | he ETR but does not | |||
see the nonce echoed while being in the echo-nonce-request | see the nonce echoed while being in the Echo-Nonce-request | |||
state, then the path to the ETR is unreachable. This decision | state, then the path to the ETR is unreachable. This decision | |||
MAY be overridden by other Locator reachability | <bcp14>MAY</bcp14> be overridden by other Locator reachability | |||
algorithms. Once the ITR determines that the path to the ETR | algorithms. Once the ITR determines that the path to the ETR | |||
is down, it can switch to another Locator for that | is down, it can switch to another Locator for that | |||
EID-Prefix.</t> | EID-Prefix.</t> | |||
<t indent="0" pn="section-10.1-5">Note that "ITR" and "ETR" are relative | ||||
<t>Note that "ITR" and "ETR" are relative terms here. Both | terms here. Both | |||
devices MUST be implementing both ITR and ETR functionality | devices <bcp14>MUST</bcp14> be implementing both ITR and ETR functional | |||
for the echo nonce mechanism to operate.</t> | ity | |||
for the Echo-Nonce mechanism to operate.</t> | ||||
<t>The ITR and ETR MAY both go into the echo-nonce-request | <t indent="0" pn="section-10.1-6">The ITR and ETR <bcp14>MAY</bcp14> bot | |||
h go into the Echo-Nonce-request | ||||
state at the same time. The number of packets sent or the | state at the same time. The number of packets sent or the | |||
time during which echo nonce requests are sent is an | time during which Echo-Nonce request packets are sent is an | |||
implementation-specific setting. In this case, an xTR | implementation-specific setting. In this case, an xTR | |||
receiving the echo-nonce-request packets will suspend | receiving the Echo-Nonce request packets will suspend | |||
the echo-nonce-request state and setup a 'echo-nonce-request-state' tim | the Echo-Nonce state and set up an 'Echo-Nonce-request-state' timer. | |||
er. | After the 'Echo-Nonce-request-state' timer expires, it will resume | |||
After the 'echo-nonce-request-state' timer expires it will resume | the Echo-Nonce state.</t> | |||
the echo-nonce-request state.</t> | <t indent="0" pn="section-10.1-7">This mechanism does not completely sol | |||
ve the forward path | ||||
<t>This mechanism does not completely solve the forward path | ||||
reachability problem, as traffic may be unidirectional. That | reachability problem, as traffic may be unidirectional. That | |||
is, the ETR receiving traffic at a site MAY not be the same | is, the ETR receiving traffic at a site <bcp14>MAY</bcp14> not be the s ame | |||
device as an ITR that transmits traffic from that site, or | device as an ITR that transmits traffic from that site, or | |||
the site-to-site traffic is unidirectional so there is no ITR | the site-to-site traffic is unidirectional so there is no ITR | |||
returning traffic.</t> | returning traffic.</t> | |||
<t indent="0" pn="section-10.1-8">The Echo-Nonce algorithm is bilateral. | ||||
<t>The echo-nonce algorithm is bilateral. That is, if one | That is, if one | |||
side sets the E-bit and the other side is not enabled for | side sets the E-bit and the other side is not enabled for | |||
echo-noncing, then the echoing of the nonce does not occur | Echo-Noncing, then the echoing of the nonce does not occur | |||
and the requesting side may erroneously consider the Locator | and the requesting side may erroneously consider the Locator | |||
unreachable. An ITR SHOULD set the E-bit in an | unreachable. An ITR <bcp14>SHOULD</bcp14> set the E-bit in an | |||
encapsulated data packet when it knows the ETR is enabled for | encapsulated data packet when it knows the ETR is enabled for | |||
echo-noncing. This is conveyed by the E-bit in the | Echo-Noncing. This is conveyed by the E-bit in the | |||
Map-Reply message.</t> | Map-Reply message.</t> | |||
<t indent="0" pn="section-10.1-9">Many implementations default to not ad | ||||
<t>Many implementations default to not advertising they are | vertising that they are | |||
echo-nonce capable in Map-Reply messages and so RLOC-probing tends | Echo-Nonce capable in Map-Reply messages, and so RLOC-Probing tends | |||
to be used for RLOC reachability.</t> | to be used for RLOC reachability.</t> | |||
<t indent="0" pn="section-10.1-10">The Echo-Nonce mechanism <bcp14>MUST | ||||
<t>The echo-nonce mechanism MUST NOT be used | NOT</bcp14> be used | |||
over the public Internet and MUST only be used in trusted | over the public Internet and <bcp14>MUST</bcp14> only be used in | |||
and closed deployments. Refer to <xref target="SECURITY"/> for | trusted | |||
and closed deployments. Refer to <xref target="SECURITY" format=" | ||||
default" sectionFormat="of" derivedContent="Section 16"/> for | ||||
security issues regarding this mechanism.</t> | security issues regarding this mechanism.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="eid-reach" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="eid-reach" title="EID Reachability within a LISP Site"> | " pn="section-11"> | |||
<t>A site MAY be multihomed using two or more ETRs. The hosts | <name slugifiedName="name-eid-reachability-within-a-l">EID Reachability wi | |||
thin a LISP Site</name> | ||||
<t indent="0" pn="section-11-1">A site <bcp14>MAY</bcp14> be multihomed us | ||||
ing two or more ETRs. The hosts | ||||
and infrastructure within a site will be addressed using one | and infrastructure within a site will be addressed using one | |||
or more EID-Prefixes that are mapped to the RLOCs of the | or more EID-Prefixes that are mapped to the RLOCs of the | |||
relevant ETRs in the mapping system. One possible failure | relevant ETRs in the Mapping System. One possible failure | |||
mode is for an ETR to lose reachability to one or more of the | 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 | EID-Prefixes within its own site. When this occurs when the | |||
ETR sends Map-Replies, it can clear the R-bit associated with | 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 own Locator. And when the ETR is also an ITR, it can clear | |||
its Locator-Status-Bit in the encapsulation data header.</t> | its Locator-Status-Bit in the encapsulation data header.</t> | |||
<t indent="0" pn="section-11-2">It is recognized that there are no simple | ||||
<t>It is recognized that there are no simple solutions to the | solutions to the | |||
site partitioning problem because it is hard to know which | site partitioning problem because it is hard to know which | |||
part of the EID-Prefix range is partitioned and which Locators | part of the EID-Prefix range is partitioned and which Locators | |||
can reach any sub-ranges of the EID-Prefixes. Note that this | can reach any sub-ranges of the EID-Prefixes. Note that this | |||
is not a new problem introduced by the LISP architecture. The | is not a new problem introduced by the LISP architecture. At the time of | |||
problem exists today when a multihomed site uses BGP to | this writing, this problem exists when a multihomed site uses BGP to | |||
advertise its reachability upstream.</t> | advertise its reachability upstream.</t> | |||
</section> | </section> | |||
<section anchor="loc-hash" numbered="true" toc="include" removeInRFC="false" | ||||
<section anchor="loc-hash" title="Routing Locator Hashing"> | pn="section-12"> | |||
<t>When an ETR provides an EID-to-RLOC mapping in a | <name slugifiedName="name-routing-locator-hashing">Routing Locator Hashing | |||
</name> | ||||
<t indent="0" pn="section-12-1">When an ETR provides an EID-to-RLOC mappin | ||||
g in a | ||||
Map-Reply message that is stored in the Map-Cache of a | Map-Reply message that is stored in the Map-Cache of a | |||
requesting ITR, the Locator-Set for the EID-Prefix MAY | requesting ITR, the Locator-Set for the EID-Prefix <bcp14>MAY</bcp14> | |||
contain different Priority and Weight values for each | contain different Priority and Weight values for each | |||
locator address. When more than one best Priority Locator | Routing Locator Address. When more than one best Priority Locator | |||
exists, the ITR can decide how to load-share traffic against | exists, the ITR can decide how to load-share traffic against | |||
the corresponding Locators.</t> | the corresponding Locators.</t> | |||
<t indent="0" pn="section-12-2">The following hash algorithm <bcp14>MAY</b | ||||
<t>The following hash algorithm MAY be used by an ITR to | cp14> be used by an ITR to | |||
select a Locator for a packet destined to an EID for the | select a Locator for a packet destined to an EID for the | |||
EID-to-RLOC mapping:</t> | EID-to-RLOC mapping:</t> | |||
<ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-12-3 | ||||
<t><list style="numbers"> | "> | |||
<t>Either a source and destination address hash or the | <li pn="section-12-3.1" derivedCounter="1.">Either a source and destinati | |||
traditional 5-tuple hash can be used. The traditional | on address hash or the | |||
commonly used 5-tuple hash can be used. The commonly used | ||||
5-tuple hash includes the source and destination | 5-tuple hash includes the source and destination | |||
addresses; source and destination TCP, UDP, or Stream | addresses; source and destination TCP, UDP, or Stream | |||
Control Transmission Protocol (SCTP) port numbers; and the | Control Transmission Protocol (SCTP) port numbers; and the | |||
IP protocol number field or IPv6 next-protocol fields of a | IP protocol number field or IPv6 next-protocol fields of a | |||
packet that a host originates from within a LISP | packet that a host originates from within a LISP | |||
site. When a packet is not a TCP, UDP, or SCTP packet, the | site. When a packet is not a TCP, UDP, or SCTP packet, the | |||
source and destination addresses only from the header are | source and destination addresses only from the header are | |||
used to compute the hash.</t> | used to compute the hash.</li> | |||
<li pn="section-12-3.2" derivedCounter="2.">Take the hash value and divi | ||||
<t>Take the hash value and divide it by the number of | de it by the number of | |||
Locators stored in the Locator-Set for the EID-to-RLOC | Locators stored in the Locator-Set for the EID-to-RLOC | |||
mapping.</t> | mapping.</li> | |||
<li pn="section-12-3.3" derivedCounter="3.">The remainder will yield a v | ||||
<t>The remainder will yield a value of 0 to "number of | alue of 0 to "number of | |||
Locators minus 1". Use the remainder to select the Locator | Locators minus 1". Use the remainder to select the Locator | |||
in the Locator-Set.</t> | in the Locator-Set.</li> | |||
</list></t> | </ol> | |||
<t indent="0" pn="section-12-4">The specific hash algorithm the ITR uses f | ||||
<t>The specific hash algorithm the ITR uses for load-sharing | or load-sharing | |||
is out of scope for this document and does not prevent | is out of scope for this document and does not prevent | |||
interoperability.</t> | interoperability.</t> | |||
<t indent="0" pn="section-12-5">The source port <bcp14>SHOULD</bcp14> be t | ||||
<t>The Source port SHOULD be the same for all packets belonging to the | he same for all packets belonging to the | |||
same flow. Also note that when a packet is LISP encapsulated, the source | 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 | port number in the outer UDP header needs to be set. Selecting | |||
a hashed value allows core routers that are attached to Link | a hashed value allows core routers that are attached to Link | |||
Aggregation Groups (LAGs) to load-split the encapsulated | Aggregation Groups (LAGs) to load-split the encapsulated | |||
packets across member links of such LAGs. Otherwise, core | packets across member links of such LAGs. Otherwise, core | |||
routers would see a single flow, since packets have a source | routers would see a single flow, since packets have a source | |||
address of the ITR, for packets that are originated by | address of the ITR, for packets that are originated by | |||
different EIDs at the source site. A suggested setting for the | different EIDs at the source site. A suggested setting for the | |||
source port number computed by an ITR is a 5-tuple hash | source port number computed by an ITR is a 5-tuple hash | |||
function on the inner header, as described above. The source | function on the inner header, as described above. The source | |||
port SHOULD be the same for all packets belonging to the same | port <bcp14>SHOULD</bcp14> be the same for all packets belonging to the same | |||
flow.</t> | flow.</t> | |||
<t indent="0" pn="section-12-6">Many core router implementations use a 5-t | ||||
<t>Many core router implementations use a 5-tuple hash to decide | uple hash to decide | |||
how to balance packet load across members of a LAG. The 5-tuple | how to balance packet load across members of a LAG. The 5-tuple | |||
hash includes the source and destination addresses of the packet | hash includes the source and destination addresses of the packet | |||
and the source and destination ports when the protocol number in | and the source and destination ports when the protocol number in | |||
the packet is TCP or UDP. For this reason, UDP encoding is | the packet is TCP or UDP. For this reason, UDP encoding is | |||
used for LISP encapsulation. In this scenario, when the outer header is | used for LISP encapsulation. In this scenario, when the outer header is | |||
IPv6, the flow label MAY also be | IPv6, the flow label <bcp14>MAY</bcp14> also be | |||
set following the procedures specified in <xref target="RFC6438"/>. Wh | set following the procedures specified in <xref target="RFC6438" forma | |||
en the inner header | t="default" sectionFormat="of" derivedContent="RFC6438"/>. When the inner header | |||
is IPv6 then the flow label is not zero, it MAY be used to compute the | is IPv6 and the flow label is not zero, it <bcp14>MAY</bcp14> be used | |||
hash.</t> | to compute the hash.</t> | |||
</section> | ||||
</section> | <section anchor="update_mapping" numbered="true" toc="include" removeInRFC=" | |||
false" pn="section-13"> | ||||
<section anchor="update_mapping" title="Changing the Contents of EID-to-RLOC | <name slugifiedName="name-changing-the-contents-of-ei">Changing the Conten | |||
Mappings"> | ts of EID-to-RLOC Mappings</name> | |||
<t indent="0" pn="section-13-1">Since the LISP architecture uses a caching | ||||
<t>Since the LISP architecture uses a caching scheme to | scheme to | |||
retrieve and store EID-to-RLOC mappings, the only way an ITR | 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 | can get a more up-to-date mapping is to re-request the | |||
mapping. However, the ITRs do not know when the mappings | mapping. However, the ITRs do not know when the mappings | |||
change, and the ETRs do not keep track of which ITRs | change, and the ETRs do not keep track of which ITRs | |||
requested its mappings. For scalability reasons, it is | requested their mappings. For scalability reasons, it is | |||
desirable to maintain this approach but need to provide a | desirable to maintain this approach, but implementors need to provide a | |||
way for ETRs to change their mappings and inform the sites | way for ETRs to change their mappings and inform the sites | |||
that are currently communicating with the ETR site using | that are currently communicating with the ETR site using | |||
such mappings.</t> | such mappings.</t> | |||
<t indent="0" pn="section-13-2">This section defines two data plane mechan | ||||
<t>This section defines two Data-Plane mechanism for updating | ism for updating | |||
EID-to-RLOC mappings. Additionally, the Solicit-Map Request | EID-to-RLOC mappings. Additionally, the Solicit-Map-Request | |||
(SMR) Control-Plane updating mechanism is specified in <xref | (SMR) control plane updating mechanism is specified in <xref target="RFC9301" | |||
target="I-D.ietf-lisp-rfc6833bis" />.</t> | format="default" sectionFormat="of" derivedContent="RFC9301"/>.</t> | |||
<section anchor="lsb-changing" numbered="true" toc="include" removeInRFC=" | ||||
<section anchor="lsb-changing" title="Locator-Status-Bits"> | false" pn="section-13.1"> | |||
<name slugifiedName="name-locator-status-bits">Locator-Status-Bits</name | ||||
<t>Locator-Status-Bits (LSB) can also be used to keep track of the | > | |||
Locator status (up or down) when EID-to-RLOC mappings are changing. When LSB a | <t indent="0" pn="section-13.1-1">Locator-Status-Bits (LSBs) can also be | |||
re used in a LISP deployment, all LISP tunnel routers MUST implement both ITR an | used to keep track of the | |||
d ETR capabilities (therefore all tunnel routers are effectively xTRs). In this | Locator status (up or down) when EID-to-RLOC mappings are changing. When LSBs | |||
section the term "source xTR" is used to refer to the xTR setting the LSB and "d | are used in a LISP deployment, all LISP Tunnel Routers <bcp14>MUST</bcp14> imple | |||
estination xTR" is used to refer to the xTR receiving the LSB. The procedure is | ment both ITR and ETR capabilities (therefore, all Tunnel Routers are effectivel | |||
as follows: | y xTRs). In this section, the term "source xTR" is used to refer to the xTR sett | |||
</t> | ing the LSB and "destination xTR" is used to refer to the xTR receiving the LSB. | |||
The procedure is as follows: | ||||
<t>First, when a Locator record is added or removed from the Locator-Set, the | </t> | |||
source xTR | <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-13 | |||
will signal this by sending a Solicit-Map Request (SMR) Control-Plane message | .1-2"> | |||
<xref | <li pn="section-13.1-2.1" derivedCounter="1.">When a Locator record is a | |||
target="I-D.ietf-lisp-rfc6833bis" /> to the destination xTR. At this point the s | dded or removed from the Locator-Set, the source xTR | |||
ource xTR MUST NOT use LSB (L-bit = 0) since the | will signal this by sending an SMR control plane message <xref target="RFC9301 | |||
destination xTR site has outdated information. The source xTR will setup a 'use- | " format="default" sectionFormat="of" derivedContent="RFC9301"/> to the destinat | |||
LSB' timer.</t> | ion xTR. At this point, the source xTR <bcp14>MUST NOT</bcp14> use the LSB field | |||
, when the L-bit is 0, | ||||
<t>Second and as defined in <xref target="I-D.ietf-lisp-rfc6833bis" />, | since the destination xTR site has outdated information. | |||
upon reception of the SMR message the destination xTR will retrieve the updated | The source xTR will set up a 'use-LSB' timer.</li> | |||
EID-to-RLOC mappings by sending a Map-Request.</t> | <li pn="section-13.1-2.2" derivedCounter="2.">As defined in <xref targ | |||
et="RFC9301" format="default" sectionFormat="of" derivedContent="RFC9301"/>, | ||||
<t>And third, when the 'use-LSB' timer expires, the source xTR can use again L | upon reception of the SMR message, the destination xTR will retrieve the updated | |||
SB with the destination xTR to signal the Locator status (up or down). | EID-to-RLOC mappings by sending a Map-Request.</li> | |||
The specific value for the 'use-LSB' timer depends on the LISP deployment, the | <li pn="section-13.1-2.3" derivedCounter="3.">When the 'use-LSB' timer | |||
'use-LSB' timer needs to be large enough | expires, the source xTR can use the LSB again with the destination xTR to signa | |||
for the destination xTR to retreive the updated EID-to-RLOC mappings. A RECOMME | l the Locator status (up or down). | |||
NDED value for the 'use-LSB' timer is 5 minutes.</t> | The specific value for the 'use-LSB' timer depends on the LISP deployment; the | |||
</section> | 'use-LSB' timer needs to be large enough | |||
for the destination xTR to retrieve the updated EID-to-RLOC mappings. A <bcp14>R | ||||
<section anchor="map-versioning" title="Database Map-Versioning"> | ECOMMENDED</bcp14> value for the 'use-LSB' timer is 5 minutes.</li> | |||
<t>When there is unidirectional packet flow between an ITR and | </ol> | |||
</section> | ||||
<section anchor="map-versioning" numbered="true" toc="include" removeInRFC | ||||
="false" pn="section-13.2"> | ||||
<name slugifiedName="name-database-map-versioning">Database Map-Versioni | ||||
ng</name> | ||||
<t indent="0" pn="section-13.2-1">When there is unidirectional packet fl | ||||
ow between an ITR and | ||||
ETR, and the EID-to-RLOC mappings change on the ETR, it needs to | 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 | inform the ITR so encapsulation to a removed Locator can stop | |||
and can instead be started to a new Locator in the | and can instead be started to a new Locator in the | |||
Locator-Set.</t> | Locator-Set.</t> | |||
<t indent="0" pn="section-13.2-2">An ETR can send Map-Reply messages car | ||||
<t>An ETR, when it sends Map-Reply messages, conveys its | rying a Map-Version Number <xref target="RFC9302" format="default" sectionFormat | |||
own Map-Version Number. This is known as the Destination | ="of" derivedContent="RFC9302"/> in | |||
Map-Version Number. ITRs include the Destination | an EID-Record. This is known as the Destination Map-Version Number. | |||
Map-Version Number in packets they encapsulate to the | ITRs include the Destination Map-Version Number in packets they | |||
site. When an ETR decapsulates a packet and detects that the | encapsulate to the site.</t> | |||
Destination Map-Version Number is less than the current | <t indent="0" pn="section-13.2-3">An ITR, when it encapsulates packets t | |||
version for its mapping, the SMR procedure described in | o ETRs, can convey its own Map- | |||
<xref target="I-D.ietf-lisp-rfc6833bis" /> occurs.</t> | Version Number. This is known as the Source Map-Version Number.</t> | |||
<t indent="0" pn="section-13.2-4">When presented in EID-Records of Map-R | ||||
<t>An ITR, when it encapsulates packets to ETRs, can convey | egister messages <xref target="RFC9301" format="default" sectionFormat="of" deri | |||
its own Map-Version Number. This is known as the Source | vedContent="RFC9301"/>, a Map-Version | |||
Map-Version Number. When an ETR decapsulates a packet and | Number is a good way for the Map-Server <xref target="RFC9301" format="defaul | |||
detects that the Source Map-Version Number is greater than the | t" sectionFormat="of" derivedContent="RFC9301"/> to assure that all ETRs for a | |||
last Map-Version Number sent in a Map-Reply from the ITR's site, | site registering to it are synchronized according to the Map-Version | |||
the ETR will send a Map-Request to one of the ETRs for the source | Number.</t> | |||
site.</t> | <t indent="0" pn="section-13.2-5">See <xref target="RFC9302" format="def | |||
ault" sectionFormat="of" derivedContent="RFC9302"/> for a more | ||||
<t>A Map-Version Number is used as a sequence 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 Destination | ||||
Map-Version Number conveys 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. This is a good way for the Map-Server to assure that | ||||
all ETRs for a site registering to it will be synchronized | ||||
according to Map-Version Number.</t> | ||||
<t>Map-Version requires that ETRs within the LISP site are synchronized | ||||
with respect to the Map-Version Number, 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 th | ||||
is 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>See <xref target="I-D.ietf-lisp-6834bis" /> for a more | ||||
detailed analysis and description of Database | detailed analysis and description of Database | |||
Map-Versioning.</t> | Map-Versioning.</t> | |||
</section> | </section> | |||
</section> | ||||
</section> | <section anchor="multicast" numbered="true" toc="include" removeInRFC="false | |||
" pn="section-14"> | ||||
<section title="Multicast Considerations" anchor="multicast"> | <name slugifiedName="name-multicast-considerations">Multicast Consideratio | |||
<t>A multicast group address, as defined in the original Internet | ns</name> | |||
<t indent="0" pn="section-14-1">A multicast group address, as defined in t | ||||
he original Internet | ||||
architecture, is an identifier of a grouping of topologically | architecture, is an identifier of a grouping of topologically | |||
independent receiver host locations. The address encoding itself | independent receiver host locations. The address encoding itself | |||
does not determine the location of the receiver(s). The multicast | does not determine the location of the receiver(s). The multicast | |||
routing protocol, and the network-based state the protocol creates, | routing protocol and the network-based state the protocol creates | |||
determine where the receivers are located.</t> | determine where the receivers are located.</t> | |||
<t indent="0" pn="section-14-2">In the context of LISP, a multicast group | ||||
<t>In the context of LISP, a multicast group address is both an | address is both an | |||
EID and a Routing Locator. Therefore, no specific semantic or | EID and an RLOC. Therefore, no specific semantic or | |||
action needs to be taken for a destination address, as it would | action needs to be taken for a destination address, as it would | |||
appear in an IP header. Therefore, a group address that | appear in an IP header. Therefore, a group address that | |||
appears in an inner IP header built by a source host will be | appears in an inner IP header built by a source host will be | |||
used as the destination EID. The outer IP header (the | used as the destination EID. The outer IP header (the | |||
destination Routing Locator address), prepended by a LISP | destination RLOC address), prepended by a LISP | |||
router, can use the same group address as the destination | router, can use the same group address as the destination | |||
Routing Locator, use a multicast or unicast Routing Locator | RLOC, use a multicast or unicast RLOC | |||
obtained from a Mapping System lookup, or use other means to | obtained from a Mapping System lookup, or use other means to | |||
determine the group address mapping.</t> | determine the group address mapping.</t> | |||
<t indent="0" pn="section-14-3">With respect to the source RLOC address, t | ||||
<t>With respect to the source Routing Locator address, the ITR | he ITR | |||
prepends its own IP address as the source address of the outer | prepends its own IP address as the source address of the outer | |||
IP header, just like it would if the destination EID was a | IP header, just like it would if the destination EID was a | |||
unicast address. This source Routing Locator address, like any | unicast address. This source RLOC address, like any | |||
other Routing Locator address, MUST be routable on the underlay.</t> | other RLOC address, <bcp14>MUST</bcp14> be routable on the underlay.</t> | |||
<t indent="0" pn="section-14-4">There are two approaches for LISP-Multicas | ||||
<t>There are two approaches for LISP-Multicast, one that uses | t <xref target="RFC6831" format="default" sectionFormat="of" derivedContent="RFC | |||
6831"/>: one that uses | ||||
native multicast routing in the underlay with no support from | native multicast routing in the underlay with no support from | |||
the Mapping System and the other that uses only unicast routing | the Mapping System and another that uses only unicast routing | |||
in the underlay with support from the Mapping System. See <xref | in the underlay with support from the Mapping System. See <xref target="R | |||
target="RFC6831"/> and <xref target="RFC8378"/>, respectively, | FC6831" format="default" sectionFormat="of" derivedContent="RFC6831"/> and <xref | |||
target="RFC8378" format="default" sectionFormat="of" derivedContent="RFC8378"/> | ||||
, respectively, | ||||
for details. Details for LISP-Multicast and interworking with | for details. Details for LISP-Multicast and interworking with | |||
non-LISP sites are described in <xref target="RFC6831"/> and | non-LISP sites are described in <xref target="RFC6831" format="default" s | |||
<xref target="RFC6832"/>.</t> | ectionFormat="of" derivedContent="RFC6831"/> and | |||
<xref target="RFC6832" format="default" sectionFormat="of" derivedContent | ||||
="RFC6832"/>, respectively.</t> | ||||
</section> | </section> | |||
<section anchor="PUNT" numbered="true" toc="include" removeInRFC="false" pn= | ||||
<section title="Router Performance Considerations" | "section-15"> | |||
anchor="PUNT"> | <name slugifiedName="name-router-performance-consider">Router Performance | |||
<t>LISP is designed to be very "hardware-based forwarding | Considerations</name> | |||
<t indent="0" pn="section-15-1">LISP is designed to be very "hardware base | ||||
d and forwarding | ||||
friendly". A few implementation techniques can be used to | friendly". A few implementation techniques can be used to | |||
incrementally implement LISP:</t> | incrementally implement LISP:</t> | |||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-15- | ||||
<t><list style="symbols"> | 2"> | |||
<t>When a tunnel-encapsulated packet is received by an | <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 | ETR, the outer destination address may not be the address | |||
of the router. This makes it challenging for the control | of the router. This makes it challenging for the control | |||
plane to get packets from the hardware. This may be | plane to get packets from the hardware. This may be | |||
mitigated by creating special Forwarding Information Base | mitigated by creating special Forwarding Information Base | |||
(FIB) entries for the EID-Prefixes of EIDs served by the | (FIB) entries for the EID-Prefixes of EIDs served by the | |||
ETR (those for which the router provides an RLOC | ETR (those for which the router provides an RLOC | |||
translation). These FIB entries are marked with a flag | translation). These FIB entries are marked with a flag | |||
indicating that Control-Plane processing SHOULD be | indicating that control plane processing <bcp14>SHOULD</bcp14> be | |||
performed. The forwarding logic of testing for particular | performed. The forwarding logic of testing for particular | |||
IP protocol number values is not necessary. There are a | IP protocol number values is not necessary. There are a | |||
few proven cases where no changes to existing deployed | few proven cases where no changes to existing deployed | |||
hardware were needed to support the LISP Data-Plane.</t> | hardware were needed to support the LISP data plane.</li> | |||
<li pn="section-15-2.2">On an ITR, prepending a new IP header consists o | ||||
<t>On an ITR, prepending a new IP header consists of adding | f adding | |||
more octets to a MAC rewrite string and prepending the | more octets to a Message Authentication Code (MAC) rewrite string an | |||
d prepending the | ||||
string as part of the outgoing encapsulation | string as part of the outgoing encapsulation | |||
procedure. Routers that support Generic Routing Encapsulation | procedure. Routers that support Generic Routing Encapsulation | |||
(GRE) tunneling <xref target="RFC2784"/> or 6to4 tunneling | (GRE) tunneling <xref target="RFC2784" format="default" sectionForma | |||
<xref target="RFC3056"/> may already support this | t="of" derivedContent="RFC2784"/> or 6to4 tunneling | |||
action.</t> | <xref target="RFC3056" format="default" sectionFormat="of" derivedCo | |||
ntent="RFC3056"/> may already support this | ||||
<t>A packet's source address or interface the | action.</li> | |||
packet was received on can be used to select VRF | <li pn="section-15-2.3">A packet's source address or the interface on wh | |||
(Virtual Routing/Forwarding). The VRF's routing table | ich the | |||
can be used to find EID-to-RLOC mappings.</t> | packet was received can be used to select | |||
</list></t> | Virtual Routing and Forwarding (VRF). The VRF system's routing table | |||
can be used to find EID-to-RLOC mappings.</li> | ||||
<t>For performance issues related to Map-Cache management, see | </ul> | |||
<xref target="SECURITY" />.</t> | <t indent="0" pn="section-15-3">For performance issues related to Map-Cach | |||
e management, see | ||||
<xref target="SECURITY" format="default" sectionFormat="of" derivedConte | ||||
nt="Section 16"/>.</t> | ||||
</section> | </section> | |||
<section anchor="SECURITY" numbered="true" toc="include" removeInRFC="false" | ||||
<section title="Security Considerations" anchor="SECURITY"> | pn="section-16"> | |||
<t>In what follows we highlight security | <name slugifiedName="name-security-considerations">Security Considerations | |||
</name> | ||||
<t indent="0" pn="section-16-1">In what follows, we highlight security | ||||
considerations that apply when LISP is deployed in environments such | considerations that apply when LISP is deployed in environments such | |||
as those specified in <xref target="soa"/>.</t> | as those specified in <xref target="soa" format="default" sectionFormat="of" d | |||
erivedContent="Section 1.1"/>.</t> | ||||
<t>The optional mechanisms of gleaning is offered to directly obtain | <t indent="0" pn="section-16-2">The optional gleaning mechanism is offered | |||
a mapping from the LISP encapsulated packets. Specifically, an xTR | to directly obtain | |||
a mapping from the LISP-encapsulated packets. Specifically, an xTR | ||||
can learn the EID-to-RLOC mapping by inspecting the source RLOC and | can learn the EID-to-RLOC mapping by inspecting the source RLOC and | |||
source EID of an encapsulated packet, and insert this new mapping | source EID of an encapsulated packet and insert this new mapping | |||
into its Map-Cache. An off-path attacker can spoof the source EID | 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 | 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 | the attacker spoofs the source RLOC, it can mount a DoS attack by | |||
redirecting traffic to the spoofed victim's RLOC, potentially | redirecting traffic to the spoofed victim's RLOC, potentially | |||
overloading it.</t> | overloading it.</t> | |||
<t indent="0" pn="section-16-3">The LISP data plane defines several mechan | ||||
<t>The LISP Data-Plane defines several mechanisms to monitor RLOC | isms to monitor RLOC | |||
Data-Plane reachability, in this context Locator-Status Bits, | data plane reachability; in this context, Locator-Status-Bits, | |||
Nonce-Present and Echo-Nonce bits of the LISP encapsulation header | 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 | 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 | attacker able to spoof the RLOC and/or nonce of a victim's xTR can | |||
manipulate such mechanisms to declare false information about the | manipulate such mechanisms to declare false information about the | |||
RLOC's reachability status.</t> | RLOC's reachability status.</t> | |||
<t indent="0" pn="section-16-4">An example of such attacks is when an off- | ||||
<t>For example of such attacks, an off-path attacker can exploit the | path attacker can exploit the | |||
echo-nonce mechanism by sending data packets to an ITR with a random | Echo-Nonce mechanism by sending data packets to an ITR with a random | |||
nonce from an ETR's spoofed RLOC. Note the attacker must guess a | nonce from an ETR's spoofed RLOC. Note that the attacker only has a small wind | |||
valid nonce the ITR is requesting to be echoed within a small window | ow | |||
of time. The goal is to convince the ITR that the ETR's RLOC is | of time within which to guess a valid nonce that the ITR is requesting to be e | |||
choed. 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 | reachable even when it may not be reachable. If the attack is | |||
successful, the ITR believes the wrong reachability status of the | successful, the ITR believes the wrong reachability status of the | |||
ETR's RLOC until RLOC-probing detects the correct status. This time | ETR's RLOC until RLOC-Probing detects the correct status. This time | |||
frame is on the order of 10s of seconds. This specific attack can | frame is on the order of tens of seconds. This specific attack can | |||
be mitigated by preventing RLOC spoofing in the network by deploying | be mitigated by preventing RLOC spoofing in the network by deploying | |||
uRPF BCP 38 <xref target="RFC2827"/>. In addition and in order to exploit | Unicast Reverse Path Forwarding (uRPF) per <xref target="RFC8704" format="defa | |||
this vulnerability, the off-path attacker must send echo-nonce | ult" sectionFormat="of" derivedContent="RFC8704">BCP 84</xref>. In order to expl | |||
packets at high rate. If the nonces have never been requested by the | oit | |||
this vulnerability, the off-path attacker must also send Echo-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> | ITR, it can protect itself from erroneous reachability attacks.</t> | |||
<t indent="0" pn="section-16-5">A LISP-specific uRPF check is also possibl | ||||
<t>A LISP-specific uRPF check is also possible. When decapsulating, | e. When decapsulating, | |||
an ETR can check that the source EID and RLOC are valid EID-to-RLOC | an ETR can check that the source EID and RLOC are valid EID-to-RLOC | |||
mappings by checking the Mapping System.</t> | mappings by checking the Mapping System.</t> | |||
<t indent="0" pn="section-16-6">Map-Versioning is a data plane mechanism u | ||||
<t>Map-Versioning is a Data-Plane mechanism used to signal a peering | sed to signal to a peering | |||
xTR that a local EID-to-RLOC mapping has been updated, so that the | xTR that a local EID-to-RLOC mapping has been updated so that the | |||
peering xTR uses LISP Control-Plane signaling message to retrieve a | peering xTR uses a LISP control plane signaling message to retrieve a | |||
fresh mapping. This can be used by an attacker to forge the | fresh mapping. This can be used by an attacker to forge the | |||
map-versioning field of a LISP encapsulated header and force an | 'Map-Version' field of a LISP-encapsulated header and force an | |||
excessive amount of signaling between xTRs that may overload them.</t> | excessive amount of signaling between xTRs that may overload them. | |||
Further security considerations on Map-Versioning can be found in | ||||
<t>Locator-Status-Bits, echo-nonce and map-versioning MUST NOT be used | <xref target="RFC9302" format="default" sectionFormat="of" derivedContent= | |||
over the public Internet and SHOULD only be used in trusted | "RFC9302"/>.</t> | |||
and closed deployments. In addition Locator-Status-Bits | <t indent="0" pn="section-16-7">Locator-Status-Bits, the Echo-Nonce mechan | |||
SHOULD be coupled with map-versioning to prevent race conditions | ism, and Map-Versioning <bcp14>MUST NOT</bcp14> be used | |||
over the public Internet and <bcp14>SHOULD</bcp14> only be used in trusted | ||||
and closed deployments. In addition, Locator-Status-Bits | ||||
<bcp14>SHOULD</bcp14> be coupled with Map-Versioning to prevent race condition | ||||
s | ||||
where Locator-Status-Bits are interpreted as referring to different RLOCs than intended.</t> | where Locator-Status-Bits are interpreted as referring to different RLOCs than intended.</t> | |||
<t indent="0" pn="section-16-8">LISP implementations and deployments that | ||||
<t>LISP implementations and deployments which permit outer header fragments | permit outer header fragments | |||
of IPv6 LISP encapsulated packets as a means of dealing with MTU issues | of IPv6 LISP-encapsulated packets as a means of dealing with MTU issues | |||
should also use implementation techniques in ETRs to prevent this | should also use implementation techniques in ETRs to prevent this | |||
from being a DoS attack vector. Limits on the number of fragments | 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 | awaiting reassembly at an ETR, RTR, or PETR, and the rate of admitting | |||
such fragments may be used.</t> | such fragments, may be used.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-17"> | ||||
<section title="Network Management Considerations"> | <name slugifiedName="name-network-management-consider">Network Management | |||
<t>Considerations for network management tools exist so the LISP | Considerations</name> | |||
<t indent="0" pn="section-17-1">Considerations for network management tool | ||||
s exist so the LISP | ||||
protocol suite can be operationally managed. These mechanisms can | protocol suite can be operationally managed. These mechanisms can | |||
be found in <xref target="RFC7052" /> and <xref target="RFC6835" | be found in <xref target="RFC7052" format="default" sectionFormat="of" derived | |||
/>.</t> | Content="RFC7052"/> and <xref target="RFC6835" format="default" sectionFormat="o | |||
</section> | f" derivedContent="RFC6835"/>.</t> | |||
</section> | ||||
<section title="Changes since RFC 6830"> | <section numbered="true" toc="include" removeInRFC="false" pn="section-18"> | |||
<t>For implementation considerations, the following changes have been made | <name slugifiedName="name-changes-since-rfc-6830">Changes since RFC 6830</ | |||
to this document since RFC 6830 was published:</t> | name> | |||
<t indent="0" pn="section-18-1">For implementation considerations, the fol | ||||
<t><list style="symbols"> | lowing changes have been made | |||
<t>It is no longer mandated that a maximum number of 2 LISP | to this document since <xref target="RFC6830" format="default" sectionFormat=" | |||
headers be prepended to a packet. If there is a application need | of" derivedContent="RFC6830"/> was published:</t> | |||
<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 o | ||||
f 2 LISP | ||||
headers be prepended to a packet. If there is an application need | ||||
for more than 2 LISP headers, an implementation can support | for more than 2 LISP headers, an implementation can support | |||
more. However, it is RECOMMENDED that a maximum of two LISP | more. However, it is <bcp14>RECOMMENDED</bcp14> that a maximum of 2 LISP | |||
headers can be prepended to a packet.</t> | headers can be prepended to a packet.</li> | |||
<li pn="section-18-2.2">The 3 reserved flag bits in the LISP header have | ||||
<t>The 3 reserved flag bits in the LISP header have been allocated | been allocated | |||
for <xref target="RFC8061"/>. The low-order 2 bits of the 3-bit | for <xref target="RFC8061" format="default" sectionFormat="of" derivedConten | |||
field (now named the KK bits) are used as a key identifier. The 1 | t="RFC8061"/>. The low-order 2 bits of the 3-bit | |||
remaining bit is still documented as reserved and unassigned.</t> | field (now named the KK-bits) are used as a key identifier. The 1 | |||
remaining bit is still documented as reserved and unassigned.</li> | ||||
<t>Data-Plane gleaning for creating map-cache entries has been | <li pn="section-18-2.3">Data plane gleaning for creating Map-Cache entri | |||
made optional. Any ITR implementations that depend on or assume the | es 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 | remote ETR is gleaning should not do so. This does not create any | |||
interoperability problems since the control-plane map-cache | interoperability problems, since the control plane Map-Cache | |||
population procedures are unilateral and are the typical method | population procedures are unilateral and are the typical method | |||
for map-cache population.</t> | for populating the Map-Cache.</li> | |||
<li pn="section-18-2.4">Most of the changes to this document, which redu | ||||
<t>The bulk of the changes to this document which reduces its | ce its | |||
length are due to moving the LISP control-plane messaging and | length, are due to moving the LISP control plane messaging and | |||
procedures to <xref target="I-D.ietf-lisp-rfc6833bis" />.</t> | procedures to <xref target="RFC9301" format="default" sectionFormat="of" der | |||
</list></t> | ivedContent="RFC9301"/>.</li> | |||
</section> | </ul> | |||
</section> | ||||
<section title="IANA Considerations" anchor="IANA"> | <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn= | |||
<t>This section provides guidance to the Internet Assigned Numbers | "section-19"> | |||
<name slugifiedName="name-iana-considerations">IANA Considerations</name> | ||||
<t indent="0" pn="section-19-1">This section provides guidance to the Inte | ||||
rnet Assigned Numbers | ||||
Authority (IANA) regarding registration of values related to this | Authority (IANA) regarding registration of values related to this | |||
Data-Plane LISP specification, in accordance with BCP 26 <xref | data plane LISP specification, in accordance with <xref target="RFC8126" forma | |||
target="RFC8126" />.</t> | t="default" sectionFormat="of" derivedContent="RFC8126">BCP 26</xref>.</t> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-19. | ||||
<section title="LISP UDP Port Numbers"> | 1"> | |||
<t>The IANA registry has allocated UDP port number 4341 for the | <name slugifiedName="name-lisp-udp-port-numbers">LISP UDP Port Numbers</ | |||
LISP Data-Plane. IANA has updated the description for UDP port | name> | |||
<t indent="0" pn="section-19.1-1">IANA has allocated UDP port number 434 | ||||
1 for the | ||||
LISP data plane. IANA has updated the description for UDP port | ||||
4341 as follows:</t> | 4341 as follows:</t> | |||
<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 Data 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> | ||||
<references pn="section-20.1"> | ||||
<name slugifiedName="name-normative-references">Normative References</na | ||||
me> | ||||
<reference anchor="RFC0768" target="https://www.rfc-editor.org/info/rfc7 | ||||
68" 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/rfc7 | ||||
91" 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/rfc2 | ||||
119" quoteTitle="true" derivedAnchor="RFC2119"> | ||||
<front> | ||||
<title>Key words for use in RFCs to Indicate Requirement Levels</tit | ||||
le> | ||||
<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 ca | ||||
pitalized. This document defines these words as they should be interpreted in I | ||||
ETF documents. This document specifies an Internet Best Current Practices for t | ||||
he 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/rfc2 | ||||
474" 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 th | ||||
e 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/rfc2 | ||||
983" 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 Different | ||||
iated 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/rfc6 | ||||
040" 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 a | ||||
ll 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 sig | ||||
nal one or two severity levels of congestion; whereas before, only one severity | ||||
level was supported. Tunnel endpoints can be updated in any order without affec | ||||
ting pre-existing uses of the ECN field, thus ensuring backward compatibility. | ||||
Nonetheless, operators wanting to support two severity levels (e.g., for pre-con | ||||
gestion 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 documen | ||||
t 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/rfc6 | ||||
438" quoteTitle="true" derivedAnchor="RFC6438"> | ||||
<front> | ||||
<title>Using the IPv6 Flow Label for Equal Cost Multipath Routing an | ||||
d 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 l | ||||
abel 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/rfc6 | ||||
830" 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 protoc | ||||
ol that enables separation of IP addresses into two new numbering spaces: Endpoi | ||||
nt Identifiers (EIDs) and Routing Locators (RLOCs). No changes are required to e | ||||
ither 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 Addressin | ||||
g Workshop. This document defines an Experimental Protocol for the Internet comm | ||||
unity.</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/rfc6 | ||||
831" quoteTitle="true" derivedAnchor="RFC6831"> | ||||
<front> | ||||
<title>The Locator/ID Separation Protocol (LISP) for Multicast Envir | ||||
onments</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 r | ||||
outing will function in an environment where Locator/ID Separation is deployed u | ||||
sing the Locator/ID Separation Protocol (LISP) architecture. This document defi | ||||
nes 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/rfc8 | ||||
126" 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 t | ||||
hat use constants to identify various protocol parameters. To ensure that the va | ||||
lues in these fields do not have conflicting uses and to promote interoperabilit | ||||
y, 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, g | ||||
uidance 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. Th | ||||
is document defines a framework for the documentation of these guidelines by spe | ||||
cification authors, in order to assure that the provided guidance for the IANA C | ||||
onsiderations is clear and addresses the various issues that are likely in the o | ||||
peration of a registry.</t> | ||||
<t indent="0">This is the third edition of this document; it obsol | ||||
etes 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/rfc8 | ||||
174" quoteTitle="true" derivedAnchor="RFC8174"> | ||||
<front> | ||||
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
tle> | ||||
<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 clar | ||||
ifying that only UPPERCASE usage of the key words have the defined special meani | ||||
ngs.</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/rfc8 | ||||
200" 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 Pr | ||||
otocol (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/rfc8 | ||||
378" 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 L | ||||
ocator/ID Separation Protocol (LISP) sites, the core network is required to use | ||||
native multicast so packets can be delivered from sources to group members. Whe | ||||
n multicast is not available to connect the multicast sites together, a signal-f | ||||
ree 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 enc | ||||
apsulators at the source LISP multicast site can find decapsulators at the recei | ||||
ver 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/rfc8 | ||||
704" 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 imp | ||||
rovement of the unicast Reverse Path Forwarding (uRPF) techniques (see RFC 3704) | ||||
for detection and mitigation of source address spoofing (see BCP 38). Strict u | ||||
RPF is inflexible about directionality, the loose uRPF is oblivious to direction | ||||
ality, and the current feasible-path uRPF attempts to strike a balance between t | ||||
he two (see RFC 3704). However, as shown in this document, the existing feasibl | ||||
e-path uRPF still has shortcomings. This document describes enhanced feasible-p | ||||
ath uRPF (EFP-uRPF) techniques that are more flexible (in a meaningful way) abou | ||||
t 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 en | ||||
courage 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/rfc9 | ||||
301" 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" r | ||||
ole="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/rfc9 | ||||
302" 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 Bonaven | ||||
ture"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="October" year="2022"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9302"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9302"/> | ||||
</reference> | ||||
</references> | ||||
<references 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" quoteTitle="true" derivedAnchor="CHIAPPA"> | ||||
<front> | ||||
<title>Endpoints and Endpoint Names: A Proposed Enhancement to the I | ||||
nternet Architecture</title> | ||||
<author initials="J." surname="Chiappa" fullname="J. Noel Chiappa"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="1999"/> | ||||
</front> | ||||
</reference> | ||||
<reference 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>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. | ||||
<figure> <artwork><![CDATA[ | </t> | |||
lisp-data 4341 udp LISP Data Packets | </abstract> | |||
]]></artwork> </figure> | </front> | |||
</section> | <seriesInfo name="Internet-Draft" value="draft-ietf-lisp-vpn-10"/> | |||
</section> | <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf- | |||
lisp-vpn-10.txt"/> | ||||
</middle> | <refcontent>Work in Progress</refcontent> | |||
</reference> | ||||
<back> | <reference anchor="RFC1034" target="https://www.rfc-editor.org/info/rfc1 | |||
034" quoteTitle="true" derivedAnchor="RFC1034"> | ||||
<references title='Normative References'> | <front> | |||
<?rfc include="reference.RFC.2827'?> | <title>Domain names - concepts and facilities</title> | |||
<?rfc include="reference.RFC.2119'?> | <author fullname="P. Mockapetris" initials="P." surname="Mockapetris | |||
<?rfc include="reference.RFC.6040'?> | "/> | |||
<?rfc include="reference.RFC.2474'?> | <date month="November" year="1987"/> | |||
<?rfc include="reference.RFC.8200'?> | <abstract> | |||
<?rfc include="reference.RFC.0768'?> | <t indent="0">This RFC is the revised basic definition of The Doma | |||
<?rfc include="reference.RFC.6438'?> | in Name System. It obsoletes RFC-882. This memo describes the domain style nam | |||
<?rfc include="reference.RFC.0791'?> | es and their used for host address look up and electronic mail forwarding. It d | |||
<?rfc include="reference.RFC.2983'?> | iscusses the clients and servers in the domain name system and the protocol used | |||
<?rfc include="reference.RFC.6830'?> | between them.</t> | |||
<?rfc include="reference.RFC.6831'?> | </abstract> | |||
<?rfc include="reference.RFC.8378'?> | </front> | |||
<?rfc include="reference.RFC.8174'?> | <seriesInfo name="STD" value="13"/> | |||
<?rfc include="reference.RFC.8126'?> | <seriesInfo name="RFC" value="1034"/> | |||
<?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-l | <seriesInfo name="DOI" value="10.17487/RFC1034"/> | |||
isp-rfc6833bis.xml'?> | </reference> | |||
<?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-l | <reference anchor="RFC1191" target="https://www.rfc-editor.org/info/rfc1 | |||
isp-6834bis.xml'?> | 191" quoteTitle="true" derivedAnchor="RFC1191"> | |||
</references> | <front> | |||
<title>Path MTU discovery</title> | ||||
<references title="Informative References"> | <author fullname="J. Mogul" initials="J." surname="Mogul"/> | |||
<?rfc include="reference.RFC.1191'?> | <author fullname="S. Deering" initials="S." surname="Deering"/> | |||
<?rfc include="reference.RFC.1981'?> | <date month="November" year="1990"/> | |||
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D | <abstract> | |||
.ietf-tsvwg-datagram-plpmtud.xml'?> | <t indent="0">This memo describes a technique for dynamically disc | |||
<?rfc include="reference.RFC.4821'?> | overing the maximum transmission unit (MTU) of an arbitrary internet path. It s | |||
<?rfc include="reference.RFC.3232'?> | pecifies a small change to the way routers generate one type of ICMP message. F | |||
<?rfc include="reference.RFC.4086'?> | or a path that passes through a router that has not been so changed, this techni | |||
<?rfc include="reference.RFC.4459'?> | que might not discover the correct Path MTU, but it will always choose a Path MT | |||
<?rfc include="reference.RFC.1918'?> | U as accurate as, and in many cases more accurate than, the Path MTU that would | |||
<?rfc include="reference.RFC.8061'?> | be chosen by current practice. [STANDARDS-TRACK]</t> | |||
<?rfc include="reference.RFC.7215'?> | </abstract> | |||
<?rfc include="reference.RFC.7052'?> | </front> | |||
<?rfc include="reference.RFC.1034'?> | <seriesInfo name="RFC" value="1191"/> | |||
<?rfc include="reference.RFC.3261'?> | <seriesInfo name="DOI" value="10.17487/RFC1191"/> | |||
<?rfc include="reference.RFC.2784'?> | </reference> | |||
<?rfc include="reference.RFC.3056'?> | <reference anchor="RFC2453" target="https://www.rfc-editor.org/info/rfc2 | |||
<?rfc include="reference.RFC.4984'?> | 453" quoteTitle="true" derivedAnchor="RFC2453"> | |||
<?rfc include="reference.RFC.6832'?> | <front> | |||
<?rfc include="reference.RFC.6835'?> | <title>RIP Version 2</title> | |||
<?rfc include="reference.RFC.8060'?> | <author fullname="G. Malkin" initials="G." surname="Malkin"/> | |||
<?rfc include="reference.RFC.6935'?> | <date month="November" year="1998"/> | |||
<?rfc include="reference.RFC.6936'?> | <abstract> | |||
<?rfc include="reference.RFC.8085'?> | <t indent="0">This document specifies an extension of the Routing | |||
<?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-l | Information Protocol (RIP) to expand the amount of useful information carried in | |||
isp-introduction.xml'?> | RIP messages and to add a measure of security. [STANDARDS-TRACK]</t> | |||
<?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-l | </abstract> | |||
isp-vpn.xml'?> | </front> | |||
<seriesInfo name="STD" value="56"/> | ||||
<reference anchor="CHIAPPA" target="http://mercury.lcs.mit.edu/~jnc/tech/endpo | <seriesInfo name="RFC" value="2453"/> | |||
ints.txt"> | <seriesInfo name="DOI" value="10.17487/RFC2453"/> | |||
<front> | </reference> | |||
<title>Endpoints and Endpoint names: A Proposed | <reference anchor="RFC2677" target="https://www.rfc-editor.org/info/rfc2 | |||
</title> | 677" quoteTitle="true" derivedAnchor="RFC2677"> | |||
<author initials="J." surname="Chiappa"> | <front> | |||
<organization /> </author> | <title>Definitions of Managed Objects for the NBMA Next Hop Resoluti | |||
<date year="1999"/> | on Protocol (NHRP)</title> | |||
</front> | <author fullname="M. Greene" initials="M." surname="Greene"/> | |||
</reference> | <author fullname="J. Cucchiara" initials="J." surname="Cucchiara"/> | |||
<author fullname="J. Luciani" initials="J." surname="Luciani"/> | ||||
<reference anchor="AFN" target="http://www.iana.org/assignments/address-family | <date month="August" year="1999"/> | |||
-numbers"> | <abstract> | |||
<front> | <t indent="0">This memo defines a portion of the Management Inform | |||
<title>Address Family Numbers</title> | ation Base (MIB) for use with network management protocols in the Internet commu | |||
<author> | nity. [STANDARDS-TRACK]</t> | |||
<organization>IANA</organization> </author> | </abstract> | |||
<date month="August" year="2016"/> | </front> | |||
</front> | <seriesInfo name="RFC" value="2677"/> | |||
</reference> | <seriesInfo name="DOI" value="10.17487/RFC2677"/> | |||
</reference> | ||||
</references> | <reference anchor="RFC2784" target="https://www.rfc-editor.org/info/rfc2 | |||
784" quoteTitle="true" derivedAnchor="RFC2784"> | ||||
<section title="Acknowledgments"> | <front> | |||
<t>An initial thank you goes to Dave Oran for planting the seeds for | <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 pro | ||||
tocol. [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/rfc3 | ||||
056" 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 fo | ||||
r IPv6 sites to communicate with each other over the IPv4 network without explic | ||||
it 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/rfc3 | ||||
261" 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 includ | ||||
e 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/rfc4 | ||||
086" quoteTitle="true" derivedAnchor="RFC4086"> | ||||
<front> | ||||
<title>Randomness Requirements for Security</title> | ||||
<author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3 | ||||
rd"/> | ||||
<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 a | ||||
lgorithms that foil pattern analysis attempts. However, the security of these sy | ||||
stems is dependent on generating secret quantities for passwords, cryptographic | ||||
keys, and similar quantities. The use of pseudo-random processes to generate sec | ||||
ret quantities can result in pseudo-security. A sophisticated attacker may find | ||||
it easier to reproduce the environment that produced the secret quantities and t | ||||
o 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 pi | ||||
tfalls in using poor entropy sources or traditional pseudo-random number generat | ||||
ion techniques for generating such quantities. It recommends the use of truly ra | ||||
ndom hardware techniques and shows that the existing hardware on many systems ca | ||||
n be used for this purpose. It provides suggestions to ameliorate the problem wh | ||||
en 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 Interne | ||||
t 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/rfc4 | ||||
459" quoteTitle="true" derivedAnchor="RFC4459"> | ||||
<front> | ||||
<title>MTU and Fragmentation Issues with In-the-Network Tunneling</t | ||||
itle> | ||||
<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 reg | ||||
arding how large packets can be handled: whether such packets would be fragmente | ||||
d and reassembled (and how), whether Path MTU Discovery would be used, or how th | ||||
is scenario could be operationally avoided. This memo justifies why this is a c | ||||
ommon, non-trivial problem, and goes on to describe the different solutions and | ||||
their characteristics at some length. This memo provides information for the In | ||||
ternet 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/rfc4 | ||||
760" 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 sup | ||||
ports the extensions can interoperate with a router that doesn't support the ext | ||||
ensions. [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/rfc4 | ||||
821" 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 a | ||||
s an extension to RFC 1191 and RFC 1981, which specify ICMP-based Path MTU Disco | ||||
very 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/rfc4 | ||||
984" 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="Mey | ||||
er"/> | ||||
<author fullname="L. Zhang" initials="L." role="editor" surname="Zha | ||||
ng"/> | ||||
<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 O | ||||
ctober 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 op | ||||
erators are facing regarding the scalability of today's Internet routing system. | ||||
The key workshop findings include an analysis of the major factors that are dri | ||||
ving routing table growth, constraints in router technology, and the limitations | ||||
of today's Internet addressing architecture. It is hoped that these findings wi | ||||
ll serve as input to the IETF community and help identify next steps towards eff | ||||
ective solutions.</t> | ||||
<t indent="0">Note that this document is a report on the proceedin | ||||
gs 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 rang | ||||
e 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/rfc6 | ||||
832" quoteTitle="true" derivedAnchor="RFC6832"> | ||||
<front> | ||||
<title>Interworking between Locator/ID Separation Protocol (LISP) an | ||||
d 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 site | ||||
s running the Locator/ID Separation Protocol (LISP) to interoperate with Interne | ||||
t sites that may be using either IPv4, IPv6, or both but that are not running LI | ||||
SP. A fundamental property of LISP-speaking sites is that they use Endpoint Ide | ||||
ntifiers (EIDs), rather than traditional IP addresses, in the source and destina | ||||
tion fields of all traffic they emit or receive. While EIDs are syntactically i | ||||
dentical to IPv4 or IPv6 addresses, normally routes to them are not carried in t | ||||
he global routing system, so an interoperability mechanism is needed for non- LI | ||||
SP-speaking sites to exchange traffic with LISP-speaking sites. This document i | ||||
ntroduces 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 N | ||||
etwork Address Translation (NAT) functionality to LISP ITRs and LISP Egress Tunn | ||||
el Routers (ETRs) to substitute routable IP addresses for non-routable EIDs. Fi | ||||
nally, this document introduces the Proxy Egress Tunnel Router (Proxy-ETR) to ha | ||||
ndle cases where a LISP ITR cannot send packets to non-LISP sites without encaps | ||||
ulation. This document defines an Experimental Protocol for the Internet commun | ||||
ity.</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/rfc6 | ||||
835" quoteTitle="true" derivedAnchor="RFC6835"> | ||||
<front> | ||||
<title>The Locator/ID Separation Protocol Internet Groper (LIG)</tit | ||||
le> | ||||
<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 Proto | ||||
col (LISP) Internet Groper or 'lig' can be used to query the LISP mapping databa | ||||
se. This document describes how it works. This document is not an Internet Sta | ||||
ndards 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/rfc6 | ||||
935" 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 24 | ||||
60) to improve performance when a tunnel protocol uses UDP with IPv6 to tunnel p | ||||
ackets. The performance improvement is obtained by relaxing the IPv6 UDP checks | ||||
um requirement for tunnel protocols whose header information is protected on the | ||||
"inner" packet being carried. Relaxing this requirement removes the overhead a | ||||
ssociated with the computation of UDP checksums on IPv6 packets that carry the t | ||||
unnel protocol packets. This specification describes how the IPv6 UDP checksum | ||||
requirement can be relaxed when the encapsulated packet itself contains a checks | ||||
um. 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/rfc6 | ||||
936" quoteTitle="true" derivedAnchor="RFC6936"> | ||||
<front> | ||||
<title>Applicability Statement for the Use of IPv6 UDP Datagrams wit | ||||
h 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 fo | ||||
r 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 des | ||||
cribes the issues and design principles that need to be considered when UDP is u | ||||
sed with IPv6 to support tunnel encapsulations, and it examines the role of the | ||||
IPv6 UDP transport checksum. The document also identifies issues and constraint | ||||
s for deployment on network paths that include middleboxes. An appendix present | ||||
s a summary of the trade-offs that were considered in evaluating the safety of t | ||||
he 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/rfc7 | ||||
052" 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 m | ||||
anaged objects to support the monitoring devices of the Locator/ID Separation Pr | ||||
otocol (LISP). These objects provide information useful for monitoring LISP dev | ||||
ices, including determining basic LISP configuration information, LISP functiona | ||||
l 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/rfc7 | ||||
215" 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="Cabel | ||||
los-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/Ide | ||||
ntifier Separation Protocol (LISP) deployment scenarios. It discusses the place | ||||
ment of new network elements introduced by the protocol, representing the thinki | ||||
ng of the LISP working group as of Summer 2013. LISP deployment scenarios may h | ||||
ave 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/rfc8 | ||||
060" 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 enc | ||||
oding 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/rfc8 | ||||
061" quoteTitle="true" derivedAnchor="RFC8061"> | ||||
<front> | ||||
<title>Locator/ID Separation Protocol (LISP) Data-Plane Confidential | ||||
ity</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 t | ||||
raffic encapsulated using the Locator/ID Separation Protocol (LISP). The design | ||||
describes how key exchange is achieved using existing LISP control-plane mechan | ||||
isms 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/rfc8 | ||||
085" 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. Th | ||||
is document provides guidelines on the use of UDP for the designers of applicati | ||||
ons, tunnels, and other protocols that use UDP. Congestion control guidelines ar | ||||
e a primary focus, but the document also provides guidance on other topics, incl | ||||
uding message sizes, reliability, checksums, middlebox traversal, the use of Exp | ||||
licit 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 collap | ||||
se and to establish some degree of fairness with concurrent traffic. They may al | ||||
so need to implement additional mechanisms, depending on how they use UDP.</t> | ||||
<t indent="0">Some guidance is also applicable to the design of ot | ||||
her 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/rfc8 | ||||
201" 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="Hi | ||||
nden"/> | ||||
<date month="July" year="2017"/> | ||||
<abstract> | ||||
<t indent="0">This document describes Path MTU Discovery (PMTUD) f | ||||
or 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/rfc8 | ||||
899" quoteTitle="true" derivedAnchor="RFC8899"> | ||||
<front> | ||||
<title>Packetization Layer Path MTU Discovery for Datagram Transport | ||||
s</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 ap | ||||
plication that uses a PL, to discover whether a network path can support the cur | ||||
rent size of datagram. This can be used to detect and reduce the message size wh | ||||
en 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 functio | ||||
nality for datagram transports that is equivalent to the PLPMTUD specification f | ||||
or TCP, specified in RFC 4821, which it updates. It also updates the UDP Usage G | ||||
uidelines to refer to this method for use with UDP datagrams and updates SCTP.</ | ||||
t> | ||||
<t indent="0">The document provides implementation notes for incor | ||||
porating Datagram PMTUD into IETF datagram transports or applications that use d | ||||
atagram transports.</t> | ||||
<t indent="0">This specification updates RFC 4960, RFC 4821, RFC 6 | ||||
951, 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/rfc9 | ||||
299" quoteTitle="true" derivedAnchor="RFC9299"> | ||||
<front> | ||||
<title>An Architectural Introduction to the Locator/ID Separation Pr | ||||
otocol (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> | ||||
<section numbered="false" toc="include" removeInRFC="false" pn="section-appe | ||||
ndix.a"> | ||||
<name slugifiedName="name-acknowledgments">Acknowledgments</name> | ||||
<t indent="0" pn="section-appendix.a-1">An initial thank you goes to <cont | ||||
act fullname="Dave Oran"/> for planting the seeds for | ||||
the initial ideas for LISP. His consultation continues to provide | the initial ideas for LISP. His consultation continues to provide | |||
value to the LISP authors.</t> | value to the LISP authors.</t> | |||
<t indent="0" pn="section-appendix.a-2">A special and appreciative thank y | ||||
<t>A special and appreciative thank you goes to Noel Chiappa for | ou goes to <contact fullname="Noel Chiappa"/> for | |||
providing architectural impetus over the past decades on separation | providing architectural impetus over the past decades on separation | |||
of location and identity, as well as detailed reviews of the LISP | of location and identity, as well as detailed reviews of the LISP | |||
architecture and documents, coupled with enthusiasm for making LISP | architecture and documents, coupled with enthusiasm for making LISP | |||
a practical and incremental transition for the Internet.</t> | a practical and incremental transition for the Internet.</t> | |||
<t indent="0" pn="section-appendix.a-3">The original authors would like to | ||||
<t>The original authors would like to gratefully acknowledge many people who | gratefully acknowledge many people who | |||
have contributed discussions and ideas to the making of this | have contributed discussions and ideas to the making of this | |||
proposal. They include Scott Brim, Andrew Partan, John Zwiebel, | proposal. They include <contact fullname="Scott Brim"/>, <contact fullname="A | |||
Jason Schiller, Lixia Zhang, Dorian Kim, Peter Schoenmaker, Vijay | ndrew Partan"/>, <contact fullname="John Zwiebel"/>, | |||
Gill, Geoff Huston, David Conrad, Mark Handley, Ron Bonica, Ted | <contact fullname="Jason Schiller"/>, <contact fullname="Lixia Zhang"/>, <cont | |||
Seely, Mark Townsley, Chris Morrow, Brian Weis, Dave McGrew, Peter | act fullname="Dorian Kim"/>, <contact fullname="Peter Schoenmaker"/>, <contact f | |||
Lothberg, Dave Thaler, Eliot Lear, Shane Amante, Ved Kafle, Olivier | ullname="Vijay Gill"/>, <contact fullname="Geoff Huston"/>, <contact fullname= | |||
Bonaventure, Luigi Iannone, Robin Whittle, Brian Carpenter, Joel | "David Conrad"/>, <contact fullname="Mark Handley"/>, <contact fullname="Ron Bon | |||
Halpern, Terry Manderson, Roger Jorgensen, Ran Atkinson, Stig | ica"/>, <contact fullname="Ted Seely"/>, <contact fullname="Mark Townsley"/>, | |||
Venaas, Iljitsch van Beijnum, Roland Bless, Dana Blair, Bill Lynch, | <contact fullname="Chris Morrow"/>, <contact fullname="Brian Weis"/>, <contact f | |||
Marc Woolward, Damien Saucez, Damian Lezama, Attilla De Groot, | ullname="Dave McGrew"/>, <contact fullname="Peter Lothberg"/>, <contact fullna | |||
Parantap Lahiri, David Black, Roque Gagliano, Isidor Kouvelas, | me="Dave Thaler"/>, <contact fullname="Eliot Lear"/>, <contact fullname="Shane A | |||
Jesper Skriver, Fred Templin, Margaret Wasserman, Sam Hartman, | mante"/>, <contact fullname="Ved Kafle"/>, <contact fullname="Olivier Bonavent | |||
Michael Hofling, Pedro Marques, Jari Arkko, Gregg Schudel, Srinivas | ure"/>, <contact fullname="Luigi Iannone"/>, <contact fullname="Robin Whittle"/> | |||
Subramanian, Amit Jain, Xu Xiaohu, Dhirendra Trivedi, Yakov Rekhter, | , <contact fullname="Brian Carpenter"/>, <contact fullname="Joel Halpern"/>, < | |||
John Scudder, John Drake, Dimitri Papadimitriou, Ross Callon, Selina | contact fullname="Terry Manderson"/>, <contact fullname="Roger Jorgensen"/>, <co | |||
Heimlich, Job Snijders, Vina Ermagan, Fabio Maino, Victor Moreno, | ntact fullname="Ran Atkinson"/>, <contact fullname="Stig Venaas"/>, <contact f | |||
Chris White, Clarence Filsfils, Alia Atlas, Florin Coras and Alberto | ullname="Iljitsch van Beijnum"/>, <contact fullname="Roland Bless"/>, <contact f | |||
Rodriguez.</t> | ullname="Dana Blair"/>, <contact fullname="Bill Lynch"/>, | |||
<contact fullname="Marc Woolward"/>, <contact fullname="Damien Saucez"/>, <con | ||||
<t>This work originated in the Routing Research Group (RRG) of the | tact fullname="Damian Lezama"/>, <contact fullname="Attilla De Groot"/>, | |||
<contact fullname="Parantap Lahiri"/>, <contact fullname="David Black"/>, <con | ||||
tact fullname="Roque Gagliano"/>, <contact fullname="Isidor Kouvelas"/>, | ||||
<contact fullname="Jesper Skriver"/>, <contact fullname="Fred Templin"/>, <con | ||||
tact fullname="Margaret Wasserman"/>, <contact fullname="Sam Hartman"/>, | ||||
<contact fullname="Michael Hofling"/>, <contact fullname="Pedro Marques"/>, <c | ||||
ontact fullname="Jari Arkko"/>, <contact fullname="Gregg Schudel"/>, <contact fu | ||||
llname="Srinivas Subramanian"/>, <contact fullname="Amit Jain"/>, <contact ful | ||||
lname="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 fu | ||||
llname="Vina Ermagan"/>, <contact fullname="Fabio Maino"/>, <contact fullname="V | ||||
ictor Moreno"/>, | ||||
<contact fullname="Chris White"/>, <contact fullname="Clarence Filsfils"/>, <c | ||||
ontact 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 Routin | ||||
g Research Group (RRG) of the | ||||
IRTF. An individual submission was converted into the IETF LISP | IRTF. An individual submission was converted into the IETF LISP | |||
working group document that became this RFC.</t> | Working Group document that became this RFC.</t> | |||
<t indent="0" pn="section-appendix.a-5">The LISP Working Group would like | ||||
<t>The LISP working group would like to give a special thanks to | to give a special thanks to | |||
Jari Arkko, the Internet Area AD at the time that the set of LISP | <contact fullname="Jari Arkko"/>, the Internet Area AD at the time that the se | |||
documents were being prepared for IESG last call, and for his | t of LISP | |||
meticulous reviews and detailed commentaries on the 7 working group | documents was being prepared for IESG Last Call, for his | |||
last call documents progressing toward standards-track RFCs.</t> | meticulous reviews and detailed commentaries on the 7 Working Group | |||
Last Call documents progressing toward Standards Track RFCs.</t> | ||||
<t>The current authors would like to give a sincere thank you to the | <t indent="0" pn="section-appendix.a-6">The current authors would like to | |||
people who help put LISP on standards track in the IETF. They | give a sincere thank you to the | |||
include Joel Halpern, Luigi Iannone, Deborah Brungard, Fabio Maino, | people who helped put LISP on the Standards Track in the IETF. They | |||
Scott Bradner, Kyle Rose, Takeshi Takahashi, Sarah Banks, Pete Resnick, | include <contact fullname="Joel Halpern"/>, <contact fullname="Luigi Iannone"/ | |||
Colin Perkins, Mirja Kuhlewind, Francis Dupont, Benjamin Kaduk, Eric | >, <contact fullname="Deborah Brungard"/>, <contact fullname="Fabio Maino"/>, | |||
Rescorla, Alvaro Retana, Alexey Melnikov, Alissa Cooper, Suresh | <contact fullname="Scott Bradner"/>, <contact fullname="Kyle Rose"/>, <contact | |||
Krishnan, Alberto Rodriguez-Natal, Vina Ermagen, Mohamed Boucadair, | fullname="Takeshi Takahashi"/>, <contact fullname="Sarah Banks"/>, <contact ful | |||
Brian Trammell, Sabrina Tanamal, and John Drake. The contributions | lname="Pete Resnick"/>, | |||
<contact fullname="Colin Perkins"/>, <contact fullname="Mirja Kühlewind"/>, <c | ||||
ontact fullname="Francis Dupont"/>, <contact fullname="Benjamin Kaduk"/>, <conta | ||||
ct fullname="Eric Rescorla"/>, <contact fullname="Alvaro Retana"/>, <contact f | ||||
ullname="Alexey Melnikov"/>, <contact fullname="Alissa Cooper"/>, <contact fulln | ||||
ame="Suresh Krishnan"/>, <contact fullname="Alberto Rodriguez-Natal"/>, <conta | ||||
ct fullname="Vina Ermagan"/>, <contact fullname="Mohamed Boucadair"/>, | ||||
<contact fullname="Brian Trammell"/>, <contact fullname="Sabrina Tanamal"/>, a | ||||
nd <contact fullname="John Drake"/>. The contributions | ||||
they offered greatly added to the security, scale, and robustness of | they offered greatly added to the security, scale, and robustness of | |||
the LISP architecture and protocols.</t> | the LISP architecture and protocols.</t> | |||
</section> | </section> | |||
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
<section title="Document Change Log"> | ="include" pn="section-appendix.b"> | |||
<t>[RFC Editor: Please delete this section on publication as RFC.]</t> | <name slugifiedName="name-authors-addresses">Authors' Addresses</name> | |||
<author initials="D" surname="Farinacci" fullname="Dino Farinacci"> | ||||
<section title="Changes to draft-ietf-lisp-rfc6830bis-27"> | <organization showOnFrontPage="true">lispers.net</organization> | |||
<t><list style="symbols"> | <address> | |||
<t>Posted November 2019.</t> | <postal> | |||
<t>Fixed how LSB behave in the presence of new/removed locators.</t> | <city>San Jose</city> | |||
<t>Added ETR synchronization requirements when using Map-Versioning.</t> | <region>CA</region> | |||
<t>Fixed a large set of minor comments and edits.</t> | <country>United States of America</country> | |||
</list></t> | </postal> | |||
</section> | <email>farinacci@gmail.com</email> | |||
</address> | ||||
<section title="Changes to draft-ietf-lisp-rfc6830bis-27"> | </author> | |||
<t><list style="symbols"> | <author initials="V" surname="Fuller" fullname="Vince Fuller"> | |||
<t>Posted April 2019 post telechat.</t> | <organization showOnFrontPage="true">vaf.net Internet Consulting</organi | |||
<t>Made editorial corrections per Warren's suggestions.</t> | zation> | |||
<t>Put in suggested text from Luigi that Mirja agreed with.</t> | <address> | |||
<t>LSB, Echo-Nonce and Map-Versioning SHOULD be only used in closed env | <email>vince.fuller@gmail.com</email> | |||
ironments.</t> | </address> | |||
<t>Removed paragraph stating that Instance-ID can be 32-bit in the cont | </author> | |||
rol-plane.</t> | <author initials="D" surname="Meyer" fullname="Dave Meyer"> | |||
<t>6831/8378 are now normative.</t> | <organization showOnFrontPage="true">1-4-5.net</organization> | |||
<t>Rewritten Security Considerations according to the changes.</t> | <address> | |||
<t>Stated that LSB SHOULD be coupled with Map-Versioning.</t> | <email>dmm@1-4-5.net</email> | |||
</list></t> | </address> | |||
</section> | </author> | |||
<author initials="D" surname="Lewis" fullname="Darrel Lewis"> | ||||
<section title="Changes to draft-ietf-lisp-rfc6830bis-26"> | <organization showOnFrontPage="true">Cisco Systems</organization> | |||
<t><list style="symbols"> | <address> | |||
<t>Posted late October 2018.</t> | <postal> | |||
<t>Changed description about "reserved" bits to state "reserved | <city>San Jose</city> | |||
and unassigned".</t> | <region>CA</region> | |||
</list></t> | <country>United States of America</country> | |||
</section> | </postal> | |||
<email>darlewis@cisco.com</email> | ||||
<section title="Changes to draft-ietf-lisp-rfc6830bis-25"> | </address> | |||
<t><list style="symbols"> | </author> | |||
<t>Posted mid October 2018.</t> | <author initials="A" surname="Cabellos" fullname="Albert Cabellos" role="e | |||
<t>Added more to the Security Considerations section with discussion | ditor"> | |||
about echo-nonce attacks.</t> | <organization showOnFrontPage="true">Universitat Politecnica de Cataluny | |||
</list></t> | a</organization> | |||
</section> | <address> | |||
<postal> | ||||
<section title="Changes to draft-ietf-lisp-rfc6830bis-24"> | <street>c/ Jordi Girona s/n</street> | |||
<t><list style="symbols"> | <city>Barcelona</city> | |||
<t>Posted mid October 2018.</t> | <code>08034</code> | |||
<t>Final editorial changes for Eric and Ben.</t> | <country>Spain</country> | |||
</list></t> | </postal> | |||
</section> | <email>acabello@ac.upc.edu</email> | |||
</address> | ||||
<section title="Changes to draft-ietf-lisp-rfc6830bis-23"> | </author> | |||
<t><list style="symbols"> | </section> | |||
<t>Posted early October 2018.</t> | </back> | |||
<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 Definition of Terms 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 reference of IPv6 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> | ||||
</section> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 259 change blocks. | ||||
1530 lines changed or deleted | 2684 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |