rfc9300.original | rfc9300.txt | |||
---|---|---|---|---|
Network Working Group D. Farinacci | Internet Engineering Task Force (IETF) D. Farinacci | |||
Internet-Draft lispers.net | Request for Comments: 9300 lispers.net | |||
Obsoletes: 6830 (if approved) V. Fuller | Obsoletes: 6830 V. Fuller | |||
Intended status: Standards Track vaf.net Internet Consulting | Category: Standards Track vaf.net Internet Consulting | |||
Expires: May 22, 2021 D. Meyer | ISSN: 2070-1721 D. Meyer | |||
1-4-5.net | 1-4-5.net | |||
D. Lewis | D. Lewis | |||
Cisco Systems | Cisco Systems | |||
A. Cabellos (Ed.) | A. Cabellos, Ed. | |||
UPC/BarcelonaTech | Universitat Politecnica de Catalunya | |||
November 18, 2020 | October 2022 | |||
The Locator/ID Separation Protocol (LISP) | The Locator/ID Separation Protocol (LISP) | |||
draft-ietf-lisp-rfc6830bis-36 | ||||
Abstract | Abstract | |||
This document describes the Data-Plane protocol for the Locator/ID | This document describes the data plane protocol for the Locator/ID | |||
Separation Protocol (LISP). LISP defines two namespaces, End-point | Separation Protocol (LISP). LISP defines two namespaces: Endpoint | |||
Identifiers (EIDs) that identify end-hosts and Routing Locators | Identifiers (EIDs), which identify end hosts; and Routing Locators | |||
(RLOCs) that identify network attachment points. With this, LISP | (RLOCs), which identify network attachment points. With this, LISP | |||
effectively separates control from data, and allows routers to create | effectively separates control from data and allows routers to create | |||
overlay networks. LISP-capable routers exchange encapsulated packets | overlay networks. LISP-capable routers exchange encapsulated packets | |||
according to EID-to-RLOC mappings stored in a local Map-Cache. | according to EID-to-RLOC mappings stored in a local Map-Cache. | |||
LISP requires no change to either host protocol stacks or to underlay | LISP requires no change to either host protocol stacks or underlay | |||
routers and offers Traffic Engineering, multihoming and mobility, | routers and offers Traffic Engineering (TE), multihoming, and | |||
among other features. | mobility, among other features. | |||
This document obsoletes RFC 6830. | This document obsoletes RFC 6830. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on May 22, 2021. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9300. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Revised BSD License text as described in Section 4.e of the | |||
the Trust Legal Provisions and are provided without warranty as | Trust Legal Provisions and are provided without warranty as described | |||
described in the Simplified BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Scope of Applicability . . . . . . . . . . . . . . . . . 4 | 1.1. Scope of Applicability | |||
2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 5 | 2. Requirements Notation | |||
3. Definition of Terms . . . . . . . . . . . . . . . . . . . . . 5 | 3. Definitions of Terms | |||
4. Basic Overview . . . . . . . . . . . . . . . . . . . . . . . 8 | 4. Basic Overview | |||
4.1. Deployment on the Public Internet . . . . . . . . . . . . 10 | 4.1. Deployment on the Public Internet | |||
4.2. Packet Flow Sequence . . . . . . . . . . . . . . . . . . 11 | 4.2. Packet Flow Sequence | |||
5. LISP Encapsulation Details . . . . . . . . . . . . . . . . . 13 | 5. LISP Encapsulation Details | |||
5.1. LISP IPv4-in-IPv4 Header Format . . . . . . . . . . . . . 13 | 5.1. LISP IPv4-in-IPv4 Header Format | |||
5.2. LISP IPv6-in-IPv6 Header Format . . . . . . . . . . . . . 14 | 5.2. LISP IPv6-in-IPv6 Header Format | |||
5.3. Tunnel Header Field Descriptions . . . . . . . . . . . . 15 | 5.3. Tunnel Header Field Descriptions | |||
6. LISP EID-to-RLOC Map-Cache . . . . . . . . . . . . . . . . . 20 | 6. LISP EID-to-RLOC Map-Cache | |||
7. Dealing with Large Encapsulated Packets . . . . . . . . . . . 20 | 7. Dealing with Large Encapsulated Packets | |||
7.1. A Stateless Solution to MTU Handling . . . . . . . . . . 21 | 7.1. A Stateless Solution to MTU Handling | |||
7.2. A Stateful Solution to MTU Handling . . . . . . . . . . . 22 | 7.2. A Stateful Solution to MTU Handling | |||
8. Using Virtualization and Segmentation with LISP . . . . . . . 23 | 8. Using Virtualization and Segmentation with LISP | |||
9. Routing Locator Selection . . . . . . . . . . . . . . . . . . 23 | 9. Routing Locator Selection | |||
10. Routing Locator Reachability . . . . . . . . . . . . . . . . 25 | 10. Routing Locator Reachability | |||
10.1. Echo Nonce Algorithm . . . . . . . . . . . . . . . . . . 27 | 10.1. Echo-Nonce Algorithm | |||
11. EID Reachability within a LISP Site . . . . . . . . . . . . . 28 | 11. EID Reachability within a LISP Site | |||
12. Routing Locator Hashing . . . . . . . . . . . . . . . . . . . 28 | 12. Routing Locator Hashing | |||
13. Changing the Contents of EID-to-RLOC Mappings . . . . . . . . 30 | 13. Changing the Contents of EID-to-RLOC Mappings | |||
13.1. Locator-Status-Bits . . . . . . . . . . . . . . . . . . 30 | 13.1. Locator-Status-Bits | |||
13.2. Database Map-Versioning . . . . . . . . . . . . . . . . 30 | 13.2. Database Map-Versioning | |||
14. Multicast Considerations . . . . . . . . . . . . . . . . . . 31 | 14. Multicast Considerations | |||
15. Router Performance Considerations . . . . . . . . . . . . . . 32 | 15. Router Performance Considerations | |||
16. Security Considerations . . . . . . . . . . . . . . . . . . . 33 | 16. Security Considerations | |||
17. Network Management Considerations . . . . . . . . . . . . . . 34 | 17. Network Management Considerations | |||
18. Changes since RFC 6830 . . . . . . . . . . . . . . . . . . . 34 | 18. Changes since RFC 6830 | |||
19. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 | 19. IANA Considerations | |||
19.1. LISP UDP Port Numbers . . . . . . . . . . . . . . . . . 35 | 19.1. LISP UDP Port Numbers | |||
20. References | ||||
20. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 | 20.1. Normative References | |||
20.1. Normative References . . . . . . . . . . . . . . . . . . 35 | 20.2. Informative References | |||
20.2. Informative References . . . . . . . . . . . . . . . . . 37 | Acknowledgments | |||
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 40 | Authors' Addresses | |||
Appendix B. Document Change Log . . . . . . . . . . . . . . . . 41 | ||||
B.1. Changes to draft-ietf-lisp-rfc6830bis-27 . . . . . . . . 41 | ||||
B.2. Changes to draft-ietf-lisp-rfc6830bis-27 . . . . . . . . 41 | ||||
B.3. Changes to draft-ietf-lisp-rfc6830bis-26 . . . . . . . . 41 | ||||
B.4. Changes to draft-ietf-lisp-rfc6830bis-25 . . . . . . . . 42 | ||||
B.5. Changes to draft-ietf-lisp-rfc6830bis-24 . . . . . . . . 42 | ||||
B.6. Changes to draft-ietf-lisp-rfc6830bis-23 . . . . . . . . 42 | ||||
B.7. Changes to draft-ietf-lisp-rfc6830bis-22 . . . . . . . . 42 | ||||
B.8. Changes to draft-ietf-lisp-rfc6830bis-21 . . . . . . . . 42 | ||||
B.9. Changes to draft-ietf-lisp-rfc6830bis-20 . . . . . . . . 42 | ||||
B.10. Changes to draft-ietf-lisp-rfc6830bis-19 . . . . . . . . 42 | ||||
B.11. Changes to draft-ietf-lisp-rfc6830bis-18 . . . . . . . . 43 | ||||
B.12. Changes to draft-ietf-lisp-rfc6830bis-17 . . . . . . . . 43 | ||||
B.13. Changes to draft-ietf-lisp-rfc6830bis-16 . . . . . . . . 43 | ||||
B.14. Changes to draft-ietf-lisp-rfc6830bis-15 . . . . . . . . 43 | ||||
B.15. Changes to draft-ietf-lisp-rfc6830bis-14 . . . . . . . . 43 | ||||
B.16. Changes to draft-ietf-lisp-rfc6830bis-13 . . . . . . . . 43 | ||||
B.17. Changes to draft-ietf-lisp-rfc6830bis-12 . . . . . . . . 44 | ||||
B.18. Changes to draft-ietf-lisp-rfc6830bis-11 . . . . . . . . 44 | ||||
B.19. Changes to draft-ietf-lisp-rfc6830bis-10 . . . . . . . . 44 | ||||
B.20. Changes to draft-ietf-lisp-rfc6830bis-09 . . . . . . . . 44 | ||||
B.21. Changes to draft-ietf-lisp-rfc6830bis-08 . . . . . . . . 45 | ||||
B.22. Changes to draft-ietf-lisp-rfc6830bis-07 . . . . . . . . 45 | ||||
B.23. Changes to draft-ietf-lisp-rfc6830bis-06 . . . . . . . . 45 | ||||
B.24. Changes to draft-ietf-lisp-rfc6830bis-05 . . . . . . . . 45 | ||||
B.25. Changes to draft-ietf-lisp-rfc6830bis-04 . . . . . . . . 46 | ||||
B.26. Changes to draft-ietf-lisp-rfc6830bis-03 . . . . . . . . 46 | ||||
B.27. Changes to draft-ietf-lisp-rfc6830bis-02 . . . . . . . . 46 | ||||
B.28. Changes to draft-ietf-lisp-rfc6830bis-01 . . . . . . . . 46 | ||||
B.29. Changes to draft-ietf-lisp-rfc6830bis-00 . . . . . . . . 46 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46 | ||||
1. Introduction | 1. Introduction | |||
This document describes the Locator/Identifier Separation Protocol | This document describes the Locator/ID Separation Protocol (LISP). | |||
(LISP). LISP is an encapsulation protocol built around the | LISP is an encapsulation protocol built around the fundamental idea | |||
fundamental idea of separating the topological location of a network | of separating the topological location of a network attachment point | |||
attachment point from the node's identity [CHIAPPA]. As a result | from the node's identity [CHIAPPA]. As a result, LISP creates two | |||
LISP creates two namespaces: Endpoint Identifiers (EIDs), that are | namespaces: Endpoint Identifiers (EIDs), which are used to identify | |||
used to identify end-hosts (e.g., nodes or Virtual Machines) and | end hosts (e.g., nodes or Virtual Machines); and routable Routing | |||
routable Routing Locators (RLOCs), used to identify network | Locators (RLOCs), which are used to identify network attachment | |||
attachment points. LISP then defines functions for mapping between | points. LISP then defines functions for mapping between the two | |||
the two namespaces and for encapsulating traffic originated by | namespaces and for encapsulating traffic originated by devices using | |||
devices using non-routable EIDs for transport across a network | non-routable EIDs for transport across a network infrastructure that | |||
infrastructure that routes and forwards using RLOCs. LISP | routes and forwards using RLOCs. LISP encapsulation uses a dynamic | |||
encapsulation uses a dynamic form of tunneling where no static | form of tunneling where no static provisioning is required or | |||
provisioning is required or necessary. | necessary. | |||
LISP is an overlay protocol that separates control from Data-Plane, | LISP is an overlay protocol that separates control from data; this | |||
this document specifies the Data-Plane as well as how LISP-capable | document specifies the data plane as well as how LISP-capable routers | |||
routers (Tunnel Routers) exchange packets by encapsulating them to | (Tunnel Routers) exchange packets by encapsulating them to the | |||
the appropriate location. Tunnel routers are equipped with a cache, | 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- | |||
is populated using the LISP Control-Plane protocol | Cache is populated using the LISP control plane protocol [RFC9301]. | |||
[I-D.ietf-lisp-rfc6833bis]. | ||||
LISP does not require changes to either the host protocol stack or to | LISP does not require changes to either the 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, | |||
other features. | among other features. | |||
Creation of LISP was initially motivated by discussions during the | Creation of LISP was initially motivated by discussions during the | |||
IAB-sponsored Routing and Addressing Workshop held in Amsterdam in | IAB-sponsored Routing and Addressing Workshop held in Amsterdam in | |||
October 2006 (see [RFC4984]). | October 2006 (see [RFC4984]). | |||
This document specifies the LISP Data-Plane encapsulation and other | This document specifies the LISP data plane encapsulation and other | |||
LISP forwarding node functionality while [I-D.ietf-lisp-rfc6833bis] | LISP forwarding node functionality while [RFC9301] specifies the LISP | |||
specifies the LISP control plane. LISP deployment guidelines can be | control plane. LISP deployment guidelines can be found in [RFC7215], | |||
found in [RFC7215] and [RFC6835] describes considerations for network | and [RFC6835] describes considerations for network operational | |||
operational management. Finally, [I-D.ietf-lisp-introduction] | management. Finally, [RFC9299] describes the LISP architecture. | |||
describes the LISP architecture. | ||||
This document obsoletes RFC 6830. | This document obsoletes RFC 6830. | |||
1.1. Scope of Applicability | 1.1. Scope of Applicability | |||
LISP was originally developed to address the Internet-wide route | LISP was originally developed to address the Internet-wide route | |||
scaling problem [RFC4984]. While there are a number of approaches of | scaling problem [RFC4984]. While there are a number of approaches of | |||
interest for that problem, as LISP as been developed and refined, a | interest for that problem, as LISP has been developed and refined, a | |||
large number of other LISP uses have been found and are being used. | large number of other ways to use LISP have been found and are being | |||
As such, the design and development of LISP has changed so as to | implemented. As such, the design and development of LISP have | |||
focus on these use cases. The common property of these uses is a | changed so as to focus on these use cases. The common property of | |||
large set of cooperating entities seeking to communicate over the | these uses is a large set of cooperating entities seeking to | |||
public Internet or other large underlay IP infrastructures, while | communicate over the public Internet or other large underlay IP | |||
keeping the addressing and topology of the cooperating entities | infrastructures while keeping the addressing and topology of the | |||
separate from the underlay and Internet topology, routing, and | cooperating entities separate from the underlay and Internet | |||
addressing. | topology, routing, and addressing. | |||
2. Requirements Notation | 2. Requirements Notation | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Definition of Terms | 3. Definitions of Terms | |||
Address Family Identifier (AFI): AFI is a term used to describe an | Address Family Identifier (AFI): "AFI" is a term used to describe an | |||
address encoding in a packet. An address family that pertains to | address encoding in a packet. An address family is an address | |||
addresses found in Data-Plane headers. See [AFN] and [RFC3232] | format found in data plane packet headers, for example, an IPv4 | |||
for details. An AFI value of 0 used in this specification | address or an IPv6 address. See [AFN], [RFC2453], [RFC2677], and | |||
indicates an unspecified encoded address where the length of the | [RFC4760] for details. An AFI value of 0 used in this | |||
address is 0 octets following the 16-bit AFI value of 0. | specification indicates an unspecified encoded address where the | |||
length of the address is 0 octets following the 16-bit AFI value | ||||
of 0. | ||||
Anycast Address: Anycast Address refers to the same IPv4 or IPv6 | Anycast Address: "Anycast address" refers to the same IPv4 or IPv6 | |||
address configured and used on multiple systems at the same time. | address configured and used on multiple systems at the same time. | |||
An EID or RLOC can be an anycast address in each of their own | An EID or RLOC can be an anycast address in each of their own | |||
address spaces. | address spaces. | |||
Client-side: Client-side is a term used in this document to indicate | Client-side: "Client-side" is a term used in this document to | |||
a connection initiation attempt by an end-system represented by an | indicate a connection initiation attempt by an end-system | |||
EID. | represented by an EID. | |||
Egress Tunnel Router (ETR): An ETR is a router that accepts an IP | Egress Tunnel Router (ETR): An ETR is a router that accepts an IP | |||
packet where the destination address in the "outer" IP header is | packet where the destination address in the "outer" IP header is | |||
one of its own RLOCs. The router strips the "outer" header and | one of its own RLOCs. The router strips the "outer" header and | |||
forwards the packet based on the next IP header found. In | forwards the packet based on the next IP header found. In | |||
general, an ETR receives LISP-encapsulated IP packets from the | general, an ETR receives LISP-encapsulated IP packets from the | |||
Internet on one side and sends decapsulated IP packets to site | Internet on one side and sends decapsulated IP packets to site | |||
end-systems on the other side. ETR functionality does not have to | end-systems on the other side. ETR functionality does not have to | |||
be limited to a router device. A server host can be the endpoint | be limited to a router device. A server host can be the endpoint | |||
of a LISP tunnel as well. | of a LISP tunnel as well. | |||
EID-to-RLOC Database: The EID-to-RLOC Database is a distributed | EID-to-RLOC Database: The EID-to-RLOC Database is a distributed | |||
database that contains all known EID-Prefix-to-RLOC mappings. | database that contains all known EID-Prefix-to-RLOC mappings. | |||
Each potential ETR typically contains a small piece of the | Each potential ETR typically contains a small piece of the | |||
database: the EID-to-RLOC mappings for the EID-Prefixes "behind" | database: the EID-to-RLOC mappings for the EID-Prefixes "behind" | |||
the router. These map to one of the router's own IP addresses | the router. These map to one of the router's own IP addresses | |||
that are routable on the underlay. Note that there MAY be | that are routable on the underlay. Note that there MAY be | |||
transient conditions when the EID-Prefix for the LISP site and | transient conditions when the EID-Prefix for the LISP site and | |||
Locator-Set for each EID-Prefix may not be the same on all ETRs. | Locator-Set for each EID-Prefix may not be the same on all ETRs. | |||
This has no negative implications, since a partial set of Locators | This has no negative implications, since a partial set of Locators | |||
can be used. | can be used. | |||
EID-to-RLOC Map-Cache: The EID-to-RLOC Map-Cache is generally | EID-to-RLOC Map-Cache: The EID-to-RLOC Map-Cache is a generally | |||
short-lived, on-demand table in an ITR that stores, tracks, and is | short-lived, on-demand table in an Ingress Tunnel Router (ITR) | |||
responsible for timing out and otherwise validating EID-to-RLOC | that stores, tracks, and is responsible for timing out and | |||
mappings. This cache is distinct from the full "database" of EID- | otherwise validating EID-to-RLOC mappings. This cache is distinct | |||
to-RLOC mappings; it is dynamic, local to the ITR(s), and | from the full "database" of EID-to-RLOC mappings; it is dynamic, | |||
relatively small, while the database is distributed, relatively | local to the ITR(s), and relatively small, while the database is | |||
static, and much more widely scoped to LISP nodes. | distributed, relatively static, and much more widely scoped to | |||
LISP nodes. | ||||
EID-Prefix: An EID-Prefix is a power-of-two block of EIDs that are | EID-Prefix: An EID-Prefix is a power-of-two block of EIDs that are | |||
allocated to a site by an address allocation authority. EID- | allocated to a site by an address allocation authority. EID- | |||
Prefixes are associated with a set of RLOC addresses. EID-Prefix | Prefixes are associated with a set of RLOC addresses. EID-Prefix | |||
allocations can be broken up into smaller blocks when an RLOC set | allocations can be broken up into smaller blocks when an RLOC-Set | |||
is to be associated with the larger EID-Prefix block. | is to be associated with the larger EID-Prefix block. | |||
End-System: An end-system is an IPv4 or IPv6 device that originates | End-System: An end-system is an IPv4 or IPv6 device that originates | |||
packets with a single IPv4 or IPv6 header. The end-system | packets with a single IPv4 or IPv6 header. The end-system | |||
supplies an EID value for the destination address field of the IP | supplies an EID value for the destination address field of the IP | |||
header when communicating outside of its routing domain. An end- | header when communicating outside of its routing domain. An end- | |||
system can be a host computer, a switch or router device, or any | system can be a host computer, a switch or router device, or any | |||
network appliance. | network appliance. | |||
Endpoint ID (EID): An EID is a 32-bit (for IPv4) or 128-bit (for | Endpoint ID (EID): An EID is a 32-bit (for IPv4) or 128-bit (for | |||
IPv6) value that identifies a host. EIDs are generally only found | IPv6) value that identifies a host. EIDs are generally only found | |||
in the source and destination address fields of the first (most | in the source and destination address fields of the first | |||
inner) LISP header of a packet. The host obtains a destination | (innermost) LISP header of a packet. The host obtains a | |||
EID the same way it obtains a destination address today, for | destination EID through a Domain Name System (DNS) [RFC1034] | |||
example, through a Domain Name System (DNS) [RFC1034] lookup or | lookup or Session Initiation Protocol (SIP) [RFC3261] exchange. | |||
Session Initiation Protocol (SIP) [RFC3261] exchange. The source | This behavior does not change when LISP is in use. The source EID | |||
EID is obtained via existing mechanisms used to set a host's | is obtained via existing mechanisms used to set a host's "local" | |||
"local" IP address. An EID used on the public Internet MUST have | IP address. An EID used on the public Internet MUST have the same | |||
the same properties as any other IP address used in that manner; | properties as any other IP address used in that manner; this | |||
this means, among other things, that it MUST be unique. An EID is | means, among other things, that it MUST be unique. An EID is | |||
allocated to a host from an EID-Prefix block associated with the | allocated to a host from an EID-Prefix block associated with the | |||
site where the host is located. An EID can be used by a host to | site where the host is located. An EID can be used by a host to | |||
refer to other hosts. Note that EID blocks MAY be assigned in a | refer to other hosts. Note that EID blocks MAY be assigned in a | |||
hierarchical manner, independent of the network topology, to | hierarchical manner, independent of the network topology, to | |||
facilitate scaling of the mapping database. In addition, an EID | facilitate scaling of the mapping database. In addition, an EID | |||
block assigned to a site MAY have site-local structure | block assigned to a site MAY have site-local structure | |||
(subnetting) for routing within the site; this structure is not | (subnetting) for routing within the site; this structure is not | |||
visible to the underlay routing system. In theory, the bit string | visible to the underlay routing system. In theory, the bit string | |||
that represents an EID for one device can represent an RLOC for a | that represents an EID for one device can represent an RLOC for a | |||
different device. When used in discussions with other Locator/ID | different device. When discussing other Locator/ID separation | |||
separation proposals, a LISP EID will be called an "LEID". | proposals, any references to an EID in this document will refer to | |||
Throughout this document, any references to "EID" refer to an | a LISP EID. | |||
LEID. | ||||
Ingress Tunnel Router (ITR): An ITR is a router that resides in a | Ingress Tunnel Router (ITR): An ITR is a router that resides in a | |||
LISP site. Packets sent by sources inside of the LISP site to | LISP site. Packets sent by sources inside of the LISP site to | |||
destinations outside of the site are candidates for encapsulation | destinations outside of the site are candidates for encapsulation | |||
by the ITR. The ITR treats the IP destination address as an EID | by the ITR. The ITR treats the IP destination address as an EID | |||
and performs an EID-to-RLOC mapping lookup. The router then | and performs an EID-to-RLOC mapping lookup. The router then | |||
prepends an "outer" IP header with one of its routable RLOCs (in | prepends an "outer" IP header with one of its routable RLOCs (in | |||
the RLOC space) in the source address field and the result of the | the RLOC space) in the source address field and the result of the | |||
mapping lookup in the destination address field. Note that this | mapping lookup in the destination address field. Note that this | |||
destination RLOC may be an intermediate, proxy device that has | destination RLOC may be an intermediate, proxy device that has | |||
better knowledge of the EID-to-RLOC mapping closer to the | better knowledge of the EID-to-RLOC mapping closer to the | |||
destination EID. In general, an ITR receives IP packets from site | destination EID. In general, an ITR receives IP packets from site | |||
end-systems on one side and sends LISP-encapsulated IP packets | end-systems on one side and sends LISP-encapsulated IP packets | |||
toward the Internet on the other side. | toward the Internet on the other side. | |||
LISP Header: LISP header is a term used in this document to refer | LISP Header: "LISP header" is a term used in this document to refer | |||
to the outer IPv4 or IPv6 header, a UDP header, and a LISP- | to the outer IPv4 or IPv6 header, a UDP header, and a LISP- | |||
specific 8-octet header that follow the UDP header and that an ITR | specific 8-octet header, all of which follow the UDP header. An | |||
prepends or an ETR strips. | ITR prepends LISP headers on packets, and an ETR strips them. | |||
LISP Router: A LISP router is a router that performs the functions | LISP Router: A LISP router is a router that performs the functions | |||
of any or all of the following: ITR, ETR, RTR, Proxy-ITR (PITR), | of any or all of the following: ITRs, ETRs, Re-encapsulating | |||
or Proxy-ETR (PETR). | Tunneling Routers (RTRs), Proxy-ITRs (PITRs), or Proxy-ETRs | |||
(PETRs). | ||||
LISP Site: LISP site is a set of routers in an edge network that are | LISP Site: A LISP site is a set of routers in an edge network that | |||
under a single technical administration. LISP routers that reside | are under a single technical administration. LISP routers that | |||
in the edge network are the demarcation points to separate the | reside in the edge network are the demarcation points to separate | |||
edge network from the core network. | the edge network from the core network. | |||
Locator-Status-Bits (LSBs): Locator-Status-Bits are present in the | Locator-Status-Bits (LSBs): Locator-Status-Bits are present in the | |||
LISP header. They are used by ITRs to inform ETRs about the up/ | LISP header. They are used by ITRs to inform ETRs about the up/ | |||
down status of all ETRs at the local site. These bits are used as | down status of all ETRs at the local site. These bits are used as | |||
a hint to convey up/down router status and not path reachability | a hint to convey up/down router status and not path reachability | |||
status. The LSBs can be verified by use of one of the Locator | status. The LSBs can be verified by use of one of the Locator | |||
reachability algorithms described in Section 10. An ETR MUST | reachability algorithms described in Section 10. An ETR MUST rate | |||
rate-limit the action it takes when it detects changes in the | limit the action it takes when it detects changes in the Locator- | |||
Locator-Status-Bits. | Status-Bits. | |||
Proxy-ETR (PETR): A PETR is defined and described in [RFC6832]. A | Proxy-ETR (PETR): A PETR is defined and described in [RFC6832]. A | |||
PETR acts like an ETR but does so on behalf of LISP sites that | PETR acts like an ETR but does so on behalf of LISP sites that | |||
send packets to destinations at non-LISP sites. | send packets to destinations at non-LISP sites. | |||
Proxy-ITR (PITR): A PITR is defined and described in [RFC6832]. A | Proxy-ITR (PITR): A PITR is defined and described in [RFC6832]. A | |||
PITR acts like an ITR but does so on behalf of non-LISP sites that | PITR acts like an ITR but does so on behalf of non-LISP sites that | |||
send packets to destinations at LISP sites. | send packets to destinations at LISP sites. | |||
Recursive Tunneling: Recursive Tunneling occurs when a packet has | Recursive Tunneling: Recursive Tunneling occurs when a packet has | |||
more than one LISP IP header. Additional layers of tunneling MAY | more than one LISP IP header. Additional layers of tunneling MAY | |||
be employed to implement Traffic Engineering or other re-routing | be employed to implement Traffic Engineering or other rerouting as | |||
as needed. When this is done, an additional "outer" LISP header | needed. When this is done, an additional "outer" LISP header is | |||
is added, and the original RLOCs are preserved in the "inner" | added, and the original RLOCs are preserved in the "inner" header. | |||
header. | ||||
Re-Encapsulating Tunneling Router (RTR): An RTR acts like an ETR to | Re-encapsulating Tunneling Router (RTR): An RTR acts like an ETR to | |||
remove a LISP header, then acts as an ITR to prepend a new LISP | remove a LISP header, then acts as an ITR to prepend a new LISP | |||
header. This is known as Re-encapsulating Tunneling. Doing this | header. This is known as Re-encapsulating Tunneling. Doing this | |||
allows a packet to be re-routed by the RTR without adding the | allows a packet to be rerouted by the RTR without adding the | |||
overhead of additional tunnel headers. When using multiple | overhead of additional tunnel headers. When using multiple | |||
mapping database systems, care must be taken to not create re- | mapping database systems, care must be taken to not create re- | |||
encapsulation loops through misconfiguration. | encapsulation loops through misconfiguration. | |||
Route-Returnability: Route-returnability is an assumption that the | Route-Returnability: Route-returnability is an assumption that the | |||
underlying routing system will deliver packets to the destination. | underlying routing system will deliver packets to the destination. | |||
When combined with a nonce that is provided by a sender and | When combined with a nonce that is provided by a sender and | |||
returned by a receiver, this limits off-path data insertion. A | returned by a receiver, this limits off-path data insertion. A | |||
route-returnability check is verified when a message is sent with | route-returnability check is verified when a message is sent with | |||
a nonce, another message is returned with the same nonce, and the | a nonce, another message is returned with the same nonce, and the | |||
destination of the original message appears as the source of the | destination of the original message appears as the source of the | |||
returned message. | returned message. | |||
Routing Locator (RLOC): An RLOC is an IPv4 [RFC0791] or IPv6 | Routing Locator (RLOC): An RLOC is an IPv4 address [RFC0791] or IPv6 | |||
[RFC8200] address of an Egress Tunnel Router (ETR). An RLOC is | address [RFC8200] of an Egress Tunnel Router (ETR). An RLOC is | |||
the output of an EID-to-RLOC mapping lookup. An EID maps to zero | the output of an EID-to-RLOC mapping lookup. An EID maps to zero | |||
or more RLOCs. Typically, RLOCs are numbered from blocks that are | or more RLOCs. Typically, RLOCs are numbered from blocks that are | |||
assigned to a site at each point to which it attaches to the | assigned to a site at each point to which it attaches to the | |||
underlay network; where the topology is defined by the | underlay network, where the topology is defined by the | |||
connectivity of provider networks. Multiple RLOCs can be assigned | connectivity of provider networks. Multiple RLOCs can be assigned | |||
to the same ETR device or to multiple ETR devices at a site. | to the same ETR device or to multiple ETR devices at a site. | |||
Server-side: Server-side is a term used in this document to indicate | Server-side: "Server-side" is a term used in this document to | |||
that a connection initiation attempt is being accepted for a | indicate that a connection initiation attempt is being accepted | |||
destination EID. | for a destination EID. | |||
xTR: An xTR is a reference to an ITR or ETR when direction of data | xTR: An xTR is a reference to an ITR or ETR when direction of data | |||
flow is not part of the context description. "xTR" refers to the | flow is not part of the context description. "xTR" refers to the | |||
router that is the tunnel endpoint and is used synonymously with | router that is the tunnel endpoint and is used synonymously with | |||
the term "Tunnel Router". For example, "An xTR can be located at | the term "Tunnel Router". For example, "An xTR can be located at | |||
the Customer Edge (CE) router" indicates both ITR and ETR | the Customer Edge (CE) router" indicates both ITR and ETR | |||
functionality at the CE router. | functionality at the CE router. | |||
4. Basic Overview | 4. Basic Overview | |||
One key concept of LISP is that end-systems operate the same way they | One key concept of LISP is that end-systems operate the same way when | |||
do today. The IP addresses that hosts use for tracking sockets and | LISP is not in use as well as when LISP is in use. The IP addresses | |||
connections, and for sending and receiving packets, do not change. | that hosts use for tracking sockets and connections, and for sending | |||
In LISP terminology, these IP addresses are called Endpoint | and receiving packets, do not change. In LISP terminology, these IP | |||
Identifiers (EIDs). | addresses are called Endpoint Identifiers (EIDs). | |||
Routers continue to forward packets based on IP destination | Routers continue to forward packets based on 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 | |||
between two hosts will not change; they continue to perform routing/ | will not change; they continue to perform routing/forwarding lookups | |||
forwarding lookups on the destination addresses. For routers between | on the destination addresses. For routers between the source host | |||
the source host and the ITR as well as routers from the ETR to the | and the ITR as well as routers from the ETR to the destination host, | |||
destination host, the destination address is an EID. For the routers | the destination address is an EID. For the routers between the ITR | |||
between the ITR and the ETR, the destination address is an RLOC. | and the ETR, the destination address is an RLOC. | |||
Another key LISP concept is the "Tunnel Router". A Tunnel Router | Another key LISP concept is the "Tunnel Router". 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 exchange | this "outer header" are RLOCs. During end-to-end packet exchange | |||
between two Internet hosts, an ITR prepends a new LISP header to each | between two Internet hosts, an ITR prepends a new LISP header to each | |||
packet, and an ETR strips the new header. The ITR performs EID-to- | packet, and an ETR strips the new header. The ITR performs EID-to- | |||
RLOC lookups to determine the routing path to the ETR, which has the | RLOC lookups to determine the routing path to the ETR, which has the | |||
RLOC as one of its IP addresses. | RLOC as one of its IP addresses. | |||
Some basic rules governing LISP are: | Some basic rules governing LISP are: | |||
o End-systems only send to addresses that are EIDs. EIDs are | * End-systems only send to addresses that are EIDs. EIDs are | |||
typically IP addresses assigned to hosts (other types of EID are | typically IP addresses assigned to hosts (other types of EIDs are | |||
supported by LISP, see [RFC8060] for further information). End- | supported by LISP; see [RFC8060] for further information). End- | |||
systems don't know that addresses are EIDs versus RLOCs but assume | systems don't know that addresses are EIDs versus RLOCs but assume | |||
that packets get to their intended destinations. In a system | that packets get to their intended destinations. In a system | |||
where LISP is deployed, LISP routers intercept EID-addressed | where LISP is deployed, LISP routers intercept EID-addressed | |||
packets and assist in delivering them across the network core | packets and assist in delivering them across the network core | |||
where EIDs cannot be routed. The procedure a host uses to send IP | where EIDs cannot be routed. The procedure a host uses to send IP | |||
packets does not change. | packets does not change. | |||
o LISP routers mostly deal with Routing Locator addresses. See | * LISP routers prepend and strip outer headers with RLOC addresses. | |||
details in Section 4.2 to clarify what is meant by "mostly". | See Section 4.2 for details. | |||
o RLOCs are always IP addresses assigned to routers, preferably | * RLOCs are always IP addresses assigned to routers, preferably | |||
topologically oriented addresses from provider CIDR (Classless | topologically oriented addresses from provider Classless Inter- | |||
Inter-Domain Routing) blocks. | Domain Routing (CIDR) blocks. | |||
o When a router originates packets, it MAY use as a source address | * 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 | 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 MAY | TELNET, or the Simple Network Management Protocol (SNMP)), it MAY | |||
use an EID that is explicitly assigned for that purpose. An EID | use an EID that is explicitly assigned for that purpose. An EID | |||
that identifies the router as a host MUST NOT be used as an RLOC; | that identifies the router as a host MUST NOT be used as an RLOC; | |||
an EID is only routable within the scope of a site. A typical BGP | an EID is only routable within the scope of a site. A typical BGP | |||
configuration might demonstrate this "hybrid" EID/RLOC usage where | configuration might demonstrate this "hybrid" EID/RLOC usage where | |||
a router could use its "host-like" EID to terminate iBGP sessions | a router could use its "host-like" EID to terminate internal BGP | |||
to other routers in a site while at the same time using RLOCs to | (iBGP) sessions to other routers in a site while at the same time | |||
terminate eBGP sessions to routers outside the site. | using RLOCs to terminate external BGP (eBGP) sessions to routers | |||
outside the site. | ||||
o Packets with EIDs in them are not expected to be delivered end-to- | * Packets with EIDs in them are not expected to be delivered end to | |||
end in the absence of an EID-to-RLOC mapping operation. They are | end in the absence of an EID-to-RLOC mapping operation. They are | |||
expected to be used locally for intra-site communication or to be | expected to be used locally for intra-site communication or to be | |||
encapsulated for inter-site communication. | encapsulated for inter-site communication. | |||
o EIDs MAY also be structured (subnetted) in a manner suitable for | * EIDs MAY also be structured (subnetted) in a manner suitable for | |||
local routing within an Autonomous System (AS). | local routing within an Autonomous System (AS). | |||
An additional LISP header MAY be prepended to packets by a TE-ITR | An additional LISP header MAY be prepended to packets by a TE-ITR | |||
when re-routing of the path for a packet is desired. A potential | when rerouting of the path for a packet is desired. A potential use | |||
use-case for this would be an ISP router that needs to perform | case for this would be an ISP router that needs to perform Traffic | |||
Traffic Engineering for packets flowing through its network. In such | Engineering for packets flowing through its network. In such a | |||
a situation, termed "Recursive Tunneling", an ISP transit acts as an | situation, termed "Recursive Tunneling", an ISP transit acts as an | |||
additional ITR, and the destination RLOC it uses for the new | additional ITR, and the destination RLOC it uses for the new | |||
prepended header would be either a TE-ETR within the ISP (along an | prepended header would be either a TE-ETR within the ISP (along an | |||
intra-ISP traffic engineered path) or a TE-ETR within another ISP (an | intra-ISP traffic-engineered path) or a TE-ETR within another ISP (an | |||
inter-ISP traffic engineered path, where an agreement to build such a | inter-ISP traffic-engineered path, where an agreement to build such a | |||
path exists). | path exists). | |||
In order to avoid excessive packet overhead as well as possible | In order to avoid excessive packet overhead as well as possible | |||
encapsulation loops, this document RECOMMENDS that a maximum of two | encapsulation loops, it is RECOMMENDED that a maximum of two LISP | |||
LISP headers can be prepended to a packet. For initial LISP | headers can be prepended to a packet. For initial LISP deployments, | |||
deployments, it is assumed that two headers is sufficient, where the | it is assumed that two headers is sufficient, where the first | |||
first prepended header is used at a site for Location/Identity | prepended header is used at a site for separation of location and | |||
separation and the second prepended header is used inside a service | identity and the second prepended header is used inside a service | |||
provider for Traffic Engineering purposes. | provider for Traffic Engineering purposes. | |||
Tunnel Routers can be placed fairly flexibly in a multi-AS topology. | Tunnel Routers can be placed fairly flexibly in a multi-AS topology. | |||
For example, the ITR for a particular end-to-end packet exchange | For example, the ITR for a particular end-to-end packet exchange | |||
might be the first-hop or default router within a site for the source | might be the first-hop or default router within a site for the source | |||
host. Similarly, the ETR might be the last-hop router directly | host. Similarly, the ETR might be the last-hop router directly | |||
connected to the destination host. Another example, perhaps for a | connected to the destination host. As another example, perhaps for a | |||
VPN service outsourced to an ISP by a site, the ITR could be the | VPN service outsourced to an ISP by a site, the ITR could be the | |||
site's border router at the service provider attachment point. | site's border router at the service provider attachment point. | |||
Mixing and matching of site-operated, ISP-operated, and other Tunnel | Mixing and matching of site-operated, ISP-operated, and other Tunnel | |||
Routers is allowed for maximum flexibility. | Routers is allowed for maximum flexibility. | |||
4.1. Deployment on the Public Internet | 4.1. Deployment on the Public Internet | |||
Several of the mechanisms in this document are intended for | Several of the mechanisms in this document are intended for | |||
deployment in controlled, trusted environments, and are insecure for | deployment in controlled, trusted environments and are insecure for | |||
use over the public Internet. In particular, on the public internet | use over the public Internet. In particular, on the public Internet, | |||
xTRs: | xTRs: | |||
o MUST set the N, L, E, and V bits in the LISP header (Section 5.1) | * MUST set the N-, L-, E-, and V-bits in the LISP header | |||
to zero. | (Section 5.1) to zero. | |||
o MUST NOT use Locator-Status-Bits and echo-nonce, as described in | * MUST NOT use Locator-Status-Bits and Echo-Nonce, as described in | |||
Section 10 for Routing Locator Reachability. Instead MUST rely | Section 10, for RLOC reachability. Instead, they MUST rely solely | |||
solely on control-plane methods. | on control plane methods. | |||
o MUST NOT use Gleaning or Locator-Status-Bits and Map-Versioning, | * MUST NOT use gleaning or Locator-Status-Bits and Map-Versioning, | |||
as described in Section 13 to update the EID-to-RLOC Mappings. | as described in Section 13, to update the EID-to-RLOC mappings. | |||
Instead relying solely on control-plane methods. | Instead, they MUST rely solely on control plane methods. | |||
4.2. Packet Flow Sequence | 4.2. Packet Flow Sequence | |||
This section provides an example of the unicast packet flow, | This section provides an example of the unicast packet flow, also | |||
including also Control-Plane information as specified in | including control plane information as specified in [RFC9301]. The | |||
[I-D.ietf-lisp-rfc6833bis]. The example also assumes the following | example also assumes the following conditions: | |||
conditions: | ||||
o Source host "host1.abc.example.com" is sending a packet to | * Source host "host1.abc.example.com" is sending a packet to | |||
"host2.xyz.example.com", exactly as it would if the site was not | "host2.xyz.example.com", exactly as it would if the site was not | |||
not using LISP. | using LISP. | |||
o Each site is multihomed, so each Tunnel Router has an address | * Each site is multihomed, so each Tunnel Router has an address | |||
(RLOC) assigned from the service provider address block for each | (RLOC) assigned from the service provider address block for each | |||
provider to which that particular Tunnel Router is attached. | provider to which that particular Tunnel Router is attached. | |||
o The ITR(s) and ETR(s) are directly connected to the source and | * The ITR(s) and ETR(s) are directly connected to the source and | |||
destination, respectively, but the source and destination can be | destination, respectively, but the source and destination can be | |||
located anywhere in the LISP site. | located anywhere in the LISP site. | |||
o A Map-Request is sent for an external destination when the | * A Map-Request is sent for an external destination 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 | |||
[I-D.ietf-lisp-rfc6833bis]. | [RFC9301]. | |||
o Map-Replies are sent on the underlying routing system topology | * Map-Replies are sent on the underlying routing system topology, | |||
using the [I-D.ietf-lisp-rfc6833bis] Control-Plane protocol. | using the control plane protocol [RFC9301]. | |||
Client host1.abc.example.com wants to communicate with server | Client host1.abc.example.com wants to communicate with server | |||
host2.xyz.example.com: | host2.xyz.example.com: | |||
1. host1.abc.example.com wants to open a TCP connection to | 1. host1.abc.example.com wants to open a TCP connection to | |||
host2.xyz.example.com. It does a DNS lookup on | host2.xyz.example.com. 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 of | address is the destination EID. The locally assigned address of | |||
host1.abc.example.com is used as the source EID. An IPv4 or IPv6 | host1.abc.example.com is used as the source EID. An IPv4 or IPv6 | |||
packet is built and forwarded through the LISP site as a normal | packet is built and forwarded through the LISP site as a normal | |||
IP packet until it reaches a LISP ITR. | IP packet until it reaches a LISP ITR. | |||
2. The LISP ITR must be able to map the destination EID to an RLOC | 2. The LISP ITR must be able to map the destination EID to an RLOC | |||
of one of the ETRs at the destination site. A method to do this | of one of the ETRs at the destination site. A method for doing | |||
is to send a LISP Map-Request, as specified in | this is to send a LISP Map-Request, as specified in [RFC9301]. | |||
[I-D.ietf-lisp-rfc6833bis]. | ||||
3. The mapping system helps forwarding the Map-Request to the | 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. | control message. | |||
4. The ETR looks at the destination EID of the Map-Request and | 4. The ETR looks at the destination EID of the Map-Request and | |||
matches it against the prefixes in the ETR's configured EID-to- | matches it against the prefixes in the ETR's configured EID-to- | |||
RLOC mapping database. This is the list of EID-Prefixes the ETR | RLOC mapping database. This is the list of EID-Prefixes the ETR | |||
is supporting for the site it resides in. If there is no match, | is supporting for the site it resides in. If there is no match, | |||
the Map-Request is dropped. Otherwise, a LISP Map-Reply is | the Map-Request is dropped. Otherwise, a LISP Map-Reply is | |||
returned to the ITR. | returned to the ITR. | |||
skipping to change at page 12, line 42 ¶ | skipping to change at line 525 ¶ | |||
to a different ETR than the one that returned the Map-Reply due | to a different ETR than the one that returned the Map-Reply due | |||
to the source site's hashing policy or the destination site's | to the source site's hashing policy or the destination site's | |||
Locator-Set policy. | Locator-Set policy. | |||
7. The ETR receives these packets directly (since the destination | 7. The ETR receives these packets directly (since the destination | |||
address is one of its assigned IP addresses), checks the validity | address is one of its assigned IP addresses), checks the validity | |||
of the addresses, strips the LISP header, and forwards packets to | of the addresses, strips the LISP header, and forwards packets to | |||
the attached destination host. | the attached destination host. | |||
8. In order to defer the need for a mapping lookup in the reverse | 8. In order to defer the need for a mapping lookup in the reverse | |||
direction, an ETR can OPTIONALLY create a cache entry that maps | direction, it is OPTIONAL for an ETR to create a cache entry that | |||
the source EID (inner-header source IP address) to the source | maps the source EID (inner-header source IP address) to the | |||
RLOC (outer-header source IP address) in a received LISP packet. | source RLOC (outer-header source IP address) in a received LISP | |||
Such a cache entry is termed a "glean mapping" and only contains | packet. Such a cache entry is termed a "glean mapping" and only | |||
a single RLOC for the EID in question. More complete information | contains a single RLOC for the EID in question. More complete | |||
about additional RLOCs SHOULD be verified by sending a LISP Map- | information about additional RLOCs SHOULD be verified by sending | |||
Request for that EID. Both the ITR and the ETR MAY also | a LISP Map-Request for that EID. Both the ITR and the ETR MAY | |||
influence the decision the other makes in selecting an RLOC. | also influence the decision the other makes in selecting an RLOC. | |||
5. LISP Encapsulation Details | 5. LISP Encapsulation Details | |||
Since additional tunnel headers are prepended, the packet becomes | Since additional tunnel headers are prepended, the packet becomes | |||
larger and can exceed the MTU of any link traversed from the ITR to | 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 get | the ETR. It is RECOMMENDED in IPv4 that packets do not get | |||
fragmented as they are encapsulated by the ITR. Instead, the packet | fragmented as they are encapsulated by the ITR. Instead, the packet | |||
is dropped and an ICMP Unreachable/Fragmentation-Needed message is | is dropped and an ICMPv4 Unreachable / Fragmentation Needed message | |||
returned to the source. | is returned to the source. | |||
In the case when fragmentation is needed, this specification | In the case when fragmentation is needed, it is RECOMMENDED that | |||
RECOMMENDS that implementations provide support for one of the | implementations provide support for one of the proposed fragmentation | |||
proposed fragmentation and reassembly schemes. Two existing schemes | and reassembly schemes. Two existing schemes are detailed in | |||
are detailed in Section 7. | Section 7. | |||
Since IPv4 or IPv6 addresses can be either EIDs or RLOCs, the LISP | Since IPv4 or IPv6 addresses can be either EIDs or RLOCs, the LISP | |||
architecture supports IPv4 EIDs with IPv6 RLOCs (where the inner | architecture supports IPv4 EIDs with IPv6 RLOCs (where the inner | |||
header is in IPv4 packet format and the outer header is in IPv6 | header is in IPv4 packet format and the outer header is in IPv6 | |||
packet format) or IPv6 EIDs with IPv4 RLOCs (where the inner header | packet format) or IPv6 EIDs with IPv4 RLOCs (where the inner header | |||
is in IPv6 packet format and the outer header is in IPv4 packet | is in IPv6 packet format and the outer header is in IPv4 packet | |||
format). The next sub-sections illustrate packet formats for the | format). The next sub-sections illustrate packet formats for the | |||
homogeneous case (IPv4-in-IPv4 and IPv6-in-IPv6), but all 4 | homogeneous case (IPv4-in-IPv4 and IPv6-in-IPv6), but all 4 | |||
combinations MUST be supported. Additional types of EIDs are defined | combinations MUST be supported. Additional types of EIDs are defined | |||
in [RFC8060]. | in [RFC8060]. | |||
As LISP uses UDP encapsulation to carry traffic between xTRs across | As LISP uses UDP encapsulation to carry traffic between xTRs across | |||
the Internet, implementors should be aware of the provisions of | the Internet, implementors should be aware of the provisions of | |||
[RFC8085], especially those given in section 3.1.11 on congestion | [RFC8085], especially those given in its Section 3.1.11 on congestion | |||
control for UDP tunneling. | control for UDP tunneling. | |||
Implementors are encouraged to consider UDP checksum usage guidelines | Implementors are encouraged to consider UDP checksum usage guidelines | |||
in section 3.4 of [RFC8085] when it is desirable to protect UDP and | in Section 3.4 of [RFC8085] when it is desirable to protect UDP and | |||
LISP headers against corruption. | LISP headers against corruption. | |||
5.1. LISP IPv4-in-IPv4 Header Format | 5.1. LISP IPv4-in-IPv4 Header Format | |||
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 page 15, line 46 ¶ | skipping to change at line 659 ¶ | |||
r + + | r + + | |||
| | | | | | |||
^ + Destination EID + | ^ + Destination EID + | |||
\ | | | \ | | | |||
\ + + | \ + + | |||
\ | | | \ | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
5.3. Tunnel Header Field Descriptions | 5.3. Tunnel Header Field Descriptions | |||
Inner Header (IH): The inner header is the header on the | Inner Header (IH): The inner header is the header on the datagram | |||
datagram received from the originating host [RFC0791] [RFC8200] | received from the originating host [RFC0791] [RFC8200] [RFC2474]. | |||
[RFC2474]. The source and destination IP addresses are EIDs. | The source and destination IP addresses are EIDs. | |||
Outer Header: (OH) The outer header is a new header prepended by an | Outer Header (OH): The outer header is a new header prepended by an | |||
ITR. The address fields contain RLOCs obtained from the ingress | ITR. The address fields contain RLOCs obtained from the ingress | |||
router's EID-to-RLOC Cache. The IP protocol number is "UDP (17)" | router's EID-to-RLOC Map-Cache. The IP protocol number is "UDP | |||
from [RFC0768]. The setting of the Don't Fragment (DF) bit | (17)" from [RFC0768]. The setting of the Don't Fragment (DF) bit | |||
'Flags' field is according to rules listed in Sections 7.1 and | 'Flags' field is according to rules listed in Sections 7.1 and | |||
7.2. | 7.2. | |||
UDP Header: The UDP header contains an ITR selected source port when | UDP Header: The UDP header contains an ITR-selected source port when | |||
encapsulating a packet. See Section 12 for details on the hash | encapsulating a packet. See Section 12 for details on the hash | |||
algorithm used to select a source port based on the 5-tuple of the | algorithm used to select a source port based on the 5-tuple of the | |||
inner header. The destination port MUST be set to the well-known | inner header. The destination port MUST be set to the well-known | |||
IANA-assigned port value 4341. | IANA-assigned port value 4341. | |||
UDP Checksum: The 'UDP Checksum' field SHOULD be transmitted as zero | UDP Checksum: The 'UDP Checksum' field SHOULD be transmitted as zero | |||
by an ITR for either IPv4 [RFC0768] and IPv6 encapsulation | by an ITR for either IPv4 [RFC0768] or IPv6 encapsulation | |||
[RFC6935] [RFC6936]. When a packet with a zero UDP checksum is | [RFC6935] [RFC6936]. When a packet with a zero UDP checksum is | |||
received by an ETR, the ETR MUST accept the packet for | received by an ETR, the ETR MUST accept the packet for | |||
decapsulation. When an ITR transmits a non-zero value for the UDP | decapsulation. When an ITR transmits a non-zero value for the UDP | |||
checksum, it MUST send a correctly computed value in this field. | checksum, it MUST send a correctly computed value in this field. | |||
When an ETR receives a packet with a non-zero UDP checksum, it MAY | When an ETR receives a packet with a non-zero UDP checksum, it MAY | |||
choose to verify the checksum value. If it chooses to perform | choose to verify the checksum value. If it chooses to perform | |||
such verification, and the verification fails, the packet MUST be | such verification and the verification fails, the packet MUST be | |||
silently dropped. If the ETR chooses not to perform the | silently dropped. If the ETR either chooses not to perform the | |||
verification, or performs the verification successfully, the | verification or performs the verification successfully, the packet | |||
packet MUST be accepted for decapsulation. The handling of UDP | MUST be accepted for decapsulation. The handling of UDP zero | |||
zero checksums over IPv6 for all tunneling protocols, including | checksums over IPv6 for all tunneling protocols, including LISP, | |||
LISP, is subject to the applicability statement in [RFC6936]. | is subject to the applicability statement in [RFC6936]. | |||
UDP Length: The 'UDP Length' field is set for an IPv4-encapsulated | UDP Length: The 'UDP Length' field is set for an IPv4-encapsulated | |||
packet to be the sum of the inner-header IPv4 Total Length plus | packet to be the sum of the inner-header IPv4 Total Length plus | |||
the UDP and LISP header lengths. For an IPv6-encapsulated packet, | the UDP and LISP header lengths. For an IPv6-encapsulated packet, | |||
the 'UDP Length' field is the sum of the inner-header IPv6 Payload | the 'UDP Length' field is the sum of the inner-header IPv6 Payload | |||
Length, the size of the IPv6 header (40 octets), and the size of | Length, the size of the IPv6 header (40 octets), and the size of | |||
the UDP and LISP headers. | the UDP and LISP headers. | |||
N: The N-bit is the nonce-present bit. When this bit is set to 1, | N: The N-bit is the nonce-present bit. When this bit is set to 1, | |||
the low-order 24 bits of the first 32 bits of the LISP header | the low-order 24 bits of the first 32 bits of the LISP header | |||
contain a Nonce. See Section 10.1 for details. Both N- and | contain a nonce. See Section 10.1 for details. Both N- and | |||
V-bits MUST NOT be set in the same packet. If they are, a | V-bits MUST NOT be set in the same packet. If they are, a | |||
decapsulating ETR MUST treat the 'Nonce/Map-Version' field as | decapsulating ETR MUST treat the 'Nonce/Map-Version' field as | |||
having a Nonce value present. | having a nonce value present. | |||
L: The L-bit is the 'Locator-Status-Bits' field enabled bit. When | L: The L-bit is the 'Locator-Status-Bits' field enabled bit. When | |||
this bit is set to 1, the Locator-Status-Bits in the second | this bit is set to 1, the Locator-Status-Bits in the second | |||
32 bits of the LISP header are in use. | 32 bits of the LISP header are in use. | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
E: The E-bit is the echo-nonce-request bit. This bit MUST be ignored | E: The E-bit is the Echo-Nonce-request bit. This bit MUST be | |||
and has no meaning when the N-bit is set to 0. When the N-bit is | ignored and has no meaning when the N-bit is set to 0. When the | |||
set to 1 and this bit is set to 1, an ITR is requesting that the | N-bit is set to 1 and this bit is set to 1, an ITR is requesting | |||
nonce value in the 'Nonce' field be echoed back in LISP- | that the nonce value in the 'Nonce' field be echoed back in LISP- | |||
encapsulated packets when the ITR is also an ETR. See | encapsulated packets when the ITR is also an ETR. See | |||
Section 10.1 for details. | Section 10.1 for details. | |||
V: The V-bit is the Map-Version present bit. When this bit is set to | V: The V-bit is the Map-Version present bit. When this bit is set | |||
1, the N-bit MUST be 0. Refer to Section 13.2 for more details. | to 1, the N-bit MUST be 0. Refer to [RFC9302] for more details on | |||
This bit indicates that the LISP header is encoded in this | Database Map-Versioning. This bit indicates that the LISP header | |||
case as: | is encoded in this case as: | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
I: The I-bit is the Instance ID bit. See Section 8 for more details. | I: The I-bit is the Instance ID bit. See Section 8 for more | |||
When this bit is set to 1, the 'Locator-Status-Bits' field is | details. When this bit is set to 1, the 'Locator-Status-Bits' | |||
reduced to 8 bits and the high-order 24 bits are used as an | field is reduced to 8 bits and the high-order 24 bits are used as | |||
Instance ID. If the L-bit is set to 0, then the low-order 8 bits | an Instance ID. If the L-bit is set to 0, then the low-order | |||
are transmitted as zero and ignored on receipt. The format of the | 8 bits are transmitted as zero and ignored on receipt. The format | |||
LISP header would look like this: | of the LISP header would look like this: | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
R: The R-bit is a Reserved and unassigned bit for future use. It | R: The R-bit is a reserved and unassigned bit for future use. It | |||
MUST be set to 0 on transmit and MUST be ignored on receipt. | MUST be set to 0 on transmit and MUST be ignored on receipt. | |||
KK: The KK-bits are a 2-bit field used when encapsulated packets are | KK: The KK-bits are a 2-bit field used when encapsulated packets are | |||
encrypted. The field is set to 00 when the packet is not | encrypted. The field is set to 00 when the packet is not | |||
encrypted. See [RFC8061] for further information. | encrypted. See [RFC8061] for further information. | |||
LISP Nonce: The LISP 'Nonce' field is a 24-bit value that is | LISP Nonce: The LISP 'Nonce' field is a 24-bit value that is | |||
randomly generated by an ITR when the N-bit is set to 1. Nonce | randomly generated by an ITR when the N-bit is set to 1. Nonce | |||
generation algorithms are an implementation matter but are | generation algorithms are an implementation matter but are | |||
required to generate different nonces when sending to different | required to generate different nonces when sending to different | |||
RLOCs. The nonce is also used when the E-bit is set to request | RLOCs. The nonce is also used when the E-bit is set to request | |||
the nonce value to be echoed by the other side when packets are | the nonce value to be echoed by the other side when packets are | |||
returned. When the E-bit is clear but the N-bit is set, a remote | returned. When the E-bit is clear but the N-bit is set, a remote | |||
ITR is either echoing a previously requested echo-nonce or | ITR is either echoing a previously requested Echo-Nonce or | |||
providing a random nonce. See Section 10.1 for more details. | providing a random nonce. See Section 10.1 for more details. | |||
Finally, when both the N and V-bit are not set (N=0, V=0), then | Finally, when 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 | both the 'Nonce' and 'Map-Version' fields are set to 0 and ignored | |||
receipt. | on receipt. | |||
LISP Locator-Status-Bits (LSBs): When the L-bit is also set, the | LISP Locator-Status-Bits (LSBs): When the L-bit is also set, the | |||
'Locator-Status-Bits' field in the LISP header is set by an ITR to | 'Locator-Status-Bits' field in the LISP header is set by an ITR to | |||
indicate to an ETR the up/down status of the Locators in the | indicate to an ETR the up/down status of the Locators in the | |||
source site. Each RLOC in a Map-Reply is assigned an ordinal | source site. Each RLOC in a Map-Reply is assigned an ordinal | |||
value from 0 to n-1 (when there are n RLOCs in a mapping entry). | value from 0 to n-1 (when there are n RLOCs in a mapping entry). | |||
The Locator-Status-Bits are numbered from 0 to n-1 from the least | The Locator-Status-Bits are numbered from 0 to n-1 from the least | |||
significant bit of the field. The field is 32 bits when the I-bit | significant bit of the field. The field is 32 bits when the I-bit | |||
is set to 0 and is 8 bits when the I-bit is set to 1. When a | is set to 0 and is 8 bits when the I-bit is set to 1. When a | |||
Locator-Status-Bit is set to 1, the ITR is indicating to the ETR | Locator-Status-Bit is set to 1, the ITR is indicating to the ETR | |||
skipping to change at page 18, line 39 ¶ | skipping to change at line 790 ¶ | |||
the ETRs at the same site. When a site has multiple EID-Prefixes | the ETRs 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 an | different Locator-Set), the Locator-Status-Bits setting in an | |||
encapsulated packet MUST reflect the mapping for the EID-Prefix | encapsulated packet MUST reflect the mapping for the EID-Prefix | |||
that the inner-header source EID address matches (longest-match). | that the inner-header source EID address matches (longest-match). | |||
If the LSB for an anycast Locator is set to 1, then there is at | If the LSB for an anycast Locator is set to 1, then there is at | |||
least one RLOC with that address, and the ETR is considered 'up'. | least one RLOC with that address, and the ETR is considered 'up'. | |||
When doing ITR/PITR encapsulation: | When doing ITR/PITR encapsulation: | |||
o The outer-header 'Time to Live' field (or 'Hop Limit' field, in | * The outer-header 'Time to Live' field (or 'Hop Limit' field, in | |||
the case of IPv6) SHOULD be copied from the inner-header 'Time to | the case of IPv6) SHOULD be copied from the inner-header 'Time to | |||
Live' field. | Live' field. | |||
o The outer-header IPv4 'Differentiated Services Code Point' (DSCP) | * The outer-header IPv4 'Differentiated Services Code Point (DSCP)' | |||
field or the 'Traffic Class' field, in the case of IPv6, SHOULD be | field (or 'Traffic Class' field, in the case of IPv6) SHOULD be | |||
copied from the inner-header IPv4 DSCP field or 'Traffic Class' | copied from the inner-header IPv4 'DSCP' field (or 'Traffic Class' | |||
field in the case of IPv6, to the outer-header. Guidelines for | field, in the case of IPv6) to the outer header. Guidelines for | |||
this can be found at [RFC2983]. | this can be found in [RFC2983]. | |||
o The IPv4 'Explicit Congestion Notification' (ECN) field and bits 6 | * The IPv4 'Explicit Congestion Notification (ECN)' field and bits 6 | |||
and 7 of the IPv6 'Traffic Class' field requires special treatment | and 7 of the IPv6 'Traffic Class' field require special treatment | |||
in order to avoid discarding indications of congestion as | in order to avoid discarding indications of congestion as | |||
specified in [RFC6040]. | specified in [RFC6040]. | |||
When doing ETR/PETR decapsulation: | When doing ETR/PETR decapsulation: | |||
o The inner-header IPv4 'Time to Live' field or 'Hop Limit' field in | * The inner-header IPv4 'Time to Live' field (or 'Hop Limit' field, | |||
the case of IPv6, MUST be copied from the outer-header 'Time to | in the case of IPv6) MUST be copied from the outer-header 'Time to | |||
Live'/'Hop Limit' field, when the 'Time to Live'/'Hop Limit' value | Live'/'Hop Limit' field when the Time to Live / Hop Limit value of | |||
of the outer header is less than the 'Time to Live'/'Hop Limit' | the outer header is less than the Time to Live / Hop Limit value | |||
value of the inner header. Failing to perform this check can | of the inner header. Failing to perform this check can cause the | |||
cause the 'Time to Live'/'Hop Limit' of the inner header to | Time to Live / Hop Limit of the inner header to increment across | |||
increment across encapsulation/decapsulation cycles. This check | encapsulation/decapsulation cycles. This check is also performed | |||
is also performed when doing initial encapsulation, when a packet | when doing initial encapsulation, when a packet comes to an ITR or | |||
comes to an ITR or PITR destined for a LISP site. | PITR destined for a LISP site. | |||
o The outer-header IPv4 'Differentiated Services Code Point' (DSCP) | * The outer-header IPv4 'Differentiated Services Code Point (DSCP)' | |||
field or the 'Traffic Class' field in the case of IPv6, SHOULD be | field (or 'Traffic Class' field, in the case of IPv6) SHOULD be | |||
copied from the outer-header IPv4 DSCP field or 'Traffic Class' | copied from the outer-header 'IPv4 DSCP' field (or 'Traffic Class' | |||
field in the case of IPv6, to the inner-header. Guidelines for | field, in the case of IPv6) to the inner header. Guidelines for | |||
this can be found at [RFC2983]. | this can be found in [RFC2983]. | |||
o The IPv4 'Explicit Congestion Notification' (ECN) field and bits 6 | * The IPv4 'Explicit Congestion Notification (ECN)' field and bits 6 | |||
and 7 of the IPv6 'Traffic Class' field, requires special | and 7 of the IPv6 'Traffic Class' field require special treatment | |||
treatment in order to avoid discarding indications of congestion | in order to avoid discarding indications of congestion as | |||
as specified in [RFC6040]. Note that implementations exist that | specified in [RFC6040]. Note that implementations exist that copy | |||
copy the 'ECN' field from the outer header to the inner header | the 'ECN' field from the outer header to the inner header, even | |||
even though [RFC6040] does not recommend this behavior. It is | though [RFC6040] does not recommend this behavior. It is | |||
RECOMMENDED that implementations change to support the behavior in | RECOMMENDED that implementations change to support the behavior | |||
[RFC6040]. | discussed in [RFC6040]. | |||
Note that if an ETR/PETR is also an ITR/PITR and chooses to re- | Note that if an ETR/PETR is also an ITR/PITR and chooses to re- | |||
encapsulate after decapsulating, the net effect of this is that the | encapsulate after decapsulating, the net effect of this is that the | |||
new outer header will carry the same Time to Live as the old outer | new outer header will carry the same Time to Live as the old outer | |||
header minus 1. | header minus 1. | |||
Copying the Time to Live (TTL) serves two purposes: first, it | Copying the Time to Live serves two purposes: first, it preserves the | |||
preserves the distance the host intended the packet to travel; | distance the host intended the packet to travel; second, and more | |||
second, and more importantly, it provides for suppression of looping | importantly, it provides for suppression of looping packets in the | |||
packets in the event there is a loop of concatenated tunnels due to | event there is a loop of concatenated tunnels due to | |||
misconfiguration. | misconfiguration. | |||
Some xTRs and PxTRs performs re-encapsulation operations and need to | Some xTRs, PETRs, and PITRs perform re-encapsulation operations and | |||
treat the 'Explicit Congestion Notification' (ECN) in a special way. | need to treat ECN functions in a special way. Because the re- | |||
Because the re-encapsulation operation is a sequence of two | encapsulation operation is a sequence of two operations, namely a | |||
operations, namely a decapsulation followed by an encapsulation, the | decapsulation followed by an encapsulation, the ECN bits MUST be | |||
ECN bits MUST be treated as described above for these two operations. | treated as described above for these two operations. | |||
The LISP dataplane protocol is not backwards compatible with | The LISP data plane protocol is not backwards compatible with | |||
[RFC6830] and does not have explicit support for introducing future | [RFC6830] and does not have explicit support for introducing future | |||
protocol changes (e.g. an explicit version field). However, the LISP | protocol changes (e.g., an explicit version field). However, the | |||
control plane [I-D.ietf-lisp-rfc6833bis] allows an ETR to register | LISP control plane [RFC9301] allows an ETR to register data plane | |||
dataplane capabilities by means of new LCAF types [RFC8060]. In this | capabilities by means of new LISP Canonical Address Format (LCAF) | |||
way an ITR can be made aware of the dataplane capabilities of an ETR, | types [RFC8060]. In this way, an ITR can be made aware of the data | |||
and encapsulate accordingly. The specification of the new LCAF | plane capabilities of an ETR and encapsulate accordingly. The | |||
types, new LCAF mechanisms, and their use, is out of the scope of | specification of the new LCAF types, the new LCAF mechanisms, and | |||
this document. | their use are out of the scope of this document. | |||
6. LISP EID-to-RLOC Map-Cache | 6. LISP EID-to-RLOC Map-Cache | |||
ITRs and PITRs maintain an on-demand cache, referred as LISP EID-to- | ITRs and PITRs maintain an on-demand cache, referred to as the LISP | |||
RLOC Map-Cache, that contains mappings from EID-prefixes to locator | EID-to-RLOC Map-Cache, that contains mappings from EID-Prefixes to | |||
sets. The cache is used to encapsulate packets from the EID space to | Locator-Sets. The cache is used to encapsulate packets from the EID | |||
the corresponding RLOC network attachment point. | space to the corresponding RLOC network attachment point. | |||
When an ITR/PITR receives a packet from inside of the LISP site to | When an ITR/PITR receives a packet from inside of the LISP site to | |||
destinations outside of the site a longest-prefix match lookup of the | destinations outside of the site, a longest-prefix match lookup of | |||
EID is done to the Map-Cache. | the EID is done to the Map-Cache. | |||
When the lookup succeeds, the Locator-Set retrieved from the Map- | When the lookup succeeds, the Locator-Set retrieved from the Map- | |||
Cache is used to send the packet to the EID's topological location. | Cache is used to send the packet to the EID's topological location. | |||
If the lookup fails, the ITR/PITR needs to retrieve the mapping using | If the lookup fails, the ITR/PITR needs to retrieve the mapping using | |||
the LISP Control-Plane protocol [I-D.ietf-lisp-rfc6833bis]. While | the LISP control plane protocol [RFC9301]. While the mapping is | |||
the mapping is being retrieved, the ITR/PITR can either drop or | being retrieved, the ITR/PITR can either drop or buffer the packets. | |||
buffer the packets. This document does not have specific | This document does not have specific recommendations about the action | |||
recommendations about the action to be taken. It is up to the | to be taken. It is up to the deployer to consider whether or not it | |||
deployer to consider whether or not it is desirable to buffer packets | is desirable to buffer packets and deploy a LISP implementation that | |||
and deploy a LISP implementation that offers the desired behaviour. | offers the desired behavior. Once the mapping is resolved, it is | |||
Once the mapping is resolved it is then stored in the local Map-Cache | then stored in the local Map-Cache to forward subsequent packets | |||
to forward subsequent packets addressed to the same EID-prefix. | addressed to the same EID-Prefix. | |||
The Map-Cache is a local cache of mappings, entries are expired based | The Map-Cache is a local cache of mappings; entries are expired based | |||
on the associated Time to live. In addition, entries can be updated | on the associated Time to Live. In addition, entries can be updated | |||
with more current information, see Section 13 for further information | with more current information; see Section 13 for further information | |||
on this. Finally, the Map-Cache also contains reachability | on 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, see | information mechanisms to determine the reachability of RLOCs; see | |||
Section 10 for the specific mechanisms. | Section 10 for the specific mechanisms. | |||
7. Dealing with Large Encapsulated Packets | 7. Dealing with Large Encapsulated Packets | |||
This section proposes two mechanisms to deal with packets that exceed | This section proposes two mechanisms to deal with packets that exceed | |||
the path MTU between the ITR and ETR. | the Path MTU (PMTU) between the ITR and ETR. | |||
It is left to the implementor to decide if the stateless or stateful | It is left to the implementor to decide if the stateless or stateful | |||
mechanism SHOULD be implemented. Both or neither can be used, since | mechanism SHOULD be implemented. Both or neither can be used, since | |||
it is a local decision in the ITR regarding how to deal with MTU | it is a local decision in the ITR regarding how to deal with MTU | |||
issues, and sites can interoperate with differing mechanisms. | issues, and sites can interoperate with differing mechanisms. | |||
Both stateless and stateful mechanisms also apply to Re-encapsulating | Both stateless and stateful mechanisms also apply to Re-encapsulating | |||
and Recursive Tunneling, so any actions below referring to an ITR | and Recursive Tunneling, so any actions below referring to an ITR | |||
also apply to a TE-ITR. | also apply to a TE-ITR. | |||
skipping to change at page 21, line 21 ¶ | skipping to change at line 917 ¶ | |||
An ITR stateless solution to handle MTU issues is described as | An ITR stateless solution to handle MTU issues is described as | |||
follows: | follows: | |||
1. Define H to be the size, in octets, of the outer header an ITR | 1. Define H to be the size, in octets, of the outer header an ITR | |||
prepends to a packet. This includes the UDP and LISP header | prepends to a packet. This includes the UDP and LISP header | |||
lengths. | lengths. | |||
2. Define L to be the size, in octets, of the maximum-sized packet | 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. The network | intermediate routers to fragment the packet. The network | |||
administrator of the LISP deployment has to determine what is the | administrator of the LISP deployment has to determine what the | |||
suitable value of L so to make sure that no MTU issues arise. | suitable value of L is, so as to make sure that no MTU issues | |||
arise. | ||||
3. Define an architectural constant S for the maximum size of a | 3. Define an architectural constant S for the maximum size of a | |||
packet, in octets, an ITR MUST receive from the source so the | packet, in octets, an ITR MUST receive from the source so the | |||
effective MTU can be met. That is, L = S + H. | effective MTU can be met. That is, L = S + H. | |||
When an ITR receives a packet from a site-facing interface and adds H | When an ITR receives a packet from a site-facing interface and adds H | |||
octets worth of encapsulation to yield a packet size greater than L | octets worth of encapsulation to yield a packet size greater than L | |||
octets (meaning the received packet size was greater than S octets | octets (meaning the received packet size was greater than S octets | |||
from the source), it resolves the MTU issue by first splitting the | from the source), it resolves the MTU issue by first splitting the | |||
original packet into 2 equal-sized fragments. A LISP header is then | original packet into 2 equal-sized fragments. A LISP header is then | |||
prepended to each fragment. The size of the encapsulated fragments | prepended to each fragment. The size of the encapsulated fragments | |||
is then (S/2 + H), which is less than the ITR's estimate of the path | is then (S/2 + H), which is less than the ITR's estimate of the PMTU | |||
MTU between the ITR and its correspondent ETR. | between the ITR and its correspondent ETR. | |||
When an ETR receives encapsulated fragments, it treats them as two | When an ETR receives encapsulated fragments, it treats them as two | |||
individually encapsulated packets. It strips the LISP headers and | individually encapsulated packets. It strips the LISP headers and | |||
then forwards each fragment to the destination host of the | 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 originated by | destination host into the single IP datagram that was originated by | |||
the source host. Note that reassembly can happen at the ETR if the | the source host. Note that reassembly can happen at the ETR if the | |||
encapsulated packet was fragmented at or after the ITR. | encapsulated packet was fragmented at or after the ITR. | |||
This behavior MUST be performed by the ITR only when the source host | This behavior MUST be implemented by the ITR only when the source | |||
originates a packet with the 'DF' field of the IP header set to 0. | host originates a packet with the 'DF' field of the IP header set to | |||
When the 'DF' field of the IP header is set to 1, or the packet is an | 0. When the 'DF' field of the IP header is set to 1 or the packet is | |||
IPv6 packet originated by the source host, the ITR will drop the | an IPv6 packet originated by the source host, the ITR will drop the | |||
packet when the size (adding in the size of the encapsulation header) | packet when the size (adding in the size of the encapsulation header) | |||
is greater than L and send an ICMPv4 ICMP Unreachable/Fragmentation- | is greater than L and send an ICMPv4 Unreachable / Fragmentation | |||
Needed or ICMPv6 "Packet Too Big" message to the source with a value | Needed or ICMPv6 Packet Too Big (PTB) message to the source with a | |||
of S, where S is (L - H). | value of S, where S is (L - H). | |||
When the outer-header encapsulation uses an IPv4 header, an | When the outer-header encapsulation uses an IPv4 header, an | |||
implementation SHOULD set the DF bit to 1 so ETR fragment reassembly | implementation SHOULD set the DF bit to 1 so ETR fragment reassembly | |||
can be avoided. An implementation MAY set the DF bit in such headers | can be avoided. An implementation MAY set the DF bit in such headers | |||
to 0 if it has good reason to believe there are unresolvable path MTU | to 0 if it has good reason to believe there are unresolvable PMTU | |||
issues between the sending ITR and the receiving ETR. | issues between the sending ITR and the receiving ETR. | |||
This specification RECOMMENDS that L be defined as 1500. Additional | It is RECOMMENDED that L be defined as 1500. Additional information | |||
information about in-network MTU and fragmentation issues can be | about in-network MTU and fragmentation issues can be found in | |||
found at [RFC4459]. | [RFC4459]. | |||
7.2. A Stateful Solution to MTU Handling | 7.2. A Stateful Solution to MTU Handling | |||
An ITR stateful solution to handle MTU issues is described as | An ITR stateful solution to handle MTU issues is described as | |||
follows: | follows: | |||
1. The ITR will keep state of the effective MTU for each Locator per | 1. The ITR will keep state of the effective MTU for each Locator per | |||
Map-Cache entry. The effective MTU is what the core network can | Map-Cache entry. The effective MTU is what the core network can | |||
deliver along the path between the ITR and ETR. | deliver along the path between the ITR and ETR. | |||
2. When an IPv4-encapsulated packet with the DF bit set to 1, | 2. When an IPv4-encapsulated packet with the DF bit set to 1 exceeds | |||
exceeds what the core network can deliver, one of the | what the core network can deliver, one of the intermediate | |||
intermediate routers on the path will send an an ICMPv4 | routers on the path will send an ICMPv4 Unreachable / | |||
Unreachable/Fragmentation-Needed to the ITR, respectively. The | Fragmentation Needed message to the ITR. The ITR will parse the | |||
ITR will parse the ICMP message to determine which Locator is | ICMP message to determine which Locator is affected by the | |||
affected by the effective MTU change and then record the new | effective MTU change and then record the new effective MTU value | |||
effective MTU value in the Map-Cache entry. | in the Map-Cache entry. | |||
3. When a packet is received by the ITR from a source inside of the | 3. When a packet is received by the ITR from a source inside of the | |||
site and the size of the packet is greater than the effective MTU | site and the size of the packet is greater than the effective MTU | |||
stored with the Map-Cache entry associated with the destination | stored with the Map-Cache entry associated with the destination | |||
EID the packet is for, the ITR will send an ICMPv4 ICMP | EID the packet is for, the ITR will send an ICMPv4 Unreachable / | |||
Unreachable/Fragmentation-Needed message back to the source. The | Fragmentation Needed message back to the source. The packet size | |||
packet size advertised by the ITR in the ICMP message is the | advertised by the ITR in the ICMP message is the effective MTU | |||
effective MTU minus the LISP encapsulation length. | minus the LISP encapsulation length. | |||
Even though this mechanism is stateful, it has advantages over the | Even though this mechanism is stateful, it has advantages over the | |||
stateless IP fragmentation mechanism, by not involving the | stateless IP fragmentation mechanism, by not involving the | |||
destination host with reassembly of ITR fragmented packets. | destination host with reassembly of ITR fragmented packets. | |||
Please note that [RFC1191] and [RFC1981], which describe the use of | Please note that using ICMP packets for PMTU discovery, as described | |||
ICMP packets for PMTU discovery, can behave suboptimally in the | in [RFC1191] and [RFC8201], can result in suboptimal behavior in the | |||
presence of ICMP black holes or off-path attackers that spoof ICMP. | 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 ([RFC4821], [I-D.ietf-tsvwg-datagram-plpmtud]), or ITRs | packets [RFC4821] [RFC8899] or ITRs storing the beginning of large | |||
storing the beginning of large packets to verify that they match the | packets to verify that they match the echoed packet in an ICMP | |||
echoed packet in ICMP Frag Needed/PTB. | Fragmentation Needed / PTB message. | |||
8. Using Virtualization and Segmentation with LISP | 8. Using Virtualization and Segmentation with LISP | |||
There are several cases where segregation is needed at the EID level. | There are several cases where segregation is needed at the EID level. | |||
For instance, this is the case for deployments containing overlapping | For instance, this is the case for deployments containing overlapping | |||
addresses, traffic isolation policies or multi-tenant virtualization. | addresses, traffic isolation policies, or multi-tenant | |||
For these and other scenarios where segregation is needed, Instance | virtualization. For these and other scenarios where segregation is | |||
IDs are used. | needed, Instance IDs are used. | |||
An Instance ID can be carried in a LISP-encapsulated packet. An ITR | An Instance ID can be carried in a LISP-encapsulated packet. An ITR | |||
that prepends a LISP header will copy a 24-bit value used by the LISP | that prepends a LISP header will copy a 24-bit value used by the LISP | |||
router to uniquely identify the address space. The value is copied | router to uniquely identify the address space. The value is copied | |||
to the 'Instance ID' field of the LISP header, and the I-bit is set | to the 'Instance ID' field of the LISP header, and the I-bit is set | |||
to 1. | to 1. | |||
When an ETR decapsulates a packet, the Instance ID from the LISP | When an ETR decapsulates a packet, the Instance ID from the LISP | |||
header is used as a table identifier to locate the forwarding table | header is used as a table identifier to locate the forwarding table | |||
to use for the inner destination EID lookup. | to use for the inner destination EID lookup. | |||
For example, an 802.1Q VLAN tag or VPN identifier could be used as a | For example, an 802.1Q VLAN tag or VPN identifier could be used as a | |||
24-bit Instance ID. See [I-D.ietf-lisp-vpn] for LISP VPN use-case | 24-bit Instance ID. See [LISP-VPN] for details regarding LISP VPN | |||
details. Please note that the Instance ID is not protected, an on- | use cases. Please note that the Instance ID is not protected; an on- | |||
path attacker can modify the tags and for instance, allow | path attacker can modify the tags and, for instance, allow | |||
communicatons between logically isolated VLANs. | communications between logically isolated VLANs. | |||
Participants within a LISP deployment must agree on the meaning of | Participants within a LISP deployment must agree on the meaning of | |||
Instance ID values. The source and destination EIDs MUST belong to | Instance ID values. The source and destination EIDs MUST belong to | |||
the same Instance ID. | the same Instance ID. | |||
Instance ID SHOULD NOT be used with overlapping IPv6 EID addresses. | The Instance ID SHOULD NOT be used with overlapping IPv6 EID | |||
addresses. | ||||
9. Routing Locator Selection | 9. Routing Locator Selection | |||
The Map-Cache contains the state used by ITRs and PITRs to | The Map-Cache contains the state used by ITRs and PITRs to | |||
encapsulate packets. When an ITR/PITR receives a packet from inside | encapsulate packets. When an ITR/PITR receives a packet from inside | |||
the LISP site to a destination outside of the site a longest-prefix | the LISP site to a destination outside of the site, a longest-prefix | |||
match lookup of the EID is done to the Map-Cache (see Section 6). | match lookup of the EID is done to the Map-Cache (see Section 6). | |||
The lookup returns a single Locator-Set containing a list of RLOCs | The lookup returns a single Locator-Set containing a list of RLOCs | |||
corresponding to the EID's topological location. Each RLOC in the | corresponding to the EID's topological location. Each RLOC in the | |||
Locator-Set is associated with a 'Priority' and 'Weight', this | Locator-Set is associated with a Priority and Weight; this | |||
information is used to select the RLOC to encapsulate. | information is used to select the RLOC to encapsulate. | |||
The RLOC with the lowest 'Priority' is selected. An RLOC with | The RLOC with the lowest Priority is selected. An RLOC with Priority | |||
'Priority' 255 means that MUST NOT be used for forwarding. When | 255 means that it MUST NOT be used for forwarding. When multiple | |||
multiple RLOCs have the same 'Priority' then the 'Weight' states how | RLOCs have the same Priority, then the Weight states how to load- | |||
to load balance traffic among them. The value of the 'Weight' | balance traffic among them. The value of the Weight represents the | |||
represents the relative weight of the total packets that match the | relative weight of the total packets that match the mapping entry. | |||
mapping entry. | ||||
The following are different scenarios for choosing RLOCs and the | The following are different scenarios for choosing RLOCs and the | |||
controls that are available: | controls that are available: | |||
o The server-side returns one RLOC. The client-side can only use | * The server-side returns one RLOC. The client-side can only use | |||
one RLOC. The server-side has complete control of the selection. | one RLOC. The server-side has complete control of the selection. | |||
o The server-side returns a list of RLOCs where a subset of the list | * The server-side returns a list of RLOCs where a subset of the list | |||
has the same best Priority. The client can only use the subset | has the same best Priority. The client can only use the subset | |||
list according to the weighting assigned by the server-side. In | list according to the weighting assigned by the server-side. In | |||
this case, the server-side controls both the subset list and load- | this case, the server-side controls both the subset list and load | |||
splitting across its members. The client-side can use RLOCs | splitting across its members. The client-side can use RLOCs | |||
outside of the subset list if it determines that the subset list | outside of the subset list if it determines that the subset list | |||
is unreachable (unless RLOCs are set to a Priority of 255). Some | is unreachable (unless RLOCs are set to a Priority of 255). Some | |||
sharing of control exists: the server-side determines the | sharing of control exists: the server-side determines the | |||
destination RLOC list and load distribution while the client-side | destination RLOC list and load distribution while the client-side | |||
has the option of using alternatives to this list if RLOCs in the | has the option of using alternatives to this list if RLOCs in the | |||
list are unreachable. | list are unreachable. | |||
o The server-side sets a Weight of zero for the RLOC subset list. | * The server-side sets a Weight of zero for the RLOC subset list. | |||
In this case, the client-side can choose how the traffic load is | In this case, the client-side can choose how the traffic load is | |||
spread across the subset list. See Section 12 for details on | spread across the subset list. See Section 12 for details on | |||
load-sharing mechanisms. Control is shared by the server-side | load-sharing mechanisms. Control is shared by the server-side | |||
determining the list and the client-side determining load | determining the list and the client-side determining load | |||
distribution. Again, the client can use alternative RLOCs if the | distribution. Again, the client can use alternative RLOCs if the | |||
server-provided list of RLOCs is unreachable. | server-provided list of RLOCs is unreachable. | |||
o Either side (more likely the server-side ETR) decides to "glean" | * Either side (more likely the server-side ETR) decides to "glean" | |||
the RLOCs. For example, if the server-side ETR gleans RLOCs, then | the RLOCs. For example, if the server-side ETR gleans RLOCs, then | |||
the client-side ITR gives the client-side ITR responsibility for | the client-side ITR gives the server-side ETR responsibility 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 to | RLOC, which then can be added to the list the server-side ETR uses | |||
return traffic. Since no Priority or Weights are provided using | to return traffic. Since no Priority or Weights are provided | |||
this method, the server-side ETR MUST assume that each client-side | using this method, the server-side ETR MUST assume that each | |||
ITR RLOC uses the same best Priority with a Weight of zero. In | client-side ITR RLOC uses the same best Priority with a Weight of | |||
addition, since EID-Prefix encoding cannot be conveyed in data | zero. In addition, since EID-Prefix encoding cannot be conveyed | |||
packets, the EID-to-RLOC Cache on Tunnel Routers can grow to be | in data packets, the EID-to-RLOC Map-Cache on Tunnel Routers can | |||
very large. Gleaning has several important considerations. A | grow very large. Gleaning has several important considerations. | |||
"gleaned" Map-Cache entry is only stored and used for a | A "gleaned" Map-Cache entry is only stored and used for a | |||
RECOMMENDED period of 3 seconds, pending verification. | RECOMMENDED period of 3 seconds, pending verification. | |||
Verification MUST be performed by sending a Map-Request to the | Verification MUST be performed by sending a Map-Request to the | |||
source EID (the inner-header IP source address) of the received | source EID (the inner-header IP source address) of the received | |||
encapsulated packet. A reply to this "verifying Map-Request" is | encapsulated packet. A reply to this "verifying Map-Request" is | |||
used to fully populate the Map-Cache entry for the "gleaned" EID | used to fully populate the Map-Cache entry for the "gleaned" EID | |||
and is stored and used for the time indicated from the 'TTL' field | and is stored and used for the time indicated in the 'Time to | |||
of a received Map-Reply. When a verified Map- Cache entry is | Live' field of a received Map-Reply. When a verified Map-Cache | |||
stored, data gleaning no longer occurs for subsequent packets that | entry is stored, data gleaning no longer occurs for subsequent | |||
have a source EID that matches the EID-Prefix of the verified | packets that have a source EID that matches the EID-Prefix of the | |||
entry. This "gleaning" mechanism MUST NOT be used over the public | verified entry. This "gleaning" mechanism MUST NOT be used over | |||
Internet and SHOULD only be used in trusted and closed | the public Internet and SHOULD only be used in trusted and closed | |||
deployments. Refer to Section 16 for security issues regarding | deployments. Refer to Section 16 for security issues regarding | |||
this mechanism. | this mechanism. | |||
RLOCs that appear in EID-to-RLOC Map-Reply messages are assumed to be | RLOCs that appear in EID-to-RLOC Map-Reply messages are assumed to be | |||
reachable when the R-bit [I-D.ietf-lisp-rfc6833bis] for the Locator | reachable when the R-bit [RFC9301] for the Locator record is set to | |||
record is set to 1. When the R-bit is set to 0, an ITR or PITR MUST | 1. When the R-bit is set to 0, an ITR or PITR MUST NOT encapsulate | |||
NOT encapsulate to the RLOC. Neither the information contained in a | to the RLOC. Neither the information contained in a Map-Reply nor | |||
Map-Reply nor that stored in the mapping database system provides | that stored in the mapping database system provides reachability | |||
reachability information for RLOCs. Note that reachability is not | information for RLOCs. Note that reachability is not part of the | |||
part of the mapping system and is determined using one or more of the | Mapping System and is determined using one or more of the RLOC | |||
Routing Locator reachability algorithms described in the next | reachability algorithms described in the next section. | |||
section. | ||||
10. Routing Locator Reachability | 10. Routing Locator Reachability | |||
Several Data-Plane mechanisms for determining RLOC reachability are | Several data plane mechanisms for determining RLOC reachability are | |||
currently defined. Please note that additional Control-Plane based | currently defined. Please note that additional reachability | |||
reachability mechanisms are defined in [I-D.ietf-lisp-rfc6833bis]. | mechanisms based on the control plane are defined in [RFC9301]. | |||
1. An ETR MAY examine the Locator-Status-Bits in the LISP header of | 1. An ETR MAY examine the Locator-Status-Bits in the LISP header of | |||
an encapsulated data packet received from an ITR. If the ETR is | an encapsulated data packet received from an ITR. If the ETR is | |||
also acting as an ITR and has traffic to return to the original | also acting as an ITR and has traffic to return to the original | |||
ITR site, it can use this status information to help select an | ITR site, it can use this status information to help select an | |||
RLOC. | RLOC. | |||
2. When an ETR receives an encapsulated packet from an ITR, the | 2. When an ETR receives an encapsulated packet from an ITR, the | |||
source RLOC from the outer header of the packet is likely to be | source RLOC from the outer header of the packet is likely to be | |||
reachable. Please note that in some scenarios the RLOC from the | reachable. Please note that in some scenarios the RLOC from the | |||
outer header can be an spoofable field. | outer header can be a spoofable field. | |||
3. An ITR/ETR pair can use the 'Echo-Noncing' Locator reachability | 3. An ITR/ETR pair can use the Echo-Noncing Locator reachability | |||
algorithms described in this section. | algorithms described in this section. | |||
When determining Locator up/down reachability by examining the | When determining Locator up/down reachability by examining the | |||
Locator-Status-Bits from the LISP-encapsulated data packet, an ETR | Locator-Status-Bits from the LISP-encapsulated data packet, an ETR | |||
will receive up-to-date status from an encapsulating ITR about | will receive an up-to-date status from an encapsulating ITR about | |||
reachability for all ETRs at the site. CE-based ITRs at the source | reachability for all ETRs at the site. CE-based ITRs at the source | |||
site can determine reachability relative to each other using the site | site can determine reachability relative to each other using the site | |||
IGP as follows: | IGP as follows: | |||
o Under normal circumstances, each ITR will advertise a default | * Under normal circumstances, each ITR will advertise a default | |||
route into the site IGP. | route into the site IGP. | |||
o If an ITR fails or if the upstream link to its PE fails, its | * If an ITR fails or if the upstream link to its Provider Edge | |||
default route will either time out or be withdrawn. | fails, its default route will either time out or be withdrawn. | |||
Each ITR can thus observe the presence or lack of a default route | Each ITR can thus observe the presence or lack of a default route | |||
originated by the others to determine the Locator-Status-Bits it sets | originated by the others to determine the Locator-Status-Bits it sets | |||
for them. | for them. | |||
When ITRs at the site are not deployed in CE routers, the IGP can | When ITRs at the site are not deployed in CE routers, the IGP can | |||
still be used to determine the reachability of Locators, provided | still be used to determine the reachability of Locators, provided | |||
they are injected into the IGP. This is typically done when a /32 | they are injected into the IGP. This is typically done when a /32 | |||
address is configured on a loopback interface. | address is configured on a loopback interface. | |||
RLOCs listed in a Map-Reply are numbered with ordinals 0 to n-1. The | RLOCs listed in a Map-Reply are numbered with ordinals 0 to n-1. The | |||
Locator-Status-Bits in a LISP-encapsulated packet are numbered from 0 | Locator-Status-Bits in a LISP-encapsulated packet are numbered from 0 | |||
to n-1 starting with the least significant bit. For example, if an | to n-1 starting with the least significant bit. For example, if an | |||
RLOC listed in the 3rd position of the Map-Reply goes down (ordinal | RLOC listed in the 3rd position of the Map-Reply goes down (ordinal | |||
value 2), then all ITRs at the site will clear the 3rd least | value 2), then all ITRs at the site will clear the 3rd least | |||
significant bit (xxxx x0xx) of the 'Locator-Status-Bits' field for | significant bit (xxxx x0xx) of the 'Locator-Status-Bits' field for | |||
the packets they encapsulate. | the packets they encapsulate. | |||
When an xTR decides to use 'Locator-Status-Bits' to affect | When an xTR decides to use Locator-Status-Bits to affect reachability | |||
reachability information, it acts as follows: ETRs decapsulating a | information, it acts as follows: ETRs decapsulating a packet will | |||
packet will check for any change in the 'Locator-Status-Bits' field. | check for any change in the 'Locator-Status-Bits' field. When a bit | |||
When a bit goes from 1 to 0, the ETR, if acting also as an ITR, will | goes from 1 to 0, the ETR, if also acting as an ITR, will refrain | |||
refrain from encapsulating packets to an RLOC that is indicated as | from encapsulating packets to an RLOC that is indicated as down. It | |||
down. It will only resume using that RLOC if the corresponding | will only resume using that RLOC if the corresponding Locator-Status- | |||
Locator-Status-Bit returns to a value of 1. Locator-Status-Bits are | Bit returns to a value of 1. Locator-Status-Bits are associated with | |||
associated with a Locator-Set per EID-Prefix. Therefore, when a | a Locator-Set per EID-Prefix. Therefore, when a Locator becomes | |||
Locator becomes unreachable, the Locator-Status-Bit that corresponds | unreachable, the Locator-Status-Bit that corresponds to that | |||
to that Locator's position in the list returned by the last Map-Reply | Locator's position in the list returned by the last Map-Reply will be | |||
will be set to zero for that particular EID-Prefix. | set to zero for that particular EID-Prefix. | |||
Locator-Status-Bits MUST NOT be used over the public Internet and | Locator-Status-Bits MUST NOT be used over the public Internet and | |||
SHOULD only be used in trusted and closed deployments. In addition | SHOULD only be used in trusted and closed deployments. In addition, | |||
Locator-Status-Bits SHOULD be coupled with Map-Versioning | Locator-Status-Bits SHOULD be coupled with Map-Versioning [RFC9302] | |||
(Section 13.2) to prevent race conditions where Locator-Status-Bits | to prevent race conditions where Locator-Status-Bits are interpreted | |||
are interpreted as referring to different RLOCs than intended. Refer | as referring to different RLOCs than intended. Refer to Section 16 | |||
to Section 16 for security issues regarding this mechanism. | for security issues regarding this mechanism. | |||
If an ITR encapsulates a packet to an ETR and the packet is received | If an ITR encapsulates a packet to an ETR and the packet is received | |||
and decapsulated by the ETR, it is implied but not confirmed by the | and decapsulated by the ETR, it is implied, but not confirmed by the | |||
ITR that the ETR's RLOC is reachable. In most cases, the ETR can | ITR, that the ETR's RLOC is reachable. In most cases, the ETR can | |||
also reach the ITR but cannot assume this to be true, due to the | also reach the ITR but cannot assume this to be true, due to the | |||
possibility of path asymmetry. In the presence of unidirectional | possibility of path asymmetry. In the presence of unidirectional | |||
traffic flow from an ITR to an ETR, the ITR SHOULD NOT use the lack | traffic flow from an ITR to an ETR, the ITR SHOULD NOT use the lack | |||
of return traffic as an indication that the ETR is unreachable. | of return traffic as an indication that the ETR is unreachable. | |||
Instead, it MUST use an alternate mechanism to determine | Instead, it MUST use an alternate mechanism to determine | |||
reachability. | reachability. | |||
The security considerations of Section 16 related to data-plane | The security considerations of Section 16 related to data plane | |||
reachability applies to the data-plane RLOC reachability mechanisms | reachability apply to the data plane RLOC reachability mechanisms | |||
described in this section. | described in this section. | |||
10.1. Echo Nonce Algorithm | 10.1. Echo-Nonce Algorithm | |||
When data flows bidirectionally between Locators from different | When data flows bidirectionally between Locators from different | |||
sites, a Data-Plane mechanism called "nonce echoing" can be used to | sites, a data plane mechanism called "nonce echoing" can be used to | |||
determine reachability between an ITR and ETR. When an ITR wants to | determine reachability between an ITR and ETR. When an ITR wants to | |||
solicit a nonce echo, it sets the N- and E-bits and places a 24-bit | solicit a nonce echo, it sets the N- and E-bits and places a 24-bit | |||
nonce [RFC4086] in the LISP header of the next encapsulated data | nonce [RFC4086] in the LISP header of the next encapsulated data | |||
packet. | packet. | |||
When this packet is received by the ETR, the encapsulated packet is | When this packet is received by the ETR, the encapsulated packet is | |||
forwarded as normal. When the ETR is an xTR (co-located as an ITR), | forwarded as normal. When the ETR is an xTR (co-located as an ITR), | |||
it then sends a data packet to the ITR (when it is an xTR co-located | it then sends a data packet to the ITR (when it is an xTR co-located | |||
as an ETR), it includes the nonce received earlier with the N-bit set | as an ETR) and includes the nonce received earlier with the N-bit set | |||
and E-bit cleared. The ITR sees this "echoed nonce" and knows that | and E-bit cleared. The ITR sees this "echoed nonce" and knows that | |||
the path to and from the ETR is up. | the path to and from the ETR is up. | |||
The ITR will set the E-bit and N-bit for every packet it sends while | The ITR will set the E-bit and N-bit for every packet it sends while | |||
in the echo-nonce-request state. The time the ITR waits to process | in the Echo-Nonce-request state. The time the ITR waits to process | |||
the echoed nonce before it determines the path is unreachable is | the echoed nonce before it determines that the path is unreachable is | |||
variable and is a choice left for the implementation. | variable and is a choice left for the implementation. | |||
If the ITR is receiving packets from the ETR but does not see the | If the ITR is receiving packets from the ETR but does not see the | |||
nonce echoed while being in the echo-nonce-request state, then the | nonce echoed while being in the Echo-Nonce-request state, then the | |||
path to the ETR is unreachable. This decision MAY be overridden by | path to the ETR is unreachable. This decision MAY be overridden by | |||
other Locator reachability algorithms. Once the ITR determines that | other Locator reachability algorithms. Once the ITR determines that | |||
the path to the ETR is down, it can switch to another Locator for | the path to the ETR is down, it can switch to another Locator for | |||
that EID-Prefix. | that EID-Prefix. | |||
Note that "ITR" and "ETR" are relative terms here. Both devices MUST | Note that "ITR" and "ETR" are relative terms here. Both devices MUST | |||
be implementing both ITR and ETR functionality for the echo nonce | be implementing both ITR and ETR functionality for the Echo-Nonce | |||
mechanism to operate. | mechanism to operate. | |||
The ITR and ETR MAY both go into the echo-nonce-request state at the | The ITR and ETR MAY both go into the Echo-Nonce-request state at the | |||
same time. The number of packets sent or the time during which echo | same time. The number of packets sent or the time during which Echo- | |||
nonce requests are sent is an implementation-specific setting. In | Nonce request packets are sent is an implementation-specific setting. | |||
this case, an xTR receiving the echo-nonce-request packets will | In this case, an xTR receiving the Echo-Nonce request packets will | |||
suspend the echo-nonce-request state and setup a 'echo-nonce-request- | suspend the Echo-Nonce state and set up an 'Echo-Nonce-request-state' | |||
state' timer. After the 'echo-nonce-request-state' timer expires it | timer. After the 'Echo-Nonce-request-state' timer expires, it will | |||
will resume the echo-nonce-request state. | resume the Echo-Nonce state. | |||
This mechanism does not completely solve the forward path | This mechanism does not completely solve the forward path | |||
reachability problem, as traffic may be unidirectional. That is, the | reachability problem, as traffic may be unidirectional. That is, the | |||
ETR receiving traffic at a site MAY not be the same device as an ITR | ETR receiving traffic at a site MAY not be the same device as an ITR | |||
that transmits traffic from that site, or the site-to-site traffic is | that transmits traffic from that site, or the site-to-site traffic is | |||
unidirectional so there is no ITR returning traffic. | unidirectional so there is no ITR returning traffic. | |||
The echo-nonce algorithm is bilateral. That is, if one side sets the | The Echo-Nonce algorithm is bilateral. That is, if one side sets the | |||
E-bit and the other side is not enabled for echo-noncing, then the | E-bit and the other side is not enabled for Echo-Noncing, then the | |||
echoing of the nonce does not occur and the requesting side may | echoing of the nonce does not occur and the requesting side may | |||
erroneously consider the Locator unreachable. An ITR SHOULD set the | erroneously consider the Locator unreachable. An ITR SHOULD set the | |||
E-bit in an encapsulated data packet when it knows the ETR is enabled | E-bit in an encapsulated data packet when it knows the ETR is enabled | |||
for echo-noncing. This is conveyed by the E-bit in the Map-Reply | for Echo-Noncing. This is conveyed by the E-bit in the Map-Reply | |||
message. | message. | |||
Many implementations default to not advertising they are echo-nonce | Many implementations default to not advertising that they are Echo- | |||
capable in Map-Reply messages and so RLOC-probing tends to be used | Nonce capable in Map-Reply messages, and so RLOC-Probing tends to be | |||
for RLOC reachability. | used for RLOC reachability. | |||
The echo-nonce mechanism MUST NOT be used over the public Internet | The Echo-Nonce mechanism MUST NOT be used over the public Internet | |||
and MUST only be used in trusted and closed deployments. Refer to | and MUST only be used in trusted and closed deployments. Refer to | |||
Section 16 for security issues regarding this mechanism. | Section 16 for security issues regarding this mechanism. | |||
11. EID Reachability within a LISP Site | 11. EID Reachability within a LISP Site | |||
A site MAY be multihomed using two or more ETRs. The hosts and | A site MAY be multihomed using two or more ETRs. The hosts and | |||
infrastructure within a site will be addressed using one or more EID- | infrastructure within a site will be addressed using one or more EID- | |||
Prefixes that are mapped to the RLOCs of the relevant ETRs in the | Prefixes that are mapped to the RLOCs of the relevant ETRs in the | |||
mapping system. One possible failure mode is for an ETR to lose | Mapping System. One possible failure mode is for an ETR to lose | |||
reachability to one or more of the EID-Prefixes within its own site. | reachability to one or more of the EID-Prefixes within its own site. | |||
When this occurs when the ETR sends Map-Replies, it can clear the | When this occurs when the ETR sends Map-Replies, it can clear the | |||
R-bit associated with its own Locator. And when the ETR is also an | R-bit associated with its own Locator. And when the ETR is also an | |||
ITR, it can clear its Locator-Status-Bit in the encapsulation data | ITR, it can clear its Locator-Status-Bit in the encapsulation data | |||
header. | header. | |||
It is recognized that there are no simple solutions to the site | It is recognized that there are no simple solutions to the site | |||
partitioning problem because it is hard to know which part of the | partitioning problem because it is hard to know which part of the | |||
EID-Prefix range is partitioned and which Locators can reach any sub- | EID-Prefix range is partitioned and which Locators can reach any sub- | |||
ranges of the EID-Prefixes. Note that this is not a new problem | ranges of the EID-Prefixes. Note that this is not a new problem | |||
introduced by the LISP architecture. The problem exists today when a | introduced by the LISP architecture. At the time of this writing, | |||
multihomed site uses BGP to advertise its reachability upstream. | this problem exists when a multihomed site uses BGP to advertise its | |||
reachability upstream. | ||||
12. Routing Locator Hashing | 12. Routing Locator Hashing | |||
When an ETR provides an EID-to-RLOC mapping in a Map-Reply message | When an ETR provides an EID-to-RLOC mapping in a Map-Reply message | |||
that is stored in the Map-Cache of a requesting ITR, the Locator-Set | that is stored in the Map-Cache of a requesting ITR, the Locator-Set | |||
for the EID-Prefix MAY contain different Priority and Weight values | for the EID-Prefix MAY contain different Priority and Weight values | |||
for each locator address. When more than one best Priority Locator | for each Routing Locator Address. When more than one best Priority | |||
exists, the ITR can decide how to load-share traffic against the | Locator exists, the ITR can decide how to load-share traffic against | |||
corresponding Locators. | the corresponding Locators. | |||
The following hash algorithm MAY be used by an ITR to select a | The following hash algorithm MAY be used by an ITR to select a | |||
Locator for a packet destined to an EID for the EID-to-RLOC mapping: | Locator for a packet destined to an EID for the EID-to-RLOC mapping: | |||
1. Either a source and destination address hash or the traditional | 1. Either a source and destination address hash or the commonly used | |||
5-tuple hash can be used. The traditional 5-tuple hash includes | 5-tuple hash can be used. The commonly used 5-tuple hash | |||
the source and destination addresses; source and destination TCP, | includes the source and destination addresses; source and | |||
UDP, or Stream Control Transmission Protocol (SCTP) port numbers; | destination TCP, UDP, or Stream Control Transmission Protocol | |||
and the IP protocol number field or IPv6 next-protocol fields of | (SCTP) port numbers; and the IP protocol number field or IPv6 | |||
a packet that a host originates from within a LISP site. When a | next-protocol fields of a packet that a host originates from | |||
packet is not a TCP, UDP, or SCTP packet, the source and | within a LISP site. When a packet is not a TCP, UDP, or SCTP | |||
destination addresses only from the header are used to compute | packet, the source and destination addresses only from the header | |||
the hash. | are used to compute the hash. | |||
2. Take the hash value and divide it by the number of Locators | 2. Take the hash value and divide it by the number of Locators | |||
stored in the Locator-Set for the EID-to-RLOC mapping. | stored in the Locator-Set for the EID-to-RLOC mapping. | |||
3. The remainder will yield a value of 0 to "number of Locators | 3. The remainder will yield a value of 0 to "number of Locators | |||
minus 1". Use the remainder to select the Locator in the | minus 1". Use the remainder to select the Locator in the | |||
Locator-Set. | Locator-Set. | |||
The specific hash algorithm the ITR uses for load-sharing is out of | The specific hash algorithm the ITR uses for load-sharing is out of | |||
scope for this document and does not prevent interoperability. | scope for this document and does not prevent interoperability. | |||
The Source port SHOULD be the same for all packets belonging to the | The source port SHOULD be the same for all packets belonging to the | |||
same flow. Also note that when a packet is LISP encapsulated, the | same flow. Also note that when a packet is LISP encapsulated, the | |||
source port number in the outer UDP header needs to be set. | source port number in the outer UDP header needs to be set. | |||
Selecting a hashed value allows core routers that are attached to | Selecting a hashed value allows core routers that are attached to | |||
Link Aggregation Groups (LAGs) to load-split the encapsulated packets | Link Aggregation Groups (LAGs) to load-split the encapsulated packets | |||
across member links of such LAGs. Otherwise, core routers would see | across member links of such LAGs. Otherwise, core routers would see | |||
a single flow, since packets have a source address of the ITR, for | a single flow, since packets have a source address of the ITR, for | |||
packets that are originated by different EIDs at the source site. A | packets that are originated by different EIDs at the source site. A | |||
suggested setting for the source port number computed by an ITR is a | suggested setting for the source port number computed by an ITR is a | |||
5-tuple hash function on the inner header, as described above. The | 5-tuple hash function on the inner header, as described above. The | |||
source port SHOULD be the same for all packets belonging to the same | source port SHOULD be the same for all packets belonging to the same | |||
flow. | flow. | |||
Many core router implementations use a 5-tuple hash to decide how to | Many core router implementations use a 5-tuple hash to decide how to | |||
balance packet load across members of a LAG. The 5-tuple hash | balance packet load across members of a LAG. The 5-tuple hash | |||
includes the source and destination addresses of the packet and the | includes the source and destination addresses of the packet and the | |||
source and destination ports when the protocol number in the packet | source and destination ports when the protocol number in the packet | |||
is TCP or UDP. For this reason, UDP encoding is used for LISP | is TCP or UDP. For this reason, UDP encoding is used for LISP | |||
encapsulation. In this scenario, when the outer header is IPv6, the | encapsulation. In this scenario, when the outer header is IPv6, the | |||
flow label MAY also be set following the procedures specified in | flow label MAY also be set following the procedures specified in | |||
[RFC6438]. When the inner header is IPv6 then the flow label is not | [RFC6438]. When the inner header is IPv6 and the flow label is not | |||
zero, it MAY be used to compute the hash. | zero, it MAY be used to compute the hash. | |||
13. Changing the Contents of EID-to-RLOC Mappings | 13. Changing the Contents of EID-to-RLOC Mappings | |||
Since the LISP architecture uses a caching scheme to retrieve and | Since the LISP architecture uses a caching scheme to retrieve and | |||
store EID-to-RLOC mappings, the only way an ITR can get a more up-to- | store EID-to-RLOC mappings, the only way an ITR can get a more up-to- | |||
date mapping is to re-request the mapping. However, the ITRs do not | date mapping is to re-request the mapping. However, the ITRs do not | |||
know when the mappings change, and the ETRs do not keep track of | know when the mappings change, and the ETRs do not keep track of | |||
which ITRs requested its mappings. For scalability reasons, it is | which ITRs requested their mappings. For scalability reasons, it is | |||
desirable to maintain this approach but need to provide a way for | desirable to maintain this approach, but implementors need to provide | |||
ETRs to change their mappings and inform the sites that are currently | a way for ETRs to change their mappings and inform the sites that are | |||
communicating with the ETR site using such mappings. | currently communicating with the ETR site using such mappings. | |||
This section defines two Data-Plane mechanism for updating EID-to- | This section defines two data plane mechanism for updating EID-to- | |||
RLOC mappings. Additionally, the Solicit-Map Request (SMR) Control- | RLOC mappings. Additionally, the Solicit-Map-Request (SMR) control | |||
Plane updating mechanism is specified in [I-D.ietf-lisp-rfc6833bis]. | plane updating mechanism is specified in [RFC9301]. | |||
13.1. Locator-Status-Bits | 13.1. Locator-Status-Bits | |||
Locator-Status-Bits (LSB) can also be used to keep track of the | Locator-Status-Bits (LSBs) can also be used to keep track of the | |||
Locator status (up or down) when EID-to-RLOC mappings are changing. | Locator status (up or down) when EID-to-RLOC mappings are changing. | |||
When LSB are used in a LISP deployment, all LISP tunnel routers MUST | When LSBs are used in a LISP deployment, all LISP Tunnel Routers MUST | |||
implement both ITR and ETR capabilities (therefore all tunnel routers | implement both ITR and ETR capabilities (therefore, all Tunnel | |||
are effectively xTRs). In this section the term "source xTR" is used | Routers are effectively xTRs). In this section, the term "source | |||
to refer to the xTR setting the LSB and "destination xTR" is used to | xTR" is used to refer to the xTR setting the LSB and "destination | |||
refer to the xTR receiving the LSB. The procedure is as follows: | xTR" is used to refer to the xTR receiving the LSB. The procedure is | |||
as follows: | ||||
First, when a Locator record is added or removed from the Locator- | 1. When a Locator record is added or removed from the Locator-Set, | |||
Set, the source xTR will signal this by sending a Solicit-Map Request | the source xTR will signal this by sending an SMR control plane | |||
(SMR) Control-Plane message [I-D.ietf-lisp-rfc6833bis] to the | message [RFC9301] to the destination xTR. At this point, the | |||
destination xTR. At this point the source xTR MUST NOT use LSB | source xTR MUST NOT use the LSB field, when the L-bit is 0, since | |||
(L-bit = 0) since the destination xTR site has outdated information. | the destination xTR site has outdated information. The source | |||
The source xTR will setup a 'use-LSB' timer. | xTR will set up a 'use-LSB' timer. | |||
Second and as defined in [I-D.ietf-lisp-rfc6833bis], upon reception | 2. As defined in [RFC9301], upon reception of the SMR message, the | |||
of the SMR message the destination xTR will retrieve the updated EID- | destination xTR will retrieve the updated EID-to-RLOC mappings by | |||
to-RLOC mappings by sending a Map-Request. | sending a Map-Request. | |||
And third, when the 'use-LSB' timer expires, the source xTR can use | 3. When the 'use-LSB' timer expires, the source xTR can use the LSB | |||
again LSB with the destination xTR to signal the Locator status (up | again with the destination xTR to signal the Locator status (up | |||
or down). The specific value for the 'use-LSB' timer depends on the | or down). The specific value for the 'use-LSB' timer depends on | |||
LISP deployment, the 'use-LSB' timer needs to be large enough for the | the LISP deployment; the 'use-LSB' timer needs to be large enough | |||
destination xTR to retreive the updated EID-to-RLOC mappings. A | for the destination xTR to retrieve the updated EID-to-RLOC | |||
RECOMMENDED value for the 'use-LSB' timer is 5 minutes. | mappings. A RECOMMENDED value for the 'use-LSB' timer is 5 | |||
minutes. | ||||
13.2. Database Map-Versioning | 13.2. Database Map-Versioning | |||
When there is unidirectional packet flow between an ITR and ETR, and | When there is unidirectional packet flow between an ITR and ETR, and | |||
the EID-to-RLOC mappings change on the ETR, it needs to inform the | the EID-to-RLOC mappings change on the ETR, it needs to inform the | |||
ITR so encapsulation to a removed Locator can stop and can instead be | ITR so encapsulation to a removed Locator can stop and can instead be | |||
started to a new Locator in the Locator-Set. | started to a new Locator in the Locator-Set. | |||
An ETR, when it sends Map-Reply messages, conveys its own Map-Version | An ETR can send Map-Reply messages carrying a Map-Version Number | |||
Number. This is known as the Destination Map-Version Number. ITRs | [RFC9302] in an EID-Record. This is known as the Destination Map- | |||
include the Destination Map-Version Number in packets they | Version Number. ITRs include the Destination Map-Version Number in | |||
encapsulate to the site. When an ETR decapsulates a packet and | packets they encapsulate to the site. | |||
detects that the Destination Map-Version Number is less than the | ||||
current version for its mapping, the SMR procedure described in | ||||
[I-D.ietf-lisp-rfc6833bis] occurs. | ||||
An ITR, when it encapsulates packets to ETRs, can convey its own Map- | An ITR, when it encapsulates packets to ETRs, can convey its own Map- | |||
Version Number. This is known as the Source Map-Version Number. | Version Number. This is known as the Source Map-Version Number. | |||
When an ETR decapsulates a packet and detects that the Source Map- | ||||
Version Number is greater than the last Map-Version Number sent in a | ||||
Map-Reply from the ITR's site, the ETR will send a Map-Request to one | ||||
of the ETRs for the source site. | ||||
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. | ||||
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. | ||||
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 this document, but | ||||
MUST keep ETRs synchronized within a 1 minute window. | ||||
Map-Versioning MUST NOT be used over the public Internet and SHOULD | When presented in EID-Records of Map-Register messages [RFC9301], a | |||
only be used in trusted and closed deployments. Refer to Section 16 | Map-Version Number is a good way for the Map-Server [RFC9301] to | |||
for security issues regarding this mechanism. | assure that all ETRs for a site registering to it are synchronized | |||
according to the Map-Version Number. | ||||
See [I-D.ietf-lisp-6834bis] for a more detailed analysis and | See [RFC9302] for a more detailed analysis and description of | |||
description of Database Map-Versioning. | Database Map-Versioning. | |||
14. Multicast Considerations | 14. Multicast Considerations | |||
A multicast group address, as defined in the original Internet | A multicast group address, as defined in the 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. | determine where the receivers are located. | |||
In the context of LISP, a multicast group address is both an EID and | In the context of LISP, a multicast group address is both an EID and | |||
a Routing Locator. Therefore, no specific semantic or action needs | an RLOC. Therefore, no specific semantic or action needs to be taken | |||
to be taken for a destination address, as it would appear in an IP | for a destination address, as it would appear in an IP header. | |||
header. Therefore, a group address that appears in an inner IP | Therefore, a group address that appears in an inner IP header built | |||
header built by a source host will be used as the destination EID. | by a source host will be used as the destination EID. The outer IP | |||
The outer IP header (the destination Routing Locator address), | header (the destination RLOC address), prepended by a LISP router, | |||
prepended by a LISP router, can use the same group address as the | can use the same group address as the destination RLOC, use a | |||
destination Routing Locator, use a multicast or unicast Routing | multicast or unicast RLOC obtained from a Mapping System lookup, or | |||
Locator obtained from a Mapping System lookup, or use other means to | use other means to determine the group address mapping. | |||
determine the group address mapping. | ||||
With respect to the source Routing Locator address, the ITR prepends | With respect to the source RLOC address, the ITR prepends its own IP | |||
its own IP address as the source address of the outer IP header, just | address as the source address of the outer IP header, just like it | |||
like it would if the destination EID was a unicast address. This | would if the destination EID was a unicast address. This source RLOC | |||
source Routing Locator address, like any other Routing Locator | address, like any other RLOC address, MUST be routable on the | |||
address, MUST be routable on the underlay. | underlay. | |||
There are two approaches for LISP-Multicast, one that uses native | There are two approaches for LISP-Multicast [RFC6831]: one that uses | |||
multicast routing in the underlay with no support from the Mapping | native multicast routing in the underlay with no support from the | |||
System and the other that uses only unicast routing in the underlay | Mapping System and another that uses only unicast routing in the | |||
with support from the Mapping System. See [RFC6831] and [RFC8378], | underlay with support from the Mapping System. See [RFC6831] and | |||
respectively, for details. Details for LISP-Multicast and | [RFC8378], respectively, for details. Details for LISP-Multicast and | |||
interworking with non-LISP sites are described in [RFC6831] and | interworking with non-LISP sites are described in [RFC6831] and | |||
[RFC6832]. | [RFC6832], respectively. | |||
15. Router Performance Considerations | 15. Router Performance Considerations | |||
LISP is designed to be very "hardware-based forwarding friendly". A | LISP is designed to be very "hardware based and forwarding friendly". | |||
few implementation techniques can be used to incrementally implement | A few implementation techniques can be used to incrementally | |||
LISP: | implement LISP: | |||
o When a tunnel-encapsulated packet is received by an ETR, the outer | * When a tunnel-encapsulated packet is received by an ETR, the outer | |||
destination address may not be the address of the router. This | destination address may not be the address of the router. This | |||
makes it challenging for the control plane to get packets from the | makes it challenging for the control plane to get packets from the | |||
hardware. This may be mitigated by creating special Forwarding | hardware. This may be mitigated by creating special Forwarding | |||
Information Base (FIB) entries for the EID-Prefixes of EIDs served | Information Base (FIB) entries for the EID-Prefixes of EIDs served | |||
by the ETR (those for which the router provides an RLOC | by the ETR (those for which the router provides an RLOC | |||
translation). These FIB entries are marked with a flag indicating | translation). These FIB entries are marked with a flag indicating | |||
that Control-Plane processing SHOULD be performed. The forwarding | that control plane processing SHOULD be performed. The forwarding | |||
logic of testing for particular IP protocol number values is not | logic of testing for particular IP protocol number values is not | |||
necessary. There are a few proven cases where no changes to | necessary. There are a few proven cases where no changes to | |||
existing deployed hardware were needed to support the LISP Data- | existing deployed hardware were needed to support the LISP data | |||
Plane. | plane. | |||
o On an ITR, prepending a new IP header consists of adding more | * On an ITR, prepending a new IP header consists of adding more | |||
octets to a MAC rewrite string and prepending the string as part | octets to a Message Authentication Code (MAC) rewrite string and | |||
of the outgoing encapsulation procedure. Routers that support | prepending the string as part of the outgoing encapsulation | |||
Generic Routing Encapsulation (GRE) tunneling [RFC2784] or 6to4 | procedure. Routers that support Generic Routing Encapsulation | |||
tunneling [RFC3056] may already support this action. | (GRE) tunneling [RFC2784] or 6to4 tunneling [RFC3056] may already | |||
support this action. | ||||
o A packet's source address or interface the packet was received on | * A packet's source address or the interface on which the packet was | |||
can be used to select VRF (Virtual Routing/Forwarding). The VRF's | received can be used to select Virtual Routing and Forwarding | |||
routing table can be used to find EID-to-RLOC mappings. | (VRF). The VRF system's routing table can be used to find EID-to- | |||
RLOC mappings. | ||||
For performance issues related to Map-Cache management, see | For performance issues related to Map-Cache management, see | |||
Section 16. | Section 16. | |||
16. Security Considerations | 16. Security Considerations | |||
In what follows we highlight security considerations that apply when | In what follows, we highlight security considerations that apply when | |||
LISP is deployed in environments such as those specified in | LISP is deployed in environments such as those specified in | |||
Section 1.1. | Section 1.1. | |||
The optional mechanisms of gleaning is offered to directly obtain a | The optional gleaning mechanism is offered to directly obtain a | |||
mapping from the LISP encapsulated packets. Specifically, an xTR can | mapping from the LISP-encapsulated packets. Specifically, an xTR can | |||
learn the EID-to-RLOC mapping by inspecting the source RLOC and | 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 | |||
into its Map-Cache. An off-path attacker can spoof the source EID | its Map-Cache. An off-path attacker can spoof the source EID address | |||
address to divert the traffic sent to the victim's spoofed EID. If | to divert the traffic sent to the victim's spoofed EID. If the | |||
the attacker spoofs the source RLOC, it can mount a DoS attack by | 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. | overloading it. | |||
The LISP Data-Plane defines several mechanisms to monitor RLOC Data- | The LISP data plane defines several mechanisms to monitor RLOC data | |||
Plane reachability, in this context Locator-Status Bits, Nonce- | plane reachability; in this context, Locator-Status-Bits, nonce- | |||
Present and Echo-Nonce bits of the LISP encapsulation header can be | present bits, and Echo-Nonce bits of the LISP encapsulation header | |||
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. | RLOC's reachability status. | |||
For example of such attacks, an off-path attacker can exploit the | An example of such attacks is when an off-path attacker can exploit | |||
echo-nonce mechanism by sending data packets to an ITR with a random | the Echo-Nonce mechanism by sending data packets to an ITR with a | |||
nonce from an ETR's spoofed RLOC. Note the attacker must guess a | random nonce from an ETR's spoofed RLOC. Note that the attacker only | |||
valid nonce the ITR is requesting to be echoed within a small window | has a small window of time within which to guess a valid nonce that | |||
of time. The goal is to convince the ITR that the ETR's RLOC is | the ITR is requesting to be echoed. The goal is to convince the ITR | |||
reachable even when it may not be reachable. If the attack is | that the ETR's RLOC is reachable even when it may not be reachable. | |||
successful, the ITR believes the wrong reachability status of the | If the attack is successful, the ITR believes the wrong reachability | |||
ETR's RLOC until RLOC-probing detects the correct status. This time | status of the ETR's RLOC until RLOC-Probing detects the correct | |||
frame is on the order of 10s of seconds. This specific attack can be | status. This time frame is on the order of tens of seconds. This | |||
mitigated by preventing RLOC spoofing in the network by deploying | specific attack can be mitigated by preventing RLOC spoofing in the | |||
uRPF BCP 38 [RFC2827]. In addition and in order to exploit this | network by deploying Unicast Reverse Path Forwarding (uRPF) per BCP | |||
vulnerability, the off-path attacker must send echo-nonce packets at | 84 [RFC8704]. In order to exploit this vulnerability, the off-path | |||
high rate. If the nonces have never been requested by the ITR, it | attacker must also send Echo-Nonce packets at a high rate. If the | |||
can protect itself from erroneous reachability attacks. | nonces have never been requested by the ITR, it can protect itself | |||
from erroneous reachability attacks. | ||||
A LISP-specific uRPF check is also possible. When decapsulating, an | A LISP-specific uRPF check is also possible. When decapsulating, an | |||
ETR can check that the source EID and RLOC are valid EID-to-RLOC | ETR can check that the source EID and RLOC are valid EID-to-RLOC | |||
mappings by checking the Mapping System. | mappings by checking the Mapping System. | |||
Map-Versioning is a Data-Plane mechanism used to signal a peering xTR | Map-Versioning is a data plane mechanism used to signal to a peering | |||
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 map- | fresh mapping. This can be used by an attacker to forge the 'Map- | |||
versioning field of a LISP encapsulated header and force an excessive | Version' field of a LISP-encapsulated header and force an excessive | |||
amount of signaling between xTRs that may overload them. | amount of signaling between xTRs that may overload them. Further | |||
security considerations on Map-Versioning can be found in [RFC9302]. | ||||
Locator-Status-Bits, echo-nonce and map-versioning MUST NOT be used | Locator-Status-Bits, the Echo-Nonce mechanism, and Map-Versioning | |||
over the public Internet and SHOULD only be used in trusted and | MUST NOT be used over the public Internet and SHOULD only be used in | |||
closed deployments. In addition Locator-Status-Bits SHOULD be | trusted and closed deployments. In addition, Locator-Status-Bits | |||
coupled with map-versioning to prevent race conditions where Locator- | SHOULD be coupled with Map-Versioning to prevent race conditions | |||
Status-Bits are interpreted as referring to different RLOCs than | where Locator-Status-Bits are interpreted as referring to different | |||
intended. | RLOCs than intended. | |||
LISP implementations and deployments which permit outer header | LISP implementations and deployments that permit outer header | |||
fragments of IPv6 LISP encapsulated packets as a means of dealing | fragments of IPv6 LISP-encapsulated packets as a means of dealing | |||
with MTU issues should also use implementation techniques in ETRs to | with MTU issues should also use implementation techniques in ETRs to | |||
prevent this from being a DoS attack vector. Limits on the number of | prevent this from being a DoS attack vector. Limits on the number of | |||
fragments awaiting reassembly at an ETR, RTR, or PETR, and the rate | fragments awaiting reassembly at an ETR, RTR, or PETR, and the rate | |||
of admitting such fragments may be used. | of admitting such fragments, may be used. | |||
17. Network Management Considerations | 17. Network Management Considerations | |||
Considerations for network management tools exist so the LISP | Considerations for network management tools exist so the LISP | |||
protocol suite can be operationally managed. These mechanisms can be | protocol suite can be operationally managed. These mechanisms can be | |||
found in [RFC7052] and [RFC6835]. | found in [RFC7052] and [RFC6835]. | |||
18. Changes since RFC 6830 | 18. Changes since RFC 6830 | |||
For implementation considerations, the following changes have been | For implementation considerations, the following changes have been | |||
made to this document since RFC 6830 was published: | made to this document since [RFC6830] was published: | |||
o It is no longer mandated that a maximum number of 2 LISP headers | * It is no longer mandated that a maximum number of 2 LISP headers | |||
be prepended to a packet. If there is a application need for more | be prepended to a packet. If there is an application need for | |||
than 2 LISP headers, an implementation can support more. However, | more than 2 LISP headers, an implementation can support more. | |||
it is RECOMMENDED that a maximum of two LISP headers can be | However, it is RECOMMENDED that a maximum of 2 LISP headers can be | |||
prepended to a packet. | prepended to a packet. | |||
o The 3 reserved flag bits in the LISP header have been allocated | * The 3 reserved flag bits in the LISP header have been allocated | |||
for [RFC8061]. The low-order 2 bits of the 3-bit field (now named | for [RFC8061]. The low-order 2 bits of the 3-bit field (now named | |||
the KK bits) are used as a key identifier. The 1 remaining bit is | the KK-bits) are used as a key identifier. The 1 remaining bit is | |||
still documented as reserved and unassigned. | still documented as reserved and unassigned. | |||
o Data-Plane gleaning for creating map-cache entries has been made | * Data plane gleaning for creating Map-Cache entries has been made | |||
optional. Any ITR implementations that depend on or assume the | optional. Any ITR implementations that depend on or assume that | |||
remote ETR is gleaning should not do so. This does not create any | the remote ETR is gleaning should not do so. This does not create | |||
interoperability problems since the control-plane map-cache | any 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. | for populating the Map-Cache. | |||
o The bulk of the changes to this document which reduces its length | * Most of the changes to this document, which reduce its length, are | |||
are due to moving the LISP control-plane messaging and procedures | due to moving the LISP control plane messaging and procedures to | |||
to [I-D.ietf-lisp-rfc6833bis]. | [RFC9301]. | |||
19. IANA Considerations | 19. IANA Considerations | |||
This section provides guidance to the Internet Assigned Numbers | This section provides guidance to the Internet 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 [RFC8126]. | data plane LISP specification, in accordance with BCP 26 [RFC8126]. | |||
19.1. LISP UDP Port Numbers | 19.1. LISP UDP Port Numbers | |||
The IANA registry has allocated UDP port number 4341 for the LISP | IANA has allocated UDP port number 4341 for the LISP data plane. | |||
Data-Plane. IANA has updated the description for UDP port 4341 as | IANA has updated the description for UDP port 4341 as follows: | |||
follows: | ||||
lisp-data 4341 udp LISP Data Packets | +==============+=============+===========+=============+===========+ | |||
| Service Name | Port Number | Transport | Description | Reference | | ||||
| | | Protocol | | | | ||||
+==============+=============+===========+=============+===========+ | ||||
| lisp-data | 4341 | udp | LISP Data | RFC 9300 | | ||||
| | | | Packets | | | ||||
+--------------+-------------+-----------+-------------+-----------+ | ||||
Table 1 | ||||
20. References | 20. References | |||
20.1. Normative References | 20.1. Normative References | |||
[I-D.ietf-lisp-6834bis] | ||||
Iannone, L., Saucez, D., and O. Bonaventure, "Locator/ID | ||||
Separation Protocol (LISP) Map-Versioning", draft-ietf- | ||||
lisp-6834bis-07 (work in progress), October 2020. | ||||
[I-D.ietf-lisp-rfc6833bis] | ||||
Farinacci, D., Maino, F., Fuller, V., and A. Cabellos- | ||||
Aparicio, "Locator/ID Separation Protocol (LISP) Control- | ||||
Plane", draft-ietf-lisp-rfc6833bis-29 (work in progress), | ||||
September 2020. | ||||
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, | [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, | |||
DOI 10.17487/RFC0768, August 1980, | DOI 10.17487/RFC0768, August 1980, | |||
<https://www.rfc-editor.org/info/rfc768>. | <https://www.rfc-editor.org/info/rfc768>. | |||
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | |||
DOI 10.17487/RFC0791, September 1981, | DOI 10.17487/RFC0791, September 1981, | |||
<https://www.rfc-editor.org/info/rfc791>. | <https://www.rfc-editor.org/info/rfc791>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | |||
"Definition of the Differentiated Services Field (DS | "Definition of the Differentiated Services Field (DS | |||
Field) in the IPv4 and IPv6 Headers", RFC 2474, | Field) in the IPv4 and IPv6 Headers", RFC 2474, | |||
DOI 10.17487/RFC2474, December 1998, | DOI 10.17487/RFC2474, December 1998, | |||
<https://www.rfc-editor.org/info/rfc2474>. | <https://www.rfc-editor.org/info/rfc2474>. | |||
[RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: | ||||
Defeating Denial of Service Attacks which employ IP Source | ||||
Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827, | ||||
May 2000, <https://www.rfc-editor.org/info/rfc2827>. | ||||
[RFC2983] Black, D., "Differentiated Services and Tunnels", | [RFC2983] Black, D., "Differentiated Services and Tunnels", | |||
RFC 2983, DOI 10.17487/RFC2983, October 2000, | RFC 2983, DOI 10.17487/RFC2983, October 2000, | |||
<https://www.rfc-editor.org/info/rfc2983>. | <https://www.rfc-editor.org/info/rfc2983>. | |||
[RFC6040] Briscoe, B., "Tunnelling of Explicit Congestion | [RFC6040] Briscoe, B., "Tunnelling of Explicit Congestion | |||
Notification", RFC 6040, DOI 10.17487/RFC6040, November | Notification", RFC 6040, DOI 10.17487/RFC6040, November | |||
2010, <https://www.rfc-editor.org/info/rfc6040>. | 2010, <https://www.rfc-editor.org/info/rfc6040>. | |||
[RFC6438] Carpenter, B. and S. Amante, "Using the IPv6 Flow Label | [RFC6438] Carpenter, B. and S. Amante, "Using the IPv6 Flow Label | |||
for Equal Cost Multipath Routing and Link Aggregation in | for Equal Cost Multipath Routing and Link Aggregation in | |||
skipping to change at page 37, line 19 ¶ | skipping to change at line 1651 ¶ | |||
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | |||
(IPv6) Specification", STD 86, RFC 8200, | (IPv6) Specification", STD 86, RFC 8200, | |||
DOI 10.17487/RFC8200, July 2017, | DOI 10.17487/RFC8200, July 2017, | |||
<https://www.rfc-editor.org/info/rfc8200>. | <https://www.rfc-editor.org/info/rfc8200>. | |||
[RFC8378] Moreno, V. and D. Farinacci, "Signal-Free Locator/ID | [RFC8378] Moreno, V. and D. Farinacci, "Signal-Free Locator/ID | |||
Separation Protocol (LISP) Multicast", RFC 8378, | Separation Protocol (LISP) Multicast", RFC 8378, | |||
DOI 10.17487/RFC8378, May 2018, | DOI 10.17487/RFC8378, May 2018, | |||
<https://www.rfc-editor.org/info/rfc8378>. | <https://www.rfc-editor.org/info/rfc8378>. | |||
[RFC8704] Sriram, K., Montgomery, D., and J. Haas, "Enhanced | ||||
Feasible-Path Unicast Reverse Path Forwarding", BCP 84, | ||||
RFC 8704, DOI 10.17487/RFC8704, February 2020, | ||||
<https://www.rfc-editor.org/info/rfc8704>. | ||||
[RFC9301] Farinacci, D., Maino, F., Fuller, V., and A. Cabellos, | ||||
Ed., "Locator/ID Separation Protocol (LISP) Control | ||||
Plane", RFC 9301, DOI 10.17487/RFC9301, October 2022, | ||||
<https://www.rfc-editor.org/info/rfc9301>. | ||||
[RFC9302] Iannone, L., Saucez, D., and O. Bonaventure, "Locator/ID | ||||
Separation Protocol (LISP) Map-Versioning", RFC 9302, | ||||
DOI 10.17487/RFC9302, October 2022, | ||||
<https://www.rfc-editor.org/info/rfc9302>. | ||||
20.2. Informative References | 20.2. Informative References | |||
[AFN] IANA, "Address Family Numbers", August 2016, | [AFN] IANA, "Address Family Numbers", | |||
<http://www.iana.org/assignments/address-family-numbers>. | <http://www.iana.org/assignments/address-family-numbers>. | |||
[CHIAPPA] Chiappa, J., "Endpoints and Endpoint names: A Proposed", | [CHIAPPA] Chiappa, J., "Endpoints and Endpoint Names: A Proposed | |||
1999, | Enhancement to the Internet Architecture", 1999, | |||
<http://mercury.lcs.mit.edu/~jnc/tech/endpoints.txt>. | <http://mercury.lcs.mit.edu/~jnc/tech/endpoints.txt>. | |||
[I-D.ietf-lisp-introduction] | [LISP-VPN] Moreno, V. and D. Farinacci, "LISP Virtual Private | |||
Cabellos-Aparicio, A. and D. Saucez, "An Architectural | Networks (VPNs)", Work in Progress, Internet-Draft, draft- | |||
Introduction to the Locator/ID Separation Protocol | ietf-lisp-vpn-10, 3 October 2022, | |||
(LISP)", draft-ietf-lisp-introduction-13 (work in | <https://datatracker.ietf.org/doc/html/draft-ietf-lisp- | |||
progress), April 2015. | vpn-10>. | |||
[I-D.ietf-lisp-vpn] | ||||
Moreno, V. and D. Farinacci, "LISP Virtual Private | ||||
Networks (VPNs)", draft-ietf-lisp-vpn-06 (work in | ||||
progress), August 2020. | ||||
[I-D.ietf-tsvwg-datagram-plpmtud] | ||||
Fairhurst, G., Jones, T., Tuexen, M., Ruengeler, I., and | ||||
T. Voelker, "Packetization Layer Path MTU Discovery for | ||||
Datagram Transports", draft-ietf-tsvwg-datagram-plpmtud-22 | ||||
(work in progress), June 2020. | ||||
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | |||
STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | |||
<https://www.rfc-editor.org/info/rfc1034>. | <https://www.rfc-editor.org/info/rfc1034>. | |||
[RFC1191] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191, | [RFC1191] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191, | |||
DOI 10.17487/RFC1191, November 1990, | DOI 10.17487/RFC1191, November 1990, | |||
<https://www.rfc-editor.org/info/rfc1191>. | <https://www.rfc-editor.org/info/rfc1191>. | |||
[RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G., | [RFC2453] Malkin, G., "RIP Version 2", STD 56, RFC 2453, | |||
and E. Lear, "Address Allocation for Private Internets", | DOI 10.17487/RFC2453, November 1998, | |||
BCP 5, RFC 1918, DOI 10.17487/RFC1918, February 1996, | <https://www.rfc-editor.org/info/rfc2453>. | |||
<https://www.rfc-editor.org/info/rfc1918>. | ||||
[RFC1981] McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery | [RFC2677] Greene, M., Cucchiara, J., and J. Luciani, "Definitions of | |||
for IP version 6", RFC 1981, DOI 10.17487/RFC1981, August | Managed Objects for the NBMA Next Hop Resolution Protocol | |||
1996, <https://www.rfc-editor.org/info/rfc1981>. | (NHRP)", RFC 2677, DOI 10.17487/RFC2677, August 1999, | |||
<https://www.rfc-editor.org/info/rfc2677>. | ||||
[RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. | [RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. | |||
Traina, "Generic Routing Encapsulation (GRE)", RFC 2784, | Traina, "Generic Routing Encapsulation (GRE)", RFC 2784, | |||
DOI 10.17487/RFC2784, March 2000, | DOI 10.17487/RFC2784, March 2000, | |||
<https://www.rfc-editor.org/info/rfc2784>. | <https://www.rfc-editor.org/info/rfc2784>. | |||
[RFC3056] Carpenter, B. and K. Moore, "Connection of IPv6 Domains | [RFC3056] Carpenter, B. and K. Moore, "Connection of IPv6 Domains | |||
via IPv4 Clouds", RFC 3056, DOI 10.17487/RFC3056, February | via IPv4 Clouds", RFC 3056, DOI 10.17487/RFC3056, February | |||
2001, <https://www.rfc-editor.org/info/rfc3056>. | 2001, <https://www.rfc-editor.org/info/rfc3056>. | |||
[RFC3232] Reynolds, J., Ed., "Assigned Numbers: RFC 1700 is Replaced | ||||
by an On-line Database", RFC 3232, DOI 10.17487/RFC3232, | ||||
January 2002, <https://www.rfc-editor.org/info/rfc3232>. | ||||
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | |||
A., Peterson, J., Sparks, R., Handley, M., and E. | A., Peterson, J., Sparks, R., Handley, M., and E. | |||
Schooler, "SIP: Session Initiation Protocol", RFC 3261, | Schooler, "SIP: Session Initiation Protocol", RFC 3261, | |||
DOI 10.17487/RFC3261, June 2002, | DOI 10.17487/RFC3261, June 2002, | |||
<https://www.rfc-editor.org/info/rfc3261>. | <https://www.rfc-editor.org/info/rfc3261>. | |||
[RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, | [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, | |||
"Randomness Requirements for Security", BCP 106, RFC 4086, | "Randomness Requirements for Security", BCP 106, RFC 4086, | |||
DOI 10.17487/RFC4086, June 2005, | DOI 10.17487/RFC4086, June 2005, | |||
<https://www.rfc-editor.org/info/rfc4086>. | <https://www.rfc-editor.org/info/rfc4086>. | |||
[RFC4459] Savola, P., "MTU and Fragmentation Issues with In-the- | [RFC4459] Savola, P., "MTU and Fragmentation Issues with In-the- | |||
Network Tunneling", RFC 4459, DOI 10.17487/RFC4459, April | Network Tunneling", RFC 4459, DOI 10.17487/RFC4459, April | |||
2006, <https://www.rfc-editor.org/info/rfc4459>. | 2006, <https://www.rfc-editor.org/info/rfc4459>. | |||
[RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | ||||
"Multiprotocol Extensions for BGP-4", RFC 4760, | ||||
DOI 10.17487/RFC4760, January 2007, | ||||
<https://www.rfc-editor.org/info/rfc4760>. | ||||
[RFC4821] Mathis, M. and J. Heffner, "Packetization Layer Path MTU | [RFC4821] Mathis, M. and J. Heffner, "Packetization Layer Path MTU | |||
Discovery", RFC 4821, DOI 10.17487/RFC4821, March 2007, | Discovery", RFC 4821, DOI 10.17487/RFC4821, March 2007, | |||
<https://www.rfc-editor.org/info/rfc4821>. | <https://www.rfc-editor.org/info/rfc4821>. | |||
[RFC4984] Meyer, D., Ed., Zhang, L., Ed., and K. Fall, Ed., "Report | [RFC4984] Meyer, D., Ed., Zhang, L., Ed., and K. Fall, Ed., "Report | |||
from the IAB Workshop on Routing and Addressing", | from the IAB Workshop on Routing and Addressing", | |||
RFC 4984, DOI 10.17487/RFC4984, September 2007, | RFC 4984, DOI 10.17487/RFC4984, September 2007, | |||
<https://www.rfc-editor.org/info/rfc4984>. | <https://www.rfc-editor.org/info/rfc4984>. | |||
[RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, | [RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, | |||
skipping to change at page 40, line 5 ¶ | skipping to change at line 1781 ¶ | |||
[RFC8061] Farinacci, D. and B. Weis, "Locator/ID Separation Protocol | [RFC8061] Farinacci, D. and B. Weis, "Locator/ID Separation Protocol | |||
(LISP) Data-Plane Confidentiality", RFC 8061, | (LISP) Data-Plane Confidentiality", RFC 8061, | |||
DOI 10.17487/RFC8061, February 2017, | DOI 10.17487/RFC8061, February 2017, | |||
<https://www.rfc-editor.org/info/rfc8061>. | <https://www.rfc-editor.org/info/rfc8061>. | |||
[RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage | [RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage | |||
Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, | Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, | |||
March 2017, <https://www.rfc-editor.org/info/rfc8085>. | March 2017, <https://www.rfc-editor.org/info/rfc8085>. | |||
Appendix A. Acknowledgments | [RFC8201] McCann, J., Deering, S., Mogul, J., and R. Hinden, Ed., | |||
"Path MTU Discovery for IP version 6", STD 87, RFC 8201, | ||||
DOI 10.17487/RFC8201, July 2017, | ||||
<https://www.rfc-editor.org/info/rfc8201>. | ||||
[RFC8899] Fairhurst, G., Jones, T., TΓΌxen, M., RΓΌngeler, I., and T. | ||||
VΓΆlker, "Packetization Layer Path MTU Discovery for | ||||
Datagram Transports", RFC 8899, DOI 10.17487/RFC8899, | ||||
September 2020, <https://www.rfc-editor.org/info/rfc8899>. | ||||
[RFC9299] Cabellos, A. and D. Saucez, Ed., "An Architectural | ||||
Introduction to the Locator/ID Separation Protocol | ||||
(LISP)", RFC 9299, DOI 10.17487/RFC9299, October 2022, | ||||
<https://www.rfc-editor.org/info/rfc9299>. | ||||
Acknowledgments | ||||
An initial thank you goes to Dave Oran for planting the seeds for the | An initial thank you goes to Dave Oran for planting the seeds for the | |||
initial ideas for LISP. His consultation continues to provide value | initial ideas for LISP. His consultation continues to provide value | |||
to the LISP authors. | to the LISP authors. | |||
A special and appreciative thank you goes to Noel Chiappa for | A special and appreciative thank you goes to 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 a | architecture and documents, coupled with enthusiasm for making LISP a | |||
practical and incremental transition for the Internet. | practical and incremental transition for the Internet. | |||
skipping to change at page 40, line 34 ¶ | skipping to change at line 1825 ¶ | |||
Bonaventure, Luigi Iannone, Robin Whittle, Brian Carpenter, Joel | Bonaventure, Luigi Iannone, Robin Whittle, Brian Carpenter, Joel | |||
Halpern, Terry Manderson, Roger Jorgensen, Ran Atkinson, Stig Venaas, | Halpern, Terry Manderson, Roger Jorgensen, Ran Atkinson, Stig Venaas, | |||
Iljitsch van Beijnum, Roland Bless, Dana Blair, Bill Lynch, Marc | Iljitsch van Beijnum, Roland Bless, Dana Blair, Bill Lynch, Marc | |||
Woolward, Damien Saucez, Damian Lezama, Attilla De Groot, Parantap | Woolward, Damien Saucez, Damian Lezama, Attilla De Groot, Parantap | |||
Lahiri, David Black, Roque Gagliano, Isidor Kouvelas, Jesper Skriver, | Lahiri, David Black, Roque Gagliano, Isidor Kouvelas, Jesper Skriver, | |||
Fred Templin, Margaret Wasserman, Sam Hartman, Michael Hofling, Pedro | Fred Templin, Margaret Wasserman, Sam Hartman, Michael Hofling, Pedro | |||
Marques, Jari Arkko, Gregg Schudel, Srinivas Subramanian, Amit Jain, | Marques, Jari Arkko, Gregg Schudel, Srinivas Subramanian, Amit Jain, | |||
Xu Xiaohu, Dhirendra Trivedi, Yakov Rekhter, John Scudder, John | Xu Xiaohu, Dhirendra Trivedi, Yakov Rekhter, John Scudder, John | |||
Drake, Dimitri Papadimitriou, Ross Callon, Selina Heimlich, Job | Drake, Dimitri Papadimitriou, Ross Callon, Selina Heimlich, Job | |||
Snijders, Vina Ermagan, Fabio Maino, Victor Moreno, Chris White, | Snijders, Vina Ermagan, Fabio Maino, Victor Moreno, Chris White, | |||
Clarence Filsfils, Alia Atlas, Florin Coras and Alberto Rodriguez. | Clarence Filsfils, Alia Atlas, Florin Coras, and Alberto Rodriguez. | |||
This work originated in the Routing Research Group (RRG) of the IRTF. | This work originated in the Routing Research Group (RRG) of the IRTF. | |||
An individual submission was converted into the IETF LISP working | An individual submission was converted into the IETF LISP Working | |||
group document that became this RFC. | Group document that became this RFC. | |||
The LISP working group would like to give a special thanks to Jari | The LISP Working Group would like to give a special thanks to Jari | |||
Arkko, the Internet Area AD at the time that the set of LISP | Arkko, the Internet Area AD at the time that the set of LISP | |||
documents were being prepared for IESG last call, and for his | documents was being prepared for IESG Last Call, for his meticulous | |||
meticulous reviews and detailed commentaries on the 7 working group | reviews and detailed commentaries on the 7 Working Group Last Call | |||
last call documents progressing toward standards-track RFCs. | documents progressing toward Standards Track RFCs. | |||
The current authors would like to give a sincere thank you to the | The current authors would like to give a sincere thank you to the | |||
people who help put LISP on standards track in the IETF. They | people who helped put LISP on the Standards Track in the IETF. They | |||
include Joel Halpern, Luigi Iannone, Deborah Brungard, Fabio Maino, | include Joel Halpern, Luigi Iannone, Deborah Brungard, Fabio Maino, | |||
Scott Bradner, Kyle Rose, Takeshi Takahashi, Sarah Banks, Pete | Scott Bradner, Kyle Rose, Takeshi Takahashi, Sarah Banks, Pete | |||
Resnick, Colin Perkins, Mirja Kuhlewind, Francis Dupont, Benjamin | Resnick, Colin Perkins, Mirja KΓΌhlewind, Francis Dupont, Benjamin | |||
Kaduk, Eric Rescorla, Alvaro Retana, Alexey Melnikov, Alissa Cooper, | Kaduk, Eric Rescorla, Alvaro Retana, Alexey Melnikov, Alissa Cooper, | |||
Suresh Krishnan, Alberto Rodriguez-Natal, Vina Ermagen, Mohamed | Suresh Krishnan, Alberto Rodriguez-Natal, Vina Ermagan, Mohamed | |||
Boucadair, Brian Trammell, Sabrina Tanamal, and John Drake. The | Boucadair, Brian Trammell, Sabrina Tanamal, and John Drake. The | |||
contributions they offered greatly added to the security, scale, and | contributions they offered greatly added to the security, scale, and | |||
robustness of the LISP architecture and protocols. | robustness of the LISP architecture and protocols. | |||
Appendix B. Document Change Log | ||||
[RFC Editor: Please delete this section on publication as RFC.] | ||||
B.1. Changes to draft-ietf-lisp-rfc6830bis-27 | ||||
o Posted November 2019. | ||||
o Fixed how LSB behave in the presence of new/removed locators. | ||||
o Added ETR synchronization requirements when using Map-Versioning. | ||||
o Fixed a large set of minor comments and edits. | ||||
B.2. Changes to draft-ietf-lisp-rfc6830bis-27 | ||||
o Posted April 2019 post telechat. | ||||
o Made editorial corrections per Warren's suggestions. | ||||
o Put in suggested text from Luigi that Mirja agreed with. | ||||
o LSB, Echo-Nonce and Map-Versioning SHOULD be only used in closed | ||||
environments. | ||||
o Removed paragraph stating that Instance-ID can be 32-bit in the | ||||
control-plane. | ||||
o 6831/8378 are now normative. | ||||
o Rewritten Security Considerations according to the changes. | ||||
o Stated that LSB SHOULD be coupled with Map-Versioning. | ||||
B.3. Changes to draft-ietf-lisp-rfc6830bis-26 | ||||
o Posted late October 2018. | ||||
o Changed description about "reserved" bits to state "reserved and | ||||
unassigned". | ||||
B.4. Changes to draft-ietf-lisp-rfc6830bis-25 | ||||
o Posted mid October 2018. | ||||
o Added more to the Security Considerations section with discussion | ||||
about echo-nonce attacks. | ||||
B.5. Changes to draft-ietf-lisp-rfc6830bis-24 | ||||
o Posted mid October 2018. | ||||
o Final editorial changes for Eric and Ben. | ||||
B.6. Changes to draft-ietf-lisp-rfc6830bis-23 | ||||
o Posted early October 2018. | ||||
o Added an applicability statement in section 1 to address security | ||||
concerns from Telechat. | ||||
B.7. Changes to draft-ietf-lisp-rfc6830bis-22 | ||||
o Posted early October 2018. | ||||
o Changes to reflect comments post Telechat. | ||||
B.8. Changes to draft-ietf-lisp-rfc6830bis-21 | ||||
o Posted late-September 2018. | ||||
o Changes to reflect comments from Sep 27th Telechat. | ||||
B.9. Changes to draft-ietf-lisp-rfc6830bis-20 | ||||
o Posted late-September 2018. | ||||
o Fix old reference to RFC3168, changed to RFC6040. | ||||
B.10. Changes to draft-ietf-lisp-rfc6830bis-19 | ||||
o Posted late-September 2018. | ||||
o More editorial changes. | ||||
B.11. Changes to draft-ietf-lisp-rfc6830bis-18 | ||||
o Posted mid-September 2018. | ||||
o Changes to reflect comments from Secdir review (Mirja). | ||||
B.12. Changes to draft-ietf-lisp-rfc6830bis-17 | ||||
o Posted September 2018. | ||||
o Indicate in the "Changes since RFC 6830" section why the document | ||||
has been shortened in length. | ||||
o Make reference to RFC 8085 about UDP congestion control. | ||||
o More editorial changes from multiple IESG reviews. | ||||
B.13. Changes to draft-ietf-lisp-rfc6830bis-16 | ||||
o Posted late August 2018. | ||||
o Distinguish the message type names between ICMP for IPv4 and ICMP | ||||
for IPv6 for handling MTU issues. | ||||
B.14. Changes to draft-ietf-lisp-rfc6830bis-15 | ||||
o Posted August 2018. | ||||
o Final editorial changes before RFC submission for Proposed | ||||
Standard. | ||||
o Added section "Changes since RFC 6830" so implementers are | ||||
informed of any changes since the last RFC publication. | ||||
B.15. Changes to draft-ietf-lisp-rfc6830bis-14 | ||||
o Posted July 2018 IETF week. | ||||
o Put obsolete of RFC 6830 in Intro section in addition to abstract. | ||||
B.16. Changes to draft-ietf-lisp-rfc6830bis-13 | ||||
o Posted March IETF Week 2018. | ||||
o Clarified that a new nonce is required per RLOC. | ||||
o Removed 'Clock Sweep' section. This text must be placed in a new | ||||
OAM document. | ||||
o Some references changed from normative to informative | ||||
B.17. Changes to draft-ietf-lisp-rfc6830bis-12 | ||||
o Posted July 2018. | ||||
o Fixed Luigi editorial comments to ready draft for RFC status. | ||||
B.18. Changes to draft-ietf-lisp-rfc6830bis-11 | ||||
o Posted March 2018. | ||||
o Removed sections 16, 17 and 18 (Mobility, Deployment and | ||||
Traceroute considerations). This text must be placed in a new OAM | ||||
document. | ||||
B.19. Changes to draft-ietf-lisp-rfc6830bis-10 | ||||
o Posted March 2018. | ||||
o Updated section 'Router Locator Selection' stating that the Data- | ||||
Plane MUST follow what's stored in the Map-Cache (priorities and | ||||
weights). | ||||
o 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 | ||||
o Removed 'Solicit-Map Request'. | ||||
B.20. Changes to draft-ietf-lisp-rfc6830bis-09 | ||||
o Posted January 2018. | ||||
o Add more details in section 5.3 about DSCP processing during | ||||
encapsulation and decapsulation. | ||||
o Added clarity to definitions in the Definition of Terms section | ||||
from various commenters. | ||||
o Removed PA and PI definitions from Definition of Terms section. | ||||
o More editorial changes. | ||||
o Removed 4342 from IANA section and move to RFC6833 IANA section. | ||||
B.21. Changes to draft-ietf-lisp-rfc6830bis-08 | ||||
o Posted January 2018. | ||||
o Remove references to research work for any protocol mechanisms. | ||||
o Document scanned to make sure it is RFC 2119 compliant. | ||||
o Made changes to reflect comments from document WG shepherd Luigi | ||||
Iannone. | ||||
o Ran IDNITs on the document. | ||||
B.22. Changes to draft-ietf-lisp-rfc6830bis-07 | ||||
o Posted November 2017. | ||||
o Rephrase how Instance-IDs are used and don't refer to [RFC1918] | ||||
addresses. | ||||
B.23. Changes to draft-ietf-lisp-rfc6830bis-06 | ||||
o Posted October 2017. | ||||
o Put RTR definition before it is used. | ||||
o Rename references that are now working group drafts. | ||||
o Remove "EIDs MUST NOT be used as used by a host to refer to other | ||||
hosts. Note that EID blocks MAY LISP RLOCs". | ||||
o Indicate what address-family can appear in data packets. | ||||
o ETRs may, rather than will, be the ones to send Map-Replies. | ||||
o Recommend, rather than mandate, max encapsulation headers to 2. | ||||
o Reference VPN draft when introducing Instance-ID. | ||||
o Indicate that SMRs can be sent when ITR/ETR are in the same node. | ||||
o Clarify when private addresses can be used. | ||||
B.24. Changes to draft-ietf-lisp-rfc6830bis-05 | ||||
o Posted August 2017. | ||||
o Make it clear that a Re-encapsulating Tunnel Router is an RTR. | ||||
B.25. Changes to draft-ietf-lisp-rfc6830bis-04 | ||||
o Posted July 2017. | ||||
o Changed reference of IPv6 RFC2460 to RFC8200. | ||||
o Indicate that the applicability statement for UDP zero checksums | ||||
over IPv6 adheres to RFC6936. | ||||
B.26. Changes to draft-ietf-lisp-rfc6830bis-03 | ||||
o Posted May 2017. | ||||
o Move the control-plane related codepoints in the IANA | ||||
Considerations section to RFC6833bis. | ||||
B.27. Changes to draft-ietf-lisp-rfc6830bis-02 | ||||
o Posted April 2017. | ||||
o Reflect some editorial comments from Damien Sausez. | ||||
B.28. Changes to draft-ietf-lisp-rfc6830bis-01 | ||||
o Posted March 2017. | ||||
o Include references to new RFCs published. | ||||
o Change references from RFC6833 to RFC6833bis. | ||||
o Clarified LCAF text in the IANA section. | ||||
o Remove references to "experimental". | ||||
B.29. Changes to draft-ietf-lisp-rfc6830bis-00 | ||||
o Posted December 2016. | ||||
o Created working group document from draft-farinacci-lisp | ||||
-rfc6830-00 individual submission. No other changes made. | ||||
Authors' Addresses | Authors' Addresses | |||
Dino Farinacci | Dino Farinacci | |||
lispers.net | lispers.net | |||
San Jose, CA | ||||
United States of America | ||||
Email: farinacci@gmail.com | ||||
EMail: farinacci@gmail.com | ||||
Vince Fuller | Vince Fuller | |||
vaf.net Internet Consulting | vaf.net Internet Consulting | |||
Email: vince.fuller@gmail.com | ||||
EMail: vince.fuller@gmail.com | ||||
Dave Meyer | Dave Meyer | |||
1-4-5.net | 1-4-5.net | |||
Email: dmm@1-4-5.net | ||||
EMail: dmm@1-4-5.net | ||||
Darrel Lewis | Darrel Lewis | |||
Cisco Systems | Cisco Systems | |||
170 Tasman Drive | ||||
San Jose, CA | San Jose, CA | |||
USA | United States of America | |||
Email: darlewis@cisco.com | ||||
EMail: darlewis@cisco.com | ||||
Albert Cabellos | Albert Cabellos (editor) | |||
UPC/BarcelonaTech | Universitat Politecnica de Catalunya | |||
Campus Nord, C. Jordi Girona 1-3 | c/ Jordi Girona s/n | |||
Barcelona, Catalunya | 08034 Barcelona | |||
Spain | Spain | |||
Email: acabello@ac.upc.edu | ||||
EMail: acabello@ac.upc.edu | ||||
End of changes. 236 change blocks. | ||||
1053 lines changed or deleted | 738 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |