| < draft-ietf-lisp-rfc6830bis-08.txt | draft-ietf-lisp-rfc6830bis-09.txt > | |||
|---|---|---|---|---|
| Network Working Group D. Farinacci | Network Working Group D. Farinacci | |||
| Internet-Draft V. Fuller | Internet-Draft V. Fuller | |||
| Intended status: Standards Track D. Meyer | Intended status: Standards Track D. Meyer | |||
| Expires: July 13, 2018 D. Lewis | Expires: July 30, 2018 D. Lewis | |||
| Cisco Systems | Cisco Systems | |||
| A. Cabellos (Ed.) | A. Cabellos (Ed.) | |||
| UPC/BarcelonaTech | UPC/BarcelonaTech | |||
| January 9, 2018 | January 26, 2018 | |||
| The Locator/ID Separation Protocol (LISP) | The Locator/ID Separation Protocol (LISP) | |||
| draft-ietf-lisp-rfc6830bis-08 | draft-ietf-lisp-rfc6830bis-09 | |||
| 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, End-point | |||
| Identifiers (EIDs) that identify end-hosts and Routing Locators | Identifiers (EIDs) that identify end-hosts and Routing Locators | |||
| (RLOCs) that identify network attachment points. With this, LISP | (RLOCs) that 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. | |||
| skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on July 13, 2018. | This Internet-Draft will expire on July 30, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
| skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
| 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 Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Definition of Terms . . . . . . . . . . . . . . . . . . . . . 4 | 3. Definition of Terms . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. Basic Overview . . . . . . . . . . . . . . . . . . . . . . . 9 | 4. Basic Overview . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.1. Packet Flow Sequence . . . . . . . . . . . . . . . . . . 11 | 4.1. Packet Flow Sequence . . . . . . . . . . . . . . . . . . 10 | |||
| 5. LISP Encapsulation Details . . . . . . . . . . . . . . . . . 13 | 5. LISP Encapsulation Details . . . . . . . . . . . . . . . . . 12 | |||
| 5.1. LISP IPv4-in-IPv4 Header Format . . . . . . . . . . . . . 13 | 5.1. LISP IPv4-in-IPv4 Header Format . . . . . . . . . . . . . 13 | |||
| 5.2. LISP IPv6-in-IPv6 Header Format . . . . . . . . . . . . . 14 | 5.2. LISP IPv6-in-IPv6 Header Format . . . . . . . . . . . . . 14 | |||
| 5.3. Tunnel Header Field Descriptions . . . . . . . . . . . . 15 | 5.3. Tunnel Header Field Descriptions . . . . . . . . . . . . 15 | |||
| 6. LISP EID-to-RLOC Map-Cache . . . . . . . . . . . . . . . . . 19 | 6. LISP EID-to-RLOC Map-Cache . . . . . . . . . . . . . . . . . 19 | |||
| 7. Dealing with Large Encapsulated Packets . . . . . . . . . . . 20 | 7. Dealing with Large Encapsulated Packets . . . . . . . . . . . 20 | |||
| 7.1. A Stateless Solution to MTU Handling . . . . . . . . . . 20 | 7.1. A Stateless Solution to MTU Handling . . . . . . . . . . 20 | |||
| 7.2. A Stateful Solution to MTU Handling . . . . . . . . . . . 21 | 7.2. A Stateful Solution to MTU Handling . . . . . . . . . . . 21 | |||
| 8. Using Virtualization and Segmentation with LISP . . . . . . . 22 | 8. Using Virtualization and Segmentation with LISP . . . . . . . 22 | |||
| 9. Routing Locator Selection . . . . . . . . . . . . . . . . . . 23 | 9. Routing Locator Selection . . . . . . . . . . . . . . . . . . 22 | |||
| 10. Routing Locator Reachability . . . . . . . . . . . . . . . . 24 | 10. Routing Locator Reachability . . . . . . . . . . . . . . . . 24 | |||
| 10.1. Echo Nonce Algorithm . . . . . . . . . . . . . . . . . . 27 | 10.1. Echo Nonce Algorithm . . . . . . . . . . . . . . . . . . 26 | |||
| 10.2. RLOC-Probing Algorithm . . . . . . . . . . . . . . . . . 28 | 10.2. RLOC-Probing Algorithm . . . . . . . . . . . . . . . . . 28 | |||
| 11. EID Reachability within a LISP Site . . . . . . . . . . . . . 29 | 11. EID Reachability within a LISP Site . . . . . . . . . . . . . 28 | |||
| 12. Routing Locator Hashing . . . . . . . . . . . . . . . . . . . 29 | 12. Routing Locator Hashing . . . . . . . . . . . . . . . . . . . 29 | |||
| 13. Changing the Contents of EID-to-RLOC Mappings . . . . . . . . 30 | 13. Changing the Contents of EID-to-RLOC Mappings . . . . . . . . 30 | |||
| 13.1. Clock Sweep . . . . . . . . . . . . . . . . . . . . . . 31 | 13.1. Clock Sweep . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 13.2. Solicit-Map-Request (SMR) . . . . . . . . . . . . . . . 32 | 13.2. Solicit-Map-Request (SMR) . . . . . . . . . . . . . . . 31 | |||
| 13.3. Database Map-Versioning . . . . . . . . . . . . . . . . 33 | 13.3. Database Map-Versioning . . . . . . . . . . . . . . . . 33 | |||
| 14. Multicast Considerations . . . . . . . . . . . . . . . . . . 34 | 14. Multicast Considerations . . . . . . . . . . . . . . . . . . 34 | |||
| 15. Router Performance Considerations . . . . . . . . . . . . . . 35 | 15. Router Performance Considerations . . . . . . . . . . . . . . 34 | |||
| 16. Mobility Considerations . . . . . . . . . . . . . . . . . . . 35 | 16. Mobility Considerations . . . . . . . . . . . . . . . . . . . 35 | |||
| 16.1. Slow Mobility . . . . . . . . . . . . . . . . . . . . . 36 | 16.1. Slow Mobility . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 16.2. Fast Mobility . . . . . . . . . . . . . . . . . . . . . 36 | 16.2. Fast Mobility . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 16.3. LISP Mobile Node Mobility . . . . . . . . . . . . . . . 37 | 16.3. LISP Mobile Node Mobility . . . . . . . . . . . . . . . 36 | |||
| 17. LISP xTR Placement and Encapsulation Methods . . . . . . . . 37 | 17. LISP xTR Placement and Encapsulation Methods . . . . . . . . 37 | |||
| 17.1. First-Hop/Last-Hop xTRs . . . . . . . . . . . . . . . . 38 | 17.1. First-Hop/Last-Hop xTRs . . . . . . . . . . . . . . . . 38 | |||
| 17.2. Border/Edge xTRs . . . . . . . . . . . . . . . . . . . . 39 | 17.2. Border/Edge xTRs . . . . . . . . . . . . . . . . . . . . 38 | |||
| 17.3. ISP Provider Edge (PE) xTRs . . . . . . . . . . . . . . 39 | 17.3. ISP Provider Edge (PE) xTRs . . . . . . . . . . . . . . 39 | |||
| 17.4. LISP Functionality with Conventional NATs . . . . . . . 40 | 17.4. LISP Functionality with Conventional NATs . . . . . . . 39 | |||
| 17.5. Packets Egressing a LISP Site . . . . . . . . . . . . . 40 | 17.5. Packets Egressing a LISP Site . . . . . . . . . . . . . 40 | |||
| 18. Traceroute Considerations . . . . . . . . . . . . . . . . . . 40 | 18. Traceroute Considerations . . . . . . . . . . . . . . . . . . 40 | |||
| 18.1. IPv6 Traceroute . . . . . . . . . . . . . . . . . . . . 41 | 18.1. IPv6 Traceroute . . . . . . . . . . . . . . . . . . . . 41 | |||
| 18.2. IPv4 Traceroute . . . . . . . . . . . . . . . . . . . . 42 | 18.2. IPv4 Traceroute . . . . . . . . . . . . . . . . . . . . 41 | |||
| 18.3. Traceroute Using Mixed Locators . . . . . . . . . . . . 42 | 18.3. Traceroute Using Mixed Locators . . . . . . . . . . . . 42 | |||
| 19. Security Considerations . . . . . . . . . . . . . . . . . . . 43 | 19. Security Considerations . . . . . . . . . . . . . . . . . . . 42 | |||
| 20. Network Management Considerations . . . . . . . . . . . . . . 43 | 20. Network Management Considerations . . . . . . . . . . . . . . 43 | |||
| 21. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 | 21. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 | |||
| 21.1. LISP UDP Port Numbers . . . . . . . . . . . . . . . . . 44 | 21.1. LISP UDP Port Numbers . . . . . . . . . . . . . . . . . 43 | |||
| 22. References . . . . . . . . . . . . . . . . . . . . . . . . . 44 | 22. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 | |||
| 22.1. Normative References . . . . . . . . . . . . . . . . . . 44 | 22.1. Normative References . . . . . . . . . . . . . . . . . . 43 | |||
| 22.2. Informative References . . . . . . . . . . . . . . . . . 45 | 22.2. Informative References . . . . . . . . . . . . . . . . . 45 | |||
| Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 50 | Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 49 | |||
| Appendix B. Document Change Log . . . . . . . . . . . . . . . . 50 | Appendix B. Document Change Log . . . . . . . . . . . . . . . . 49 | |||
| B.1. Changes to draft-ietf-lisp-rfc6830bis-08 . . . . . . . . 51 | B.1. Changes to draft-ietf-lisp-rfc6830bis-09 . . . . . . . . 50 | |||
| B.2. Changes to draft-ietf-lisp-rfc6830bis-07 . . . . . . . . 51 | B.2. Changes to draft-ietf-lisp-rfc6830bis-08 . . . . . . . . 50 | |||
| B.3. Changes to draft-ietf-lisp-rfc6830bis-06 . . . . . . . . 51 | B.3. Changes to draft-ietf-lisp-rfc6830bis-07 . . . . . . . . 50 | |||
| B.4. Changes to draft-ietf-lisp-rfc6830bis-05 . . . . . . . . 51 | B.4. Changes to draft-ietf-lisp-rfc6830bis-06 . . . . . . . . 50 | |||
| B.5. Changes to draft-ietf-lisp-rfc6830bis-04 . . . . . . . . 52 | B.5. Changes to draft-ietf-lisp-rfc6830bis-05 . . . . . . . . 51 | |||
| B.6. Changes to draft-ietf-lisp-rfc6830bis-03 . . . . . . . . 52 | B.6. Changes to draft-ietf-lisp-rfc6830bis-04 . . . . . . . . 51 | |||
| B.7. Changes to draft-ietf-lisp-rfc6830bis-02 . . . . . . . . 52 | B.7. Changes to draft-ietf-lisp-rfc6830bis-03 . . . . . . . . 51 | |||
| B.8. Changes to draft-ietf-lisp-rfc6830bis-01 . . . . . . . . 52 | B.8. Changes to draft-ietf-lisp-rfc6830bis-02 . . . . . . . . 51 | |||
| B.9. Changes to draft-ietf-lisp-rfc6830bis-00 . . . . . . . . 52 | B.9. Changes to draft-ietf-lisp-rfc6830bis-01 . . . . . . . . 51 | |||
| B.10. Changes to draft-ietf-lisp-rfc6830bis-00 . . . . . . . . 52 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 52 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 52 | |||
| 1. Introduction | 1. Introduction | |||
| This document describes the Locator/Identifier Separation Protocol | This document describes the Locator/Identifier Separation Protocol | |||
| (LISP). LISP is an encapsulation protocol built around the | (LISP). LISP is an encapsulation protocol built around the | |||
| fundamental idea of separating the topological location of a network | fundamental idea of separating the topological location of a network | |||
| attachment point from the node's identity [CHIAPPA]. As a result | attachment point from the node's identity [CHIAPPA]. As a result | |||
| LISP creates two namespaces: Endpoint Identifiers (EIDs), that are | LISP creates two namespaces: Endpoint Identifiers (EIDs), that are | |||
| used to identify end-hosts (e.g., nodes or Virtual Machines) and | used to identify end-hosts (e.g., nodes or Virtual Machines) and | |||
| skipping to change at page 4, line 16 ¶ | skipping to change at page 4, line 17 ¶ | |||
| is populated using the LISP Control-Plane protocol | is populated using the LISP Control-Plane protocol | |||
| [I-D.ietf-lisp-rfc6833bis]. | [I-D.ietf-lisp-rfc6833bis]. | |||
| LISP does not require changes to either host protocol stack or to | LISP does not require changes to either host protocol stack or to | |||
| 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, multihoming and mobility, among | |||
| other features. | 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 [I-D.ietf-lisp-rfc6833bis] | |||
| specifies the LISP control plane. LISP deployment guidelines can be | specifies the LISP control plane. LISP deployment guidelines can be | |||
| found in [RFC7215] and [RFC6835] describes considerations for network | found in [RFC7215] and [RFC6835] describes considerations for network | |||
| operational management. Finally, [I-D.ietf-lisp-introduction] | operational management. Finally, [I-D.ietf-lisp-introduction] | |||
| describes the LISP architecture. | describes the LISP architecture. | |||
| 2. Requirements Notation | 2. Requirements Notation | |||
| skipping to change at page 4, line 46 ¶ | skipping to change at page 4, line 47 ¶ | |||
| value of 0 used in this specification indicates an unspecified | value of 0 used in this specification indicates an unspecified | |||
| encoded address where the length of the address is 0 octets | encoded address where the length of the address is 0 octets | |||
| following the 16-bit AFI value of 0. | following the 16-bit AFI value of 0. | |||
| Anycast Address: Anycast Address is a term used in this document to | Anycast Address: Anycast Address is a term used in this document to | |||
| refer to the same IPv4 or IPv6 address configured and used on | refer to the same IPv4 or IPv6 address configured and used on | |||
| multiple systems at the same time. An EID or RLOC can be an | multiple systems at the same time. An EID or RLOC can be an | |||
| anycast address in each of their own address spaces. | anycast address in each of their own 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 indicate | |||
| a connection initiation attempt by an EID. The ITR(s) at the LISP | a connection initiation attempt by an end-system represented by an | |||
| site are the first to get involved in forwarding a packet from the | EID. | |||
| source EID. | ||||
| Data-Probe: A Data-Probe is a LISP-encapsulated data packet where | Data-Probe: A Data-Probe is a LISP-encapsulated data packet where | |||
| the inner-header destination address equals the outer-header | the inner-header destination address equals the outer-header | |||
| destination address used to trigger a Map-Reply by a decapsulating | destination address used to trigger a Map-Reply by a decapsulating | |||
| ETR. In addition, the original packet is decapsulated and | ETR. In addition, the original packet is decapsulated and | |||
| delivered to the destination host if the destination EID is in the | delivered to the destination host if the destination EID is in the | |||
| EID-Prefix range configured on the ETR. Otherwise, the packet is | EID-Prefix range configured on the ETR. Otherwise, the packet is | |||
| discarded. A Data-Probe is used in some of the mapping database | discarded. A Data-Probe is used in some of the mapping database | |||
| designs to "probe" or request a Map-Reply from an ETR; in other | designs to "probe" or request a Map-Reply from an ETR; in other | |||
| cases, Map-Requests are used. See each mapping database design | cases, Map-Requests are used. See each mapping database design | |||
| skipping to change at page 6, line 16 ¶ | skipping to change at page 6, line 16 ¶ | |||
| device, or any network appliance. | device, or any 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 used in the source and destination address fields of | IPv6) value used in the source and destination address fields of | |||
| the first (most inner) LISP header of a packet. The host obtains | the first (most inner) LISP header of a packet. The host obtains | |||
| a destination EID the same way it obtains a destination address | a destination EID the same way it obtains a destination address | |||
| today, for example, through a Domain Name System (DNS) [RFC1034] | today, for example, through a Domain Name System (DNS) [RFC1034] | |||
| lookup or Session Initiation Protocol (SIP) [RFC3261] exchange. | lookup or Session Initiation Protocol (SIP) [RFC3261] exchange. | |||
| The source EID is obtained via existing mechanisms used to set a | The source EID is obtained via existing mechanisms used to set a | |||
| host's "local" IP address. An EID used on the public Internet | host's "local" IP address. An EID used on the public Internet | |||
| must have the same properties as any other IP address used in that | MUST have the same properties as any other IP address used in that | |||
| manner; this means, among other things, that it must be globally | manner; this means, among other things, that it MUST be globally | |||
| unique. An EID is allocated to a host from an EID-Prefix block | unique. An EID is allocated to a host from an EID-Prefix block | |||
| associated with the site where the host is located. An EID can be | associated with the site where the host is located. An EID can be | |||
| used by a host to refer to other hosts. Note that EID blocks MAY | used by a host to refer to other hosts. Note that EID blocks MAY | |||
| be assigned in a hierarchical manner, independent of the network | be assigned in a hierarchical manner, independent of the network | |||
| topology, to facilitate scaling of the mapping database. In | topology, to facilitate scaling of the mapping database. In | |||
| addition, an EID block assigned to a site MAY have site-local | addition, an EID block assigned to a site MAY have site-local | |||
| structure (subnetting) for routing within the site; this structure | structure (subnetting) for routing within the site; this structure | |||
| is not visible to the global routing system. In theory, the bit | is not visible to the global routing system. In theory, the bit | |||
| string that represents an EID for one device can represent an RLOC | string that represents an EID for one device can represent an RLOC | |||
| for a different device. When used in discussions with other | for a different device. When used in discussions with other | |||
| skipping to change at page 7, line 35 ¶ | skipping to change at page 7, line 35 ¶ | |||
| Negative Mapping Entry: A negative mapping entry, also known as a | Negative Mapping Entry: A negative mapping entry, also known as a | |||
| negative cache entry, is an EID-to-RLOC entry where an EID-Prefix | negative cache entry, is an EID-to-RLOC entry where an EID-Prefix | |||
| is advertised or stored with no RLOCs. That is, the Locator-Set | is advertised or stored with no RLOCs. That is, the Locator-Set | |||
| for the EID-to-RLOC entry is empty or has an encoded Locator count | for the EID-to-RLOC entry is empty or has an encoded Locator count | |||
| of 0. This type of entry could be used to describe a prefix from | of 0. This type of entry could be used to describe a prefix from | |||
| a non-LISP site, which is explicitly not in the mapping database. | a non-LISP site, which is explicitly not in the mapping database. | |||
| There are a set of well-defined actions that are encoded in a | There are a set of well-defined actions that are encoded in a | |||
| Negative Map-Reply. | Negative Map-Reply. | |||
| Provider-Assigned (PA) Addresses: PA addresses are an address block | ||||
| assigned to a site by each service provider to which a site | ||||
| connects. Typically, each block is a sub-block of a service | ||||
| provider Classless Inter-Domain Routing (CIDR) [RFC4632] block and | ||||
| is aggregated into the larger block before being advertised into | ||||
| the underlay network. Traditionally, IP multihoming has been | ||||
| implemented by each multihomed site acquiring its own globally | ||||
| visible prefix. | ||||
| Provider-Independent (PI) Addresses: PI addresses are an address | ||||
| block assigned from a pool where blocks are not associated with | ||||
| any particular location in the network (e.g., from a particular | ||||
| service provider) and are therefore not topologically aggregatable | ||||
| in the routing system. | ||||
| 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 re-routing | |||
| as needed. When this is done, an additional "outer" LISP header | as needed. When this is done, an additional "outer" LISP header | |||
| is added, and the original RLOCs are preserved in the "inner" | is 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 re-routed by the RTR without adding the | |||
| overhead of additional tunnel headers. Any references to tunnels | overhead of additional tunnel headers. When using multiple | |||
| in this specification refer to dynamic encapsulating tunnels; they | mapping database systems, care must be taken to not create re- | |||
| are never statically configured. When using multiple 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 [RFC0791] or IPv6 | |||
| [RFC8200] address of an Egress Tunnel Router (ETR). An RLOC is | [RFC8200] address of an Egress Tunnel Router (ETR). An RLOC is | |||
| the output of an EID-to-RLOC mapping lookup. An EID maps to one | the output of an EID-to-RLOC mapping lookup. An EID maps to zero | |||
| or more RLOCs. Typically, RLOCs are numbered from aggregatable | or more RLOCs. Typically, RLOCs are numbered from blocks that are | |||
| blocks that are assigned to a site at each point to which it | assigned to a site at each point to which it attaches to the | |||
| attaches to the underlay network; where the topology is defined by | underlay network; where the topology is defined by the | |||
| the connectivity of provider networks. Multiple RLOCs can be | connectivity of provider networks. Multiple RLOCs can be assigned | |||
| assigned to the same ETR device or to multiple ETR devices at a | to the same ETR device or to multiple ETR devices at a site. | |||
| 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 indicate | |||
| that a connection initiation attempt is being accepted for a | that a connection initiation attempt is being accepted for a | |||
| destination EID. | destination EID. | |||
| TE-ETR: A TE-ETR is an ETR that is deployed in a service provider | TE-ETR: A TE-ETR is an ETR that is deployed in a service provider | |||
| network that strips an outer LISP header for Traffic Engineering | network that strips an outer LISP header for Traffic Engineering | |||
| purposes. | purposes. | |||
| TE-ITR: A TE-ITR is an ITR that is deployed in a service provider | TE-ITR: A TE-ITR is an ITR that is deployed in a service provider | |||
| skipping to change at page 9, line 44 ¶ | skipping to change at page 9, line 28 ¶ | |||
| 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. They don't know | o End-systems only send to addresses that are EIDs. EIDs are | |||
| that addresses are EIDs versus RLOCs but assume that packets get | typically IP addresses assigned to hosts (other types of EID are | |||
| to their intended destinations. In a system where LISP is | supported by LISP, see [RFC8060] for further information). End- | |||
| deployed, LISP routers intercept EID-addressed packets and assist | systems don't know that addresses are EIDs versus RLOCs but assume | |||
| in delivering them across the network core where EIDs cannot be | that packets get to their intended destinations. In a system | |||
| routed. The procedure a host uses to send IP packets does not | where LISP is deployed, LISP routers intercept EID-addressed | |||
| change. | packets and assist in delivering them across the network core | |||
| where EIDs cannot be routed. The procedure a host uses to send IP | ||||
| o EIDs are typically IP addresses assigned to hosts. | packets does not change. | |||
| o Other types of EID are supported by LISP, see [RFC8060] for | ||||
| further information. | ||||
| o LISP routers mostly deal with Routing Locator addresses. See | o LISP routers mostly deal with Routing Locator addresses. See | |||
| details in Section 4.1 to clarify what is meant by "mostly". | details in Section 4.1 to clarify what is meant by "mostly". | |||
| o RLOCs are always IP addresses assigned to routers, preferably | o RLOCs are always IP addresses assigned to routers, preferably | |||
| topologically oriented addresses from provider CIDR (Classless | topologically oriented addresses from provider CIDR (Classless | |||
| Inter-Domain Routing) blocks. | Inter-Domain Routing) blocks. | |||
| o When a router originates packets, it MAY use as a source address | o 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 | |||
| skipping to change at page 10, line 32 ¶ | skipping to change at page 10, line 13 ¶ | |||
| 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 iBGP sessions | |||
| to other routers in a site while at the same time using RLOCs to | to other routers in a site while at the same time using RLOCs to | |||
| terminate eBGP sessions to routers outside the site. | terminate eBGP sessions to routers outside the site. | |||
| o Packets with EIDs in them are not expected to be delivered end-to- | o 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 EID-Prefixes are likely to be hierarchically assigned in a manner | ||||
| that is optimized for administrative convenience and to facilitate | ||||
| scaling of the EID-to-RLOC mapping database. | ||||
| o EIDs MAY also be structured (subnetted) in a manner suitable for | o 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 re-routing of the path for a packet is desired. A potential | |||
| use-case for this would be an ISP router that needs to perform | use-case for this would be an ISP router that needs to perform | |||
| Traffic Engineering for packets flowing through its network. In such | Traffic Engineering for packets flowing through its network. In such | |||
| a situation, termed "Recursive Tunneling", an ISP transit acts as an | a situation, termed "Recursive Tunneling", an ISP transit acts as an | |||
| additional ITR, and the RLOC it uses for the new prepended header | additional ITR, and the RLOC it uses for the new prepended header | |||
| would be either a TE-ETR within the ISP (along an intra-ISP traffic | would be either a TE-ETR within the ISP (along an intra-ISP traffic | |||
| skipping to change at page 13, line 5 ¶ | skipping to change at page 12, line 32 ¶ | |||
| 8. The ETR receives these packets directly (since the destination | 8. 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. | |||
| 9. In order to defer the need for a mapping lookup in the reverse | 9. 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, an ETR can OPTIONALLY create a cache entry that maps | |||
| the source EID (inner-header source IP address) to the source | the source EID (inner-header source IP address) to the source | |||
| RLOC (outer-header source IP address) in a received LISP packet. | RLOC (outer-header source IP address) in a received LISP packet. | |||
| Such a cache entry is termed a "gleaned" mapping and only | Such a cache entry is termed a "glean mapping" and only contains | |||
| contains a single RLOC for the EID in question. More complete | a single RLOC for the EID in question. More complete information | |||
| information about additional RLOCs SHOULD be verified by sending | about additional RLOCs SHOULD be verified by sending a LISP Map- | |||
| a LISP Map-Request for that EID. Both the ITR and the ETR MAY | Request for that EID. Both the ITR and the ETR MAY also | |||
| also influence the decision the other makes in selecting an RLOC. | 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 ICMP Unreachable/Fragmentation-Needed message is | |||
| returned to the source. | returned to the source. | |||
| skipping to change at page 17, line 48 ¶ | skipping to change at page 17, line 15 ¶ | |||
| 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 bit for future use. It MUST be set to 0 | R: The R-bit is a Reserved bit for future use. It MUST be set to 0 | |||
| on transmit and MUST be ignored on receipt. | on transmit and MUST be ignored on receipt. | |||
| KK: The KK-bits are a 2-bit field used when encapsualted 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 | |||
| destinations. However, the same nonce can be used for a period of | destinations. However, the same nonce can be used for a period of | |||
| time to the same destination. The nonce is also used when the | time when encapsulating to the same ETR. The nonce is also used | |||
| E-bit is set to request the nonce value to be echoed by the other | when the E-bit is set to request the nonce value to be echoed by | |||
| side when packets are returned. When the E-bit is clear but the | the other side when packets are returned. When the E-bit is clear | |||
| N-bit is set, a remote ITR is either echoing a previously | but the N-bit is set, a remote ITR is either echoing a previously | |||
| requested echo-nonce or providing a random nonce. See | requested echo-nonce or providing a random nonce. See | |||
| Section 10.1 for more details. | Section 10.1 for more details. | |||
| 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 | |||
| skipping to change at page 18, line 42 ¶ | skipping to change at page 18, line 9 ¶ | |||
| that the inner-header source EID address matches. If the LSB for | that the inner-header source EID address matches. If the LSB for | |||
| an anycast Locator is set to 1, then there is at least one RLOC | an anycast Locator is set to 1, then there is at least one RLOC | |||
| with that address, and the ETR is considered 'up'. | 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 | o 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 'Type of Service' field (or the 'Traffic Class' | o The outer-header 'Differentiated Services Code Point' (DSCP) field | |||
| field, in the case of IPv6) SHOULD be copied from the inner-header | (or the 'Traffic Class' field, in the case of IPv6) SHOULD be | |||
| 'Type of Service' field (with one exception; see below). | copied from the inner-header DSCP field ('Traffic Class' field, in | |||
| the case of IPv6) considering the exception listed below. | ||||
| o The 'Explicit Congestion Notification' (ECN) field (bits 6 and 7 | ||||
| of the IPv6 'Traffic Class' field) requires special treatment in | ||||
| order to avoid discarding indications of congestion [RFC3168]. | ||||
| ITR encapsulation MUST copy the 2-bit 'ECN' field from the inner | ||||
| header to the outer header. Re-encapsulation MUST copy the 2-bit | ||||
| 'ECN' field from the stripped outer header to the new outer | ||||
| header. | ||||
| When doing ETR/PETR decapsulation: | When doing ETR/PETR decapsulation: | |||
| o The inner-header 'Time to Live' field (or 'Hop Limit' field, in | o The inner-header 'Time to Live' field (or 'Hop Limit' field, in | |||
| the case of IPv6) SHOULD be copied from the outer-header 'Time to | the case of IPv6) SHOULD be copied from the outer-header 'Time to | |||
| Live' field, when the Time to Live value of the outer header is | Live' field, when the Time to Live value of the outer header is | |||
| less than the Time to Live value of the inner header. Failing to | less than the Time to Live value of the inner header. Failing to | |||
| perform this check can cause the Time to Live of the inner header | perform this check can cause the Time to Live of the inner header | |||
| to increment across encapsulation/decapsulation cycles. This | to increment across encapsulation/decapsulation cycles. This | |||
| check is also performed when doing initial encapsulation, when a | check is also performed when doing initial encapsulation, when a | |||
| packet comes to an ITR or PITR destined for a LISP site. | packet comes to an ITR or PITR destined for a LISP site. | |||
| o The inner-header 'Type of Service' field (or the 'Traffic Class' | o The inner-header 'Differentiated Services Code Point' (DSCP) field | |||
| field, in the case of IPv6) SHOULD be copied from the outer-header | (or the 'Traffic Class' field, in the case of IPv6) SHOULD be | |||
| 'Type of Service' field (with one exception; see below). | copied from the outer-header DSCP field ('Traffic Class' field, in | |||
| the case of IPv6) considering the exception listed below. | ||||
| o The 'Explicit Congestion Notification' (ECN) field (bits 6 and 7 | ||||
| of the IPv6 'Traffic Class' field) requires special treatment in | ||||
| order to avoid discarding indications of congestion [RFC3168]. If | ||||
| the 'ECN' field contains a congestion indication codepoint (the | ||||
| value is '11', the Congestion Experienced (CE) codepoint), then | ||||
| ETR decapsulation MUST copy the 2-bit 'ECN' field from the | ||||
| stripped outer header to the surviving inner header that is used | ||||
| to forward the packet beyond the ETR. These requirements preserve | ||||
| CE indications when a packet that uses ECN traverses a LISP tunnel | ||||
| and becomes marked with a CE indication due to congestion between | ||||
| the tunnel endpoints. | ||||
| 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 (TTL) serves two purposes: first, it | |||
| preserves the distance the host intended the packet to travel; | preserves the distance the host intended the packet to travel; | |||
| second, and more importantly, it provides for suppression of looping | second, and more importantly, it provides for suppression of looping | |||
| packets in the event there is a loop of concatenated tunnels due to | packets in the event there is a loop of concatenated tunnels due to | |||
| skipping to change at page 20, line 5 ¶ | skipping to change at page 19, line 41 ¶ | |||
| ITRs and PITRs maintain an on-demand cache, referred as LISP EID-to- | ITRs and PITRs maintain an on-demand cache, referred as LISP EID-to- | |||
| RLOC Map-Cache, that contains mappings from EID-prefixes to locator | RLOC Map-Cache, that contains mappings from EID-prefixes to locator | |||
| sets. The cache is used to encapsulate packets from the EID space to | sets. The cache is used to encapsulate packets from the EID space to | |||
| the corresponding RLOC network attachment point. | 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 the | |||
| EID is done to the map-cache. | 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]. The | the LISP control-plane protocol [I-D.ietf-lisp-rfc6833bis]. The | |||
| mapping is then stored in the local map-cache to forward subsequent | mapping is then stored in the local map-cache to forward subsequent | |||
| packets addressed to the same EID-prefix. | packets 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 | |||
| skipping to change at page 23, line 32 ¶ | skipping to change at page 23, line 17 ¶ | |||
| 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 0 for the RLOC subset list. In | o The server-side sets a Weight of zero for the RLOC subset list. | |||
| 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. Control is shared by the server- | spread across the subset list. Control is shared by the server- | |||
| side determining the list and the client determining load | side 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 not to send | o Either side (more likely the server-side ETR) decides not to send | |||
| a Map-Request. For example, if the server-side ETR does not send | a Map-Request. For example, if the server-side ETR does not send | |||
| Map-Requests, it gleans RLOCs from the client-side ITR, giving the | Map-Requests, it gleans RLOCs from the client-side ITR, giving the | |||
| client-side ITR responsibility for bidirectional RLOC reachability | client-side ITR responsibility for bidirectional RLOC reachability | |||
| and preferability. Server-side ETR gleaning of the client-side | and preferability. Server-side ETR gleaning of the client-side | |||
| ITR RLOC is done by caching the inner-header source EID and the | ITR RLOC is done by caching the inner-header source EID and the | |||
| outer-header source RLOC of received packets. The client-side ITR | outer-header source RLOC of received packets. The client-side ITR | |||
| skipping to change at page 24, line 45 ¶ | skipping to change at page 24, line 30 ¶ | |||
| 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. An ITR MAY receive an ICMP Network Unreachable or Host | 2. An ITR MAY receive an ICMP Network Unreachable or Host | |||
| Unreachable message for an RLOC it is using. This indicates that | Unreachable message for an RLOC it is using. This indicates that | |||
| the RLOC is likely down. Note that trusting ICMP messages may | the RLOC is likely down. Note that trusting ICMP messages may | |||
| not be desirable, but neither is ignoring them completely. | not be desirable, but neither is ignoring them completely. | |||
| Implementations are encouraged to follow current best practices | Implementations are encouraged to follow current best practices | |||
| in treating these conditions. | in treating these conditions [I-D.ietf-opsec-icmp-filtering]. | |||
| 3. An ITR that participates in the global routing system can | 3. When an ITR participates in the routing protocol that operates in | |||
| determine that an RLOC is down if no BGP Routing Information Base | the underlay routing system, it can determine that an RLOC is | |||
| (RIB) route exists that matches the RLOC IP address. | down when no Routing Information Base (RIB) entry exists that | |||
| matches the RLOC IP address. | ||||
| 4. An ITR MAY receive an ICMP Port Unreachable message from a | 4. An ITR MAY receive an ICMP Port Unreachable message from a | |||
| destination host. This occurs if an ITR attempts to use | destination host. This occurs if an ITR attempts to use | |||
| interworking [RFC6832] and LISP-encapsulated data is sent to a | interworking [RFC6832] and LISP-encapsulated data is sent to a | |||
| non-LISP-capable site. | non-LISP-capable site. | |||
| 5. An ITR MAY receive a Map-Reply from an ETR in response to a | 5. An ITR MAY receive a Map-Reply from an ETR in response to a | |||
| previously sent Map-Request. The RLOC source of the Map-Reply is | previously sent Map-Request. The RLOC source of the Map-Reply is | |||
| likely up, since the ETR was able to send the Map-Reply to the | likely up, since the ETR was able to send the Map-Reply to the | |||
| ITR. | ITR. | |||
| skipping to change at page 37, line 34 ¶ | skipping to change at page 37, line 15 ¶ | |||
| in LISP Map-Servers and Map-Resolvers) and are provided on demand to | in LISP Map-Servers and Map-Resolvers) and are provided on demand to | |||
| only the correspondents of the LISP mobile node. | only the correspondents of the LISP mobile node. | |||
| Refer to [I-D.ietf-lisp-mn] for more details for when the EID and | Refer to [I-D.ietf-lisp-mn] for more details for when the EID and | |||
| RLOC are co-located in the roaming node. | RLOC are co-located in the roaming node. | |||
| 17. LISP xTR Placement and Encapsulation Methods | 17. LISP xTR Placement and Encapsulation Methods | |||
| This section will explore how and where ITRs and ETRs can be placed | This section will explore how and where ITRs and ETRs can be placed | |||
| in the network and will discuss the pros and cons of each scenario. | in the network and will discuss the pros and cons of each scenario. | |||
| For a more detailed networkd design deployment recommendation, refer | For a more detailed network design deployment recommendation, refer | |||
| to [RFC7215]. | to [RFC7215]. | |||
| There are two basic deployment tradeoffs to consider: centralized | There are two basic deployment tradeoffs to consider: centralized | |||
| versus distributed caches; and flat, Recursive, or Re-encapsulating | versus distributed caches; and flat, Recursive, or Re-encapsulating | |||
| Tunneling. When deciding on centralized versus distributed caching, | Tunneling. When deciding on centralized versus distributed caching, | |||
| the following issues SHOULD be considered: | the following issues SHOULD be considered: | |||
| o Are the xTRs spread out so that the caches are spread across all | o Are the xTRs spread out so that the caches are spread across all | |||
| the memories of each router? A centralized cache is when an ITR | the memories of each router? A centralized cache is when an ITR | |||
| keeps a cache for all the EIDs it is encapsulating to. The packet | keeps a cache for all the EIDs it is encapsulating to. The packet | |||
| skipping to change at page 39, line 50 ¶ | skipping to change at page 39, line 33 ¶ | |||
| capture some of the reasoning behind this preference for implementing | capture some of the reasoning behind this preference for implementing | |||
| LISP on CE routers. | LISP on CE routers. | |||
| The use of ISP PE routers for xTR placement gives an ISP, rather than | The use of ISP PE routers for xTR placement gives an ISP, rather than | |||
| a site, control over the location of the ETRs. That is, the ISP can | a site, control over the location of the ETRs. That is, the ISP can | |||
| decide whether the xTRs are in the destination site (in either CE | decide whether the xTRs are in the destination site (in either CE | |||
| xTRs or last-hop xTRs within a site) or at other PE edges. The | xTRs or last-hop xTRs within a site) or at other PE edges. The | |||
| advantage of this case is that two encapsulation headers can be | advantage of this case is that two encapsulation headers can be | |||
| avoided. By having the PE be the first router on the path to | avoided. By having the PE be the first router on the path to | |||
| encapsulate, it can choose a TE path first, and the ETR can | encapsulate, it can choose a TE path first, and the ETR can | |||
| decapsulate and Re-Encapsulate for a new encapsuluation path to the | decapsulate and Re-Encapsulate for a new encapsulation path to the | |||
| destination end site. | destination end site. | |||
| An obvious disadvantage is that the end site has no control over | An obvious disadvantage is that the end site has no control over | |||
| where its packets flow or over the RLOCs used. Other disadvantages | where its packets flow or over the RLOCs used. Other disadvantages | |||
| include difficulty in synchronizing path liveness updates between CE | include difficulty in synchronizing path liveness updates between CE | |||
| and PE routers. | and PE routers. | |||
| As mentioned in earlier sections, a combination of these scenarios is | As mentioned in earlier sections, a combination of these scenarios is | |||
| possible at the expense of extra packet header overhead; if both site | possible at the expense of extra packet header overhead; if both site | |||
| and provider want control, then Recursive or Re-Encapsulating Tunnels | and provider want control, then Recursive or Re-Encapsulating Tunnels | |||
| skipping to change at page 43, line 7 ¶ | skipping to change at page 42, line 36 ¶ | |||
| expecting addresses from intermediate hops in the same address format | expecting addresses from intermediate hops in the same address format | |||
| for the type of traceroute it originated. Therefore, in this case, | for the type of traceroute it originated. Therefore, in this case, | |||
| segment 2 will make the tunnel look like one hop. All the ITR has to | segment 2 will make the tunnel look like one hop. All the ITR has to | |||
| do to make this work is to not copy the inner TTL to the outer, | do to make this work is to not copy the inner TTL to the outer, | |||
| encapsulating header's TTL when a traceroute packet is encapsulated | encapsulating header's TTL when a traceroute packet is encapsulated | |||
| using an RLOC from a different address family. This will cause no | using an RLOC from a different address family. This will cause no | |||
| TTL decrement to 0 to occur in core routers between the ITR and ETR. | TTL decrement to 0 to occur in core routers between the ITR and ETR. | |||
| 19. Security Considerations | 19. Security Considerations | |||
| Security considerations for LISP are discussed in [RFC7833], in | Security considerations for LISP are discussed in [RFC7833]. | |||
| addition [I-D.ietf-lisp-sec] provides authentication and integrity to | ||||
| LISP mappings. | ||||
| A complete LISP threat analysis can be found in [RFC7835], in what | A complete LISP threat analysis can be found in [RFC7835], in what | |||
| follows we provide a summary. | follows we provide a summary. | |||
| The optional mechanisms of gleaning is offered to directly obtain a | The optional mechanisms of gleaning 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 its map-cache. An off-path attacker can spoof the source EID | into its map-cache. An off-path attacker can spoof the source EID | |||
| address to divert the traffic sent to the victim's spoofed EID. If | address to divert the traffic sent to the victim's spoofed EID. If | |||
| the attacker spoofs the source RLOC, it can mount a DoS attack by | the attacker spoofs the source RLOC, it can mount a DoS attack by | |||
| redirecting traffic to the spoofed victim;s RLOC, potentially | redirecting traffic to the spoofed victim's RLOC, potentially | |||
| overloading it. | 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 and Echo-Nonce bits of the LISP encapsulation header can be | |||
| manipulated by an attacker to mount a DoS attack. An off-path | manipulated by an attacker to mount a DoS attack. An off-path | |||
| attacker able to spoof the RLOC of a victim's xTR can manipulate such | attacker able to spoof the RLOC of a victim's xTR can manipulate such | |||
| mechanisms to declare a set of RLOCs unreachable. This can be used | mechanisms to declare a set of RLOCs unreachable. This can be used | |||
| also, for instance, to declare only one RLOC reachable with the aim | also, for instance, to declare only one RLOC reachable with the aim | |||
| of overload it. | of overload it. | |||
| skipping to change at page 44, line 13 ¶ | skipping to change at page 43, line 38 ¶ | |||
| found in [RFC7052] and [RFC6835]. | found in [RFC7052] and [RFC6835]. | |||
| 21. IANA Considerations | 21. 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]. | |||
| 21.1. LISP UDP Port Numbers | 21.1. LISP UDP Port Numbers | |||
| The IANA registry has allocated UDP port numbers 4341 and 4342 for | The IANA registry has allocated UDP port number 4341 for the LISP | |||
| lisp-data and lisp-control operation, respectively. IANA has updated | data-plane. IANA has updated the description for UDP port 4341 as | |||
| the description for UDP ports 4341 and 4342 as follows: | follows: | |||
| lisp-data 4341 udp LISP Data Packets | lisp-data 4341 udp LISP Data Packets | |||
| lisp-control 4342 udp LISP Control Packets | ||||
| 22. References | 22. References | |||
| 22.1. Normative References | 22.1. Normative References | |||
| [I-D.ietf-lisp-rfc6833bis] | [I-D.ietf-lisp-rfc6833bis] | |||
| Fuller, V., Farinacci, D., and A. Cabellos-Aparicio, | Fuller, V., Farinacci, D., and A. Cabellos-Aparicio, | |||
| "Locator/ID Separation Protocol (LISP) Control-Plane", | "Locator/ID Separation Protocol (LISP) Control-Plane", | |||
| draft-ietf-lisp-rfc6833bis-07 (work in progress), December | draft-ietf-lisp-rfc6833bis-07 (work in progress), December | |||
| 2017. | 2017. | |||
| skipping to change at page 46, line 42 ¶ | skipping to change at page 46, line 25 ¶ | |||
| [I-D.ietf-lisp-signal-free-multicast] | [I-D.ietf-lisp-signal-free-multicast] | |||
| Moreno, V. and D. Farinacci, "Signal-Free LISP Multicast", | Moreno, V. and D. Farinacci, "Signal-Free LISP Multicast", | |||
| draft-ietf-lisp-signal-free-multicast-07 (work in | draft-ietf-lisp-signal-free-multicast-07 (work in | |||
| progress), November 2017. | progress), November 2017. | |||
| [I-D.ietf-lisp-vpn] | [I-D.ietf-lisp-vpn] | |||
| Moreno, V. and D. Farinacci, "LISP Virtual Private | Moreno, V. and D. Farinacci, "LISP Virtual Private | |||
| Networks (VPNs)", draft-ietf-lisp-vpn-01 (work in | Networks (VPNs)", draft-ietf-lisp-vpn-01 (work in | |||
| progress), November 2017. | progress), November 2017. | |||
| [I-D.ietf-opsec-icmp-filtering] | ||||
| Gont, F., Gont, G., and C. Pignataro, "Recommendations for | ||||
| filtering ICMP messages", draft-ietf-opsec-icmp- | ||||
| filtering-04 (work in progress), July 2013. | ||||
| [I-D.meyer-loc-id-implications] | [I-D.meyer-loc-id-implications] | |||
| Meyer, D. and D. Lewis, "Architectural Implications of | Meyer, D. and D. Lewis, "Architectural Implications of | |||
| Locator/ID Separation", draft-meyer-loc-id-implications-01 | Locator/ID Separation", draft-meyer-loc-id-implications-01 | |||
| (work in progress), January 2009. | (work in progress), January 2009. | |||
| [LISA96] Lear, E., Tharp, D., Katinsky, J., and J. Coffin, | [LISA96] Lear, E., Tharp, D., Katinsky, J., and J. Coffin, | |||
| "Renumbering: Threat or Menace?", Usenix Tenth System | "Renumbering: Threat or Menace?", Usenix Tenth System | |||
| Administration Conference (LISA 96), October 1996. | Administration Conference (LISA 96), October 1996. | |||
| [OPENLISP] | [OPENLISP] | |||
| skipping to change at page 51, line 5 ¶ | skipping to change at page 50, line 5 ¶ | |||
| 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 were being prepared for IESG last call, and for his | |||
| meticulous reviews and detailed commentaries on the 7 working group | meticulous reviews and detailed commentaries on the 7 working group | |||
| last call documents progressing toward standards-track RFCs. | last call documents progressing toward standards-track RFCs. | |||
| Appendix B. Document Change Log | Appendix B. Document Change Log | |||
| [RFC Editor: Please delete this section on publication as RFC.] | [RFC Editor: Please delete this section on publication as RFC.] | |||
| B.1. Changes to draft-ietf-lisp-rfc6830bis-08 | B.1. 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.2. Changes to draft-ietf-lisp-rfc6830bis-08 | ||||
| o Posted January 2018. | o Posted January 2018. | |||
| o Remove references to research work for any protocol mechanisms. | o Remove references to research work for any protocol mechanisms. | |||
| o Document scanned to make sure it is RFC 2119 compliant. | o Document scanned to make sure it is RFC 2119 compliant. | |||
| o Made changes to reflect comments from document WG shepherd Luigi | o Made changes to reflect comments from document WG shepherd Luigi | |||
| Iannone. | Iannone. | |||
| o Ran IDNITs on the document. | o Ran IDNITs on the document. | |||
| B.2. Changes to draft-ietf-lisp-rfc6830bis-07 | B.3. Changes to draft-ietf-lisp-rfc6830bis-07 | |||
| o Posted November 2017. | o Posted November 2017. | |||
| o Rephrase how Instance-IDs are used and don't refer to [RFC1918] | o Rephrase how Instance-IDs are used and don't refer to [RFC1918] | |||
| addresses. | addresses. | |||
| B.3. Changes to draft-ietf-lisp-rfc6830bis-06 | B.4. Changes to draft-ietf-lisp-rfc6830bis-06 | |||
| o Posted October 2017. | o Posted October 2017. | |||
| o Put RTR definition before it is used. | o Put RTR definition before it is used. | |||
| o Rename references that are now working group drafts. | 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 | o Remove "EIDs MUST NOT be used as used by a host to refer to other | |||
| hosts. Note that EID blocks MAY LISP RLOCs". | hosts. Note that EID blocks MAY LISP RLOCs". | |||
| skipping to change at page 51, line 48 ¶ | skipping to change at page 51, line 15 ¶ | |||
| o ETRs may, rather than will, be the ones to send Map-Replies. | o ETRs may, rather than will, be the ones to send Map-Replies. | |||
| o Recommend, rather than mandate, max encapsulation headers to 2. | o Recommend, rather than mandate, max encapsulation headers to 2. | |||
| o Reference VPN draft when introducing Instance-ID. | o Reference VPN draft when introducing Instance-ID. | |||
| o Indicate that SMRs can be sent when ITR/ETR are in the same node. | o Indicate that SMRs can be sent when ITR/ETR are in the same node. | |||
| o Clarify when private addreses can be used. | o Clarify when private addreses can be used. | |||
| B.4. Changes to draft-ietf-lisp-rfc6830bis-05 | B.5. Changes to draft-ietf-lisp-rfc6830bis-05 | |||
| o Posted August 2017. | o Posted August 2017. | |||
| o Make it clear that a Reencapsulating Tunnel Router is an RTR. | o Make it clear that a Reencapsulating Tunnel Router is an RTR. | |||
| B.5. Changes to draft-ietf-lisp-rfc6830bis-04 | B.6. Changes to draft-ietf-lisp-rfc6830bis-04 | |||
| o Posted July 2017. | o Posted July 2017. | |||
| o Changed reference of IPv6 RFC2460 to RFC8200. | o Changed reference of IPv6 RFC2460 to RFC8200. | |||
| o Indicate that the applicability statement for UDP zero checksums | o Indicate that the applicability statement for UDP zero checksums | |||
| over IPv6 adheres to RFC6936. | over IPv6 adheres to RFC6936. | |||
| B.6. Changes to draft-ietf-lisp-rfc6830bis-03 | B.7. Changes to draft-ietf-lisp-rfc6830bis-03 | |||
| o Posted May 2017. | o Posted May 2017. | |||
| o Move the control-plane related codepoints in the IANA | o Move the control-plane related codepoints in the IANA | |||
| Considerations section to RFC6833bis. | Considerations section to RFC6833bis. | |||
| B.7. Changes to draft-ietf-lisp-rfc6830bis-02 | B.8. Changes to draft-ietf-lisp-rfc6830bis-02 | |||
| o Posted April 2017. | o Posted April 2017. | |||
| o Reflect some editorial comments from Damien Sausez. | o Reflect some editorial comments from Damien Sausez. | |||
| B.8. Changes to draft-ietf-lisp-rfc6830bis-01 | B.9. Changes to draft-ietf-lisp-rfc6830bis-01 | |||
| o Posted March 2017. | o Posted March 2017. | |||
| o Include references to new RFCs published. | o Include references to new RFCs published. | |||
| o Change references from RFC6833 to RFC6833bis. | o Change references from RFC6833 to RFC6833bis. | |||
| o Clarified LCAF text in the IANA section. | o Clarified LCAF text in the IANA section. | |||
| o Remove references to "experimental". | o Remove references to "experimental". | |||
| B.9. Changes to draft-ietf-lisp-rfc6830bis-00 | B.10. Changes to draft-ietf-lisp-rfc6830bis-00 | |||
| o Posted December 2016. | o Posted December 2016. | |||
| o Created working group document from draft-farinacci-lisp | o Created working group document from draft-farinacci-lisp | |||
| -rfc6830-00 individual submission. No other changes made. | -rfc6830-00 individual submission. No other changes made. | |||
| Authors' Addresses | Authors' Addresses | |||
| Dino Farinacci | Dino Farinacci | |||
| Cisco Systems | Cisco Systems | |||
| Tasman Drive | Tasman Drive | |||
| San Jose, CA 95134 | San Jose, CA 95134 | |||
| USA | USA | |||
| EMail: farinacci@gmail.com | EMail: farinacci@gmail.com | |||
| Vince Fuller | Vince Fuller | |||
| Cisco Systems | Cisco Systems | |||
| End of changes. 52 change blocks. | ||||
| 125 lines changed or deleted | 142 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||