| rfc9299v2.txt | rfc9299.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) A. Cabellos | Internet Engineering Task Force (IETF) A. Cabellos | |||
| Request for Comments: 9299 UPC-BarcelonaTech | Request for Comments: 9299 Universitat Politecnica de Catalunya | |||
| Category: Informational D. Saucez, Ed. | Category: Informational D. Saucez, Ed. | |||
| ISSN: 2070-1721 Inria | ISSN: 2070-1721 Inria | |||
| September 2022 | October 2022 | |||
| An Architectural Introduction to the Locator/ID Separation Protocol | An Architectural Introduction to the Locator/ID Separation Protocol | |||
| (LISP) | (LISP) | |||
| Abstract | Abstract | |||
| This document describes the architecture of the Locator/ID Separation | This document describes the architecture of the Locator/ID Separation | |||
| Protocol (LISP), making it easier to read the rest of the LISP | Protocol (LISP), making it easier to read the rest of the LISP | |||
| specifications and providing a basis for discussion about the details | specifications and providing a basis for discussion about the details | |||
| of the LISP protocols. This document is used for introductory | of the LISP protocols. This document is used for introductory | |||
| skipping to change at line 111 ¶ | skipping to change at line 111 ¶ | |||
| LISP creates two separate namespaces, Endpoint Identifiers (EIDs) and | LISP creates two separate namespaces, Endpoint Identifiers (EIDs) and | |||
| Routing Locators (RLOCs). Both are syntactically identical to the | Routing Locators (RLOCs). Both are syntactically identical to the | |||
| current IPv4 and IPv6 addresses. However, EIDs are used to uniquely | current IPv4 and IPv6 addresses. However, EIDs are used to uniquely | |||
| identify nodes irrespective of their topological location and are | identify nodes irrespective of their topological location and are | |||
| typically routed intra-domain. RLOCs are assigned topologically to | typically routed intra-domain. RLOCs are assigned topologically to | |||
| network attachment points and are typically routed inter-domain. | network attachment points and are typically routed inter-domain. | |||
| With LISP, the edge of the Internet (where the nodes are connected) | With LISP, the edge of the Internet (where the nodes are connected) | |||
| and the core (where inter-domain routing occurs) can be logically | and the core (where inter-domain routing occurs) can be logically | |||
| separated. LISP-capable routers interconnect the two logical spaces. | separated. LISP-capable routers interconnect the two logical spaces. | |||
| LISP also introduces a database, called the mapping system, to store | LISP also introduces a database, called the Mapping System, to store | |||
| and retrieve mappings between identity and location. LISP-capable | and retrieve mappings between identity and location. LISP-capable | |||
| routers exchange packets over the Internet core by encapsulating them | routers exchange packets over the Internet core by encapsulating them | |||
| to the appropriate location. | to the appropriate location. | |||
| In summary: | In summary: | |||
| * RLOCs have meaning only in the underlay network, that is, the | * RLOCs have meaning only in the underlay network, that is, the | |||
| underlying core routing system. | underlying core routing system. | |||
| * EIDs have meaning only in the overlay network, which is the | * EIDs have meaning only in the overlay network, which is the | |||
| encapsulation relationship between LISP-capable routers. | encapsulation relationship between LISP-capable routers. | |||
| * The LISP edge maps EIDs to RLOCs. | * The LISP edge maps EIDs to RLOCs. | |||
| * Within the underlay network, RLOCs have both locator and | * Within the underlay network, RLOCs have both Locator and | |||
| identifier semantics. | identifier semantics. | |||
| * An EID within a LISP site carries both identifier and locator | * An EID within a LISP site carries both identifier and Locator | |||
| semantics to other nodes within that site. | semantics to other nodes within that site. | |||
| * An EID within a LISP site carries identifier and limited locator | * An EID within a LISP site carries identifier and limited Locator | |||
| semantics to nodes at other LISP sites (i.e., enough locator | semantics to nodes at other LISP sites (i.e., enough Locator | |||
| information to tell that the EID is external to the site). | information to tell that the EID is external to the site). | |||
| The relationship described above is not unique to LISP, and it is | The relationship described above is not unique to LISP, and it is | |||
| common to other overlay technologies. | common to other overlay technologies. | |||
| The initial motivation in the LISP effort is to be found in the | The initial motivation in the LISP effort is to be found in the | |||
| routing scalability problem [RFC4984], where, if LISP were to be | routing scalability problem [RFC4984], where, if LISP were to be | |||
| completely deployed, the Internet core is populated with RLOCs while | completely deployed, the Internet core is populated with RLOCs while | |||
| Traffic Engineering (TE) mechanisms are pushed to the mapping system. | Traffic Engineering (TE) mechanisms are pushed to the Mapping System. | |||
| In such a scenario, RLOCs are quasi-static (i.e., low churn), hence | In such a scenario, RLOCs are quasi-static (i.e., low churn), hence | |||
| making the routing system scalable [Quoitin], while EIDs can roam | making the routing system scalable [Quoitin], while EIDs can roam | |||
| anywhere with no churn to the underlying global routing system. | anywhere with no churn to the underlying global routing system. | |||
| [RFC7215] discusses the impact of LISP on the global routing system | [RFC7215] discusses the impact of LISP on the global routing system | |||
| during the transition period. However, the separation between | during the transition period. However, the separation between | |||
| location and identity that LISP offers makes it suitable for use in | location and identity that LISP offers makes it suitable for use in | |||
| additional scenarios, such as TE, multihoming, and mobility among | additional scenarios, such as TE, multihoming, and mobility among | |||
| others. | others. | |||
| This document describes the LISP architecture and its main | This document describes the LISP architecture and its main | |||
| skipping to change at line 282 ¶ | skipping to change at line 282 ¶ | |||
| `. .' `. ,' `. .' | | `. .' `. ,' `. .' | | |||
| `'-` `., ,.' `'-` --- | `'-` `., ,.' `'-` --- | |||
| ``'''`` | ``'''`` | |||
| LISP Site (Edge) Core LISP Site (Edge) | LISP Site (Edge) Core LISP Site (Edge) | |||
| Figure 1: A Schema of the LISP Architecture | Figure 1: A Schema of the LISP Architecture | |||
| With LISP, the core uses RLOCs. An RLOC is an IPv4 or IPv6 address | With LISP, the core uses RLOCs. An RLOC is an IPv4 or IPv6 address | |||
| assigned to a core-facing network interface of an ITR or ETR. | assigned to a core-facing network interface of an ITR or ETR. | |||
| A database that is typically distributed, called the mapping system, | A database that is typically distributed, called the Mapping System, | |||
| stores mappings between EIDs and RLOCs. Such mappings relate the | stores mappings between EIDs and RLOCs. Such mappings relate the | |||
| identity of the devices attached to LISP sites (EIDs) to the set of | identity of the devices attached to LISP sites (EIDs) to the set of | |||
| RLOCs configured at the LISP-capable routers servicing the site. | RLOCs configured at the LISP-capable routers servicing the site. | |||
| Furthermore, the mappings also include TE policies and can be | Furthermore, the mappings also include TE policies and can be | |||
| configured to achieve multihoming and load balancing. The LISP | configured to achieve multihoming and load balancing. The LISP | |||
| mapping system is conceptually similar to the DNS, where it is | Mapping System is conceptually similar to the DNS, where it is | |||
| organized as a distributed multi-organization network database. With | organized as a distributed multi-organization network database. With | |||
| LISP, ETRs register mappings, while ITRs retrieve them. | LISP, ETRs register mappings, while ITRs retrieve them. | |||
| Finally, the LISP architecture emphasizes incremental deployment. | Finally, the LISP architecture emphasizes incremental deployment. | |||
| Given that LISP represents an overlay to the current Internet | Given that LISP represents an overlay to the current Internet | |||
| architecture, end hosts, as well as intra-domain and inter-domain | architecture, end hosts, as well as intra-domain and inter-domain | |||
| routers, remain unchanged. The only required changes to the existing | routers, remain unchanged. The only required changes to the existing | |||
| infrastructure are to routers connecting the EID space with the RLOC | infrastructure are to routers connecting the EID space with the RLOC | |||
| space. Additionally, LISP requires the deployment of an independent | space. Additionally, LISP requires the deployment of an independent | |||
| mapping system; such a distributed database is a new network entity. | Mapping System; such a distributed database is a new network entity. | |||
| The following describes a simplified packet flow sequence between two | The following describes a simplified packet flow sequence between two | |||
| nodes that are attached to LISP sites. Please note that typical | nodes that are attached to LISP sites. Please note that typical | |||
| LISP-capable routers are xTRs (both ITR and ETR). Client HostA wants | LISP-capable routers are xTRs (both ITR and ETR). Client HostA wants | |||
| to send a packet to server HostB. | to send a packet to server HostB. | |||
| /----------------\ | /----------------\ | |||
| | Mapping | | | Mapping | | |||
| | System | | | System | | |||
| .| |- | .| |- | |||
| skipping to change at line 336 ¶ | skipping to change at line 336 ¶ | |||
| Figure 2: Packet Flow Sequence in LISP | Figure 2: Packet Flow Sequence in LISP | |||
| 1. HostA retrieves the EID_B of HostB, typically querying the DNS | 1. HostA retrieves the EID_B of HostB, typically querying the DNS | |||
| and obtaining an A or AAAA record. Then, it generates an IP | and obtaining an A or AAAA record. Then, it generates an IP | |||
| packet as in the Internet. The packet has source address EID_A | packet as in the Internet. The packet has source address EID_A | |||
| and destination address EID_B. | and destination address EID_B. | |||
| 2. The packet is forwarded towards ITR_A in the LISP site using | 2. The packet is forwarded towards ITR_A in the LISP site using | |||
| standard intra-domain mechanisms. | standard intra-domain mechanisms. | |||
| 3. ITR_A, upon receiving the packet, queries the mapping system to | 3. ITR_A, upon receiving the packet, queries the Mapping System to | |||
| retrieve the locator of ETR_B that is servicing HostB's EID_B. | retrieve the Locator of ETR_B that is servicing HostB's EID_B. | |||
| In order to do so, it uses a LISP control message called Map- | In order to do so, it uses a LISP control message called Map- | |||
| Request. The message contains EID_B as the lookup key. In turn, | Request. The message contains EID_B as the lookup key. In turn, | |||
| it receives another LISP control message called Map-Reply. The | it receives another LISP control message called Map-Reply. The | |||
| message contains two locators: RLOC_B1 and RLOC_B2. It also | message contains two Locators: RLOC_B1 and RLOC_B2. It also | |||
| contains TE policies: priority and weight per locator. Note that | contains TE policies: priority and weight per Locator. Note that | |||
| a Map-Reply can contain more locators if needed. ITR_A can cache | a Map-Reply can contain more Locators if needed. ITR_A can cache | |||
| the mapping in local storage to speed up forwarding of subsequent | the mapping in local storage to speed up forwarding of subsequent | |||
| packets. | packets. | |||
| 4. ITR_A encapsulates the packet towards RLOC_B1 (chosen according | 4. ITR_A encapsulates the packet towards RLOC_B1 (chosen according | |||
| to the priorities/weights specified in the mapping). The packet | to the priorities/weights specified in the mapping). The packet | |||
| contains two IP headers. The outer header has RLOC_A1 as source | contains two IP headers. The outer header has RLOC_A1 as source | |||
| and RLOC_B1 as destination. The inner original header has EID_A | and RLOC_B1 as destination. The inner original header has EID_A | |||
| as source and EID_B as destination. Furthermore, ITR_A adds a | as source and EID_B as destination. Furthermore, ITR_A adds a | |||
| LISP header. More details about LISP encapsulation can be found | LISP header. More details about LISP encapsulation can be found | |||
| in Section 3.3.1. | in Section 3.3.1. | |||
| skipping to change at line 426 ¶ | skipping to change at line 426 ¶ | |||
| Finally, in some scenarios, re-encapsulating and/or recursive tunnels | Finally, in some scenarios, re-encapsulating and/or recursive tunnels | |||
| are useful to choose a specified path in the underlay network, for | are useful to choose a specified path in the underlay network, for | |||
| instance, to avoid congestion or failure. Re-encapsulating tunnels | instance, to avoid congestion or failure. Re-encapsulating tunnels | |||
| are consecutive LISP tunnels and occur when a decapsulator (an ETR | are consecutive LISP tunnels and occur when a decapsulator (an ETR | |||
| action) removes a LISP header and then acts as an encapsulator (an | action) removes a LISP header and then acts as an encapsulator (an | |||
| ITR action) to prepend another one. On the other hand, recursive | ITR action) to prepend another one. On the other hand, recursive | |||
| tunnels are nested tunnels and are implemented by using multiple LISP | tunnels are nested tunnels and are implemented by using multiple LISP | |||
| encapsulations on a packet. Such functions are implemented by Re- | encapsulations on a packet. Such functions are implemented by Re- | |||
| encapsulating Tunnel Routers (RTRs). An RTR can be thought of as a | encapsulating Tunnel Routers (RTRs). An RTR can be thought of as a | |||
| router that first acts as an ETR by decapsulating packets and then as | router that first acts as an ETR by decapsulating packets and then as | |||
| an ITR by encapsulating them towards another locator; more | an ITR by encapsulating them towards another Locator; more | |||
| information can be found in [RFC9300] and [RFC9301]. | information can be found in [RFC9300] and [RFC9301]. | |||
| 3.3.2. LISP Forwarding State | 3.3.2. LISP Forwarding State | |||
| In the LISP architecture, ITRs keep just enough information to route | In the LISP architecture, ITRs keep just enough information to route | |||
| traffic flowing through them. In other words, ITRs only need to | traffic flowing through them. In other words, ITRs only need to | |||
| retrieve from the LISP mapping system mappings between EID-prefixes | retrieve from the LISP Mapping System mappings between EID-Prefixes | |||
| (blocks of EIDs) and RLOCs that are used to encapsulate packets. | (blocks of EIDs) and RLOCs that are used to encapsulate packets. | |||
| Such mappings are stored in a local cache called the LISP Map-Cache | Such mappings are stored in a local cache called the LISP Map-Cache | |||
| for subsequent packets addressed to the same EID prefix. Note that | for subsequent packets addressed to the same EID-Prefix. Note that | |||
| in the case of overlapping EID-prefixes, after a request, the ITR may | in the case of overlapping EID-Prefixes, after a request, the ITR may | |||
| receive a set of mappings covering the requested EID-prefix and all | receive a set of mappings covering the requested EID-Prefix and all | |||
| more-specific EID-prefixes (cf., Section 5.5 of [RFC9301]). Mappings | more-specific EID-Prefixes (cf., Section 5.5 of [RFC9301]). Mappings | |||
| include a Time to Live (TTL) (set by the ETR). More details about | include a Time to Live (TTL) (set by the ETR). More details about | |||
| the Map-Cache management can be found in Section 4.1. | the Map-Cache management can be found in Section 4.1. | |||
| 3.4. Control Plane | 3.4. Control Plane | |||
| The LISP control plane, specified in [RFC9301], provides a standard | The LISP control plane, specified in [RFC9301], provides a standard | |||
| interface to register and request mappings. The LISP mapping system | interface to register and request mappings. The LISP Mapping System | |||
| is a database that stores such mappings. The following sub-sections | is a database that stores such mappings. The following sub-sections | |||
| first describe the mappings, then the standard interface to the | first describe the mappings, then the standard interface to the | |||
| mapping system, and finally its architecture. | Mapping System, and finally its architecture. | |||
| 3.4.1. LISP Mappings | 3.4.1. LISP Mappings | |||
| Each mapping includes the bindings between EID prefix(es) and a set | Each mapping includes the bindings between EID-Prefix(es) and a set | |||
| of RLOCs as well as TE policies, in the form of priorities and | of RLOCs as well as TE policies, in the form of priorities and | |||
| weights for the RLOCs. Priorities allow the ETR to configure active/ | weights for the RLOCs. Priorities allow the ETR to configure active/ | |||
| backup policies, while weights are used to load-balance traffic among | backup policies, while weights are used to load-balance traffic among | |||
| the RLOCs (on a per-flow basis). | the RLOCs (on a per-flow basis). | |||
| Typical mappings in LISP bind EIDs in the form of IP prefixes with a | Typical mappings in LISP bind EIDs in the form of IP prefixes with a | |||
| set of RLOCs, also in the form of IP addresses. IPv4 and IPv6 | set of RLOCs, also in the form of IP addresses. IPv4 and IPv6 | |||
| addresses are encoded using the appropriate Address Family Identifier | addresses are encoded using the appropriate Address Family Identifier | |||
| (AFI) [RFC8060]. However, LISP can also support more general address | (AFI) [RFC8060]. However, LISP can also support more general address | |||
| encoding by means of the ongoing effort around the LISP Canonical | encoding by means of the ongoing effort around the LISP Canonical | |||
| skipping to change at line 477 ¶ | skipping to change at line 477 ¶ | |||
| to provide flexibility to current and future applications. For | to provide flexibility to current and future applications. For | |||
| instance, LCAFs could support Media Access Control (MAC) addresses, | instance, LCAFs could support Media Access Control (MAC) addresses, | |||
| geocoordinates, ASCII names, and application-specific data. | geocoordinates, ASCII names, and application-specific data. | |||
| 3.4.2. Mapping System Interface | 3.4.2. Mapping System Interface | |||
| LISP defines a standard interface between data and control planes. | LISP defines a standard interface between data and control planes. | |||
| The interface is specified in [RFC9301] and defines two entities: | The interface is specified in [RFC9301] and defines two entities: | |||
| Map-Server: A network infrastructure component that learns mappings | Map-Server: A network infrastructure component that learns mappings | |||
| from ETRs and publishes them into the LISP mapping system. | from ETRs and publishes them into the LISP Mapping System. | |||
| Typically, Map-Servers are not authoritative to reply to queries; | Typically, Map-Servers are not authoritative to reply to queries; | |||
| hence, they forward them to the ETR. However, they can also | hence, they forward them to the ETR. However, they can also | |||
| operate in proxy-mode, where the ETRs delegate replying to queries | operate in proxy-mode, where the ETRs delegate replying to queries | |||
| to Map-Servers. This setup is useful when the ETR has limited | to Map-Servers. This setup is useful when the ETR has limited | |||
| resources (e.g., CPU or power). | resources (e.g., CPU or power). | |||
| Map-Resolver: A network infrastructure component that interfaces | Map-Resolver: A network infrastructure component that interfaces | |||
| ITRs with the mapping system by proxying queries and, in some | ITRs with the Mapping System by proxying queries and, in some | |||
| cases, responses. | cases, responses. | |||
| The interface defines four LISP control messages that are sent as UDP | The interface defines four LISP control messages that are sent as UDP | |||
| datagrams (port 4342): | datagrams (port 4342): | |||
| Map-Register: This message is used by ETRs to register mappings in | Map-Register: This message is used by ETRs to register mappings in | |||
| the mapping system, and it is authenticated using a shared key | the Mapping System, and it is authenticated using a shared key | |||
| between the ETR and the Map-Server. | between the ETR and the Map-Server. | |||
| Map-Notify: When requested by the ETR, this message is sent by the | Map-Notify: When requested by the ETR, this message is sent by the | |||
| Map-Server in response to a Map-Register to acknowledge the | Map-Server in response to a Map-Register to acknowledge the | |||
| correct reception of the mapping and convey the latest Map-Server | correct reception of the mapping and convey the latest Map-Server | |||
| state on the EID-to-RLOC mapping. In some cases, a Map-Notify can | state on the EID-to-RLOC mapping. In some cases, a Map-Notify can | |||
| be sent to the previous RLOCs when an EID is registered by a new | be sent to the previous RLOCs when an EID is registered by a new | |||
| set of RLOCs. | set of RLOCs. | |||
| Map-Request: This message is used by ITRs or Map-Resolvers to | Map-Request: This message is used by ITRs or Map-Resolvers to | |||
| skipping to change at line 517 ¶ | skipping to change at line 517 ¶ | |||
| that a Map-Reply may contain a negative reply if, for example, the | that a Map-Reply may contain a negative reply if, for example, the | |||
| queried EID is not part of the LISP EID space. In such cases, the | queried EID is not part of the LISP EID space. In such cases, the | |||
| ITR typically forwards the traffic as is (non-encapsulated) to the | ITR typically forwards the traffic as is (non-encapsulated) to the | |||
| public Internet. This behavior is defined to support incremental | public Internet. This behavior is defined to support incremental | |||
| deployment of LISP. | deployment of LISP. | |||
| 3.4.3. Mapping System | 3.4.3. Mapping System | |||
| LISP architecturally decouples control and data planes by means of a | LISP architecturally decouples control and data planes by means of a | |||
| standard interface. This interface glues the data plane -- routers | standard interface. This interface glues the data plane -- routers | |||
| responsible for forwarding data packets -- with the LISP mapping | responsible for forwarding data packets -- with the LISP Mapping | |||
| system -- a database responsible for storing mappings. | System -- a database responsible for storing mappings. | |||
| With this separation in place, the data and control planes can use | With this separation in place, the data and control planes can use | |||
| different architectures if needed and scale independently. | different architectures if needed and scale independently. | |||
| Typically, the data plane is optimized to route packets according to | Typically, the data plane is optimized to route packets according to | |||
| hierarchical IP addresses. However, the control plane may have | hierarchical IP addresses. However, the control plane may have | |||
| different requirements, for instance, and by taking advantage of the | different requirements, for instance, and by taking advantage of the | |||
| LCAFs, the mapping system may be used to store nonhierarchical keys | LCAFs, the Mapping System may be used to store nonhierarchical keys | |||
| (such as MAC addresses), requiring different architectural approaches | (such as MAC addresses), requiring different architectural approaches | |||
| for scalability. Another important difference between the LISP | for scalability. Another important difference between the LISP | |||
| control and data planes is that, and as a result of the local mapping | control and data planes is that, and as a result of the local mapping | |||
| cache available at the ITR, the mapping system does not need to | cache available at the ITR, the Mapping System does not need to | |||
| operate at line-rate. | operate at line-rate. | |||
| Many of the existing mechanisms to create distributed systems have | Many of the existing mechanisms to create distributed systems have | |||
| been explored and considered for the mapping system architecture: | been explored and considered for the Mapping System architecture: | |||
| graph-based databases in the form of LISP Alternative Logical | graph-based databases in the form of LISP Alternative Logical | |||
| Topology (LISP-ALT) [RFC6836], hierarchical databases in the form of | Topology (LISP-ALT) [RFC6836], hierarchical databases in the form of | |||
| the LISP Delegated Database Tree (LISP-DDT) [RFC8111], monolithic | the LISP Delegated Database Tree (LISP-DDT) [RFC8111], monolithic | |||
| databases in the form of the LISP Not-so-novel EID-to-RLOC Database | databases in the form of the LISP Not-so-novel EID-to-RLOC Database | |||
| (LISP-NERD) [RFC6837], flat databases in the form of the LISP | (LISP-NERD) [RFC6837], flat databases in the form of the LISP | |||
| Distributed Hash Table (LISP-DHT) [LISP-SHDHT] [Mathy], and a | Distributed Hash Table (LISP-DHT) [LISP-SHDHT] [Mathy], and a | |||
| multicast-based database [LISP-EMACS]. Furthermore, it is worth | multicast-based database [LISP-EMACS]. Furthermore, it is worth | |||
| noting that, in some scenarios, such as private deployments, the | noting that, in some scenarios, such as private deployments, the | |||
| mapping system can operate as logically centralized. In such cases, | Mapping System can operate as logically centralized. In such cases, | |||
| it is typically composed of a single Map-Server/Map-Resolver. | it is typically composed of a single Map-Server/Map-Resolver. | |||
| The following sub-sections focus on the two mapping systems that have | The following sub-sections focus on the two Mapping Systems that have | |||
| been implemented and deployed (LISP-ALT and LISP-DDT). | been implemented and deployed (LISP-ALT and LISP-DDT). | |||
| 3.4.3.1. LISP-ALT | 3.4.3.1. LISP-ALT | |||
| LISP-ALT [RFC6836] was the first mapping system proposed, developed, | LISP-ALT [RFC6836] was the first Mapping System proposed, developed, | |||
| and deployed on the LISP pilot network. It is based on a distributed | and deployed on the LISP pilot network. It is based on a distributed | |||
| BGP overlay in which Map-Servers and Map-Resolvers participate. The | BGP overlay in which Map-Servers and Map-Resolvers participate. The | |||
| nodes connect to their peers through static tunnels. Each Map-Server | nodes connect to their peers through static tunnels. Each Map-Server | |||
| involved in the ALT topology advertises the EID-prefixes registered | involved in the ALT topology advertises the EID-Prefixes registered | |||
| by the serviced ETRs, making the EID routable on the ALT topology. | by the serviced ETRs, making the EID routable on the ALT topology. | |||
| When an ITR needs a mapping, it sends a Map-Request to a Map-Resolver | When an ITR needs a mapping, it sends a Map-Request to a Map-Resolver | |||
| that, using the ALT topology, forwards the Map-Request towards the | that, using the ALT topology, forwards the Map-Request towards the | |||
| Map-Server responsible for the mapping. Upon reception, the Map- | Map-Server responsible for the mapping. Upon reception, the Map- | |||
| Server forwards the request to the ETR, which in turn replies | Server forwards the request to the ETR, which in turn replies | |||
| directly to the ITR. | directly to the ITR. | |||
| 3.4.3.2. LISP-DDT | 3.4.3.2. LISP-DDT | |||
| skipping to change at line 591 ¶ | skipping to change at line 591 ¶ | |||
| -'` | `- | -'` | `- | |||
| /-------\ /-------\ /-------\ | /-------\ /-------\ /-------\ | |||
| | DDT | | DDT | | DDT | | | DDT | | DDT | | DDT | | |||
| | Node | | Node | | Node | ... | | Node | | Node | | Node | ... | |||
| | 0/8 | | 1/8 | | 2/8 | | | 0/8 | | 1/8 | | 2/8 | | |||
| \-------/ \-------/ \-------/ | \-------/ \-------/ \-------/ | |||
| _. _. . -..,,,_ | _. _. . -..,,,_ | |||
| -` -` \ ````''-- | -` -` \ ````''-- | |||
| +------------+ +------------+ +------------+ +------------+ | +------------+ +------------+ +------------+ +------------+ | |||
| | Map-Server | | Map-Server | | Map-Server | | Map-Server | | | Map-Server | | Map-Server | | Map-Server | | Map-Server | | |||
| | EID-prefix1| | EID-prefix2| | EID-prefix3| | EID-prefix4| | | EID-Prefix1| | EID-Prefix2| | EID-Prefix3| | EID-Prefix4| | |||
| +------------+ +------------+ +------------+ +------------+ | +------------+ +------------+ +------------+ +------------+ | |||
| Figure 3: A Schematic Representation of the DDT Tree Structure | Figure 3: A Schematic Representation of the DDT Tree Structure | |||
| Please note that the prefixes and the structure depicted in the | Please note that the prefixes and the structure depicted in the | |||
| figure above should only be considered as an example. | figure above should only be considered as an example. | |||
| The DDT structure does not actually index EID-prefixes; rather, it | The DDT structure does not actually index EID-Prefixes; rather, it | |||
| indexes Extended EID-prefixes (XEID-prefixes). An XEID-prefix is | indexes Extended EID-Prefixes (XEID-Prefixes). An XEID-Prefix is | |||
| just the concatenation of the following fields (from most significant | just the concatenation of the following fields (from most significant | |||
| bit to less significant bits): Database-ID, Instance ID, Address | bit to less significant bits): Database-ID, Instance ID, Address | |||
| Family Identifier, and the actual EID-prefix. The Database-ID is | Family Identifier, and the actual EID-Prefix. The Database-ID is | |||
| provided for possible future requirements of higher levels in the | provided for possible future requirements of higher levels in the | |||
| hierarchy and to enable the creation of multiple and separate | hierarchy and to enable the creation of multiple and separate | |||
| database trees. | database trees. | |||
| In order to resolve a query, LISP-DDT operates in a similar way to | In order to resolve a query, LISP-DDT operates in a similar way to | |||
| the DNS but only supports iterative lookups. DDT clients (usually | the DNS but only supports iterative lookups. DDT clients (usually | |||
| Map-Resolvers) generate Map-Requests to the DDT root node. In | Map-Resolvers) generate Map-Requests to the DDT root node. In | |||
| response, they receive a newly introduced LISP control message: a | response, they receive a newly introduced LISP control message: a | |||
| Map-Referral. A Map-Referral provides the list of RLOCs of the set | Map-Referral. A Map-Referral provides the list of RLOCs of the set | |||
| of DDT nodes matching a configured XEID delegation. That is, the | of DDT nodes matching a configured XEID delegation. That is, the | |||
| information contained in the Map-Referral points to the child of the | information contained in the Map-Referral points to the child of the | |||
| queried DDT node that has more specific information about the queried | queried DDT node that has more specific information about the queried | |||
| XEID-prefix. This process is repeated until the DDT client walks the | XEID-Prefix. This process is repeated until the DDT client walks the | |||
| tree structure (downwards) and discovers the Map-Server servicing the | tree structure (downwards) and discovers the Map-Server servicing the | |||
| queried XEID. At this point, the client sends a Map-Request and | queried XEID. At this point, the client sends a Map-Request and | |||
| receives a Map-Reply containing the mappings. It is important to | receives a Map-Reply containing the mappings. It is important to | |||
| note that DDT clients can also cache the information contained in | note that DDT clients can also cache the information contained in | |||
| Map-Referrals; that is, they cache the DDT structure. This is used | Map-Referrals; that is, they cache the DDT structure. This is used | |||
| to reduce the time required to retrieve mappings [Jakab]. | to reduce the time required to retrieve mappings [Jakab]. | |||
| The DDT mapping system relies on manual configuration. That is, Map- | The DDT Mapping System relies on manual configuration. That is, Map- | |||
| Resolvers are configured with the set of available DDT root nodes, | Resolvers are configured with the set of available DDT root nodes, | |||
| while DDT nodes are configured with the appropriate XEID delegations. | while DDT nodes are configured with the appropriate XEID delegations. | |||
| Configuration changes in the DDT nodes are only required when the | Configuration changes in the DDT nodes are only required when the | |||
| tree structure changes itself, but it doesn't depend on EID dynamics | tree structure changes itself, but it doesn't depend on EID dynamics | |||
| (RLOC allocation or TE policy changes). | (RLOC allocation or TE policy changes). | |||
| 3.5. Internetworking Mechanisms | 3.5. Internetworking Mechanisms | |||
| EIDs are typically identical to either IPv4 or IPv6 addresses, and | EIDs are typically identical to either IPv4 or IPv6 addresses, and | |||
| they are stored in the LISP mapping system. However, they are | they are stored in the LISP Mapping System. However, they are | |||
| usually not announced in the routing system beyond the local LISP | usually not announced in the routing system beyond the local LISP | |||
| domain. As a result, LISP requires an internetworking mechanism to | domain. As a result, LISP requires an internetworking mechanism to | |||
| allow LISP sites to speak with non-LISP sites and vice versa. LISP | allow LISP sites to speak with non-LISP sites and vice versa. LISP | |||
| internetworking mechanisms are specified in [RFC6832]. | internetworking mechanisms are specified in [RFC6832]. | |||
| LISP defines two entities to provide internetworking: | LISP defines two entities to provide internetworking: | |||
| Proxy Ingress Tunnel Router (PITR): PITRs provide connectivity from | Proxy Ingress Tunnel Router (PITR): PITRs provide connectivity from | |||
| the legacy Internet to LISP sites. PITRs announce in the global | the legacy Internet to LISP sites. PITRs announce in the global | |||
| routing system blocks of EID prefixes (aggregating when possible) | routing system blocks of EID-Prefixes (aggregating when possible) | |||
| to attract traffic. For each incoming packet from a source not in | to attract traffic. For each incoming packet from a source not in | |||
| a LISP site (a non-EID), the PITR LISP-encapsulates it towards the | a LISP site (a non-EID), the PITR LISP-encapsulates it towards the | |||
| RLOC(s) of the appropriate LISP site. The impact of PITRs on the | RLOC(s) of the appropriate LISP site. The impact of PITRs on the | |||
| routing table size of the Default-Free Zone (DFZ) is, in the worst | routing table size of the Default-Free Zone (DFZ) is, in the worst | |||
| case, similar to the case in which LISP is not deployed. EID- | case, similar to the case in which LISP is not deployed. EID- | |||
| prefixes will be aggregated as much as possible, both by the PITR | Prefixes will be aggregated as much as possible, both by the PITR | |||
| and by the global routing system. | and by the global routing system. | |||
| Proxy Egress Tunnel Router (PETR): PETRs provide connectivity from | Proxy Egress Tunnel Router (PETR): PETRs provide connectivity from | |||
| LISP sites to the legacy Internet. In some scenarios, LISP sites | LISP sites to the legacy Internet. In some scenarios, LISP sites | |||
| may be unable to send encapsulated packets with a local EID | may be unable to send encapsulated packets with a local EID | |||
| address as a source to the legacy Internet, for instance, when | address as a source to the legacy Internet, for instance, when | |||
| Unicast Reverse Path Forwarding (uRPF) is used by Provider Edge | Unicast Reverse Path Forwarding (uRPF) is used by Provider Edge | |||
| routers or when an intermediate network between a LISP site and a | routers or when an intermediate network between a LISP site and a | |||
| non-LISP site does not support the desired version of IP (IPv4 or | non-LISP site does not support the desired version of IP (IPv4 or | |||
| IPv6). In both cases, the PETR overcomes such limitations by | IPv6). In both cases, the PETR overcomes such limitations by | |||
| skipping to change at line 687 ¶ | skipping to change at line 687 ¶ | |||
| This section details the main operational mechanisms defined in LISP. | This section details the main operational mechanisms defined in LISP. | |||
| 4.1. Cache Management | 4.1. Cache Management | |||
| LISP's decoupled control and data planes, where mappings are stored | LISP's decoupled control and data planes, where mappings are stored | |||
| in the control plane and used for forwarding in the data plane, | in the control plane and used for forwarding in the data plane, | |||
| require a local cache in ITRs to reduce signaling overhead (Map- | require a local cache in ITRs to reduce signaling overhead (Map- | |||
| Request/Map-Reply) and increase forwarding speed. The local cache | Request/Map-Reply) and increase forwarding speed. The local cache | |||
| available at the ITRs, called Map-Cache, is used by the router to | available at the ITRs, called Map-Cache, is used by the router to | |||
| LISP-encapsulate packets. The Map-Cache is indexed by (Instance ID, | LISP-encapsulate packets. The Map-Cache is indexed by (Instance ID, | |||
| EID-prefix) and contains basically the set of RLOCs with the | EID-Prefix) and contains basically the set of RLOCs with the | |||
| associated TE policies (priorities and weights). | associated TE policies (priorities and weights). | |||
| The Map-Cache, as with any other cache, requires cache coherence | The Map-Cache, as with any other cache, requires cache coherence | |||
| mechanisms to maintain up-to-date information. LISP defines three | mechanisms to maintain up-to-date information. LISP defines three | |||
| main mechanisms for cache coherence: | main mechanisms for cache coherence: | |||
| Record Time To Live (TTL): Each mapping record contains a TTL set by | Record Time To Live (TTL): Each mapping record contains a TTL set by | |||
| the ETR. Upon expiration of the TTL, the ITR can't use the | the ETR. Upon expiration of the TTL, the ITR can't use the | |||
| mapping until it is refreshed by sending a new Map-Request. | mapping until it is refreshed by sending a new Map-Request. | |||
| Solicit-Map-Request (SMR): SMR is an explicit mechanism to update | Solicit-Map-Request (SMR): SMR is an explicit mechanism to update | |||
| mapping information. In particular, a special type of Map-Request | mapping information. In particular, a special type of Map-Request | |||
| can be sent on demand by ETRs to request refreshing a mapping. | can be sent on demand by ETRs to request refreshing a mapping. | |||
| Upon reception of an SMR message, the ITR must refresh the | Upon reception of an SMR message, the ITR must refresh the | |||
| bindings by sending a Map-Request to the mapping system. Further | bindings by sending a Map-Request to the Mapping System. Further | |||
| uses of SMRs are documented in [RFC9301]. | uses of SMRs are documented in [RFC9301]. | |||
| Map-Versioning: This optional mechanism piggybacks, in the LISP | Map-Versioning: This optional mechanism piggybacks, in the LISP | |||
| header of data packets, the version number of the mappings used by | header of data packets, the version number of the mappings used by | |||
| an xTR. This way, when an xTR receives a LISP-encapsulated packet | an xTR. This way, when an xTR receives a LISP-encapsulated packet | |||
| from a remote xTR, it can check whether its own Map-Cache or the | from a remote xTR, it can check whether its own Map-Cache or the | |||
| one of the remote xTR is outdated. If its Map-Cache is outdated, | one of the remote xTR is outdated. If its Map-Cache is outdated, | |||
| it sends a Map-Request for the remote EID so as to obtain the | it sends a Map-Request for the remote EID so as to obtain the | |||
| newest mappings. On the contrary, if it detects that the remote | newest mappings. On the contrary, if it detects that the remote | |||
| xTR Map-Cache is outdated, it sends an SMR to notify it that a new | xTR Map-Cache is outdated, it sends an SMR to notify it that a new | |||
| mapping is available. Further details are available in [RFC9302]. | mapping is available. Further details are available in [RFC9302]. | |||
| Finally, it is worth noting that, in some cases, an entry in the Map- | Finally, it is worth noting that, in some cases, an entry in the Map- | |||
| Cache can be proactively refreshed using the mechanisms described in | Cache can be proactively refreshed using the mechanisms described in | |||
| the section below. | the section below. | |||
| 4.2. RLOC Reachability | 4.2. RLOC Reachability | |||
| In most cases, LISP operates with a pull-based mapping system (e.g., | In most cases, LISP operates with a pull-based Mapping System (e.g., | |||
| DDT). This results in an edge-to-edge pull architecture. In such a | DDT). This results in an edge-to-edge pull architecture. In such a | |||
| scenario, the network state is stored in the control plane while the | scenario, the network state is stored in the control plane while the | |||
| data plane pulls it on demand. This has consequences concerning the | data plane pulls it on demand. This has consequences concerning the | |||
| propagation of xTRs' reachability/liveness information, since pull | propagation of xTRs' reachability/liveness information, since pull | |||
| architectures require explicit mechanisms to propagate this | architectures require explicit mechanisms to propagate this | |||
| information. As a result, LISP defines a set of mechanisms to inform | information. As a result, LISP defines a set of mechanisms to inform | |||
| ITRs and PITRs about the reachability of the cached RLOCs: | ITRs and PITRs about the reachability of the cached RLOCs: | |||
| Locator-Status-Bits (LSBs): Using LSBs is a passive technique. The | Locator-Status-Bits (LSBs): Using LSBs is a passive technique. The | |||
| 'LSB' field is carried by data packets in the LISP header and can | 'LSB' field is carried by data packets in the LISP header and can | |||
| be set by ETRs to specify which RLOCs of the ETR site are up/down. | be set by ETRs to specify which RLOCs of the ETR site are up/down. | |||
| This information can be used by the ITRs as a hint about the | This information can be used by the ITRs as a hint about the | |||
| reachability to perform additional checks. Also note that LSBs do | reachability to perform additional checks. Also note that LSBs do | |||
| not provide path reachability status; they only provide hints | not provide path reachability status; they only provide hints | |||
| about the status of RLOCs. As such, they must not be used over | about the status of RLOCs. As such, they must not be used over | |||
| the public Internet and should be coupled with Map-Versioning to | the public Internet and should be coupled with Map-Versioning to | |||
| prevent race conditions where LSBs are interpreted as referring to | prevent race conditions where LSBs are interpreted as referring to | |||
| different RLOCs than intended. | different RLOCs than intended. | |||
| Echo-nonce: This is also a passive technique that can only operate | Echo-Nonce: This is also a passive technique that can only operate | |||
| effectively when data flows bidirectionally between two | effectively when data flows bidirectionally between two | |||
| communicating xTRs. Basically, an ITR piggybacks a random number | communicating xTRs. Basically, an ITR piggybacks a random number | |||
| (called a nonce) in LISP data packets. If the path and the probed | (called a nonce) in LISP data packets. If the path and the probed | |||
| locator are up, the ETR will piggyback the same random number on | Locator are up, the ETR will piggyback the same random number on | |||
| the next data packet; if this is not the case, the ITR can set the | the next data packet; if this is not the case, the ITR can set the | |||
| locator as unreachable. When traffic flow is unidirectional or | Locator as unreachable. When traffic flow is unidirectional or | |||
| when the ETR receiving the traffic is not the same as the ITR that | when the ETR receiving the traffic is not the same as the ITR that | |||
| transmits it back, additional mechanisms are required. The echo- | transmits it back, additional mechanisms are required. The Echo- | |||
| nonce mechanism must be used in trusted environments only, not | Nonce mechanism must be used in trusted environments only, not | |||
| over the public Internet. | over the public Internet. | |||
| RLOC-Probing: This is an active probing algorithm where ITRs send | RLOC-Probing: This is an active probing algorithm where ITRs send | |||
| probes to specific locators. This effectively probes both the | probes to specific Locators. This effectively probes both the | |||
| locator and the path. In particular, this is done by sending a | Locator and the path. In particular, this is done by sending a | |||
| Map-Request (with certain flags activated) on the data plane (RLOC | Map-Request (with certain flags activated) on the data plane (RLOC | |||
| space) and then waiting for a Map-Reply (also sent on the data | space) and then waiting for a Map-Reply (also sent on the data | |||
| plane). The active nature of RLOC-Probing provides an effective | plane). The active nature of RLOC-Probing provides an effective | |||
| mechanism for determining reachability and, in case of failure, | mechanism for determining reachability and, in case of failure, | |||
| switching to a different locator. Furthermore, the mechanism also | switching to a different Locator. Furthermore, the mechanism also | |||
| provides useful RTT estimates of the delay of the path that can be | provides useful RTT estimates of the delay of the path that can be | |||
| used by other network algorithms. | used by other network algorithms. | |||
| It is worth noting that RLOC-Probing and the Echo-nonce can work | It is worth noting that RLOC-Probing and the Echo-Nonce can work | |||
| together. Specifically, if a nonce is not echoed, an ITR cannot | together. Specifically, if a nonce is not echoed, an ITR cannot | |||
| determine which path direction has failed. In this scenario, an ITR | determine which path direction has failed. In this scenario, an ITR | |||
| can use RLOC-probing. | can use RLOC-Probing. | |||
| Additionally, LISP also recommends inferring the reachability of | Additionally, LISP also recommends inferring the reachability of | |||
| locators by using information provided by the underlay, particularly: | Locators by using information provided by the underlay, particularly: | |||
| ICMP signaling: The LISP underlay -- the current Internet -- uses | ICMP signaling: The LISP underlay -- the current Internet -- uses | |||
| ICMP to signal unreachability (among other things). LISP can take | ICMP to signal unreachability (among other things). LISP can take | |||
| advantage of this, and the reception of an ICMP Network | advantage of this, and the reception of an ICMP Network | |||
| Unreachable or ICMP Host Unreachable message can be seen as a hint | Unreachable or ICMP Host Unreachable message can be seen as a hint | |||
| that a locator might be unreachable. This should lead to | that a Locator might be unreachable. This should lead to | |||
| performing additional checks. | performing additional checks. | |||
| Underlay routing: Both BGP and IGP carry reachability information. | Underlay routing: Both BGP and IGP carry reachability information. | |||
| LISP-capable routers that have access to underlay routing | LISP-capable routers that have access to underlay routing | |||
| information can use it to determine if a given locator or path is | information can use it to determine if a given Locator or path is | |||
| reachable. | reachable. | |||
| 4.3. ETR Synchronization | 4.3. ETR Synchronization | |||
| All the ETRs that are authoritative to a particular EID-prefix must | All the ETRs that are authoritative to a particular EID-Prefix must | |||
| announce the same mapping to the requesters. This means that ETRs | announce the same mapping to the requesters. This means that ETRs | |||
| must be aware of the status of the RLOCs of the remaining ETRs. This | must be aware of the status of the RLOCs of the remaining ETRs. This | |||
| is known as ETR synchronization. | is known as ETR synchronization. | |||
| At the time of this writing, LISP does not specify a mechanism to | At the time of this writing, LISP does not specify a mechanism to | |||
| achieve ETR synchronization. Although many well-known techniques | achieve ETR synchronization. Although many well-known techniques | |||
| could be applied to solve this issue, it is still under research. As | could be applied to solve this issue, it is still under research. As | |||
| a result, operators must rely on coherent manual configuration. | a result, operators must rely on coherent manual configuration. | |||
| 4.4. MTU Handling | 4.4. MTU Handling | |||
| skipping to change at line 809 ¶ | skipping to change at line 809 ¶ | |||
| that exceed the MTU of the path between the ITR and the ETR. | that exceed the MTU of the path between the ITR and the ETR. | |||
| Specifically, LISP defines two mechanisms: | Specifically, LISP defines two mechanisms: | |||
| Stateless: With this mechanism, the effective MTU is assumed from | Stateless: With this mechanism, the effective MTU is assumed from | |||
| the ITR's perspective. If a payload packet is too big for the | the ITR's perspective. If a payload packet is too big for the | |||
| effective MTU and can be fragmented, the payload packet is | effective MTU and can be fragmented, the payload packet is | |||
| fragmented on the ITR, such that reassembly is performed at the | fragmented on the ITR, such that reassembly is performed at the | |||
| destination host. | destination host. | |||
| Stateful: With this mechanism, ITRs keep track of the MTU of the | Stateful: With this mechanism, ITRs keep track of the MTU of the | |||
| paths towards the destination locators by parsing the ICMP Too Big | paths towards the destination Locators by parsing the ICMP Too Big | |||
| packets sent by intermediate routers. ITRs will send ICMP Too Big | packets sent by intermediate routers. ITRs will send ICMP Too Big | |||
| messages to inform the sources about the effective MTU. | messages to inform the sources about the effective MTU. | |||
| Additionally, ITRs can use mechanisms such as Path MTU Discovery | Additionally, ITRs can use mechanisms such as Path MTU Discovery | |||
| (PMTUD) [RFC1191] or Packetization Layer Path MTU Discovery | (PMTUD) [RFC1191] or Packetization Layer Path MTU Discovery | |||
| (PLPMTUD) [RFC4821] to keep track of the MTU towards the locators. | (PLPMTUD) [RFC4821] to keep track of the MTU towards the Locators. | |||
| In both cases, if the packet cannot be fragmented (IPv4 with DF=1 or | In both cases, if the packet cannot be fragmented (IPv4 with DF=1 or | |||
| IPv6), then the ITR drops it and replies with an ICMP Too Big message | IPv6), then the ITR drops it and replies with an ICMP Too Big message | |||
| to the source. | to the source. | |||
| 5. Mobility | 5. Mobility | |||
| The separation between locators and identifiers in LISP is suitable | The separation between Locators and identifiers in LISP is suitable | |||
| for TE purposes where LISP sites can change their attachment points | for TE purposes where LISP sites can change their attachment points | |||
| to the Internet (i.e., RLOCs) without impacting endpoints or the | to the Internet (i.e., RLOCs) without impacting endpoints or the | |||
| Internet core. In this context, the border routers operate the xTR | Internet core. In this context, the border routers operate the xTR | |||
| functionality, and endpoints are not aware of the existence of LISP. | functionality, and endpoints are not aware of the existence of LISP. | |||
| This functionality is similar to Network Mobility [RFC3963]. | This functionality is similar to Network Mobility [RFC3963]. | |||
| However, this mode of operation does not allow seamless mobility of | However, this mode of operation does not allow seamless mobility of | |||
| endpoints between different LISP sites, as the EID address might not | endpoints between different LISP sites, as the EID address might not | |||
| be routable in a visited site. Nevertheless, LISP can be used to | be routable in a visited site. Nevertheless, LISP can be used to | |||
| enable seamless IP mobility when LISP is directly implemented in the | enable seamless IP mobility when LISP is directly implemented in the | |||
| endpoint or when the endpoint roams to an attached xTR. Each | endpoint or when the endpoint roams to an attached xTR. Each | |||
| skipping to change at line 845 ¶ | skipping to change at line 845 ¶ | |||
| gathered from the network when it is visited. This functionality is | gathered from the network when it is visited. This functionality is | |||
| similar to Mobile IP ([RFC5944] and [RFC6275]). | similar to Mobile IP ([RFC5944] and [RFC6275]). | |||
| Whenever a device changes its RLOC, the xTR updates the RLOC of its | Whenever a device changes its RLOC, the xTR updates the RLOC of its | |||
| local mapping and registers it to its Map-Server, typically with a | local mapping and registers it to its Map-Server, typically with a | |||
| low TTL value (1 min). To avoid the need for a home gateway, the ITR | low TTL value (1 min). To avoid the need for a home gateway, the ITR | |||
| also indicates the RLOC change to all remote devices that have | also indicates the RLOC change to all remote devices that have | |||
| ongoing communications with the device that moved. The combination | ongoing communications with the device that moved. The combination | |||
| of both methods ensures the scalability of the system, as signaling | of both methods ensures the scalability of the system, as signaling | |||
| is strictly limited to the Map-Server and to hosts with which | is strictly limited to the Map-Server and to hosts with which | |||
| communications are ongoing. In the mobility case, the EID-prefix can | communications are ongoing. In the mobility case, the EID-Prefix can | |||
| be as small as a full /32 or /128 (IPv4 or IPv6, respectively), | be as small as a full /32 or /128 (IPv4 or IPv6, respectively), | |||
| depending on the specific use case (e.g., subnet mobility vs. single | depending on the specific use case (e.g., subnet mobility vs. single | |||
| VM/Mobile node mobility). | VM/Mobile node mobility). | |||
| The decoupled identity and location provided by LISP allow it to | The decoupled identity and location provided by LISP allow it to | |||
| operate with other Layer 2 and Layer 3 mobility solutions. | operate with other Layer 2 and Layer 3 mobility solutions. | |||
| 6. Multicast | 6. Multicast | |||
| LISP also supports transporting IP multicast packets sent from the | LISP also supports transporting IP multicast packets sent from the | |||
| skipping to change at line 884 ¶ | skipping to change at line 884 ¶ | |||
| ITR servicing the source. This message creates (S-EID, G) | ITR servicing the source. This message creates (S-EID, G) | |||
| multicast state at the source site. The second Join message | multicast state at the source site. The second Join message | |||
| contains, as a destination address, the RLOC of the ITR servicing | contains, as a destination address, the RLOC of the ITR servicing | |||
| the source (S-RLOC, G) and creates multicast state at the core. | the source (S-RLOC, G) and creates multicast state at the core. | |||
| 3. Multicast data packets originated by the source (S-EID, G) flow | 3. Multicast data packets originated by the source (S-EID, G) flow | |||
| from the source to the ITR. The ITR LISP-encapsulates the | from the source to the ITR. The ITR LISP-encapsulates the | |||
| multicast packets. The outer header includes its own RLOC as the | multicast packets. The outer header includes its own RLOC as the | |||
| source (S-RLOC) and the original multicast group address (G) as | source (S-RLOC) and the original multicast group address (G) as | |||
| the destination. Please note that multicast group addresses are | the destination. Please note that multicast group addresses are | |||
| logical and are not resolved by the mapping system. Then, the | logical and are not resolved by the Mapping System. Then, the | |||
| multicast packets are transmitted through the core towards the | multicast packets are transmitted through the core towards the | |||
| receiving ETRs, which decapsulate the packets and forward them | receiving ETRs, which decapsulate the packets and forward them | |||
| using the receiver site's multicast state. | using the receiver site's multicast state. | |||
| Please note that the inner and outer multicast addresses are | Please note that the inner and outer multicast addresses are | |||
| generally different, except in specific cases where the underlay | generally different, except in specific cases where the underlay | |||
| provider implements tight control on the overlay. LISP | provider implements tight control on the overlay. LISP | |||
| specifications already support all PIM modes [RFC6831]. | specifications already support all PIM modes [RFC6831]. | |||
| Additionally, LISP can also support non-PIM mechanisms in order to | Additionally, LISP can also support non-PIM mechanisms in order to | |||
| maintain multicast state. | maintain multicast state. | |||
| When multicast sources and receivers are active at LISP sites and the | When multicast sources and receivers are active at LISP sites and the | |||
| core network between the sites does not provide multicast support, a | core network between the sites does not provide multicast support, a | |||
| signal-free mechanism can be used to create an overlay that will | signal-free mechanism can be used to create an overlay that will | |||
| allow multicast traffic to flow between sites and connect the | allow multicast traffic to flow between sites and connect the | |||
| multicast trees at the different sites [RFC8378]. Registrations from | multicast trees at the different sites [RFC8378]. Registrations from | |||
| the different receiver sites will be merged in the mapping system to | the different receiver sites will be merged in the Mapping System to | |||
| assemble a multicast replication list inclusive of all RLOCs that | assemble a multicast replication list inclusive of all RLOCs that | |||
| lead to receivers for a particular multicast group or multicast | lead to receivers for a particular multicast group or multicast | |||
| channel. The replication list for each specific multicast entry is | channel. The replication list for each specific multicast entry is | |||
| maintained as a database mapping entry in the LISP mapping system. | maintained as a database mapping entry in the LISP Mapping System. | |||
| 7. Use Cases | 7. Use Cases | |||
| 7.1. Traffic Engineering | 7.1. Traffic Engineering | |||
| A LISP site can strictly impose via which ETRs the traffic must enter | A LISP site can strictly impose via which ETRs the traffic must enter | |||
| the LISP site network even though the path followed to reach the ETR | the LISP site network even though the path followed to reach the ETR | |||
| is not under the control of the LISP site. This fine control is | is not under the control of the LISP site. This fine control is | |||
| implemented with the mappings. When a remote site is willing to send | implemented with the mappings. When a remote site is willing to send | |||
| traffic to a LISP site, it retrieves the mapping associated with the | traffic to a LISP site, it retrieves the mapping associated with the | |||
| destination EID via the mapping system. The mapping is sent directly | destination EID via the Mapping System. The mapping is sent directly | |||
| by an authoritative ETR of the EID and is not altered by any | by an authoritative ETR of the EID and is not altered by any | |||
| intermediate network. | intermediate network. | |||
| A mapping associates a list of RLOCs with an EID prefix. Each RLOC | A mapping associates a list of RLOCs with an EID-Prefix. Each RLOC | |||
| corresponds to an interface of an ETR (or set of ETRs) that is able | corresponds to an interface of an ETR (or set of ETRs) that is able | |||
| to correctly forward packets to EIDs in the prefix. Each RLOC is | to correctly forward packets to EIDs in the prefix. Each RLOC is | |||
| tagged with a priority and a weight in the mapping. The priority is | tagged with a priority and a weight in the mapping. The priority is | |||
| used to indicate which RLOCs should be preferred for sending packets | used to indicate which RLOCs should be preferred for sending packets | |||
| (the least preferred ones being provided for backup purposes). The | (the least preferred ones being provided for backup purposes). The | |||
| weight permits balancing the load between the RLOCs with the same | weight permits balancing the load between the RLOCs with the same | |||
| priority, in proportion to the weight value. | priority, in proportion to the weight value. | |||
| As mappings are directly issued by the authoritative ETR of the EID | As mappings are directly issued by the authoritative ETR of the EID | |||
| and are not altered when transmitted to the remote site, it offers | and are not altered when transmitted to the remote site, it offers | |||
| skipping to change at line 979 ¶ | skipping to change at line 979 ¶ | |||
| 7.4. LISP for Virtual Machine Mobility in Data Centers | 7.4. LISP for Virtual Machine Mobility in Data Centers | |||
| A way to enable seamless virtual machine (VM) mobility in the data | A way to enable seamless virtual machine (VM) mobility in the data | |||
| center is to conceive the data center backbone as the RLOC space and | center is to conceive the data center backbone as the RLOC space and | |||
| the subnet where servers are hosted as forming the EID space. A LISP | the subnet where servers are hosted as forming the EID space. A LISP | |||
| router is placed at the border between the backbone and each subnet. | router is placed at the border between the backbone and each subnet. | |||
| When a VM is moved to another subnet, it can keep (temporarily) the | When a VM is moved to another subnet, it can keep (temporarily) the | |||
| address it had before the move so as to continue without a transport- | address it had before the move so as to continue without a transport- | |||
| layer connection reset. When an xTR detects a source address | layer connection reset. When an xTR detects a source address | |||
| received on a subnet to be an address not assigned to the subnet, it | received on a subnet to be an address not assigned to the subnet, it | |||
| registers the address to the mapping system. | registers the address to the Mapping System. | |||
| To inform the other LISP routers that the machine moved and where, | To inform the other LISP routers that the machine moved and where, | |||
| and then to avoid detours via the initial subnetwork, mechanisms such | and then to avoid detours via the initial subnetwork, mechanisms such | |||
| as the Solicit-Map-Request messages are used. | as the Solicit-Map-Request messages are used. | |||
| 8. Security Considerations | 8. Security Considerations | |||
| This section describes the security considerations associated with | This section describes the security considerations associated with | |||
| LISP. | LISP. | |||
| In a push mapping system, the state necessary to forward packets is | In a push Mapping System, the state necessary to forward packets is | |||
| learned independently of the traffic itself. However, with a pull | learned independently of the traffic itself. However, with a pull | |||
| architecture, the system becomes reactive, and data plane events | architecture, the system becomes reactive, and data plane events | |||
| (e.g., the arrival of a packet with an unknown destination address) | (e.g., the arrival of a packet with an unknown destination address) | |||
| may trigger control plane events. This on-demand learning of | may trigger control plane events. This on-demand learning of | |||
| mappings provides many advantages, as discussed above, but may also | mappings provides many advantages, as discussed above, but may also | |||
| affect the way security is enforced. | affect the way security is enforced. | |||
| Usually, the data plane is implemented in the fast path of routers to | Usually, the data plane is implemented in the fast path of routers to | |||
| provide high-performance forwarding capabilities, while the control | provide high-performance forwarding capabilities, while the control | |||
| plane features are implemented in the slow path to offer high | plane features are implemented in the slow path to offer high | |||
| flexibility, and a performance gap of several orders of magnitude can | flexibility, and a performance gap of several orders of magnitude can | |||
| be observed between the slow and fast paths. As a consequence, the | be observed between the slow and fast paths. As a consequence, the | |||
| way to notify the control plane of data plane events must be | way to notify the control plane of data plane events must be | |||
| considered carefully so as not to overload the slow path, and rate | considered carefully so as not to overload the slow path, and rate | |||
| limiting should be used as specified in [RFC9300] and [RFC9301]. | limiting should be used as specified in [RFC9300] and [RFC9301]. | |||
| Care must also be taken not to overload the mapping system (i.e., the | Care must also be taken not to overload the Mapping System (i.e., the | |||
| control plane infrastructure), as the operations to be performed by | control plane infrastructure), as the operations to be performed by | |||
| the mapping system may be more complex than those on the data plane. | the Mapping System may be more complex than those on the data plane. | |||
| For that reason, [RFC9300] and [RFC9301] recommend rate limiting the | For that reason, [RFC9300] and [RFC9301] recommend rate limiting the | |||
| sending of messages to the mapping system. | sending of messages to the Mapping System. | |||
| To improve resiliency and reduce the overall number of messages | To improve resiliency and reduce the overall number of messages | |||
| exchanged, LISP makes it possible to leak certain information, such | exchanged, LISP makes it possible to leak certain information, such | |||
| as the reachability of locators, directly into data plane packets. | as the reachability of Locators, directly into data plane packets. | |||
| In environments that are not fully trusted, like the open Internet, | In environments that are not fully trusted, like the open Internet, | |||
| control information gleaned from data plane packets must not be used | control information gleaned from data plane packets must not be used | |||
| or must be verified before using it. | or must be verified before using it. | |||
| Mappings are the centerpiece of LISP, and all precautions must be | Mappings are the centerpiece of LISP, and all precautions must be | |||
| taken to prevent malicious entities from manipulating or misusing | taken to prevent malicious entities from manipulating or misusing | |||
| them. Using trustable Map-Servers that strictly respect [RFC9301] | them. Using trustable Map-Servers that strictly respect [RFC9301] | |||
| and the authentication mechanism proposed by LISP-SEC [RFC9303] | and the authentication mechanism proposed by LISP-SEC [RFC9303] | |||
| reduces the risk of attacks on mapping integrity. In more critical | reduces the risk of attacks on mapping integrity. In more critical | |||
| environments, secure measures may be needed. The way security is | environments, secure measures may be needed. The way security is | |||
| implemented for a given mapping system strongly depends on the | implemented for a given Mapping System strongly depends on the | |||
| architecture of the mapping system itself and the threat model | architecture of the Mapping System itself and the threat model | |||
| assumed for the deployment. Thus, mapping system security has to be | assumed for the deployment. Thus, Mapping System security has to be | |||
| discussed in the relevant documents proposing the mapping system | discussed in the relevant documents proposing the Mapping System | |||
| architecture. | architecture. | |||
| As with any other tunneling mechanism, middleboxes on the path | As with any other tunneling mechanism, middleboxes on the path | |||
| between an ITR (or PITR) and an ETR (or PETR) must implement | between an ITR (or PITR) and an ETR (or PETR) must implement | |||
| mechanisms to strip the LISP encapsulation to correctly inspect the | mechanisms to strip the LISP encapsulation to correctly inspect the | |||
| content of LISP-encapsulated packets. | content of LISP-encapsulated packets. | |||
| Like other map-and-encap mechanisms, LISP enables triangular routing | Like other map-and-encap mechanisms, LISP enables triangular routing | |||
| (i.e., packets of a flow cross different border routers, depending on | (i.e., packets of a flow cross different border routers, depending on | |||
| their direction). This means that intermediate boxes may have an | their direction). This means that intermediate boxes may have an | |||
| skipping to change at line 1162 ¶ | skipping to change at line 1162 ¶ | |||
| Database Tree (LISP-DDT)", RFC 8111, DOI 10.17487/RFC8111, | Database Tree (LISP-DDT)", RFC 8111, DOI 10.17487/RFC8111, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8111>. | May 2017, <https://www.rfc-editor.org/info/rfc8111>. | |||
| [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>. | |||
| [RFC9300] Farinacci, D., Fuller, V., Meyer, D., Lewis, D., and A. | [RFC9300] Farinacci, D., Fuller, V., Meyer, D., Lewis, D., and A. | |||
| Cabellos, Ed., "The Locator/ID Separation Protocol | Cabellos, Ed., "The Locator/ID Separation Protocol | |||
| (LISP)", RFC 9300, DOI 10.17487/RFC9300, September 2022, | (LISP)", RFC 9300, DOI 10.17487/RFC9300, October 2022, | |||
| <https://www.rfc-editor.org/info/rfc9300>. | <https://www.rfc-editor.org/info/rfc9300>. | |||
| [RFC9301] Farinacci, D., Maino, F., Fuller, V., and A. Cabellos, | [RFC9301] Farinacci, D., Maino, F., Fuller, V., and A. Cabellos, | |||
| Ed., "Locator/ID Separation Protocol (LISP) Control | Ed., "Locator/ID Separation Protocol (LISP) Control | |||
| Plane", RFC 9301, DOI 10.17487/RFC9301, September 2022, | Plane", RFC 9301, DOI 10.17487/RFC9301, October 2022, | |||
| <https://www.rfc-editor.org/info/rfc9301>. | <https://www.rfc-editor.org/info/rfc9301>. | |||
| [RFC9302] Iannone, L., Saucez, D., and O. Bonaventure, "Locator/ID | [RFC9302] Iannone, L., Saucez, D., and O. Bonaventure, "Locator/ID | |||
| Separation Protocol (LISP) Map-Versioning", RFC 9302, | Separation Protocol (LISP) Map-Versioning", RFC 9302, | |||
| DOI 10.17487/RFC9302, September 2022, | DOI 10.17487/RFC9302, October 2022, | |||
| <https://www.rfc-editor.org/info/rfc9302>. | <https://www.rfc-editor.org/info/rfc9302>. | |||
| [RFC9303] Maino, F., Ermagan, V., Cabellos, A., and D. Saucez, | [RFC9303] Maino, F., Ermagan, V., Cabellos, A., and D. Saucez, | |||
| "Locator/ID Separation Protocol Security (LISP-SEC)", | "Locator/ID Separation Protocol Security (LISP-SEC)", | |||
| RFC 9303, DOI 10.17487/RFC9303, September 2022, | RFC 9303, DOI 10.17487/RFC9303, October 2022, | |||
| <https://www.rfc-editor.org/info/rfc9303>. | <https://www.rfc-editor.org/info/rfc9303>. | |||
| 10.2. Informative References | 10.2. Informative References | |||
| [Jakab] Jakab, L., Cabellos-Aparicio, A., Coras, F., Saucez, D., | [Jakab] Jakab, L., Cabellos-Aparicio, A., Coras, F., Saucez, D., | |||
| and O. Bonaventure, "LISP-TREE: A DNS Hierarchy to Support | and O. Bonaventure, "LISP-TREE: A DNS Hierarchy to Support | |||
| the LISP Mapping System", IEEE Journal on Selected Areas | the LISP Mapping System", IEEE Journal on Selected Areas | |||
| in Communications, vol. 28, no. 8, pp. 1332-1343, | in Communications, vol. 28, no. 8, pp. 1332-1343, | |||
| DOI 10.1109/JSAC.2010.101011, October 2010, | DOI 10.1109/JSAC.2010.101011, October 2010, | |||
| <https://ieeexplore.ieee.org/document/5586446>. | <https://ieeexplore.ieee.org/document/5586446>. | |||
| skipping to change at line 1284 ¶ | skipping to change at line 1284 ¶ | |||
| The authors would also like to thank Dino Farinacci, Fabio Maino, | The authors would also like to thank Dino Farinacci, Fabio Maino, | |||
| Luigi Iannone, Sharon Barkai, Isidoros Kouvelas, Christian Cassar, | Luigi Iannone, Sharon Barkai, Isidoros Kouvelas, Christian Cassar, | |||
| Florin Coras, Marc Binderberger, Alberto Rodriguez-Natal, Ronald | Florin Coras, Marc Binderberger, Alberto Rodriguez-Natal, Ronald | |||
| Bonica, Chad Hintz, Robert Raszuk, Joel M. Halpern, Darrel Lewis, and | Bonica, Chad Hintz, Robert Raszuk, Joel M. Halpern, Darrel Lewis, and | |||
| David Black. | David Black. | |||
| Authors' Addresses | Authors' Addresses | |||
| Albert Cabellos | Albert Cabellos | |||
| UPC-BarcelonaTech | Universitat Politecnica de Catalunya | |||
| c/ Jordi Girona 1-3 | c/ Jordi Girona s/n | |||
| 08034 Barcelona Catalonia | 08034 Barcelona | |||
| Spain | Spain | |||
| Email: acabello@ac.upc.edu | Email: acabello@ac.upc.edu | |||
| Damien Saucez (editor) | Damien Saucez (editor) | |||
| Inria | Inria | |||
| 2004 route des Lucioles BP 93 | 2004 route des Lucioles - BP 93 | |||
| 06902 Sophia Antipolis Cedex | Sophia Antipolis | |||
| France | France | |||
| Email: damien.saucez@inria.fr | Email: damien.saucez@inria.fr | |||
| End of changes. 74 change blocks. | ||||
| 91 lines changed or deleted | 91 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||