diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8111.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8111.txt')
-rw-r--r-- | doc/rfc/rfc8111.txt | 2467 |
1 files changed, 2467 insertions, 0 deletions
diff --git a/doc/rfc/rfc8111.txt b/doc/rfc/rfc8111.txt new file mode 100644 index 0000000..eb1e4da --- /dev/null +++ b/doc/rfc/rfc8111.txt @@ -0,0 +1,2467 @@ + + + + + + +Internet Engineering Task Force (IETF) V. Fuller +Request for Comments: 8111 VAF.NET Internet Consulting +Category: Experimental D. Lewis +ISSN: 2070-1721 V. Ermagan + Cisco Systems + A. Jain + Juniper Networks + A. Smirnov + Cisco Systems + May 2017 + + + Locator/ID Separation Protocol Delegated Database Tree (LISP-DDT) + +Abstract + + This document describes the Locator/ID Separation Protocol Delegated + Database Tree (LISP-DDT), a hierarchical distributed database that + embodies the delegation of authority to provide mappings from LISP + Endpoint Identifiers (EIDs) to Routing Locators (RLOCs). It is a + statically defined distribution of the EID namespace among a set of + LISP-speaking servers called "DDT nodes". Each DDT node is + configured as "authoritative" for one or more EID-prefixes, along + with the set of RLOCs for Map-Servers or "child" DDT nodes to which + more-specific EID-prefixes are delegated. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for examination, experimental implementation, and + evaluation. + + This document defines an Experimental Protocol for the Internet + community. This document is a product of the Internet Engineering + Task Force (IETF). It represents the consensus of the IETF + community. It has received public review and has been approved for + publication by the Internet Engineering Steering Group (IESG). Not + all documents approved by the IESG are a candidate for any level of + Internet Standard; see Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + http://www.rfc-editor.org/info/rfc8111. + + + + + + + + +Fuller, et al. Experimental [Page 1] + +RFC 8111 LISP-DDT May 2017 + + +Copyright Notice + + Copyright (c) 2017 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (http://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + +Table of Contents + + 1. Introduction ....................................................4 + 2. Requirements Language ...........................................5 + 3. Definitions of Terms ............................................6 + 4. Database Organization ...........................................8 + 4.1. XEID-Prefixes ..............................................8 + 4.2. Structure of the DDT Database ..............................8 + 4.3. Configuring Prefix Delegation ..............................9 + 4.3.1. The Root DDT Node ..................................10 + 5. DDT Map-Request ................................................10 + 6. The Map-Referral Message .......................................11 + 6.1. Action Codes ..............................................11 + 6.2. Referral Set ..............................................12 + 6.3. "Incomplete" Flag .........................................12 + 6.4. Map-Referral Message Format ...............................13 + 6.4.1. Signature Section ..................................15 + 7. DDT Network Elements and Their Operation .......................17 + 7.1. DDT Node ..................................................17 + 7.1.1. Matching of a Delegated Prefix (or Sub-prefix) .....17 + 7.1.2. Missing Delegation from an Authoritative Prefix ....18 + 7.2. DDT Map-Server ............................................18 + 7.3. DDT Client ................................................18 + 7.3.1. Queuing and Sending DDT Map-Requests ...............19 + 7.3.2. Receiving and Following Referrals ..................20 + 7.3.3. Handling Referral Errors ...........................22 + 7.3.4. Referral Loop Detection ............................22 + + + + + + + + + +Fuller, et al. Experimental [Page 2] + +RFC 8111 LISP-DDT May 2017 + + + 8. Pseudocode and Decision Tree Diagrams ..........................23 + 8.1. Map-Resolver Processing of ITR Map-Request ................23 + 8.1.1. Pseudocode Summary .................................23 + 8.1.2. Decision Tree Diagram ..............................24 + 8.2. Map-Resolver Processing of Map-Referral Message ...........25 + 8.2.1. Pseudocode Summary .................................25 + 8.2.2. Decision Tree Diagram ..............................27 + 8.3. DDT Node Processing of DDT Map-Request Message ............28 + 8.3.1. Pseudocode Summary .................................28 + 8.3.2. Decision Tree Diagram ..............................30 + 9. Example Topology and Request/Referral Following ................31 + 9.1. Lookup of 2001:db8:0103:1::1/128 ..........................33 + 9.2. Lookup of 2001:db8:0501:8:4::1/128 ........................34 + 9.3. Lookup of 2001:db8:0104:2::2/128 ..........................35 + 9.4. Lookup of 2001:db8:0500:2:4::1/128 ........................36 + 9.5. Lookup of 2001:db8:0500::1/128 (Nonexistent EID) ..........37 + 10. Securing the Database and Message Exchanges ...................37 + 10.1. XEID-Prefix Delegation ...................................38 + 10.2. DDT Node Operation .......................................38 + 10.2.1. DDT Public Key Revocation .........................38 + 10.3. Map-Server Operation .....................................39 + 10.4. Map-Resolver Operation ...................................39 + 11. Open Issues and Considerations ................................40 + 12. IANA Considerations ...........................................41 + 13. Security Considerations .......................................41 + 14. References ....................................................42 + 14.1. Normative References .....................................42 + 14.2. Informative References ...................................43 + Acknowledgments ...................................................44 + Authors' Addresses ................................................44 + + + + + + + + + + + + + + + + + + + + + +Fuller, et al. Experimental [Page 3] + +RFC 8111 LISP-DDT May 2017 + + +1. Introduction + + The Locator/ID Separation Protocol (LISP) [RFC6830] specifies an + architecture and mechanism for replacing the addresses currently used + by IP with two separate namespaces: + + o Endpoint Identifiers (EIDs), used end to end for terminating + transport-layer associations, and + + o Routing Locators (RLOCs), which are bound to topological locations + and are used for routing and forwarding through the Internet + infrastructure. + + [RFC6833] specifies an interface between a database storing + EID-to-RLOC mappings and LISP devices that need this information for + packet forwarding. The internal organization of such a database is + beyond the scope of [RFC6833]. Multiple architectures of the + database have been proposed, each having its advantages and + disadvantages (see, for example, [RFC6836] and [RFC6837]). + + This document specifies an architecture for a database of LISP + EID-to-RLOC mappings, with an emphasis on high scalability. The + LISP Delegated Database Tree (LISP-DDT) is a hierarchical distributed + database that embodies the delegation of authority to provide + mappings, i.e., its internal structure mirrors the hierarchical + delegation of address space. It also provides delegation information + to Map-Resolvers, which use the information to locate EID-to-RLOC + mappings. A Map-Resolver that needs to locate a given mapping will + follow a path through the tree-structured database and will contact, + one after another, the DDT nodes along that path until it reaches the + leaf DDT node(s) authoritative for the mapping it is seeking. + + LISP offers a general-purpose mechanism for mapping between EIDs and + RLOCs. In organizing a database of EID-to-RLOC mappings, this + specification extends the definition of the EID numbering space by + logically prepending and appending several fields for purposes of + defining the database index key: + + o Database-ID (DBID) (16 bits), + + o Instance Identifier (IID) (32 bits), + + o Address Family Identifier (AFI) (16 bits), and + + o EID-prefix (variable, according to the AFI value). + + The resulting concatenation of these fields is termed an "Extended + EID-prefix", or XEID-prefix. + + + +Fuller, et al. Experimental [Page 4] + +RFC 8111 LISP-DDT May 2017 + + + LISP-DDT defines a new device type, the DDT node, that is configured + as authoritative for one or more XEID-prefixes. It is also + configured with the set of more-specific sub-prefixes that are + further delegated to other DDT nodes. To delegate a sub-prefix, the + "parent" DDT node is configured with the RLOCs of each child DDT node + that is authoritative for the sub-prefix. Each RLOC either points to + a DDT Map-Server (MS) to which an Egress Tunnel Router (ETR) has + registered that sub-prefix or points to another DDT node in the + database tree that further delegates the sub-prefix. See [RFC6833] + for a description of the functionality of the Map-Server and + Map-Resolver. Note that the target of a delegation must always be an + RLOC (not an EID) to avoid any circular dependency. + + To provide a mechanism for traversing the database tree, LISP-DDT + defines a new LISP message type, the Map-Referral, which is returned + to the sender of a Map-Request when the receiving DDT node can refer + the sender to another DDT node that has more detailed information. + See Section 6 for the definition of the Map-Referral message. + + To find an EID-to-RLOC mapping, a LISP-DDT client, usually a DDT + Map-Resolver, starts by sending an Encapsulated Map-Request to a + preconfigured DDT node RLOC. The DDT node responds with a + Map-Referral message indicating that either (1) it will find the + requested mapping to complete processing of the request or (2) the + DDT client should contact another DDT node that has more-specific + information; in the latter case, the DDT node then sends a new + Encapsulated Map-Request to the next DDT node and the process repeats + in an iterative manner. + + Conceptually, this is similar to the way that a client of the Domain + Name System (DNS) follows referrals (DNS responses that contain only + NS records) from a series of DNS servers until it finds an answer. + +2. Requirements Language + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all + capitals, as shown here. + + + + + + + + + + + +Fuller, et al. Experimental [Page 5] + +RFC 8111 LISP-DDT May 2017 + + +3. Definitions of Terms + + Extended EID (XEID): a LISP EID extended with data uniquely + identifying the address space to which it belongs (LISP IID, + address family, etc.). See Section 4.1 for a detailed description + of XEID data. + + Extended EID-prefix (XEID-prefix): a LISP EID-prefix prepended with + XEID data. An XEID-prefix is used as a key index into the DDT + database. XEID-prefixes are used to describe database + organization and are not seen as a single entity in protocol + messages, though messages contain individual fields constituting + XEID-prefixes. + + DDT node: a network infrastructure component responsible for + specific XEID-prefix(es) and for the delegation of more-specific + sub-prefixes to other DDT nodes. + + DDT client: a network infrastructure component that sends DDT + Map-Request messages and implements the iterative following of + Map-Referral results. Typically, a DDT client will be a + Map-Resolver (as defined by [RFC6833]), but it is also possible + for an Ingress Tunnel Router (ITR) to implement DDT client + functionality. + + DDT Map-Server: a DDT node that also implements Map-Server + functionality (forwarding Map-Requests and/or returning + Map-Replies if offering a proxy Map-Reply service) for a subset of + its delegated prefixes. Map-Server functions, including proxying + Map-Replies, are described in [RFC6833]. + + DDT Map-Server peers: a list of all DDT Map-Servers performing + Map-Server functionality for the same prefix. If peers are + configured on a DDT Map-Server, then the latter will provide + complete information about the prefix in its Map-Replies; + otherwise, the Map-Server will mark the returned reply as + potentially incomplete. + + DDT Map-Resolver: a network infrastructure element that implements + both DDT client functionality and Map-Resolver functionality as + defined by [RFC6833]. A DDT Map-Resolver accepts Map-Requests + from ITRs, sends DDT Map-Requests to DDT nodes, and implements the + iterative following of Map-Referrals. Note that Map-Resolvers + do not respond to clients that sent Map-Requests; they only ensure + that the Map-Request has been forwarded to a LISP device (ETR or + proxy Map-Server) that will provide an authoritative response to + the original requester. A DDT Map-Resolver will typically + + + + +Fuller, et al. Experimental [Page 6] + +RFC 8111 LISP-DDT May 2017 + + + maintain a cache (termed the "referral cache") of previously + received Map-Referral message results containing RLOCs for DDT + nodes responsible for XEID-prefixes of interest. + + Encapsulated Map-Request: a LISP Map-Request that is carried within + an Encapsulated Control Message and that has an additional LISP + header prepended to it. Sent to UDP destination port 4342. The + "outer" addresses are globally routable IP addresses, also known + as RLOCs. Used by an ITR when sending a Map-Request to a + Map-Resolver and by a Map-Server when forwarding a Map-Request to + an ETR as documented in [RFC6833]. + + DDT Map-Request: an Encapsulated Map-Request sent by a DDT client to + a DDT node. The "DDT-originated" flag is set in the encapsulation + header, indicating that the DDT node should return Map-Referral + messages if the Map-Request EID matches a delegated XEID-prefix + known to the DDT node. Section 7.3.1 describes how DDT + Map-Requests are sent. Section 5 defines the position of the + "DDT-originated" flag in the Encapsulated Control Message header. + + Authoritative XEID-prefix: an XEID-prefix delegated to a DDT node + and for which the DDT node may provide further delegations of + more-specific sub-prefixes. + + Map-Referral: a LISP message sent by a DDT node in response to a DDT + Map-Request for an XEID that matches a configured XEID-prefix + delegation. A non-Negative Map-Referral includes a "referral" -- + a set of RLOCs for DDT nodes that have information about the + more-specific XEID-prefix covering the requested XEID; a DDT + client "follows the referral" by sending another DDT Map-Request + to one of those RLOCs to obtain either an answer or another + referral to DDT nodes responsible for an XEID-prefix that is even + more specific. See Sections 7.1 and 7.3.2 for details on the + sending and processing of Map-Referral messages. + + Negative Map-Referral: an answer from an authoritative DDT node that + there is no mapping for the requested XEID. A Negative + Map-Referral is a Map-Referral sent in response to a DDT + Map-Request that matches an authoritative XEID-prefix but for + which there is no delegation configured (or no ETR registration, + if sent by a DDT Map-Server). + + Pending Request List: the set of outstanding requests for which a + DDT Map-Resolver has received Encapsulated Map-Requests from its + clients seeking EID-to-RLOC mapping for an XEID. Each entry in + the list contains additional state needed by the + referral-following process, including the XEID, requester(s) of + the XEID (typically one or more ITRs), saved information about the + + + +Fuller, et al. Experimental [Page 7] + +RFC 8111 LISP-DDT May 2017 + + + last referral received and followed (matching XEID-prefix, action + code, RLOC set, index of the last RLOC queried in the RLOC set), + and any LISP-Security (LISP-SEC) information [LISP-SEC] that was + included in the DDT client Map-Request. An entry in the list may + be interchangeably termed a "pending request list entry" or simply + a "pending request". + + For definitions of other terms -- notably Map-Request, Map-Reply, + ITR, ETR, Map-Server, and Map-Resolver -- please consult the LISP + specification [RFC6830] and the LISP Mapping Service specification + [RFC6833]. + +4. Database Organization + +4.1. XEID-Prefixes + + A DDT database is indexed by Extended EID-prefixes (XEID-prefixes). + An XEID-prefix is a LISP EID-prefix, together with data extending it + to uniquely identify the address space of the prefix. An XEID-prefix + is composed of four binary-encoded fields, ordered by significance: + DBID (16 bits), IID (32 bits), AFI (16 bits), and EID-prefix + (variable, according to the AFI value). The fields are concatenated, + with the most significant fields as listed above. + + The DBID is the LISP-DDT Database-ID, a 16-bit field provided to + allow the definition of multiple databases. Implementations that are + compliant with this document must always set this field to 0. Other + values of the DBID are reserved for future use. + + The Instance ID (IID) is a 32-bit value describing the context of the + EID-prefix, if the latter is intended for use in an environment where + addresses may not be unique, such as in a Virtual Private Network + where the [RFC1918] address space is used. See Section 5.5 of + [RFC6830] for more discussion of IIDs. Encoding of the IID is + specified by [RFC8060]. + + The AFI is a 16-bit value defining the syntax of the EID-prefix. AFI + values are assigned by IANA [AFI]. + +4.2. Structure of the DDT Database + + The LISP-DDT database for each DDT node is organized as a tree + structure that is indexed by XEID-prefixes. Leaves of the database + tree describe the delegation of authority between DDT nodes (see + Section 4.3 for details regarding delegation and information kept in + the database entries). + + + + + +Fuller, et al. Experimental [Page 8] + +RFC 8111 LISP-DDT May 2017 + + + DDT Map-Requests sent by the DDT client to DDT nodes always contain + specific values for the DBID, IID, and AFI; unspecified values or + ranges of values are never used for any of these fields. Thus, an + XEID-prefix used as a key for searches in the database tree will have + a length of at least 64 bits. + + A DDT node may, for example, be authoritative for a consecutive range + of 3-tuples (DBID, IID, AFI) and all associated EID-prefixes, or only + for a specific EID-prefix of a single 3-tuple. Thus, + XEID-prefixes/keys of the database tree leaves may have lengths less + than, equal to, or more than 64 bits. + + It is important to note that LISP-DDT does not store actual + EID-to-RLOC mappings; it is, rather, a distributed index that can be + used to find the devices (ETRs that registered their EIDs with DDT + Map-Servers) that can be queried with LISP to obtain those mappings. + Changes to EID-to-RLOC mappings are made on the ETRs that define + them, not to any DDT node configuration. DDT node configuration + changes are only required when branches of the database hierarchy are + added, removed, or modified. + +4.3. Configuring Prefix Delegation + + Every DDT node is configured with one or more XEID-prefixes for which + it is authoritative, along with a list of delegations of + XEID-prefixes to other DDT nodes. A DDT node is required to maintain + a list of delegations for all sub-prefixes of its authoritative + XEID-prefixes; it also may list "hints", which are prefixes that it + knows about that belong to its parents, to the root, or to any other + point in the XEID-prefix hierarchy. A delegation (or hint) consists + of an XEID-prefix, a set of RLOCs for DDT nodes that have more + detailed knowledge of the XEID-prefix, and accompanying security + information (for details regarding security information exchange and + its use, see Section 10). Those RLOCs are returned in Map-Referral + messages when the DDT node receives a DDT Map-Request with an XEID + that matches a delegation. A DDT Map-Server will also have a set of + sub-prefixes for which it accepts ETR mapping registrations and for + which it will forward (or answer, if it provides a proxy Map-Reply + service) Map-Requests. + + One or more XEID-prefixes for which a DDT node is authoritative, and + the delegation of authority for sub-prefixes, are provided as part of + the configuration of the DDT node. Implementations will likely + develop a language to express this prefix authority and delegation. + Since DDT configuration is static (i.e., not exchanged between DDT + nodes as part of the protocol itself), such language is + implementation dependent and is outside the scope of this + specification. + + + +Fuller, et al. Experimental [Page 9] + +RFC 8111 LISP-DDT May 2017 + + +4.3.1. The Root DDT Node + + The root DDT node is the logical "top" of the distributed database + hierarchy. It is authoritative for all XEID-prefixes -- that is, for + all valid 3-tuples (DBID, IID, AFI) and their EID-prefixes. A DDT + Map-Request that matches no configured XEID-prefix will be referred + to the root node (see Section 8 for a formal description of + conditions where a DDT Map-Request is forwarded to the root node). + The root node in a particular instantiation of LISP-DDT therefore + MUST be configured, at a minimum, with delegations for all defined + IIDs and AFIs. + +5. DDT Map-Request + + A DDT client (usually a Map-Resolver) uses LISP Encapsulated Control + Messages (ECMs) to send Map-Request messages to a DDT node. The + format of the ECM is defined by [RFC6830]. This specification adds + to the Encapsulated Control Message (ECM) header a new flag, + "DDT-originated", as shown in the diagram and described below. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + / | IPv4 or IPv6 Header | + OH | (uses RLOC addresses) | + \ | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + / | Source Port = xxxx | Dest Port = 4342 | + UDP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + \ | UDP Length | UDP Checksum | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + LH |Type=8 |S|D| Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + / | IPv4 or IPv6 Header | + IH | (uses RLOC or EID addresses) | + \ | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + / | Source Port = xxxx | Dest Port = yyyy | + UDP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + \ | UDP Length | UDP Checksum | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + LCM | LISP Control Message | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + + + + + + +Fuller, et al. Experimental [Page 10] + +RFC 8111 LISP-DDT May 2017 + + + D: The "DDT-originated" flag. This flag is set by a DDT client to + indicate that the receiver SHOULD return Map-Referral messages as + appropriate. The use of this flag is further described in + Section 7.3.1. This bit is allocated from LISP message header + bits marked as "Reserved" in [RFC6830]. + +6. The Map-Referral Message + + This specification defines a new LISP message called the Map-Referral + message. A Map-Referral message is sent by a DDT node to a + DDT client in response to a DDT Map-Request message. See Section 6.4 + for a detailed layout of the Map-Referral message fields. + + The message consists of an action code along with delegation + information about the XEID-prefix that matches the requested XEID. + +6.1. Action Codes + + The action codes are as follows: + + NODE-REFERRAL (0): indicates that the replying DDT node has + delegated an XEID-prefix that matches the requested XEID to one or + more other DDT nodes. The Map-Referral message contains a + "map-record" with additional information -- most significantly, + the set of RLOCs to which the prefix has been delegated -- that is + used by a DDT client to "follow" the referral. + + MS-REFERRAL (1): indicates that the replying DDT node has delegated + an XEID-prefix that matches the requested XEID to one or more DDT + Map-Servers. It contains the same additional information as a + NODE-REFERRAL but is handled slightly differently by the receiving + DDT client (see Section 7.3.2). + + MS-ACK (2): indicates that the replying DDT Map-Server received a + DDT Map-Request that matches an authoritative XEID-prefix for + which it has one or more registered ETRs. This means that the + request has been forwarded to one of those ETRs to provide an + answer to the querying ITR. + + MS-NOT-REGISTERED (3): indicates that the replying DDT Map-Server + received a Map-Request for one of its configured XEID-prefixes + that has no ETRs registered. + + + + + + + + + +Fuller, et al. Experimental [Page 11] + +RFC 8111 LISP-DDT May 2017 + + + DELEGATION-HOLE (4): indicates that the requested XEID matches a + non-delegated sub-prefix of the XEID space. This is a non-LISP + "hole", which has not been delegated to any DDT Map-Server or ETR. + See Section 7.1.2 for details. Also sent by a DDT Map-Server with + authoritative configuration covering the requested EID but for + which no specific site ETR is configured. + + NOT-AUTHORITATIVE (5): indicates that the replying DDT node received + a Map-Request for an XEID for which it is not authoritative and + has no configured matching hint referrals. This can occur if a + cached referral has become invalid due to a change in the database + hierarchy. However, if such a DDT node has a "hint" delegation + covering the requested EID, it MAY choose to return NODE-REFERRAL + or MS-REFERRAL as appropriate. When returning action code + NOT-AUTHORITATIVE, the DDT node MUST provide the EID-prefix + received in the request and the TTL MUST be set to 0. + +6.2. Referral Set + + For "positive" action codes (NODE-REFERRAL, MS-REFERRAL, MS-ACK), a + DDT node MUST include in the Map-Referral message a list of RLOCs for + DDT nodes that are authoritative for the XEID-prefix being returned; + a DDT client uses this information to contact one of those DDT nodes + as it "follows" a referral. + +6.3. "Incomplete" Flag + + A DDT node sets the "Incomplete" flag in a Map-Referral message if + the Referral Set is incomplete; this is intended to prevent a DDT + client from caching a referral with incomplete information. A DDT + node MUST set the "Incomplete" flag in the following cases: + + o If it is setting action code MS-ACK or MS-NOT-REGISTERED but the + matching XEID-prefix is not flagged as "complete" in the + configuration. The XEID-prefix configuration on the DDT + Map-Server SHOULD be marked as "complete" when the configuration + of the XEID-prefix lists all "peer" DDT nodes that are also + authoritative for the same XEID-prefix or when it is known that a + local DDT node is the only authoritative node for the XEID-prefix. + + o If it is setting action code NOT-AUTHORITATIVE. + + + + + + + + + + +Fuller, et al. Experimental [Page 12] + +RFC 8111 LISP-DDT May 2017 + + +6.4. Map-Referral Message Format + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Type=6 | Reserved | Record Count | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Nonce . . . | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | . . . Nonce | + +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | Record TTL | + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + R | Referral Count| EID mask-len | ACT |A|I| Reserved | + e +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + c |SigCnt | Map Version Number | EID-AFI | + o +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + r | EID-prefix ... | + d +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | /| Priority | Weight | M Priority | M Weight | + | R +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | e | Unused Flags |L|p|R| Loc-AFI | + | f +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | \| Locator ... | + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ~ Sig section ~ + +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Type: Type value 6 was reserved for future use in [RFC6830]. This + document allocates this value to identify Map-Referral messages. + + ACT: The ACT (Action) field of the mapping Record in a Map-Referral + message encodes one of the following six action types: + NODE-REFERRAL, MS-REFERRAL, MS-ACK, MS-NOT-REGISTERED, + DELEGATION-HOLE, or NOT-AUTHORITATIVE. See Section 6.1 for + descriptions of these action types. + + + + + + + + + + + + + + + +Fuller, et al. Experimental [Page 13] + +RFC 8111 LISP-DDT May 2017 + + + Incomplete: The "I" bit indicates that a DDT node's Referral Set of + locators is incomplete and the receiver of this message SHOULD NOT + cache the referral. A DDT sets the "Incomplete" flag, the TTL, + and the Action field as follows: + + ------------------------------------------------------------------- + Type (Action field) Incomplete Referral Set TTL values + ------------------------------------------------------------------- + 0 NODE-REFERRAL No Yes 1440 + + 1 MS-REFERRAL No Yes 1440 + + 2 MS-ACK * * 1440 + + 3 MS-NOT-REGISTERED * * 1 + + 4 DELEGATION-HOLE No No 15 + + 5 NOT-AUTHORITATIVE Yes No 0 + ------------------------------------------------------------------- + + *: The "Incomplete" flag setting for the Map-Server-originated + referral of MS-ACK and MS-NOT-REGISTERED types depends on whether + the Map-Server has the full peer Map-Server configuration for the + same prefix and has encoded the information in the mapping Record. + The "Incomplete" bit is not set when the Map-Server has encoded + the information; this means that the Referral Set includes all the + RLOCs of all Map-Servers that serve the prefix. It MUST be set + when the configuration of the Map-Server does not flag the + matching prefix as configured with the complete information about + "peer" Map-Servers or when the Map-Server does not return all + configured locators. + + Referral Count: Number of RLOCs in the current Referral Set. This + number is equal to the number of "Ref" sections in the message (as + shown in the diagram above). + + SigCnt: Indicates the number of signatures (Signature section) + present in the Record. If SigCnt is larger than 0, the signature + information captured in a Signature section as described in + Section 6.4.1 will be appended to the end of the Record. The + number of Signature sections at the end of the Record MUST match + the SigCnt. Note that bits occupied by SigCnt were marked as + "Reserved" in Records embedded into messages defined by [RFC6830] + and were required to be set to zero. + + + + + + +Fuller, et al. Experimental [Page 14] + +RFC 8111 LISP-DDT May 2017 + + + Loc-AFI: AFI of the Locator field. If the AFI value is different + from the LISP Canonical Address Format (LCAF) AFI, security keys + are not included in the Record. If the AFI value is equal to the + LCAF AFI, the contents of the LCAF depend on the Type field of the + LCAF. LCAF Type 11 is used to store security material along with + the AFI of the locator. DDT nodes and DDT Map-Servers can use + this LCAF Type to include public keys associated with their child + DDT nodes for an XEID-prefix Map-Referral Record. LCAF Types and + formats are defined in [RFC8060]. + + Locator: RLOC of a DDT node to which the DDT client is being + referred. This is a variable-length field; its length is + determined by the Loc-AFI setting. + + All other fields and their descriptions are equivalent to those in + the Map-Reply message, as defined in LISP [RFC6830]. Note, though, + that the set of RLOCs correspond to the DDT node to be queried as a + result of the referral and not to the RLOCs for an actual EID-to-RLOC + mapping. + +6.4.1. Signature Section + + SigCnt counts the number of signature sections that appear at the end + of the Record. The format of the signature section is described + below. + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + /| Original Record TTL | + / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + / | Signature Expiration | + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + s | Signature Inception | + i +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + g | Key Tag | Sig Length | + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + \ | Sig-Algorithm | Reserved | Reserved | + \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + \ ~ Signature ~ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Original Record TTL: The original Record TTL for this Record that + is covered by the signature. The Record TTL value is specified + in minutes. + + + + + + + + +Fuller, et al. Experimental [Page 15] + +RFC 8111 LISP-DDT May 2017 + + + Signature Expiration and Signature Inception: Specify the validity + period for the signature. The signature MUST NOT be used for + authentication prior to the inception date and MUST NOT be used + for authentication after the expiration date. Each field + specifies a date and time in the form of a 32-bit unsigned number + of seconds elapsed since 1 January 1970 00:00:00 UTC, ignoring + leap seconds, in network byte order. + + Key Tag: An identifier to specify which key is used for this + signature if more than one valid key exists for the signing + DDT node. + + Sig Length: The length of the Signature field in bytes. + + Sig-Algorithm: The identifier of the cryptographic algorithm used + for the signature. Sig-Algorithm values defined in this + specification are listed in Table 1. Implementations conforming + to this specification MUST implement at least RSA-SHA256 for DDT + signing. Sig-Algorithm type 1 (RSA-SHA1) is deprecated and + SHOULD NOT be used. + + +---------------+------------+-----------+------------+ + | Sig-Algorithm | Name | Reference | Notes | + +---------------+------------+-----------+------------+ + | 1 | RSA-SHA1 | [RFC8017] | DEPRECATED | + | | | | | + | 2 | RSA-SHA256 | [RFC8017] | MANDATORY | + +---------------+------------+-----------+------------+ + + Table 1: Sig-Algorithm Values + + Reserved: MUST be set to 0 on transmit and MUST be ignored on + receipt. + + Signature: Contains the cryptographic signature that covers the + entire Map-Referral Record to which this signature belongs. For + the purpose of computing the signature, the Record TTL + (Section 6.4) value is set to the value of Original Record TTL and + the Signature field is filled with zeros. + + + + + + + + + + + + +Fuller, et al. Experimental [Page 16] + +RFC 8111 LISP-DDT May 2017 + + +7. DDT Network Elements and Their Operation + + As described above, LISP-DDT introduces a new network element -- the + DDT node -- and extends the functionality of Map-Servers and + Map-Resolvers to send and receive Map-Referral messages. The + operation of each of these devices is described below. + +7.1. DDT Node + + When a DDT node receives a DDT Map-Request, it compares the requested + XEID against its list of XEID-prefix delegations and its list of + authoritative XEID-prefixes, and proceeds as follows: + +7.1.1. Matching of a Delegated Prefix (or Sub-prefix) + + If the requested XEID matches one of the DDT node's delegated + prefixes, then a Map-Referral message is returned with the matching + more-specific XEID-prefix and the set of RLOCs for the referral + target DDT nodes, including associated security information (see + Section 10 for details on security). If at least one DDT node of the + delegation is known to be a DDT Map-Server, then the Map-Referral + message SHOULD be sent with action code MS-REFERRAL to indicate to + the receiver that LISP-SEC information (if saved in the pending + request) SHOULD be included in the next DDT Map-Request; otherwise, + the action code NODE-REFERRAL SHOULD be used. + + Note that a matched delegation does not have to be for a sub-prefix + of an authoritative prefix; in addition to being configured to + delegate sub-prefixes of an authoritative prefix, a DDT node may also + be configured with other XEID-prefixes for which it can provide + referrals to DDT nodes anywhere in the database hierarchy. This + capability to define "shortcut hints" is never required to be + configured, but it may be a useful heuristic for reducing the number + of iterations needed to find an EID, particularly for private network + deployments. + + Referral hints, if used properly, may reduce the number of referrals + a DDT client needs to follow to locate a DDT Map-Server authoritative + for the XEID-prefix being resolved. On the other hand, the incorrect + use of hints may create circular dependencies (or "referral loops") + between DDT nodes. A DDT client MUST be prepared to handle such + circular referrals. See Section 7.3.4 for a discussion of referral + loops and measures that the DDT client must implement in order to + detect circular referrals and prevent infinite looping. + + Another danger related to the use of hints is when a DDT deployment + spans multiple administrative domains (i.e., different authorities + manage DDT nodes in the same DDT database). In this case, an + + + +Fuller, et al. Experimental [Page 17] + +RFC 8111 LISP-DDT May 2017 + + + operator managing a DDT node may not be aware of the fact that the + node is being referred to by hints. Locator addresses in hints may + become stale when referred DDT nodes are taken out of service or + change their locator addresses. + +7.1.2. Missing Delegation from an Authoritative Prefix + + If the requested XEID did not match a configured delegation but does + match an authoritative XEID-prefix, then the DDT node MUST return a + Negative Map-Referral that uses the least-specific XEID-prefix that + does not match any XEID-prefix delegated by the DDT node. The action + code is set to DELEGATION-HOLE; this indicates that the XEID is not a + LISP destination. + + If the requested XEID did not match either a configured delegation, + an authoritative XEID-prefix, or a hint, then a Negative Map-Referral + with action code NOT-AUTHORITATIVE MUST be returned. + +7.2. DDT Map-Server + + When a DDT Map-Server receives a DDT Map-Request, its operation is + similar to that of a DDT node, with additional processing as follows: + + o If the requested XEID matches a registered XEID-prefix, then the + Map-Request is forwarded to one of the destination ETR RLOCs (or + the Map-Server sends a Map-Reply, if it is providing a proxy + Map-Reply service), and a Map-Referral with action code MS-ACK + MUST be returned to the sender of the DDT Map-Request. + + o If the requested XEID matches a configured XEID-prefix for which + no ETR registration has been received, then a Negative + Map-Referral with action code MS-NOT-REGISTERED MUST be returned + to the sender of the DDT Map-Request. + +7.3. DDT Client + + A DDT client queries one or more DDT nodes and uses an iterative + process of following returned referrals until it receives one with + action code MS-ACK (or an error indication). MS-ACK indicates that + the Map-Request has been sent to a Map-Server that will forward it to + an ETR that, in turn, will provide a Map-Reply to the locator address + in the Map-Request. + + DDT client functionality will typically be implemented by DDT + Map-Resolvers. Just as would any other Map-Resolver, a DDT + Map-Resolver accepts Map-Requests from its clients (typically ITRs) + and ensures that those Map-Requests are forwarded to the correct ETR, + which generates Map-Replies. However, unlike a Map-Resolver that + + + +Fuller, et al. Experimental [Page 18] + +RFC 8111 LISP-DDT May 2017 + + + uses the LISP Alternative Logical Topology (LISP+ALT) mapping system + [RFC6836], a DDT Map-Resolver implements DDT client functionality to + find the correct ETR to answer a Map-Request; this requires a DDT + Map-Resolver to maintain additional state: a Map-Referral cache and a + pending request list of XEIDs that are going through the iterative + referral process. + + DDT client functionality may be implemented on ITRs. In this case, + the DDT client will not receive a Map-Request from another network + element; instead, equivalent information will be provided to the DDT + client via a programming interface. + +7.3.1. Queuing and Sending DDT Map-Requests + + When a DDT client receives a request to resolve an XEID (in the case + of a DDT Map-Resolver, this will be in the form of a received + Encapsulated Map-Request), it first performs a longest-match search + for the XEID in its referral cache. If no match is found or if a + negative cache entry is found, then the destination is not in the + database; a Negative Map-Reply MUST be returned, and no further + processing is performed by the DDT client. + + If a match is found, the DDT client creates a pending request list + entry for the XEID and saves the original request (in the case of a + DDT Map-Resolver, this will be the original Map-Request minus the + encapsulation header) along with other information needed to track + progress through the iterative referral process; the "referral + XEID-prefix" is also initialized to indicate that no referral has yet + been received. The DDT client then creates a DDT Map-Request (which + is an Encapsulated Map-Request with the "DDT-originated" flag set in + the message header) for the XEID but without any authentication data + that may have been included in the original request. It sends the + DDT Map-Request to one of the RLOCs in the chosen referral cache + entry. The referral cache is initially populated with one or more + statically configured entries; additional entries are added when + referrals are followed, as described below. A DDT client is not + absolutely required to cache referrals, but doing so will decrease + latency and reduce lookup delays. + + Note that in normal use on the public Internet, the statically + configured initial referral cache for a DDT client should include a + "default" entry with RLOCs for either the root DDT node or one or + more DDT nodes that contain hints for the root DDT node. If a DDT + client does not have such a configuration, it will return a Negative + Map-Reply if it receives a query for an EID outside the subset of the + mapping database known to it. While this may be desirable on private + network deployments or during early transition to LISP when few sites + are using it, this behavior is not appropriate when LISP is in + + + +Fuller, et al. Experimental [Page 19] + +RFC 8111 LISP-DDT May 2017 + + + general use on the Internet. If DDT message exchanges are + authenticated as described in Section 10, then the DDT client MUST + also be configured with public keys of DDT nodes pointed to by the + "default" cache entry. In this case, the "default" entry will + typically be for the root DDT node. + +7.3.2. Receiving and Following Referrals + + After sending a DDT Map-Request, a DDT client expects to receive a + Map-Referral response. If none occurs within the timeout period, the + DDT client retransmits the request, sending it to the next RLOC in + the referral cache entry if one is available. If all RLOCs have been + tried and the maximum number of retransmissions has occurred for + each, then the pending request list entry is dequeued and discarded. + In this case, the DDT client returns no response to the sender of the + original request. + + A DDT client processes a received Map-Referral message according to + each action code: + + NODE-REFERRAL: The DDT client checks for a possible referral loop as + described in Section 7.3.4. If no loop is found, the DDT client + saves the prefix returned in the Map-Referral message in the + referral cache, updates the saved prefix and saved RLOCs in the + pending request list entry, and follows the referral by sending a + new DDT Map-Request to one of the DDT node RLOCs listed in the + Referral Set; security information saved with the original + Map-Request SHOULD NOT be included. + + MS-REFERRAL: The DDT client processes an MS-REFERRAL in the same + manner as a NODE-REFERRAL, except that security information saved + with the original Map-Request MUST be included in the new + Map-Request sent to a Map-Server (see Section 10 for details on + security). + + MS-ACK: An MS-ACK is returned by a DDT Map-Server to indicate that + it has one or more registered ETRs that can answer a Map-Request + for the XEID and the request has been forwarded to one of them + (or, if the Map-Server is providing a proxy service for the + prefix, then a reply has been sent to the querying ITR). If the + pending request did not include saved LISP-SEC information or if + that information was already included in the previous DDT + Map-Request (sent by the DDT client in response to either an + MS-REFERRAL or a previous MS-ACK referral), then the pending + request for the XEID is complete; processing of the request stops, + and all request state can be discarded. Otherwise, LISP-SEC + information is required and has not yet been sent to the + authoritative DDT Map-Server; the DDT client MUST resend the DDT + + + +Fuller, et al. Experimental [Page 20] + +RFC 8111 LISP-DDT May 2017 + + + Map-Request with LISP-SEC information included, and the pending + request queue entry remains until another Map-Referral with action + code MS-ACK is received. If the "Incomplete" flag is not set, the + prefix is saved in the referral cache. + + MS-NOT-REGISTERED: The DDT Map-Server queried could not process the + request because it did not have any ETRs registered for a + matching, authoritative XEID-prefix. If the DDT client has not + yet tried all of the RLOCs saved with the pending request, then it + sends a Map-Request to the next RLOC in that list. If all RLOCs + have been tried, then the destination XEID is not registered and + is unreachable. The DDT client MUST return a Negative Map-Reply + to the requester (or, in the case of a DDT Map-Resolver, to the + sender of the original Map-Request). This Map-Reply contains the + least-specific XEID-prefix in the range for which this DDT + Map-Server is authoritative and in which no registrations exist. + The TTL value of the Negative Map-Reply SHOULD be set to 1 minute. + A negative referral cache entry is created for the prefix (whose + TTL also SHOULD be set to 1 minute), and processing of the request + stops. + + DELEGATION-HOLE: The DDT Map-Server queried did not have an + XEID-prefix defined that matched the requested XEID, so the XEID + does not exist in the mapping database. The DDT client MUST + return a Negative Map-Reply to the requester (or, in the case of a + DDT Map-Resolver, to the sender of the original Map-Request); this + Map-Reply SHOULD indicate the least-specific XEID-prefix matching + the requested XEID for which no delegations exist and SHOULD have + a TTL value of 15 minutes. A negative referral cache entry is + created for the prefix (which also SHOULD have a TTL of + 15 minutes), and processing of the pending request stops. + + NOT-AUTHORITATIVE: The DDT Map-Server queried is not authoritative + for the requested XEID. This can occur if a cached referral has + become invalid due to a change in the database hierarchy. If the + DDT client receiving this message can determine that it is using + old cached information, it MAY choose to delete that cached + information and retry the original Map-Request, starting from its + "root" cache entry. If this action code is received in response + to a query that did not use cached referral information, then it + indicates a database synchronization problem or configuration + error. The pending request is silently discarded; i.e., all state + for the request that caused this answer is removed, and no answer + is returned to the original requester. + + + + + + + +Fuller, et al. Experimental [Page 21] + +RFC 8111 LISP-DDT May 2017 + + +7.3.3. Handling Referral Errors + + Other states are possible, such as a misconfigured DDT node (acting + as a proxy Map-Server, for example) returning a Map-Reply to the DDT + client; they should be considered errors and logged as such. It is + not clear exactly what else the DDT client should do in such cases; + one possibility is to remove the pending request list entry and send + a Negative Map-Reply to the requester (or, in the case of a DDT + Map-Resolver, to the sender of the original Map-Request). + Alternatively, if a DDT client detects unexpected behavior by a DDT + node, it could mark that node as unusable in its referral cache and + update the pending request to try a different DDT node if more than + one is listed in the referral cache. In any case, any prefix + contained in a Map-Referral message that causes a referral error + (including a referral loop) is not saved in the DDT client referral + cache. + +7.3.4. Referral Loop Detection + + In response to a Map-Referral message with action code NODE-REFERRAL + or MS-REFERRAL, a DDT client is directed to query a new set of DDT + node RLOCs that are expected to have more-specific XEID-prefix + information for the requested XEID. To prevent a possible "iteration + loop" (following referrals back and forth among a set of DDT nodes + without ever finding an answer), a DDT client saves the last received + referral XEID-prefix for each pending request and checks to see if a + newly received NODE-REFERRAL or MS-REFERRAL message contains a + more-specific referral XEID-prefix; an exact or less-specific match + of the saved XEID-prefix indicates a referral loop. If a loop is + detected, the DDT Map-Resolver handles the request as described in + Section 7.3.3. Otherwise, the DDT client saves the most recently + received referral XEID-prefix with the pending request when it + follows the referral. + + As an extra measure to prevent referral loops, it is probably also + wise to limit the total number of referrals for any request to some + reasonable number; the exact value of that number will be determined + during experimental deployment of LISP-DDT but is bounded by the + maximum length of the XEID. + + Note that when a DDT client adds an entry to its lookup queue and + sends an initial Map-Request for an XEID, the queue entry has no + previous referral XEID-prefix; this means that the first DDT node + contacted by a DDT Map-Resolver may provide a referral to anywhere in + the DDT hierarchy. This, in turn, allows a DDT client to use + essentially any DDT node RLOCs for its initial cache entries and + + + + + +Fuller, et al. Experimental [Page 22] + +RFC 8111 LISP-DDT May 2017 + + + depend on the initial referral to provide a good starting point for + Map-Requests; there is no need to configure the same set of root DDT + nodes on all DDT clients. + +8. Pseudocode and Decision Tree Diagrams + + To illustrate the DDT algorithms described above and to aid in + implementation, each of the major DDT Map-Server and DDT Map-Resolver + functions are described below, first using simple "pseudocode" and + then in the form of a decision tree. + +8.1. Map-Resolver Processing of ITR Map-Request + +8.1.1. Pseudocode Summary + + if ( request pending, i.e., (ITR,EID) of request same ) { + replace old request with new, & use new request nonce + for future requests + } else if ( no match in refcache ) { + return Negative Map-Reply to ITR + } else if ( match type DELEGATION-HOLE ) { + return Negative Map-Reply to ITR + } else if ( match type MS-ACK ) { + fwd DDT Map-Request to Map-Server + } else { + store & fwd DDT Map-Request w/o security material + to node delegation + } + + + + + + + + + + + + + + + + + + + + + + + +Fuller, et al. Experimental [Page 23] + +RFC 8111 LISP-DDT May 2017 + + +8.1.2. Decision Tree Diagram + + +------------+ + | Is request | Yes + | pending? |----> Replace old request with + | | new nonce for future requests + +------------+ + | + |No + | + V + +------------+ + | Match in | No + | referral |----> Send Negative Map-Reply + | cache? | (not a likely event, as root or + +------------+ hint configured on every Map-Resolver) + | + |Yes + | + V + +-------------+ + | Match type | Yes + | DELEGATION- |----> Send Negative Map-Reply + | HOLE? | + +-------------+ + | + |No + | + V + +------------+ + | Match type | Yes + | MS-ACK? |----> Forward DDT Map-Request to Map-Server + | | + +------------+ + | + |No + | + V + Store original request & send DDT Map-Request w/o security material + to DDT node delegation + + + + + + + + + + + +Fuller, et al. Experimental [Page 24] + +RFC 8111 LISP-DDT May 2017 + + +8.2. Map-Resolver Processing of Map-Referral Message + +8.2.1. Pseudocode Summary + + if ( authentication signature validation failed ) { + silently drop + } + + if ( no request pending matched by referral nonce ) { + silently drop + } + + if ( pfx in referral less specific than last referral used ) { + if ( gone through root ) { + silently drop + } else { + send request to root + } + } + + switch (map_referral_type) { + + case NOT_AUTHORITATIVE: + if ( gone through root ) { + return Negative Map-Reply to ITR + } else { + send request to root + } + + case DELEGATION_HOLE: + cache & send Negative Map-Reply to ITR + + case MS_REFERRAL: + if ( referral equal to last used ) { + if ( gone through root ) { + return Negative Map-Reply to ITR + } else { + send request to root + } + } else { + cache + follow the referral; include security material + } + + + + + + + + +Fuller, et al. Experimental [Page 25] + +RFC 8111 LISP-DDT May 2017 + + + case NODE_REFERRAL: + if ( referral equal to last used ) { + if ( gone through root ) { + return Negative Map-Reply to ITR + } else { + send request to root + } + } else { + cache + follow the referral; strip security material + } + + case MS_ACK: + if ( security material stripped ) { + resend request with security material + if { !incomplete } { + cache + } + } + + case MS_NOT_REGISTERED: + if { all Map-Server delegations not tried } { + follow delegations not tried + if ( !incomplete ) { + cache + } + } else { + send Negative Map-Reply to ITR + if { !incomplete } { + cache + } + } + + case DEFAULT: + drop + } + } + + + + + + + + + + + + + + +Fuller, et al. Experimental [Page 26] + +RFC 8111 LISP-DDT May 2017 + + +8.2.2. Decision Tree Diagram + + +----------------+ + | Auth signature | No + | valid? |----> Silently drop + +----------------+ + | Yes + V + +------------+ + | Is request | No + | pending? |----> Silently drop + +------------+ + | Yes + V + +------------------------------+ Yes + | Pfx less specific than last? |----> Silently drop + +------------------------------+ + |No + V + +---------------------------------------------------+ + | What is Map-Referral type? |--Unknown-+ + +---------------------------------------------------+ | + | | | | | | V + | | | | | DEL_HOLE Drop + | | | | MS_ACK | + | | | | | V + | | MS_REF NODE_REF | Cache & return + | | | | V Negative Map-Reply + | | | | +---------+ + | NOT_AUTH | | | Was sec | Yes + | | | | | material| + | | | | |stripped?|----> Done + | | V V +---------+ + | | +------------+ | No + | | Yes | Pfx equal | V +MS_NOT_REGISTERED | +---| to last | +------------+ + | | | | used? | |"Incomplete"| Yes + | | | +------------+ | bit set? |---> Resend DDT + | V V |No +------------+ request w/ + | +------------+ | |No security + | | Gone | V | material + | | through | Cache & follow V + | | root? | the referral Cache & resend DDT + | +------------+ request with + | |No |Yes security material + | | | + | V V + + + + +Fuller, et al. Experimental [Page 27] + +RFC 8111 LISP-DDT May 2017 + + + | Send req Send Negative Map-Reply + | to root + V + +-----------+ Yes +------------+ Yes + | Other MS |---Follow other MS-------->|"Incomplete"|----> Don't cache + | not tried?| | bit set? | + | |--Send Negative Map-Reply->| |----> Cache + +-----------+ No +------------+ No + +8.3. DDT Node Processing of DDT Map-Request Message + +8.3.1. Pseudocode Summary + + if ( I am not authoritative ) { + send Map-Referral NOT_AUTHORITATIVE with + "Incomplete" bit set and TTL 0 + } else if ( delegation exists ) { + if ( delegated Map-Servers ) { + send Map-Referral MS_REFERRAL with + TTL 'Default_DdtNode_Ttl' + } else { + send Map-Referral NODE_REFERRAL with + TTL 'Default_DdtNode_Ttl' + } + } else { + if ( EID in site) { + if ( site registered ) { + forward Map-Request to ETR + if ( Map-Server peers configured ) { + send Map-Referral MS_ACK with + TTL 'Default_Registered_Ttl' + } else { + send Map-Referral MS_ACK with + TTL 'Default_Registered_Ttl' and "Incomplete" bit set + } + } else { + if ( Map-Server peers configured ) { + send Map-Referral MS_NOT_REGISTERED with + TTL 'Default_Configured_Not_Registered_Ttl' + } else { + send Map-Referral MS_NOT_REGISTERED with + TTL 'Default_Configured_Not_Registered_Ttl' + and "Incomplete" bit set + } + } + + + + + + +Fuller, et al. Experimental [Page 28] + +RFC 8111 LISP-DDT May 2017 + + + } else { + send Map-Referral DELEGATION_HOLE with + TTL 'Default_Negative_Referral_Ttl' + } + } + + where architectural constants for TTL are set as follows: + + Default_DdtNode_Ttl 1440 minutes + Default_Registered_Ttl 1440 minutes + Default_Negative_Referral_Ttl 15 minutes + Default_Configured_Not_Registered_Ttl 1 minute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Fuller, et al. Experimental [Page 29] + +RFC 8111 LISP-DDT May 2017 + + +8.3.2. Decision Tree Diagram + + +------------+ + | Am I | No + | authori- |----> Return NOT_AUTHORITATIVE + | tative? | Incomplete = 1 + +------------+ TTL = Default_DdtNode_Ttl + | + |Yes + | + V + +------------+ +-------------+ + | Delegation | Yes | Delegations | Yes + | exists? |---->| are |----> Return MS_REFERRAL + | | | Map-Servers?| TTL = Default_DdtNode_Ttl + +------------+ +-------------+ + | \ No + |No +--> Return NODE_REFERRAL + | TTL = Default_DdtNode_Ttl + V + +------------+ +------------+ +------------+ + | EID in | Yes | Site | Yes | Map-Server | + | site |---->| registered?|----> Forward---->| peers | + | config? | | | Map-Request | configured?| + +------------+ +------------+ to ETR +------------+ + | | | | + | |No No| |Yes + | | | | + | | V V + | | Return MS_ACK Return MS_ACK + | V with INC=1 + | +------------+ TTL = Default_Registered_Ttl + | | Map-Server | Yes + | | peers |----> Return MS_NOT_REGISTERED + | | configured?| TTL = Default_Negative_Referral_Ttl + | +------------+ + | \ No + |No +--> Return MS_NOT_REGISTERED + | Incomplete = 1 + V TTL = Default_Negative_Referral_Ttl + Return DELEGATION_HOLE + TTL = Default_Negative_Referral_Ttl + + + + + + + + + +Fuller, et al. Experimental [Page 30] + +RFC 8111 LISP-DDT May 2017 + + +9. Example Topology and Request/Referral Following + + This section shows an example DDT tree and several possible scenarios + of Map-Requests coming to a Map-Resolver and subsequent iterative DDT + referrals. In this example, RLOCs of DDT nodes are shown in the IPv4 + address space while the EIDs are in the IPv6 AF. The same principle + of hierarchical delegation and pinpointing referrals is equally + applicable to any AF whose address hierarchy can be expressed as a + bit string with associated length. The DDT "tree" of IPv4 prefixes + is another AF with immediate practical value. This section could + benefit from additional examples, perhaps including one using IPv4 + EIDs and another using IPv6 RLOCs. If this document is moved to the + Standards Track, consideration should be given to adding such + examples. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Fuller, et al. Experimental [Page 31] + +RFC 8111 LISP-DDT May 2017 + + + To show how referrals are followed to find the RLOCs for a number of + EIDs, consider the following example EID topology for DBID=0, IID=0, + AFI=2, and EID=0/0: + + +---------------------+ +---------------------+ + | root1: 192.0.2.1 | | root2: 192.0.2.2 | + | authoritative: ::/0 | | authoritative: ::/0 | + +---------------------+ +---------------------+ + | \ / | + | \ / | + | X | + | / \ | + | / \ | + | | | | + V V V V + +-------------------------+ +--------------------------+ + | DDT node1: 192.0.2.11 | | DDT node2: 192.0.2.12 | + | authoritative: | | authoritative: | + | 2001:db8::/32 | | 2001:db8::/32 | + +-------------------------+ +--------------------------+ + | \ / | + | \ / | + | X | + | / \ | + | / \ | + | | | | + V V V V + +--------------------------+ +---------------------------+ + | Map-Server1: 192.0.2.101 | | DDT node3: 192.0.2.201 | + | authoritative: | | authoritative: | + | 2001:db8:0100::/40 | | 2001:db8:0500::/40 | + | site1: 2001:db8:0103::/48| +---------------------------+ + | site2: 2001:db8:0104::/48| | | + +--------------------------+ | | + | | + | | + V V + +---------------------------+ +---------------------------+ + | Map-Server2: 192.0.2.211 | | Map-Server3: 192.0.2.221 | + | authoritative: | | authoritative: | + | 2001:db8:0500::/48 | | 2001:db8:0501::/48 | + |site3: 2001:db8:0500:1::/64| |site5: 2001:db8:0501:8::/64| + |site4: 2001:db8:0500:2::/64| |site6: 2001:db8:0501:9::/64| + +---------------------------+ +---------------------------+ + + DDT nodes are configured for this "root" at IP addresses 192.0.2.1 + and 192.0.2.2. DDT Map-Resolvers are configured with default + referral cache entries for these addresses. + + + +Fuller, et al. Experimental [Page 32] + +RFC 8111 LISP-DDT May 2017 + + + The root DDT nodes delegate 2001:db8::/32 to two DDT nodes with IP + addresses 192.0.2.11 and 192.0.2.12. + + The DDT nodes for 2001:db8::/32 delegate 2001:db8:0100::/40 to a DDT + Map-Server with RLOC 192.0.2.101. + + The DDT Map-Server for 2001:db8:0100::/40 is configured to allow ETRs + to register the sub-prefixes 2001:db8:0103::/48 and + 2001:db8:0104::/48. + + The DDT nodes for 2001:db8::/32 also delegate 2001:db8:0500::/40 to a + DDT node with RLOC 192.0.2.201. + + The DDT node for 2001:db8:0500::/40 is further configured to delegate + 2001:db8:0500::/48 to a DDT Map-Server with RLOC 192.0.2.211 and + 2001:db8:0501::/48 to a DDT Map-Server with RLOC 192.0.2.221. + + The DDT Map-Server for 2001:db8:0500::/48 is configured to allow ETRs + to register the sub-prefixes 2001:db8:0500:1::/64 and + 2001:db8:0500:2::/64. + + The DDT Map-Server for 2001:db8:0501::/48 is configured to allow ETRs + to register the sub-prefixes 2001:db8:0501:8::/64 and + 2001:db8:0501:9::/64. + +9.1. Lookup of 2001:db8:0103:1::1/128 + + The first example shows a DDT Map-Resolver following a delegation + from the root to a DDT node followed by another delegation to a DDT + Map-Server. + + ITR1 sends an Encapsulated Map-Request for 2001:db8:0103:1::1 to one + of its configured (DDT) Map-Resolvers. The DDT Map-Resolver proceeds + as follows: + + 1. Send a DDT Map-Request (for 2001:db8:0103:1::1) to one of the + root DDT nodes (192.0.2.1 or 192.0.2.2). + + 2. Receive (and save in the referral cache) the Map-Referral for + EID-prefix 2001:db8::/32, action code NODE-REFERRAL, RLOC set + (192.0.2.11, 192.0.2.12). + + 3. Send a DDT Map-Request to 192.0.2.11 or 192.0.2.12. + + 4. Receive (and save in the referral cache) the Map-Referral for + EID-prefix 2001:db8:0100::/40, action code MS-REFERRAL, RLOC set + (192.0.2.101). + + + + +Fuller, et al. Experimental [Page 33] + +RFC 8111 LISP-DDT May 2017 + + + 5. Send a DDT Map-Request to 192.0.2.101; if the ITR-originated + Encapsulated Map-Request had a LISP-SEC signature, it is + included. + + 6. The DDT Map-Server at 192.0.2.101 decapsulates the DDT + Map-Request and forwards the Map-Request to a registered site1 + ETR for 2001:db8:0103::/48. + + 7. The DDT Map-Server at 192.0.2.101 sends a Map-Referral message + for EID-prefix 2001:db8:0103::/48, action code MS-ACK, to the DDT + Map-Resolver. + + 8. The DDT Map-Resolver receives the Map-Referral message and + dequeues the pending request for 2001:db8:0103:1::1. + + 9. The site1 ETR for 2001:db8:0103::/48 receives the Map-Request + forwarded by the DDT Map-Server and sends a Map-Reply to ITR1. + +9.2. Lookup of 2001:db8:0501:8:4::1/128 + + The next example shows a three-level delegation: root to first DDT + node, first DDT node to second DDT node, and second DDT node to DDT + Map-Server. + + ITR2 sends an Encapsulated Map-Request for 2001:db8:0501:8:4::1 to + one of its configured (DDT) Map-Resolvers, which are different from + those for ITR1. The DDT Map-Resolver proceeds as follows: + + 1. Send a DDT Map-Request (for 2001:db8:0501:8:4::1) to one of the + root DDT nodes (192.0.2.1 or 192.0.2.2). + + 2. Receive (and save in the referral cache) the Map-Referral for + EID-prefix 2001:db8::/32, action code NODE-REFERRAL, RLOC set + (192.0.2.11, 192.0.2.12). + + 3. Send a DDT Map-Request to 192.0.2.11 or 192.0.2.12. + + 4. Receive (and save in the referral cache) the Map-Referral for + EID-prefix 2001:db8:0500::/40, action code NODE-REFERRAL, RLOC + set (192.0.2.201). + + 5. Send a DDT Map-Request to 192.0.2.201. + + 6. Receive (and save in the referral cache) the Map-Referral for + EID-prefix 2001:db8:0501::/48, action code MS-REFERRAL, RLOC set + (192.0.2.221). + + + + + +Fuller, et al. Experimental [Page 34] + +RFC 8111 LISP-DDT May 2017 + + + 7. Send a DDT Map-Request to 192.0.2.221; if the ITR-originated + Encapsulated Map-Request had a LISP-SEC signature, it is + included. + + 8. The DDT Map-Server at 192.0.2.221 decapsulates the DDT + Map-Request and forwards the Map-Request to a registered site5 + ETR for 2001:db8:0501:8::/64. + + 9. The DDT Map-Server at 192.0.2.221 sends a Map-Referral message + for EID-prefix 2001:db8:0501:8::/64, action code MS-ACK, to the + DDT Map-Resolver. + + 10. The DDT Map-Resolver receives a Map-Referral(MS-ACK) message and + dequeues the pending request for 2001:db8:0501:8:4::1. + + 11. The site5 ETR for 2001:db8:0501:8::/64 receives a Map-Request + forwarded by the DDT Map-Server and sends a Map-Reply to ITR2. + +9.3. Lookup of 2001:db8:0104:2::2/128 + + This example shows how a DDT Map-Resolver uses a saved referral cache + entry to skip the referral process and go directly to a DDT + Map-Server for a prefix that is similar to one previously requested. + + In this case, ITR1 uses the same Map-Resolver used in the example in + Section 9.1. It sends an Encapsulated Map-Request for + 2001:db8:0104:2::2 to that (DDT) Map-Resolver. The DDT Map-Resolver + finds an MS-REFERRAL cache entry for 2001:db8:0100::/40 with RLOC set + (192.0.2.101) and proceeds as follows: + + 1. Send a DDT Map-Request (for 2001:db8:0104:2::2) to 192.0.2.101; + if the ITR-originated Encapsulated Map-Request had a LISP-SEC + signature, it is included. + + 2. The DDT Map-Server at 192.0.2.101 decapsulates the DDT + Map-Request and forwards the Map-Request to a registered site2 + ETR for 2001:db8:0104::/48. + + 3. The DDT Map-Server at 192.0.2.101 sends a Map-Referral message + for EID-prefix 2001:db8:0104::/48, action code MS-ACK, to the DDT + Map-Resolver. + + 4. The DDT Map-Resolver receives the Map-Referral (MS-ACK) and + dequeues the pending request for 2001:db8:0104:2::2. + + 5. The site2 ETR for 2001:db8:0104::/48 receives a Map-Request and + sends a Map-Reply to ITR1. + + + + +Fuller, et al. Experimental [Page 35] + +RFC 8111 LISP-DDT May 2017 + + +9.4. Lookup of 2001:db8:0500:2:4::1/128 + + This example shows how a DDT Map-Resolver uses a saved referral cache + entry to start the referral process at a non-root, intermediate DDT + node for a prefix that is similar to one previously requested. + + In this case, ITR2 uses the same Map-Resolver used in the example in + Section 9.2. It sends an Encapsulated Map-Request for + 2001:db8:0500:2:4::1 to that (DDT) Map-Resolver, which finds a + NODE-REFERRAL cache entry for 2001:db8:0500::/40 with RLOC set + (192.0.2.201). It proceeds as follows: + + 1. Send a DDT Map-Request (for 2001:db8:0500:2:4::1) to 192.0.2.201. + + 2. Receive (and save in the referral cache) the Map-Referral for + EID-prefix 2001:db8:0500::/48, action code MS-REFERRAL, RLOC set + (192.0.2.211). + + 3. Send a DDT Map-Request to 192.0.2.211; if the ITR-originated + Encapsulated Map-Request had a LISP-SEC signature, it is + included. + + 4. The DDT Map-Server at 192.0.2.211 decapsulates the DDT + Map-Request and forwards the Map-Request to a registered site4 + ETR for 2001:db8:0500:2::/64. + + 5. The DDT Map-Server at 192.0.2.211 sends a Map-Referral message + for EID-prefix 2001:db8:0500:2::/64, action code MS-ACK, to the + DDT Map-Resolver. + + 6. The DDT Map-Resolver receives the Map-Referral (MS-ACK) and + dequeues the pending request for 2001:db8:0500:2:4::1. + + 7. The site4 ETR for 2001:db8:0500:2::/64 receives a Map-Request and + sends a Map-Reply to ITR2. + + + + + + + + + + + + + + + + +Fuller, et al. Experimental [Page 36] + +RFC 8111 LISP-DDT May 2017 + + +9.5. Lookup of 2001:db8:0500::1/128 (Nonexistent EID) + + This example uses the cached MS-REFERRAL for 2001:db8:0500::/48 + learned above to start the lookup process at the DDT Map-Server at + 192.0.2.211. The DDT Map-Resolver proceeds as follows: + + 1. Send a DDT Map-Request (for 2001:db8:0500::1) to 192.0.2.211; if + the ITR-originated Encapsulated Map-Request had a LISP-SEC + signature, it is included. + + 2. The DDT Map-Server at 192.0.2.211, which is authoritative for + 2001:db8:0500::/48, does not have a matching delegation for + 2001:db8:0500::1. It responds with a Map-Referral message for + 2001:db8:0500::/64, action code DELEGATION-HOLE, to the DDT + Map-Resolver. The prefix 2001:db8:0500::/64 is used because it + is the least-specific prefix that does match the requested EID + but does not match one of the configured delegations + (2001:db8:0500:1::/64 and 2001:db8:0500:2::/64). + + 3. The DDT Map-Resolver receives the delegation, adds a negative + referral cache entry for 2001:db8:0500::/64, dequeues the pending + request for 2001:db8:0500::1, and returns a Negative Map-Reply + to ITR2. + +10. Securing the Database and Message Exchanges + + This section specifies the DDT security architecture that provides + data origin authentication, data integrity protection, and + XEID-prefix delegation. Global XEID-prefix authorization is out of + scope for this document. + + Each DDT node is configured with one or more public/private key pairs + that are used to digitally sign Map-Referral Records for + XEID-prefix(es) for which the DDT node is authoritative. In other + words, each public/private key pair is associated with the + combination of a DDT node and an XEID-prefix for which it is + authoritative. Every DDT node is also configured with the public + keys of its child DDT nodes. By including the public keys of target + child DDT nodes in the Map-Referral Records and signing each Record + with the DDT node's private key, a DDT node can securely delegate + sub-prefixes of its authoritative XEID-prefixes to its child DDT + nodes. A DDT node configured to provide hints must also have the + public keys of the DDT nodes to which its hints point. DDT node keys + can be encoded using LCAF Type 11 to associate the key to the RLOC of + the referred DDT node. If a node has more than one public key, it + should sign its Records with at least one of these keys. When a node + has N keys, it can sustain up to N-1 key compromises. The revocation + mechanism is described in Section 10.2.1. + + + +Fuller, et al. Experimental [Page 37] + +RFC 8111 LISP-DDT May 2017 + + + Map-Resolvers are configured with one or more trusted public keys, + referred to as "trust anchors". Trust anchors are used to + authenticate the DDT security infrastructure. Map-Resolvers can + discover a DDT node's public key by either (1) having it configured + as a trust anchor or (2) obtaining it from the node's parent as part + of a signed Map-Referral. When a public key is obtained from a + node's parent, it is considered trusted if it is signed by a trust + anchor or if it is signed by a key that was previously trusted. + Typically, in a Map-Resolver, the root DDT node's public keys should + be configured as trust anchors. Once a Map-Resolver authenticates a + public key, it locally caches the key along with the associated DDT + node RLOC and XEID-prefix for future use. + +10.1. XEID-Prefix Delegation + + In order to delegate XEID sub-prefixes to its child DDT nodes, a + parent DDT node signs its Map-Referrals. Every signed Map-Referral + MUST also include the public keys associated with each child DDT + node. Such a signature indicates that the parent DDT node is + delegating the specified XEID-prefix to a given child DDT node. The + signature is also authenticating the public keys associated with the + child DDT nodes, and authorizing them to be used by the child DDT + nodes, to provide origin authentication and integrity protection for + further delegations and mapping information of the XEID-prefix + allocated to the DDT node. + + As a result, for a given XEID-prefix, a Map-Resolver can form an + authentication chain from a configured trust anchor (typically the + root DDT node) to the leaf nodes (Map-Servers). Map-Resolvers + leverage this authentication chain to verify the Map-Referral + signatures while walking the DDT tree until they reach a Map-Server + authoritative for the given XEID-prefix. + +10.2. DDT Node Operation + + Upon receiving a Map-Request, the DDT node responds with a + Map-Referral as specified in Section 7. For every Record present in + the Map-Referral, the DDT node also includes the public keys + associated with the Record's XEID-prefix and the RLOCs of the child + DDT nodes. Each Record contained in the Map-Referral is signed using + the DDT node's private key. + +10.2.1. DDT Public Key Revocation + + The node that owns a public key can also revoke that public key. For + instance, if a parent DDT node advertises a public key for one of its + child DDT nodes, the child DDT node can at a later time revoke that + key. Since DDT nodes do not keep track of the Map-Resolvers that + + + +Fuller, et al. Experimental [Page 38] + +RFC 8111 LISP-DDT May 2017 + + + query them, revocation is done in a pull model, where the + Map-Resolver is informed of the revocation of a key only when it + queries the node that owns that key. If the parent DDT node is + configured to advertise that key, the parent DDT node must also be + signaled to remove the key from the Records it advertises for the + child DDT node; this is necessary to avoid further distribution of + the revoked key. + + To securely revoke a key, the DDT node creates a new Record for the + associated XEID-prefix and locator, including the revoked key with + the R bit set. (See Section 4.7 of [RFC8060] for details regarding + the R bit.) The DDT node must also include a signature in the Record + that covers this Record; this is computed using the private key + corresponding to the key being revoked. Such a Record is termed a + "revocation record". By including this Record in its Map-Referrals, + the DDT node informs querying Map-Resolvers about the revoked key. A + digital signature computed with a revoked key can only be used to + authenticate the revocation and SHOULD NOT be used to validate any + data. To prevent a compromised key from revoking other valid keys, a + given key can only be used to sign a revocation for that specific + key; it cannot be used to revoke other keys. This prevents the use + of a compromised key to revoke other valid keys as described in + [RFC5011]. A revocation record MUST be advertised for a period of + time equal to or greater than the TTL value of the Record that + initially advertised the key, starting from the time that the + advertisement of the key was stopped by removal from the parent + DDT node. + +10.3. Map-Server Operation + + Similar to a DDT node, a Map-Server is configured with one or more + public/private key pairs that it must use to sign Map-Referrals. + + However, unlike DDT nodes, Map-Servers do not delegate prefixes and + as a result do not need to include keys in the Map-Referrals they + generate. + +10.4. Map-Resolver Operation + + Upon receiving a Map-Referral, the Map-Resolver MUST first verify the + signature(s) by using either a trust anchor or a previously + authenticated public key associated with the DDT node sending the + Map-Referral. If multiple authenticated keys are associated with the + DDT node sending this Map-Referral, the Key Tag field (Section 6.4.1) + of the signature can be used to select the correct public key for + verifying the signature. If the key tag matches more than one key + associated with that DDT node, the Map-Resolver MUST try to verify + the signature with all matching keys. For every matching key that is + + + +Fuller, et al. Experimental [Page 39] + +RFC 8111 LISP-DDT May 2017 + + + found, the Map-Resolver MUST also verify that the key is + authoritative for the XEID-prefix in the Map-Referral Record. If + such a key is found, the Map-Resolver MUST use it to verify the + associated signature in the Record. If (1) no matching key is found, + (2) none of the matching keys is authoritative for the XEID-prefix in + the Map-Referral Record, or (3) such a key is found but the signature + is not valid, the Map-Referral Record is considered corrupted and + MUST be discarded. This may be due to expired keys. The + Map-Resolver MAY try other siblings of this node if there is an + alternate node that is authoritative for the same prefix. If not, + the Map-Resolver CAN query the DDT node's parent to retrieve a valid + key. It is good practice to use a counter or timer to avoid + repeating this process if the Map-Resolver cannot verify the + signature after several attempts. + + Once the signature is verified, the Map-Resolver has verified the + XEID-prefix delegation in the Map-Referral. This also means that + public keys of the child DDT nodes were authenticated; the + Map-Resolver must add these keys to the authenticated keys associated + with each child DDT node and XEID-prefix. These keys are considered + valid for the duration specified in the Record's TTL field. + +11. Open Issues and Considerations + + There are a number of issues with the organization of the mapping + database that need further investigation. Among these are: + + o Defining an interface to implement interconnection and/or + interoperability with other mapping databases, such as LISP+ALT. + + o Additional key structures for use with LISP-DDT, such as key + structures to support additional EID formats as defined in + [RFC8060]. + + o Management of the DDT Map-Resolver referral cache -- in + particular, detecting and removing outdated entries. + + o Best practices for either configuring hint referrals or avoiding + their use. + + Operational experience will help answer open questions surrounding + these and other issues. + + + + + + + + + +Fuller, et al. Experimental [Page 40] + +RFC 8111 LISP-DDT May 2017 + + +12. IANA Considerations + + IANA has made the following early assignment per this document: + + o Message type 6, "LISP DDT Map-Referral", was added to the + "LISP Packet Types" registry. See Section 6.4 ("Map-Referral + Message Format"). + + As this document is an Experimental RFC, this is an early allocation + as per [RFC7120]. + +13. Security Considerations + + Section 10 describes a DDT security architecture that provides data + origin authentication, data integrity protection, and XEID-prefix + delegation within the DDT infrastructure. + + Global XEID-prefix authorization is beyond the scope of this + document, but the Secure Inter-Domain Routing (SIDR) working group + [RFC6480] is developing an infrastructure to support improved + security of Internet routing. Further work is required to determine + if SIDR's Public Key Infrastructure (PKI) and the distributed + repository system it uses for storing and disseminating PKI data + objects may also be used by DDT devices to verifiably assert that + they are the legitimate holders of a set of XEID-prefixes. + + This document specifies how DDT security and LISP-SEC [LISP-SEC] + complement one another to secure the DDT infrastructure, Map-Referral + messages, and the Map-Request/Map-Reply protocols. In the future, + other LISP security mechanisms may be developed to replace LISP-SEC. + Such future security mechanisms should describe how they can be used + together with LISP-DDT to provide similar levels of protection. + + LISP-SEC can use the DDT public-key infrastructure to secure the + transport of LISP-SEC key material (the One-Time Key) from a + Map-Resolver to the corresponding Map-Server. For this reason, when + LISP-SEC is deployed in conjunction with a LISP-DDT mapping database + and the path between the Map-Resolver and Map-Server needs to be + protected, DDT security as described in Section 10 should be enabled + as well. + + + + + + + + + + + +Fuller, et al. Experimental [Page 41] + +RFC 8111 LISP-DDT May 2017 + + +14. References + +14.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + <http://www.rfc-editor.org/info/rfc2119>. + + [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The + Locator/ID Separation Protocol (LISP)", RFC 6830, + DOI 10.17487/RFC6830, January 2013, + <http://www.rfc-editor.org/info/rfc6830>. + + [RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation + Protocol (LISP) Map-Server Interface", RFC 6833, + DOI 10.17487/RFC6833, January 2013, + <http://www.rfc-editor.org/info/rfc6833>. + + [RFC7120] Cotton, M., "Early IANA Allocation of Standards Track Code + Points", BCP 100, RFC 7120, DOI 10.17487/RFC7120, + January 2014, <http://www.rfc-editor.org/info/rfc7120>. + + [RFC8017] Moriarty, K., Ed., Kaliski, B., Jonsson, J., and A. Rusch, + "PKCS #1: RSA Cryptography Specifications Version 2.2", + RFC 8017, DOI 10.17487/RFC8017, November 2016, + <http://www.rfc-editor.org/info/rfc8017>. + + [RFC8060] Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical + Address Format (LCAF)", RFC 8060, DOI 10.17487/RFC8060, + February 2017, <http://www.rfc-editor.org/info/rfc8060>. + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in + RFC 2119 Key Words", BCP 14, RFC 8174, + DOI 10.17487/RFC8174, May 2017, + <http://www.rfc-editor.org/info/rfc8174>. + + + + + + + + + + + + + + + +Fuller, et al. Experimental [Page 42] + +RFC 8111 LISP-DDT May 2017 + + +14.2. Informative References + + [AFI] IANA, "Address Family Numbers", + <http://www.iana.org/assignments/address-family-numbers/>. + + [LISP-SEC] Maino, F., Ermagan, V., Cabellos, A., and D. Saucez, + "LISP-Security (LISP-SEC)", Work in Progress, + draft-ietf-lisp-sec-12, November 2016. + + [LISP-TREE] + Jakab, L., Cabellos-Aparicio, A., Coras, F., Saucez, D., + and O. Bonaventure, "LISP-TREE: a DNS Hierarchy to Support + the LISP Mapping System", IEEE Journal on Selected Areas + in Communications, Volume 28, Issue 8, + DOI 10.1109/JSAC.2010.101011, September 2010, + <http://ieeexplore.ieee.org/xpls/ + abs_all.jsp?arnumber=5586446>. + + [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G., + and E. Lear, "Address Allocation for Private Internets", + BCP 5, RFC 1918, DOI 10.17487/RFC1918, February 1996, + <http://www.rfc-editor.org/info/rfc1918>. + + [RFC5011] StJohns, M., "Automated Updates of DNS Security (DNSSEC) + Trust Anchors", STD 74, RFC 5011, DOI 10.17487/RFC5011, + September 2007, <http://www.rfc-editor.org/info/rfc5011>. + + [RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support + Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, + February 2012, <http://www.rfc-editor.org/info/rfc6480>. + + [RFC6836] Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, + "Locator/ID Separation Protocol Alternative Logical + Topology (LISP+ALT)", RFC 6836, DOI 10.17487/RFC6836, + January 2013, <http://www.rfc-editor.org/info/rfc6836>. + + [RFC6837] Lear, E., "NERD: A Not-so-novel Endpoint ID (EID) to + Routing Locator (RLOC) Database", RFC 6837, + DOI 10.17487/RFC6837, January 2013, + <http://www.rfc-editor.org/info/rfc6837>. + + + + + + + + + + + +Fuller, et al. Experimental [Page 43] + +RFC 8111 LISP-DDT May 2017 + + +Acknowledgments + + The authors would like to express their thanks to Lorand Jakab, + Albert Cabellos, Florin Coras, Damien Saucez, and Olivier Bonaventure + for their work on LISP-TREE [LISP-TREE] and LISP iterable mappings + that inspired the hierarchical database structure and lookup + iteration approach described in this document. Thanks also go to + Dino Farinacci and Isidor Kouvelas for their implementation work; to + Selina Heimlich and Srin Subramanian for testing; to Fabio Maino for + work on security processing; and to Job Snijders, Glen Wiley, Neel + Goyal, and Mike Gibbs for work on operational considerations and + initial deployment of a prototype database infrastructure. Special + thanks go to Jesper Skriver, Andrew Partan, and Noel Chiappa, all of + whom have participated in (and put up with) seemingly endless hours + of discussion of mapping database ideas, concepts, and issues. + +Authors' Addresses + + Vince Fuller + VAF.NET Internet Consulting + + Email: vince.fuller@gmail.com + + + Darrel Lewis + Cisco Systems + + Email: darlewis@cisco.com + + + Vina Ermagan + Cisco Systems + + Email: vermagan@cisco.com + + + Amit Jain + Juniper Networks + + Email: atjain@juniper.net + + + Anton Smirnov + Cisco Systems + + Email: as@cisco.com + + + + + +Fuller, et al. Experimental [Page 44] + |