This section presents the LISP architecture. It first details the design principles of LISP, and then it proceeds to describe its main aspects: data plane, control plane, and internetworking mechanisms.
The LISP architecture is built on top of four basic design principles:
-
Locator/Identifier split:
-
Decoupling the overloaded semantics of current IP addresses allows devices to have identity-based addresses that are separate from topologically meaningful addresses. By allowing only the topologically meaningful addresses to be exposed to the Internet core, those topologically meaningful addresses can be aggregated to support substantial scaling. Individual devices are assigned identity-based addresses that are not used for forwarding in the Internet core.
-
Overlay architecture:
-
This architecture overlays route packets over the current Internet, allowing deployment of new protocols without changing the current infrastructure; hence, this results in a low deployment cost.
-
Decoupled data plane and control plane:
-
Separating the data plane from the control plane allows them to scale independently and use different architectural approaches. This is important given that they typically have different requirements and allows for other data planes to be added. Even though the data plane and the control plane are decoupled, they are not completely isolated, because the LISP data plane may trigger control plane activity.
-
Incremental deployability:
-
This principle ensures that the protocol interoperates with the legacy Internet while providing some of the targeted benefits to early adopters.
LISP architecturally splits the core from the edge of the Internet by creating two separate namespaces: Endpoint Identifiers (EIDs) and Routing Locators (RLOCs). The edge consists of LISP sites (e.g., an Autonomous System) that use EID addresses. EIDs are IPv4 or IPv6 addresses that uniquely identify communication end hosts and are assigned and configured by the same mechanisms that exist at the time of this writing. EIDs do not contain inter-domain topological information, and because of this, EIDs are usually routable at the edge (within LISP sites) but not in the core; see
Section 3.5 for discussion of LISP site internetworking with non-LISP sites and domains in the Internet.
LISP sites (at the edge) are connected to the interconnecting core of the Internet by means of LISP-capable routers (e.g., border routers). LISP sites are connected across the interconnecting core of the Internet using tunnels between the LISP-capable routers. When packets originated from a LISP site are flowing towards the core network, they ingress into an encapsulated tunnel via an Ingress Tunnel Router (ITR). When packets flow from the core network to a LISP site, they egress from an encapsulated tunnel to an Egress Tunnel Router (ETR). An xTR is a router that can perform both ITR and ETR operations. In this context, ITRs encapsulate packets, while ETRs decapsulate them; hence, LISP operates as an overlay on top of the current Internet core.
/-----------------\ ---
| Mapping | |
. System | | Control
-| |`, | Plane
,' \-----------------/ . |
/ | ---
,.., - _,....,, | ,.., |
/ ` ,' ,-` `', | / ` |
/ \ +-----+ ,' `, +-----+ / \ |
| EID |-| xTR |--/ RLOC ,--| xTR |-| EID | | Data
| Space |-| |--| Space |--| |-| Space | | Plane
\ / +-----+ . / +-----+ \ / |
`. .' `. ,' `. .' |
`'-` `., ,.' `'-` ---
``'''``
LISP Site (Edge) Core LISP Site (Edge)
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.
A database that is typically distributed, called the Mapping System, stores mappings between EIDs and RLOCs. Such mappings relate the identity of the devices attached to LISP sites (EIDs) to the set of RLOCs configured at the LISP-capable routers servicing the site. Furthermore, the mappings also include TE policies and can be configured to achieve multihoming and load balancing. The LISP Mapping System is conceptually similar to the DNS, where it is organized as a distributed multi-organization network database. With LISP, ETRs register mappings, while ITRs retrieve them.
Finally, the LISP architecture emphasizes incremental deployment. Given that LISP represents an overlay to the current Internet architecture, end hosts, as well as intra-domain and inter-domain routers, remain unchanged. The only required changes to the existing infrastructure are to routers connecting the EID space with the RLOC space. Additionally, LISP requires the deployment of an independent Mapping System; such a distributed database is a new network entity.
The following describes a simplified packet flow sequence between two nodes that are attached to LISP sites. Please note that typical LISP-capable routers are xTRs (both ITR and ETR). Client HostA wants to send a packet to server HostB.
/----------------\
| Mapping |
| System |
.| |-
` \----------------/ `.
,` \
/ `.
,' _,..-..,, ',
/ -` `-, \
.' ,' \ `,
` ' \ '
+-----+ | | RLOC_B1+-----+
HostA | | | RLOC |-------| | HostB
EID_A--|ITR_A|----| Space | |ETR_B|--EID_B
| | RLOC_A1 |-------| |
+-----+ | | RLOC_B2+-----+
, /
\ /
`', ,-`
``''-''``
-
HostA retrieves the EID_B of HostB, typically querying the DNS and obtaining an A or AAAA record. Then, it generates an IP packet as in the Internet. The packet has source address EID_A and destination address EID_B.
-
The packet is forwarded towards ITR_A in the LISP site using standard intra-domain mechanisms.
-
ITR_A, upon receiving the packet, queries the Mapping System to 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-Request. The message contains EID_B as the lookup key. In turn, it receives another LISP control message called Map-Reply. The message contains two Locators: RLOC_B1 and RLOC_B2. It also contains TE policies: priority and weight per Locator. Note that a Map-Reply can contain more Locators if needed. ITR_A can cache the mapping in local storage to speed up forwarding of subsequent packets.
-
ITR_A encapsulates the packet towards RLOC_B1 (chosen according to the priorities/weights specified in the mapping). The packet contains two IP headers. The outer header has RLOC_A1 as source and RLOC_B1 as destination. The inner original header has EID_A as source and EID_B as destination. Furthermore, ITR_A adds a LISP header. More details about LISP encapsulation can be found in Section 3.3.1.
-
The encapsulated packet is forwarded over the interconnecting core as a normal IP packet, making the EID invisible from the core.
-
Upon reception of the encapsulated packet by ETR_B, it decapsulates the packet and forwards it to HostB.
This section provides a high-level description of the LISP data plane, which is specified in detail in [
RFC 9300]. The LISP data plane is responsible for encapsulating and decapsulating data packets and caching the appropriate forwarding state. It includes two main entities, the ITR and the ETR. Both are LISP-capable routers that connect the EID with the RLOC space (ITR) and vice versa (ETR).
ITRs encapsulate data packets towards ETRs. LISP data packets are encapsulated using UDP (port 4341). The source port is usually selected by the ITR using a 5-tuple hash of the inner header (so as to be consistent in case of multipath solutions, such as ECMP [
RFC 2992]) and ignored on reception. LISP data packets are often encapsulated in UDP packets that include a zero checksum [
RFC 6935] [
RFC 6936] that may not be verified when it is received, because LISP data packets typically include an inner transport protocol header with a non-zero checksum. The use of UDP zero checksums over IPv6 for all tunneling protocols like LISP is subject to the applicability statement in [
RFC 6936]. If LISP data packets are encapsulated in UDP packets with non-zero checksums, the outer UDP checksums are verified when the UDP packets are received, as part of normal UDP processing.
LISP-encapsulated packets also include a LISP header (after the UDP header and before the original IP header). The LISP header is prepended by ITRs and stripped by ETRs. It carries reachability information (see more details in
Section 4.2) and the 'Instance ID' field. The 'Instance ID' field is used to distinguish traffic to/from different tenant address spaces at the LISP site, and this use of the Instance ID may use overlapped but logically separated EID addressing.
Overall, LISP works on 4 headers: the inner header the source constructed and the 3 headers a LISP encapsulator prepends ("outer" to "inner"):
-
Outer IP header containing RLOCs as source and destination addresses. This header is originated by ITRs and stripped by ETRs.
-
UDP header (port 4341), usually with zero checksum. This header is originated by ITRs and stripped by ETRs.
-
LISP header that contains various forwarding-plane features (such as reachability) and an 'Instance ID' field. This header is originated by ITRs and stripped by ETRs.
-
Inner IP header containing EIDs as source and destination addresses. This header is created by the source end host and is left unchanged by the LISP data plane processing on the ITR and ETR.
Finally, in some scenarios, re-encapsulating and/or recursive tunnels are useful to choose a specified path in the underlay network, for instance, to avoid congestion or failure. Re-encapsulating tunnels are consecutive LISP tunnels and occur when a decapsulator (an ETR action) removes a LISP header and then acts as an encapsulator (an ITR action) to prepend another one. On the other hand, recursive tunnels are nested tunnels and are implemented by using multiple LISP encapsulations on a packet. Such functions are implemented by Re-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 an ITR by encapsulating them towards another Locator; more information can be found in [
RFC 9300] and [
RFC 9301].
In the LISP architecture, ITRs keep just enough information to route traffic flowing through them. In other words, ITRs only need to retrieve from the LISP Mapping System mappings between EID-Prefixes (blocks of EIDs) and RLOCs that are used to encapsulate packets. Such mappings are stored in a local cache called the LISP Map-Cache for subsequent packets addressed to the same EID-Prefix. Note that 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 more-specific EID-Prefixes (cf.,
Section 5.5 of
RFC 9301). Mappings 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 LISP control plane, specified in [
RFC 9301], provides a standard interface to register and request mappings. The LISP Mapping System is a database that stores such mappings. The following sub-sections first describe the mappings, then the standard interface to the Mapping System, and finally its architecture.
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 weights for the RLOCs. Priorities allow the ETR to configure active/backup policies, while weights are used to load-balance traffic among the RLOCs (on a per-flow basis).
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 addresses are encoded using the appropriate Address Family Identifier (AFI) [
RFC 8060]. However, LISP can also support more general address encoding by means of the ongoing effort around the LISP Canonical Address Format (LCAF) [
RFC 8060].
With such a general syntax for address encoding in place, LISP aims to provide flexibility to current and future applications. For instance, LCAFs could support Media Access Control (MAC) addresses, geocoordinates, ASCII names, and application-specific data.
LISP defines a standard interface between data and control planes. The interface is specified in [
RFC 9301] and defines two entities:
-
Map-Server:
-
A network infrastructure component that learns mappings from ETRs and publishes them into the LISP Mapping System. Typically, Map-Servers are not authoritative to reply to queries; hence, they forward them to the ETR. However, they can also operate in proxy-mode, where the ETRs delegate replying to queries to Map-Servers. This setup is useful when the ETR has limited resources (e.g., CPU or power).
-
Map-Resolver:
-
A network infrastructure component that interfaces ITRs with the Mapping System by proxying queries and, in some cases, responses.
The interface defines four LISP control messages that are sent as UDP datagrams (port 4342):
-
Map-Register:
-
This message is used by ETRs to register mappings in the Mapping System, and it is authenticated using a shared key between the ETR and the Map-Server.
-
Map-Notify:
-
When requested by the ETR, this message is sent by the Map-Server in response to a Map-Register to acknowledge the 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 be sent to the previous RLOCs when an EID is registered by a new set of RLOCs.
-
Map-Request:
-
This message is used by ITRs or Map-Resolvers to resolve the mapping of a given EID.
-
Map-Reply:
-
This message is sent by Map-Servers or ETRs in response to a Map-Request and contains the resolved mapping. Please note 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 ITR typically forwards the traffic as is (non-encapsulated) to the public Internet. This behavior is defined to support incremental deployment of LISP.
LISP architecturally decouples control and data planes by means of a standard interface. This interface glues the data plane -- routers responsible for forwarding data packets -- with the LISP Mapping System -- a database responsible for storing mappings.
With this separation in place, the data and control planes can use different architectures if needed and scale independently. Typically, the data plane is optimized to route packets according to hierarchical IP addresses. However, the control plane may have different requirements, for instance, and by taking advantage of the LCAFs, the Mapping System may be used to store nonhierarchical keys (such as MAC addresses), requiring different architectural approaches for scalability. Another important difference between the LISP 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 operate at line-rate.
Many of the existing mechanisms to create distributed systems have been explored and considered for the Mapping System architecture: graph-based databases in the form of LISP Alternative Logical Topology (LISP-ALT) [
RFC 6836], hierarchical databases in the form of the LISP Delegated Database Tree (LISP-DDT) [
RFC 8111], monolithic databases in the form of the LISP Not-so-novel EID-to-RLOC Database (LISP-NERD) [
RFC 6837], flat databases in the form of the LISP Distributed Hash Table (LISP-DHT) [
LISP-SHDHT] [
Mathy], and a multicast-based database [
LISP-EMACS]. Furthermore, it is worth noting that, in some scenarios, such as private deployments, the Mapping System can operate as logically centralized. In such cases, it is typically composed of a single Map-Server/Map-Resolver.
The following sub-sections focus on the two Mapping Systems that have been implemented and deployed (LISP-ALT and LISP-DDT).
LISP-ALT [
RFC 6836] was the first Mapping System proposed, developed, and deployed on the LISP pilot network. It is based on a distributed BGP overlay in which Map-Servers and Map-Resolvers participate. The nodes connect to their peers through static tunnels. Each Map-Server involved in the ALT topology advertises the EID-Prefixes registered 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 that, using the ALT topology, forwards the Map-Request towards the Map-Server responsible for the mapping. Upon reception, the Map-Server forwards the request to the ETR, which in turn replies directly to the ITR.
LISP-DDT [
RFC 8111] is conceptually similar to the DNS, a hierarchical directory whose internal structure mirrors the hierarchical nature of the EID address space. The DDT hierarchy is composed of DDT nodes forming a tree structure; the leafs of the tree are Map-Servers. On top of the structure, there is the DDT root node, which is a particular instance of a DDT node, that matches the entire address space. As in the case of DNS, DDT supports multiple redundant DDT nodes and/or DDT roots. Finally, Map-Resolvers are the clients of the DDT hierarchy and can query the DDT root and/or other DDT nodes.
/---------\
| |
| DDT Root|
| /0 |
,.\---------/-,
,-'` | `'.,
-'` | `-
/-------\ /-------\ /-------\
| DDT | | DDT | | DDT |
| Node | | Node | | Node | ...
| 0/8 | | 1/8 | | 2/8 |
\-------/ \-------/ \-------/
_. _. . -..,,,_
-` -` \ ````''--
+------------+ +------------+ +------------+ +------------+
| Map-Server | | Map-Server | | Map-Server | | Map-Server |
| EID-Prefix1| | EID-Prefix2| | EID-Prefix3| | EID-Prefix4|
+------------+ +------------+ +------------+ +------------+
Please note that the prefixes and the structure depicted in the figure above should only be considered as an example.
The DDT structure does not actually index EID-Prefixes; rather, it indexes Extended EID-Prefixes (XEID-Prefixes). An XEID-Prefix is just the concatenation of the following fields (from most significant bit to less significant bits): Database-ID, Instance ID, Address Family Identifier, and the actual EID-Prefix. The Database-ID is provided for possible future requirements of higher levels in the hierarchy and to enable the creation of multiple and separate database trees.
In order to resolve a query, LISP-DDT operates in a similar way to the DNS but only supports iterative lookups. DDT clients (usually Map-Resolvers) generate Map-Requests to the DDT root node. In response, they receive a newly introduced LISP control message: a Map-Referral. A Map-Referral provides the list of RLOCs of the set of DDT nodes matching a configured XEID delegation. That is, the information contained in the Map-Referral points to the child of the queried DDT node that has more specific information about the queried XEID-Prefix. This process is repeated until the DDT client walks the tree structure (downwards) and discovers the Map-Server servicing the queried XEID. At this point, the client sends a Map-Request and receives a Map-Reply containing the mappings. It is important to note that DDT clients can also cache the information contained in Map-Referrals; that is, they cache the DDT structure. This is used to reduce the time required to retrieve mappings [
Jakab].
The DDT Mapping System relies on manual configuration. That is, Map-Resolvers are configured with the set of available DDT root nodes, while DDT nodes are configured with the appropriate XEID delegations. Configuration changes in the DDT nodes are only required when the tree structure changes itself, but it doesn't depend on EID dynamics (RLOC allocation or TE policy changes).
EIDs are typically identical to either IPv4 or IPv6 addresses, and they are stored in the LISP Mapping System. However, they are usually not announced in the routing system beyond the local LISP domain. As a result, LISP requires an internetworking mechanism to allow LISP sites to speak with non-LISP sites and vice versa. LISP internetworking mechanisms are specified in [
RFC 6832].
LISP defines two entities to provide internetworking:
-
Proxy Ingress Tunnel Router (PITR):
-
PITRs provide connectivity from the legacy Internet to LISP sites. PITRs announce in the global routing system blocks of EID-Prefixes (aggregating when possible) 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 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 case, similar to the case in which LISP is not deployed. EID-Prefixes will be aggregated as much as possible, both by the PITR and by the global routing system.
-
Proxy Egress Tunnel Router (PETR):
-
PETRs provide connectivity from LISP sites to the legacy Internet. In some scenarios, LISP sites may be unable to send encapsulated packets with a local EID address as a source to the legacy Internet, for instance, when Unicast Reverse Path Forwarding (uRPF) is used by Provider Edge 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 IPv6). In both cases, the PETR overcomes such limitations by encapsulating packets over the network. There is no specified provision for the distribution of PETR RLOC addresses to the ITRs.
Additionally, LISP also defines mechanisms to operate with private EIDs [
RFC 1918] by means of LISP-NAT [
RFC 6832]. In this case, the xTR replaces a private EID source address with a routable one. At the time of this writing, work is ongoing to define NAT-traversal capabilities, that is, xTRs behind a NAT using non-routable RLOCs.
PITRs, PETRs, and LISP-NAT enable incremental deployment of LISP by providing significant flexibility in the placement of the boundaries between the LISP and non-LISP portions of the network and making it easy to change those boundaries over time.