Network Working Group V. Fuller Internet-Draft Intended status: Experimental D. Lewis Expires:September 22,October 24, 2016 V. Ermagan Cisco Systems A. Jain Juniper NetworksMarch 21,A. Smirnov Cisco Systems April 22, 2016 LISP Delegated Database Treedraft-ietf-lisp-ddt-04draft-ietf-lisp-ddt-05 Abstract This draft describes the LISP Delegated Database Tree (LISP-DDT), a hierarchical, distributed database which 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 Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire onSeptember 22,October 24, 2016. Copyright Notice Copyright (c) 2016 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 . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 3. Definition of Terms . . . . . . . . . . . . . . . . . . . . .4 3.5 4. Database organization . . . . . . . . . . . . . . . . . . . .6 3.1.7 4.1. EID-prefix tree structure and instance IDs . . . . . . .6 3.2.7 4.2. Configuring prefix delegation . . . . . . . . . . . . . . 73.2.1.4.2.1. The root DDT node . . . . . . . . . . . . . . . . . . 74.5. DDT Map-Request . . . . . . . . . . . . . . . . . . . . . . . 8 6. The Map-Referral message . . . . . . . . . . . . . . . . . .7 4.1.8 6.1. Action codes . . . . . . . . . . . . . . . . . . . . . .8 4.2.9 6.2. Referral set . . . . . . . . . . . . . . . . . . . . . .8 4.3.9 6.3. Incomplete flag . . . . . . . . . . . . . . . . . . . . .9 5.10 6.4. Map-Referral Message Format . . . . . . . . . . . . . . . 10 6.4.1. SIG section . . . . . . . . . . . . . . . . . . . . . 12 7. DDT network elements and their operation . . . . . . . . . .9 5.1.13 7.1. DDT node . . . . . . . . . . . . . . . . . . . . . . . .9 5.1.1.13 7.1.1. Match of a delegated prefix (or sub-prefix) . . . . .9 5.1.2.13 7.1.2. Missing delegation from an authoritative prefix . . .10 5.2.14 7.2. DDT Map Server . . . . . . . . . . . . . . . . . . . . .10 5.3.14 7.3. DDT Map Resolver . . . . . . . . . . . . . . . . . . . .10 5.3.1.14 7.3.1. Queuing and sending DDT Map-Requests . . . . . . . .10 5.3.2.15 7.3.2. Receiving and following referrals . . . . . . . . . .11 5.3.3.15 7.3.3. Handling referral errors . . . . . . . . . . . . . .13 5.3.4.17 7.3.4. Referral loop detection . . . . . . . . . . . . . . .13 6.17 8. Pseudo Code and Decision Tree diagrams . . . . . . . . . . .14 6.1.18 8.1. Map Resolver processing of ITR Map-Request . . . . . . .14 6.1.1.18 8.1.1. Pseudo-code summary . . . . . . . . . . . . . . . . .14 6.1.2.18 8.1.2. Decision tree diagram . . . . . . . . . . . . . . . .14 6.2.19 8.2. Map Resolver processing of Map-Referral message . . . . .15 6.2.1.19 8.2.1. Pseudo-code summary . . . . . . . . . . . . . . . . .15 6.2.2.19 8.2.2. Decision tree diagram . . . . . . . . . . . . . . . .17 6.3.21 8.3. DDT Node processing of DDT Map-Request message . . . . .19 6.3.1.23 8.3.1. Pseudo-code summary . . . . . . . . . . . . . . . . .19 6.3.2.23 8.3.2. Decision tree diagram . . . . . . . . . . . . . . . .19 7.24 9. Example topology and request/referral following . . . . . . .20 7.1.24 9.1. Lookup of10.1.1.1/32 by ITR12001:db8:0103:1::1/128 . . . . . . . . . . . .. . 22 7.2.26 9.2. Lookup of10.17.8.1/32 by ITR2 . .2001:db8:0501:8:4::1/128 . . . . . . . . . . .23 7.3.27 9.3. Lookup of10.2.2.2/32 by ITR1 .2001:db8:0104:2::2/128 . . . . . . . . . . . .. 24 7.4.28 9.4. Lookup of10.16.2.1/32 by ITR2 .2001:db8:0500:2:4::1/128 . . . . . . . . . . .. 24 7.5.29 9.5. Lookup of10.16.0.1/322001:db8:0500::1/128 (non-existent EID)by ITR2. . . .25 8.29 10. Securing the database and message exchanges . . . . . . . . .25 8.1.30 10.1. XEID-prefix Delegation . . . . . . . . . . . . . . . . .26 8.2.30 10.2. DDT node operation . . . . . . . . . . . . . . . . . . .26 8.2.1.31 10.2.1. DDT public key revocation . . . . . . . . . . . . .. 27 8.3.31 10.3. Map Server operation . . . . . . . . . . . . . . . . . .27 8.4.32 10.4. Map Resolver operation . . . . . . . . . . . . . . . . .27 9.32 11. Open Issues and Considerations . . . . . . . . . . . . . . .28 10.33 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . .29 11.33 13. Security Considerations . . . . . . . . . . . . . . . . . . .29 12.33 14. References . . . . . . . . . . . . . . . . . . . . . . . . .29 12.1.34 14.1. Normative References . . . . . . . . . . . . . . . . . .29 12.2.34 14.2. Informative References . . . . . . . . . . . . . . . . .3034 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . .31 Appendix B. Map-Referral Message Format . . . . . . . . . . . . 31 B.1. SIG section . . . . . . . . . . . . . . . . . . . . . . . 33 Appendix C. Encapsulated Control Message Format . . . . . . . . 34 Authors' Addresses35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 1. Introduction LISP [RFC6830] specifies an architecture and mechanism for replacing the addresses currently used by IP with two separate name spaces: relatively static Endpoint Identifiers (EIDs), used end-to-end for terminating transport-layer associations, and Routing Locators (RLOCs), which are more dynamic, are bound to topological location, and are used for routing and forwarding through the Internet infrastructure. 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: Database-ID (DBID, 16 bits), Instance identifier (IID,32-bits),24-bits), Address Family Identifier (16 bits), and EID-prefix (variable, according to AFI value). The resulting concatenation of these fields is termed an "Extended EID prefix" or XEID-prefix. Theterm "Extended EID" (XEID) is also used for an individual LISP EID that is further qualified through the use of an Instance ID. See [LCAF] for further discussion of the use of Instance IDs. TheDBID is provided for possible use in case a need evolves for another, higher level in the hierarchy, to allow the creation of multiple, separate database trees. LISP-DDT is a hierarchical distributed database, which 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, which needs to locate a given mapping, will follow a path through the tree- structured database, contacting, 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-DDT defines a new device type, the DDT node, that is configured as authoritative for one or more XEID-prefixes. It also is 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 Map Server (sometimes termed a "terminal DDT node") 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 Section46 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 that either indicates that it will find the requested mapping to complete processing of the request or that 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", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 3. Definition of Terms Extended EID (XEID): a LISP EID, optionally extended with a non- zero Instance ID (IID) if the EID is intended for use in a context where it may not be a unique value, such as on a Virtual Private Network where [RFC1918] address space is used. See "Using Virtualization and Segmentation with LISP" in [RFC6830] for more discussion of Instance IDs. XEID-prefix: a LISP EID-prefix with 16-bit LISP-DDT DBID (provided to allow the definition of multiple databases; currently always zero in this version of DDT, with other values reserved for future use),32-bit24-bit IID and 16-bit AFI prepended. An XEID-prefix is used as a key index into the database. DDT node: a network infrastructure component responsible for specific XEID-prefix and for delegation of more-specific sub- prefixes to other DDT nodes. DDT client: a network infrastructure component that sends Map- Request messages and implements the iterative following of Map- Referral results. Typically, a DDT client will be a Map Resolver, but it is also possible for an 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 proxy Map-Reply service) for a subset of its delegated prefixes. DDT Map Resolver: a network infrastructure element that accepts a Map-Request, adds the XEID to its pending request list, then queries one or more DDT nodes for the requested EID, 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 original sender. A DDT Map Resolver maintains both a cache of Map-Referral message results containing RLOCs for DDT nodes responsible for XEID- prefixes of interest (termed the "referral cache") and a pending request list of XEIDs that are being resolved through iterative querying of DDT nodes. Encapsulated Map-Request: a LISP Map-Request carried within an Encapsulated Control Message, which has an additional LISP header prepended. Sent to UDP destination port 4342. The "outer" addresses are globally-routable IP addresses, also known as RLOCs. Used by an ITR when sending to a Map Resolver and by a Map Server when forwarding a Map-Request to an ETR as documented in LISP-MS [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. Section5.3.17.3.1 describes how DDT Map- Requests are sent. Section 5 defines 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 more information about the sub-prefix; 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 a more-specific XEID-prefix. See Section5.17.1 and Section5.3.27.3.2 for details on the sending and processing of Map-Referral messages.negativeNegative Map-Referral: 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 a DDT client for an XEID. Each entry in the list contains additional state needed by the referral following process, including the requestor(s) of the XEID (typically, one or more ITRs), saved information about the last referral received and followed (matching XEID-prefix, action code, RLOC set, index of last RLOC queried in the RLOC set), and any[LISP-SEC]LISP-SEC information ([I-D.ietf-lisp-sec]) that was included in the DDT clientMap-Request.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, Ingress Tunnel Router (ITR), Egress Tunnel Router (ETR), Map Server, and Map Resolver, please consult the LISP specification [RFC6830] and the LISP Mapping Service specification [RFC6833].3.4. Database organization3.1.4.1. EID-prefix tree structure and instance IDs LISP-DDT defines a tree structure that is indexed by a binary encoding of five fields, in order of significance: DBID (16 bits), Instance Identifier (IID,3224 bits), Address Family Identifier (AFI, 16 bits), and EID-prefix (variable, according to AFI value). The fields are concatenated, with the most significant fields as listed above. The index into this structure is also referred to as an Extended EID-prefix (XEID-prefix). 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 (Map Servers and their registered EIDs) that can be queried with LISP to obtain those mappings. Changes to EID-to-RLOC mappings are made on the ETRs which 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.3.2.4.2. 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 securityinformation.information (for details of security infomation 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 anxEIDXEID 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 proxy Map-Reply service)Map-Requests. For details of security infomation in Map-Referrals see Section 8. 3.2.1.Map- Requests. 4.2.1. The root DDT node The root DDT node is the logical "top" of the database hierarchy: DBID=0, IID=0, AFI=0, EID-prefix=0/0. A DDT Map-Request that matches no configured XEID-prefix will be referred to the root node. The root node in a particular instantiation of LISP-DDT must therefore be configured with delegations for at least all defined IIDs and AFIs.To aid in defining a "sub-root"5. DDTnode that is responsible for all EID-prefixes within multiple IIDs (say, for usingMap-Request A DDT client (usualy a Map Resolver) uses LISP Encapsulated Control Message (ECM) tocreate virtual networks that use overlapping address space), it may be useful to implement configuration language that allows for a range of IIDssend Map-Request tobe delegated together. Additional configuration shorthand for delegatingarange of IIDs (and allDDT node. Format of theEIDs under them) may also be helpful. 4. The Map-Referral message A Map-Referral messageECM issentdefined bya DDT node to a DDT client in response[RFC6830]. This specification adds toa DDT Map-Request message. The message consists of an action code along with delegation information about the XEID-prefix that matches the XEID requested. See Appendix B for a detailed layoutECM flag "DDT- originated". 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ D-bit is the "DDT-originated" flag and is set by a DDT client to indicate that the receiver SHOULD return Map-Referral messages as appropriate. Use of the flag is further described in Section 7.3.1. 6. The Map-Referral message This specification defines a new LISP message, the Map-Referral. It 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.4.1.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 Map Resolver 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 Section5.3.2).7.3.2). MS-ACK (2): indicates that a replying DDT Map Server received a DDT Map-Request that matches an authoritative XEID-prefix for whichisit has one or more registered ETRs. This means that the requestcan behas 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 which has no ETRs registered. 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 Section5.1.27.1.2 for details. NOT-AUTHORITATIVE (5): indicates that the replying DDT node received a Map-Request for an XEID-request for which it is not authoritative. This can occur if a cached referral has become invalid due to a change in the database hierarchy.4.2.6.2. Referral set For "positive" action codes (NODE-REFERRAL, MS-REFERRAL, MS-ACK), a DDT node includes in the Map-Referral message a list of RLOCs for all DDT nodes that are authoritative for the XEID-prefix being returned; a DDT Map Resolver uses this information to contact one of those DDT nodes as it "follows" a referral.4.3.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 Map Resolver 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 does not have configuration for other "peer" DDT nodes that are also authoritative for the matched XEID-prefix. o If it is setting action code NOT-AUTHORITATIVE.5. DDT network elements and their operation As described above, DDT introduces a new network element, the "DDT node", extends the functionality of Map Servers and6.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 | MapResolvers to send and receiveVersion Number | EID-AFI | o +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ r | EID-prefix ... | d +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | /| Priority | Weight | M Priority | M Weight | | R +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | e | Unused Flags |L|p|R| Loc/LCAF-AFI | | f +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | \| Locator ... | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ~ Sig section ~ +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: Map-Referralmessages.is LISP message type 6. ACT: Theoperation of each"action" field ofthese devices is described as follows. 5.1. DDT node Whenthe mapping record in a Map-Referral message encodes 6 action types. The values for the action types are: NODE-REFERRAL (0): Sent by a DDT nodereceiveswith aDDT Map-Request, it compares the requested XEID against its list of XEID-prefix delegations and its list ofchild delegation, which is authoritativeXEID-prefixes and acts as follows: 5.1.1. Match offor the EID. MS-REFERRAL (1): Sent by adelegated prefix (or sub-prefix) IfDDT node that has information about Map Server(s) for therequested XEID matchesEID but it is not one of theDDT node's delegated prefixes, then a Map-Referral message is returned with the matching more-specific XEID-prefix andMap Servers listed, i.e. theset of RLOCs forDDT-Node sending the referraltarget DDT nodes including associated security information (see Section 8 for details on security). If the delegationisknown to benot a Map Server. MS-ACK (2): Sent by a DDT MapServer, then the Map-Referral message is sent with action code MS-REFERRAL to indicate to the receiverServer thatLISP-SEC information (if saved in the pending request) should be included inhas one or more ETR registered for thenextEID. MS-NOT-REGISTERED (3): Sent by a DDTMap-Request; otherwise, the action code NODE-REFERRAL is used. NoteMap Server thata matched delegation does not have to be for a sub-prefix of an authoritative prefix; in addition to beingis configuredto delegate sub-prefixes offor the EID-prefix, but for which no ETRs are registered. DELEGATION-HOLE (4): Sent by anauthoritative prefix, aintermediate DDT nodemay also be configuredwithother XEID-prefixes for which it can provide referrals to DDT nodes anywhere inauthoritative configuration covering thedatabase hierarchy. This capability to define "shortcut hints" is never required to be configured,requested EID butmay be a useful heuristicwithout any child delegation forreducingthenumber of iterations needed to find an EID, particular for private network deployments. 5.1.2. Missing delegation from anEID. Also sent by a DDT Map Server with authoritativeprefix Ifconfiguration covering the requestedXEID did not match a configured delegationEID, butdoes match an authoritative XEID-prefix, then thefor which no specific site ETR is configured. NOT-AUTHORITATIVE (5): Sent by a DDT nodereturns a negative Map-Referral that uses the least-specific XEID-prefixthat does notmatch any XEID-prefix delegated byhave authoritative configuration for theDDT node.requested EID. Theaction code is set to DELEGATION-HOLE; this indicates that the XEID is not a LISP destination. IfEID-prefix returned MUST be the original requestedXEID did not match either a configured delegation or an authoritative XEID-prefix, then the request is droppedEID and the TTL MUST be set to 0. However, if such anegative Map-Referral with action code NOT-AUTHORITATIVE is returned. 5.2.DDTMap Server Whennode has aDDT Map Server receives"hint" delegation covering the requested EID, it MAY choose to return NODE-REFERRAL or MS-REFERRAL as appropriate. Incomplete: The "I" bit indicates that a DDTMap-Request, its operationnode's referral-set of locators issimilar to thatincomplete and the receiver ofathis message SHOULD NOT cache the referral. A DDTnode with additional processing as follows: o Ifsets therequested XEID matches a registered XEID-prefix, then"incomplete" flag, theMap-Request is forwarded to oneTTL, and the Action Type 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 on Map Server originated referral of MS-REFERRAL and MS-NOT-REGISTERED types depend on whether thedestination ETR RLOCs (orMap Server has the full peer Map Serversends a Map-Reply, if it is providing proxy Map- Reply service)configuration for the same prefix anda Map-Referral withhas encoded theMS-ACK actioninformation in the mapping record. Incomplete bit isreturned tonot set when thesender ofMap Server has encoded theDDT Map-Request. o If the requested XEID matches a configured XEID-prefix forinformation, whichno ETR registration has been received then a negative Map-Referral with action code MS-NOT-REGISTERED is returned tomeans thesender ofreferral-set includes all theDDT Map-Request. 5.3. DDT Map Resolver Just as any other Map Resolver, a DDTRLOCs of all MapResolver accepts Map- Requests from its clients (typically, ITRs) and ensuresServers thatthose Map-Requests are forwarded toserve the prefix. It is set when thecorrect ETR, which generates Map- Replies. Unlike aMapResolver that usesServer has not encoded theALT mapping system (see [RFC6836]), however, a DDTMapResolver uses an iterative processServer set information. SigCnt: Indicates the number offollowing referrals to findsignatures (sig section) present in thecorrect ETR to answer a Map-Request; this requiresRecord. If SigCnt is larger than 0, the signature information captured in aDDT Map Resolversig section as described in Section 6.4.1 will be appended tomaintain additional state: a Map- Referral cache and pending request listthe end ofXEIDs that are going throughtheiterative referral process. 5.3.1. Queuing and sending DDT Map-Requests When a DDT Map Resolver receives an encapsulated Map-Request, it first performs a longest-match search forrecord. The number of sig sections at theXEID in its referral cache. If noend of the Record must matchis found or if a negative cache entry is found, thenthedestinationSigCnt. Loc/LCAF-AFI: If this is a Loc AFI, keys are not included in thedatabase; a negative Map-Reply is returned and no further processing is performed by the DDT Map Resolver.record. Ifa matchthis isfound, the DDT Map Resolver createsapending request list entry for the XEID and saves the original Map-Request (minusLCAF AFI, theencapsulation header) along with other information needed to track progress throughcontents of theiterative referral process;LCAF depend on the"referral XEID- prefix" is also initialized toType field of thenull value since no referral has yet been received. The Map Resolver then creates aLCAF. Security material are stored in LCAF Type 11. DDTMap-Request (which is an encapsulated Map-Requestnodes and Map Servers can use this LCAF Type to include public keys associated withthe "DDT-originated" flag set in the message header)their Child DDT nodes for a XEID-prefix referral record. LCAF types and formats are defined in [I-D.ietf-lisp-lcaf]. All other fields and their descriptions are equivalent to those in theXEID but without any authentication data that may have been includedMap-Reply message, as defined in LISP [RFC6830]. Note, though, that theoriginal Map- Request. It sendsset of RLOCs correspond to the DDTMap-Requestnode toonebe queried as a result of the referral not the RLOCs for an actual EID-to-RLOC mapping. 6.4.1. SIG section If SigCnt field in thechosen referral cache entry. The referral cacheMap-Referral isinitially populated with one or more statically-configured entries; additional entries are added when referrals are followed,not 0, the signature information is included at the end of captured in a sig section as described below.A DDT Map Resolver is not absolutely required to cache referrals, but it doing so decreases latency and reduces lookup delays. NoteSigCnt counts the number of sig sections thatin normal use onappear at thepublic Internet, the statically- configured initial referral cache for a DDT Map Resolver should include a "default" entry with RLOCs for one or more DDT nodes that can reach the DDT root node. If a Map Resolver does not have such configuration, it will return a Negative Map-Reply if it receives a query for an EID outside the subsetend of themapping 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,Record. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /| 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 thisbehaviorrecord that isnot appropriate when LISPcovered by the signature. Record TTL is ingeneral use on the Internet. 5.3.2. Receivingminutes. Signature Expiration andfollowing referrals After sending a DDT Map-Request, a DDT Map Resolver expects to receive a Map-Referral response. If none occurs within the timeout period,Inception: Specify theDDT Map Resolver retransmitsvalidity period for therequest, sendingsignature. The signature MUST NOT be used for authentication prior to thenext RLOC ininception date and MUST NOT be used for authentication after thereferral cache entry if one is available. Ifexpiration date. Each field specifies a date and time in themaximumform of a 32-bit unsigned number ofretransmissions has occurred and all RLOCs have been tried, then the pending request list entry is dequeued. A DDT Map Resolver processes a received Map-Referral message according to each action code: NODE-REFERRAL: The DDT Map Resolver checks for a possible referral loop as as describedseconds elapsed since 1 January 1970 00:00:00 UTC, ignoring leap seconds, inSection 5.3.4. If no loopnetwork byte order. Key Tag: An identifier to specify which key isfound,used for this signature if more than one valid key exists for the signing DDTMap Resolver saves the prefix returned innode. Sig Length: The length of theMap-Referral message inSignature field. Sig-Algorithm: The identifier of thereferral cache, updatescryptographic algorithm used for thesaved prefixsignature. This specification defines only one algorithm: Sig- Algorithm type 1 is RSA-SHA1 (see [RFC3447]). Reserved: This field must be set to 0 on transmit andsaved RLOCs inmust be ignored on receipt. Signature: Contains thepending request list entry,cryptographic signature that covers the entire record. The Record TTL andfollowsthereferral by sending a new DDT Map-Requestsig fields are set toonezero for the purpose of computing the Signature. 7. DDTnode RLOCs listed in the Referral Set; security information saved with the original Map-Request is not included. MS-REFERRAL: Thenetwork elements and their operation As described above, DDTMap Resolver follows an MS-REFERRAL in the same manner asintroduces aNODE-REFERRAL except that that security information saved withnew network element, theoriginal Map-Request is included in"DDT node", extends thenew Map- Request sent to afunctionality of MapServer (see Section 8 for details on security). MS-ACK: This is returned by a DDTServers and MapServerResolvers toindicate that it has one or more registered ETRs that can answersend and receive Map-Referral messages. The operation of each of these devices is described as follows. 7.1. DDT node When aMap-Request forDDT node receives a DDT Map-Request, it compares theXEID.requested XEID against its list of XEID-prefix delegations and its list of authoritative XEID-prefixes and acts as follows: 7.1.1. Match of a delegated prefix (or sub-prefix) If thepending request did not include saved LISP-SEC information or if that information was already included in the previous DDT Map-Request (sent byrequested XEID matches one of the DDTMap Resolver in response to either an MS-REFERRAL or a previous MS-ACK referral),node's delegated prefixes, then a Map-Referral message is returned with thepending requestmatching more-specific XEID-prefix and the set of RLOCs for theXEID is complete and is dequeued. Otherwise, LISP-SECreferral target DDT nodes including associated security information (see Section 10 for details on security). If the delegation isrequired and has not yet been sentknown tothe authoritative DDT Map-Server; thebe a DDT MapResolver re- sends the DDT Map-Request with LISP-SEC information included andServer, then thepending request queue entry remains until anotherMap-Referral message is sent withMS-ACKaction codeis received. If the "incomplete" flag is not set,MS-REFERRAL to indicate to theprefix isreceiver that LISP-SEC information (if saved in thereferral cache. MS-NOT-REGISTERED: Thepending request) should be included in the next DDTMap Server queried could not processMap-Request; otherwise, therequest because it didaction code NODE-REFERRAL is used. Note that a matched delegation does not haveany ETRs registeredto be for amatching, authoritative XEID-prefix. If the DDT Map Resolver has not yet tried allsub-prefix ofthe RLOCs savedan authoritative prefix; in addition to being configured to delegate sub-prefixes of an authoritative prefix, a DDT node may also be configured withthe pending request, thenother XEID-prefixes for which itsends a Map-Requestcan provide referrals tothe next RLOCDDT nodes anywhere inthat list. If all RLOCs have been tried, thenthedestination XEID is not registered and is unreachable. The DDT Map Resolver returns a negative Map- Replydatabase hierarchy. This capability tothe original Map-Request sender; this Map-Reply contains the non-registered XEID-prefix with TTL value of one minute. A negative referral cache entrydefine "shortcut hints" iscreatednever required to be configured, but may be a useful heuristic for reducing theprefix (also with TTLnumber ofone minute) and the pending request is dequeued. DELEGATION-HOLE: The DDT Map Server queried did not haveiterations needed to find anXEID-EID, particular for private network deployments. 7.1.2. Missing delegation from an authoritative prefixdefined that matchedIf the requested XEIDso it doesdid notexist inmatch a configured delegation but does match an authoritative XEID-prefix, then themapping database. TheDDTMap Resolvernode returns a negativeMap-Reply to the original Map-Request sender; this Map- Reply will indicateMap-Referral that uses the least-specific XEID-prefixmatchingthat 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 XEIDfor which no delegations existdid not match either a configured delegation or an authoritative XEID-prefix, then the request is dropped andwill haveaTTL value of 15 minutes. Anegativereferral cache entryMap-Referral with action code NOT-AUTHORITATIVE iscreated for the prefix (also with TTL of 15 minutes) and the pending request is dequeued. NOT-AUTHORITATIVE: Thereturned. 7.2. DDT Map ServerqueriedWhen a DDT Map Server receives a DDT Map-Request, its operation isnot authoritative forsimilar to that of a DDT node with additional processing as follows: o If the requestedXEID. This can occur ifXEID matches acached referral has become invalid dueregistered XEID-prefix, then the Map-Request is forwarded toa change inone of thedatabase hierarchy. Ifdestination ETR RLOCs (or theDDTMapResolver receiving this message can determine thatServer sends a Map-Reply, if it isusing old cached information, it may choose to delete that cached informationproviding proxy Map- Reply service) andre-trya Map-Referral with theoriginal Map-Request, starting from its "root" cache entry. If thisMS-ACK actioncodeisreceived in responsereturned to the sender of the DDT Map-Request. o If the requested XEID matches aquery that was not to cached referral information,configured XEID-prefix for which no ETR registration has been received thenit indicatesadatabase synchronization problem or configuration error. The pending request list entry that caused this answer is removed,negative Map-Referral withno answeraction code MS-NOT-REGISTERED is returned to theoriginal requestor. 5.3.3. Handling referral errors Other states are possible, such as a misconfiguredsender of the DDTnode (actingMap-Request. 7.3. DDT Map Resolver Just asa proxyany other MapServer, for example) returningResolver, aMap-Reply to theDDT MapResolver; they should be considered errorsResolver accepts Map- Requests from its clients (typically, ITRs) andlogged as such. It is not clear exactly what elseensures that those Map-Requests are forwarded to theDDTcorrect ETR, which generates Map- Replies. Unlike a Map Resolvershould do in such cases; one possibility is to removethat uses thepending request list entry and sendALT mapping system (see [RFC6836]), however, anegative Map-ReplyDDT Map Resolver uses an iterative process of following referrals to find theoriginal Map-Request sender. Alternatively, ifcorrect ETR to answer a Map-Request; this requires a DDT Map Resolverdetects unexpected behavior byto maintain additional state: aDDT node, it could mark that node as unusable in its referralMap- Referral cache andupdate thepending requestto try a different DDT node if more than one is listed inlist of XEIDs that are going through the iterative referralcache. In any case, any prefix contained inprocess. 7.3.1. Queuing and sending DDT Map-Requests When aMap-Referral message that causesDDT Map Resolver receives an encapsulated Map-Request, it first performs a longest-match search for the XEID in its referralerror (includingcache. If no match is found or if areferral loop)negative cache entry is found, then the destination is notsavedin theDDT Map- Resolver referral cache. 5.3.4. Referral loop detection In response to a Map-Referral message with action code NODE-REFERRAL or MS-REFERRAL,database; aDDT Map Resolvernegative Map-Reply isdirected to query a new set of DDT node RLOCs that are expected to have more-specific XEID-prefix information forreturned and no further processing is performed by therequested XEID. To prevent a possible "iteration loop" (following referrals back-and-forth among a set ofDDTnodes without ever finding an answer),Map Resolver. If a match is found, the DDT Map Resolversaves the last received referral XEID-prefix for eachcreates a pending requestand checks that 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 5.3.3. Otherwise,list entry for theMap ResolverXEID and saves themost recently received referral XEID-prefix with the pending request when it followsoriginal Map-Request (minus thereferral. As an extra measureencapsulation header) along with other information needed topreventtrack progress through the iterative referralloops, itprocess; the "referral XEID- prefix" isprobablyalsowise to limit the total number of referrals for any requestinitialized tosome reasonable number;theexactnull valueof 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 DDTsince no referral has yet been received. The Map Resolveradds an entry to its lookup queue and sendsthen creates a DDT Map-Request (which is aninitialencapsulated Map-Request with the "DDT-originated" flag set in the message header) foran XEID,thequeue entry has no previous referral XEID-prefix; this meansXEID but without any authentication data thatthe first DDT node contacted by a DDT Map Resolvermayprovide a referral to anywherehave been included in the original Map- Request. It sends the DDThierarchy. This, in turn, allows a DDT Map ResolverMap-Request touse essentially any DDT nodeone of the RLOCsfor its initial cache entries and depend onin theinitialchosen referralto provide a good starting point for Map-Requests; therecache entry. The referral cache isno need to configure the same set of root DDT nodes on allinitially populated with one or more statically-configured entries; additional entries are added when referrals are followed, as described below. A DDT MapResolvers. 6. Pseudo CodeResolver is not absolutely required to cache referrals, but it doing so decreases latency andDecision Tree diagrams To aidreduces lookup delays. Note that inimplementation, each ofnormal use on themajorpublic Internet, the statically- configured initial referral cache for a DDT MapServer andResolver should include a "default" entry with RLOCs for one or more DDT nodes that can reach the DDT root node. If a Map Resolverfunctionsdoes not have such 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 aredescribed below, firstusingsimple "psuedo-code" and thenit, this behavior is not appropriate when LISP is in general use on theform ofInternet. 7.3.2. Receiving and following referrals After sending adecision tree. 6.1.DDT Map-Request, a DDT Map Resolverprocessing of ITR Map-Request 6.1.1. Pseudo-code summaryexpects to receive a Map-Referral response. If none occurs within the timeout period, the DDT Map Resolver retransmits the request, sending to the next RLOC in the referral cache entry if( request pending i.e., (ITR,EID)one is available. If the maximum number of retransmissions has occurred and all RLOCs have been tried, then the pending requestsame ) { 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 ) { fwdlist entry is dequeued. A DDTrequestMap Resolver processes a received Map-Referral message according tomap-server } else { store & fwdeach action code: NODE-REFERRAL: The DDTrequest w/o OTK to node delegation } 6.1.2. Decision tree diagram +------------+ | Is Request | Yes | |----> Replace old request with | Pending? | new nonceMap Resolver checks forfuture requests +------------+ | |No | V +------------+ | Match In | No | Referral |----> Send Negative Map-Reply | cache? | (notalikely eventpossible referral loop asroot +------------+ configured on every MR) | |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 request & Fwd DDT Request w/o OTK toas described in Section 7.3.4. If no loop is found, the DDTnode delegation 6.2.Map Resolverprocessing ofsaves the prefix returned in the Map-Referral message6.2.1. Pseudo-code summary if ( no request pending matched by referral nonce ) { silently drop } if ( pfxin the referralless specific than lastcache, updates the saved prefix and saved RLOCs in the pending request list entry, and follows the referralused ) { if ( gone through root ) { silently drop } else { goto root } } switch (map_referral_type) { case NOT_AUTHORITATIVE : if ( gone through root ) { return negative map-reply to ITR } else { goto 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-replyby sending a new DDT Map-Request toITR } else { goto root } } else { cache & followone of thereferral } case NODE_REFERRAL: if ( referral equalDDT node RLOCs listed in the Referral Set; security information saved with the original Map-Request is not included. MS-REFERRAL: The DDT Map Resolver follows an MS-REFERRAL in the same manner as a NODE-REFERRAL except that that security information saved with the original Map-Request is included in the new Map- Request sent tolast used ) { if ( gone through root ) { return negative map-replya Map Server (see Section 10 for details on security). MS-ACK: This is returned by a DDT Map Server toITR } else { goto root } } else { cache & followindicate that it has one or more registered ETRs that can answer a Map-Request for thereferral } case MS_ACKNOWLEDGEMENT: if ( OTK stripped ) { if ( incomplete ) { resend request with OTK } else { cache & resendXEID. If the pending requestwith OTK } } case MS_NOT_REGISTERED: if { all map-server delegations not tried } { follow delegationsdid nottriedinclude saved LISP-SEC information or if( !incomplete ) { cache } } else { send negative map-replythat information was already included in the previous DDT Map-Request (sent by the DDT Map Resolver in response toITR if { !incomplete } { cache } } case DEFAULT: drop } } 6.2.2. Decision tree diagram +------------+ | Is Request | No | Pending? |----> Silently drop +------------+ | Yes V +------------------------------+ Yes | Pfx less specific than last? |----> Silently drop +------------------------------+ |No V +---------------------------------------------------+ | Whateither an MS-REFERRAL or a previous MS-ACK referral), then the pending request for the XEID isMap-Referral Type? |--UNKNOWN-+ +---------------------------------------------------+ | | | | | | | V | | | | | DEL_HOLE DROP | | | | MS_ACK | | | | | | V | | MS_REF NODE_REF | Cache & return | | | | V negative map-reply | | | | +---------+ | NOT_AUTH | | | Was OTK | Yes | | | | |Stripped?|----> Done | | V V +---------+ | | +------------+ | No | | Yes | Pfx equal | V MS_NOT_REGISTERED | +---|complete and is dequeued. Otherwise, LISP-SEC information is required and has not yet been sent tolast | +------------+ | | | | used? | | Incomplete | Yes | | | +------------+ | bit set? |---> Resendthe authoritative DDT| V V |No +------------+ request | +------------+ | |No with OTK | | Gone | V | | | Through | Cache & follow V | | Root? |Map-Server; thereferral Cache & resendDDT| +------------+ requestMap Resolver re- sends the DDT Map-Request withOTK | |No |Yes | | | | V V | Goto root Send negative map-reply V +-----------+ Yes +-----------+ Yes | Other MS |----Follow other MS-------->|Incomplete |----> Don't cache |LISP-SEC information included and the pending request queue entry remains until another Map-Referral with MS-ACK action code is received. If the "incomplete" flag is nottried?| |bit set? | | |---Send negative map-reply->| |----> Cache +-----------+ No +-----------+ No 6.3. DDT Node processing ofset, the prefix is saved in the referral cache. MS-NOT-REGISTERED: The DDTMap-Request message 6.3.1. Pseudo-code summary if ( I amMap Server queried could not process the request because it did not have any ETRs registered for a matching, 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_REFERRALXEID-prefix. If the DDT Map Resolver has not yet tried all of the RLOCs saved withttl 'Default_DdtNode_Ttl' } } else { if ( eidthe pending request, then it sends a Map-Request to the next RLOC insite) { if ( sitethat list. If all RLOCs have been tried, then the destination XEID is not registered) { forward map-requestand is unreachable. The DDT Map Resolver returns a negative Map- Reply toetr if ( map-server peers configured ) { send map-referral MS_ACKNOWLEDGEMENT with ttl 'Default_Registered_Ttl' } else { send map-referral MS_ACKNOWLEDGEMENTthe original Map-Request sender; this Map-Reply contains the non-registered XEID-prefix withttl '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 } } } else { send map-referral DELEGATION_HOLE with ttl 'Default_Negative_Referral_Ttl' } } 6.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 map |----> Return MS_REFERRAL | | | 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 7. Example topology and request/referral following 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=1, and EID=0/0 +---------------------+ +---------------------+ | root1: 192.0.2.1 | | root2: 192.0.2.2 | | authoritative: 0/0 | | authoritative: 0/0 | +---------------------+ +---------------------+ | \ / | | \ / | | / \ | | / \ | | | | | V V V V +--------------------------+ +--------------------------+ | DDT node1: 192.0.2.11 | | DDT node2: 192.0.2.12 | | authoritative: 10.0.0.0/8| | authoritative: 10.0.0.0/8| +--------------------------+ +--------------------------+ | \ / | | \ / | | / \ | | / \ | | | | | V V V V +--------------------------+ +---------------------------+ | Map-Server1: 192.0.2.101 | | DDT node3: 192.0.2.201 | |authoritative: 10.0.0.0/12| |authoritative: 10.16.0.0/12| | site1: 10.1.0.0/16 | +---------------------------+ | site2: 10.2.0.0/16 | | | +--------------------------+ | | | | | | V V +---------------------------+ +---------------------------+ | Map-Server2: 192.0.2.211 | | Map-Server3: 192.0.2.221 | |authoritative: 10.16.0.0/16| |authoritative: 10.17.0.0/16| | site3: 10.16.1.0/24 | | site5: 10.17.8.0/24 | | site4: 10.16.2.0/24 | | site6: 10.17.9.0/24 | +---------------------------+ +---------------------------+ 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 to these addresses. The root DDT nodes delegate 10.0.0/8 to two DDT nodes with IP addresses 192.0.2.11 and 192.0.2.12. The DDT nodes for 10.0.0.0/8 delegate 10.0.0.0/12 to a DDT Map Server with RLOC 192.0.2.101 The DDT Map Server for 10.0.0.0/12 is configured to allow ETRs to register the sub-prefixes 10.1.0.0/16 and 10.2.0.0/16 The DDT nodes for 10.0.0.0/8 also delegate 10.16.0.0/12 to a DDT node with RLOC 192.0.2.201 The DDT node for 10.16.0.0/12TTL value of one minute. A negative referral cache entry isfurther configured to delegate 10.16.0.0/16 to a DDT Map Server with RLOC 192.0.2.211 and 10.17.0.0/ 16 to a DDT Map Server with RLOC 192.0.2.221 The DDT Map Servercreated for10.16.0.0/16 is configured to allow ETRs to registerthesub-prefixes 10.16.1.0/24prefix (also with TTL of one minute) and10.16.2.0/24the pending request is dequeued. DELEGATION-HOLE: The DDT Map Serverfor 10.17.0.0/16 is configured to allow ETRs to registerqueried did not have an XEID- prefix defined that matched thesub-prefixes 10.17.8.0/24 and 10.17.9.0/24 7.1. Lookup of 10.1.1.1/32 by ITR1 The first example shows a DDT Map Resolver following a delegation fromrequested XEID so it does not exist in theroot to a DDT node followed by another delegation to a DDT Map Server. ITR1 sends an Encapsulated Map-Request for 10.1.1.1 to one of its configured (DDT) Map Resolvers.mapping database. The DDT Map Resolverproceeds as follows: 1. Send DDT Map-Request (for 10.1.1.1)returns a negative Map-Reply toone oftheroot DDT nodes, 192.0.2.1 or 192.0.2.2 2. Receive (and save in referral cache) Map-Referral for EID-prefix 10.0.0.0/8, action code NODE-REFERRAL, RLOC set (192.0.2.11, 192.0.2.12) 3. Send DDT Map-Request to 192.0.2.11 or 192.0.2.12 4. Receive (and save in referral cache) Map-Referral for EID-prefix 10.0.0.0/12, action code MS-REFERRAL, RLOC set (192.0.2.101) 5. Send DDToriginal Map-Requestto 192.0.2.101; ifsender; this Map- Reply will indicate theITR-originated Encapsulated Map-Request had a LISP-SEC signature, it is included 6. DDT Map Server at 192.0.2.101 decapsulatesleast-specific XEID-prefix matching theDDT Map-Requestrequested XEID for which no delegations exist andforwards towill have aregistered site1 ETRTTL value of 15 minutes. A negative referral cache entry is created for10.1.0.0/16 7.the prefix (also with TTL of 15 minutes) and the pending request is dequeued. NOT-AUTHORITATIVE: The DDT Map Serverat 192.0.2.101 sends a Map-Referral messagequeried is not authoritative forEID-prefix 10.1.0.0/16, action code MS-ACKthe requested XEID. This can occur if a cached referral has become invalid due to a change in the database hierarchy. If the DDT Map Resolver8. DDT Map Resolver receives Map-Referralreceiving this message can determine that it is using old cached information, it MAY choose to delete that cached information anddequeuesre-try 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 a cached referral information, then it indicates a database synchronization problem or configuration error. The pending requestfor 10.1.1.1 9. site1 ETR for 10.1.0.0/16 receives Map-Request forwarded by DDT Map Server and sends Map-Replylist entry that caused this answer is removed, with no answer returned toITR1 7.2. Lookup of 10.17.8.1/32 by ITR2 The next example showsthe original requestor. 7.3.3. Handling referral errors Other states are possible, such as athree-level delegation: root to first DDT node, firstmisconfigured DDT node (acting as a proxy Map Server, for example) returning a Map-Reply tosecond DDT node, secondthe DDTnode toMap Resolver; they should be considered errors and logged as such. It is not clear exactly what else the DDT MapServer. ITR2 sends an Encapsulated Map-Request for 10.17.8.1 toResolver should do in such cases; oneof its configured (DDT) Map Resolvers, which are different from those for ITR1. Thepossibility is to remove the pending request list entry and send a negative Map-Reply to the original Map-Request sender. Alternatively, if a DDT Map Resolverproceeds as follows: 1. Send DDT Map-Request (for 10.17.8.1) to one of the rootdetects unexpected behavior by a DDTnodes, 192.0.2.1 or 192.0.2.2 2. Receive (and savenode, it could mark that node as unusable in its referralcache) Map-Referral for EID-prefix 10.0.0.0/8, action code NODE-REFERRAL, RLOC set (192.0.2.11, 192.0.2.12) 3. Send DDT Map-Requestcache and update the pending request to192.0.2.11 or 192.0.2.12 4. Receive (and savetry a different DDT node if more than one is listed in the referralcache)cache. In any case, any prefix contained in a Map-Referralfor EID-prefix 10.16.0.0/12, action code NODE-REFERRAL, RLOC set (192.0.2.201) 5. 5. Send DDT Map-Request to 192.0.2.201 6. Receive (and savemessage that causes a referral error (including a referral loop) is not saved in the DDT Map- Resolver referralcache)cache. 7.3.4. Referral loop detection In response to a Map-Referralfor EID-prefix 10.17.0.0/16,message with action code NODE-REFERRAL or MS-REFERRAL,RLOCa DDT Map Resolver is directed to query a new set(192.0.2.221) 7. Sendof DDTMap-Requestnode RLOCs that are expected to192.0.2.221; ifhave more-specific XEID-prefix information for theITR-originated Encapsulated Map-Request hadrequested XEID. To prevent a possible "iteration loop" (following referrals back-and-forth among a set of DDT nodes without ever finding an answer), aLISP-SEC signature, it is included 8.DDT MapServer at 192.0.2.221 decapsulatesResolver saves theDDT Map-Requestlast received referral XEID-prefix for each pending request andforwards tochecks that aregistered site5 ETR for 10.17.8.0/24 9. DDT Map Server at 192.0.2.221 sendsnewly 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 aMap-Referral message for EID-prefix 10.17.8.0/24, action code MS-ACK, toreferral loop. If a loop is detected, the DDT Map Resolver10. DDThandles the request as described in Section 7.3.3. Otherwise, the Map Resolverreceives Map-Referral(MS-ACK) message and dequeuessaves 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 for10.17.8.1 11. site5 ETR for 10.17.8.0/24 receives Map-Request forwarded by DDT Map Server and sends Map-Replyany request toITR2 7.3. Lookupsome reasonable number; the exact value of that number will be determined during experimental deployment of10.2.2.2/32LISP-DDT, but is bounded byITR1 This example shows howthe maximum length of the XEID. Note that when a DDT Map Resolveruses a saved referral cacheadds an entry toskip the referral processits lookup queue andgo 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 example Section 7.1. Itsends anEncapsulatedinitial Map-Request for10.2.2.2 to that (DDT) Map Resolver. The DDT Map-Resolver findsanMS-REFERRAL cacheXEID, the queue entryfor 10.0.0.0/12 with RLOC set (192.0.2.101) and proceeds as follows: 1. Sendhas no previous referral XEID-prefix; this means that the first DDTMap-Request (for 10.2.2.2)node contacted by a DDT Map Resolver may provide a referral to192.0.2.101; ifanywhere in theITR- originated Encapsulated Map-Request hadDDT hierarchy. This, in turn, allows aLISP-SEC signature, it is included 2.DDT MapServer at 192.0.2.101 decapsulates theResolver to use essentially any DDTMap-Requestnode RLOCs for its initial cache entries andforwardsdepend on the initial referral to provide aregistered site2 ETRgood starting point for10.2.0.0/16 3.Map-Requests; there is no need to configure the same set of root DDT nodes on all DDT MapServer at 192.0.2.101 sends a Map-Referral message for EID-prefix 10.2.0.0/16, action code MS-ACK toResolvers. 8. Pseudo Code and Decision Tree diagrams To aid in implementation, each of the major DDT MapResolver 4.Server and DDT Map Resolverreceives Map-Referral(MS-ACK)functions are described below, first using simple "psuedo-code" anddequeuesthen in the form of a decision tree. 8.1. Map Resolver processing of ITR Map-Request 8.1.1. Pseudo-code summary if ( request pending i.e., (ITR,EID) of request same ) { replace old request with new & use new request nonce for10.2.2.2 5. site2 ETRfuture 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 request to map-server } else { store & fwd DDT request w/o security material to node delegation } 8.1.2. Decision tree diagram +------------+ | Is Request | Yes | |----> Replace old request with | Pending? | new nonce for10.2.0.0/16 receives Map-Request and sends Map- Replyfuture requests +------------+ | |No | V +------------+ | Match In | No | Referral |----> Send Negative Map-Reply | cache? | (not a likely event as root +------------+ configured on every MR) | |Yes | V +------------+ | Match Type | Yes | Delegation |----> Send Negative Map-Reply | Hole? | +------------+ | |No | V +------------+ | Match Type | Yes | MS-ACK? |----> Forward DDT Map-request toITR1 7.4. Lookup of 10.16.2.1/32 by ITR2 This example shows how aMap-Server | | +------------+ | |No | V Store request & Fwd DDTMap Resolver uses a saved referral cache entryRequest w/o security material tostart the referral process at a non-root, intermediateDDT nodefor a prefix that is similar to one previously requested. In this case, ITR2 asks the samedelegation 8.2. Map Resolverusedprocessing of Map-Referral message 8.2.1. Pseudo-code summary if ( no request pending matched by referral nonce ) { silently drop } if ( pfx inexample Section 7.2. It sends an Encapsulated Map-Request for 10.16.2.1referral less specific than last referral used ) { if ( gone through root ) { silently drop } else { send request tothat (DDT) Map Resolver, which finds a NODE-REFERRAL cache entry for 10.16.0.0/12 with RLOC set (192.0.2.201). It proceeds as follows: 1. Send DDT Map-Request (for 10.16.2.1)root } } switch (map_referral_type) { case NOT_AUTHORITATIVE : if ( gone through root ) { return negative map-reply to192.0.2.201 2. Receive (and save in referral cache) Map-Referral for EID-prefix 10.16.0.0/16, action code MS-REFERRAL, RLOC set (192.0.2.211) 3. Send DDT Map-RequestITR } else { send request to192.0.2.211;root } case DELEGATION_HOLE: cache & send negative map-reply to ITR case MS_REFERRAL: ifthe ITR-originated Encapsulated Map-Request had a LISP-SEC signature, it is included 4. DDT Map Server at 192.0.2.211 decapsulates the DDT Map-Request and forwards( referral equal toa registered site4 ETR for 10.16.2.0/24 5. DDT Map Server at 192.0.2.211 sends a Map-Referral message for EID-prefix 10.16.2.0/24, action code MS-ACKlast used ) { if ( gone through root ) { return negative map-reply tothe DDT Map Resolver 6. DDT Map Resolver receives Map-Referral(MS-ACK) and dequeues the pendingITR } else { send requestfor 10.16.2.1 7. site4 ETR for 10.16.2.0/24 receives Map-Request and sends Map- Reply to ITR2 7.5. Lookup of 10.16.0.1/32 (non-existent EID) by ITR2 This example uses the cached MS-REFERRAL for 10.16.0.0/16 learned abovetostart the lookup process atroot } } else { cache follow theDDT Map-Server at 192.0.2.211. The DDT Map Resolver proceeds as follows: 1. Send DDT Map-Request (for 10.16.0.1)referral, include security material } case NODE_REFERRAL: if ( referral equal to192.0.2.211;last used ) { if ( gone through root ) { return negative map-reply to ITR } else { send request to root } } else { cache follow theITR- originated Encapsulated Map-Request had a LISP-SEC signature, it is included 2. DDT Map Server at 192.0.2.211, which is authoritative for 10.16.0.0/16, does not have a matching delegation for 10.16.0.1. It respondsreferral, strip security material } case MS_ACK: if ( security material stripped ) { resend request withasecurity 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 } } 8.2.2. Decision tree diagram +------------+ | Is Request | No | Pending? |----> Silently drop +------------+ | Yes V +------------------------------+ Yes | Pfx less specific than last? |----> Silently drop +------------------------------+ |No V +---------------------------------------------------+ | What is Map-Referralmessage for 10.16.0.0/24, action code DELEGATION-HOLEType? |--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 | +---| tothe DDT Map Resolver. The prefix 10.16.0.0/24 is used because it is the least-specific prefix that does match the requested EID, but does not match one of configured delegations (10.16.1.0/24 and 10.16.2.0/24). 3.last | +------------+ | | | | used? | | Incomplete | Yes | | | +------------+ | bit set? |---> Resend DDTMap Resolver receives| V V |No +------------+ request w | +------------+ | |No security | | Gone | V | material | | Through | Cache & follow V | | Root? | thedelegation, adds a negativereferralcache entry for 10.16.0.0/24, dequeues the pendingCache & resend DDT | +------------+ requestfor 10.16.0.1, and returns awith | |No |Yes security material | | | | V V | Send req Send negativeMap-Replymap-reply | toITR2. 8. Securing the database and message exchanges This section specifies theroot 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. DDTsecurity architecture that provides data origin authentication, data integrity protection, and XEID- prefix delegation. Global XEID-prefix authorization is out of the scopeNode processing ofthis document. EachDDTnode isMap-Request message 8.3.1. Pseudo-code 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 withone or more public/private key pair(s) thatttl '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 } } } else { send map-referral DELEGATION_HOLE with ttl 'Default_Negative_Referral_Ttl' } } where architectural constants for TTL areusedset 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 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 map |----> Return MS_REFERRAL | | | 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?| +------------+ +------------+ todigitally sign referral records for XEID- prefix(es) that the DDT node is authoritative for. In other words, each public/private key pair is associatedETR +------------+ | | | | | |No No| |Yes | | | | | | V V | | Return MS_ACK Return MS_ACK | V withthe combination of a DDT nodeINC=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 9. Example topology andthe XEID-prefix that it is authoritative for. Every DDT node is also configured with the public keys of its children DDT nodes. By including public keys of target childrequest/referral following This chapter shows example DDTnodes in the Map-Referral records,tree andsigning each record with the DDT node's private key, a DDT node can securely delegate sub-prefixesseveral possible scenarios ofits authoritative XEID-prefixes to its children DDT nodes. Map Resolvers are configured with one or more trusted public keys referred to as trust anchors. Trust anchors are usedMap-Requests coming toauthenticate the DDT security infrastructure. Map Resolvers can discovera Map Resolver and subsequent iterative DDTnode's public key either by having it configured as a trust anchor, or by obtaining it fromreferrals. For thenode's parent as partsake ofa signed Map- Referral. When a public key is obtained from a node's parent, it is considered trusted if itexample RLOCs of DDT nodes are shown in IPv4 address space while the EIDs are in IPv6 AF. The same principle of hierarchical delegation and pinpointing referrals issigned byequally applicable to any AF whose address hierarchy can be expressed as atrust anchor, or if itbitstring with associated length. DDT tree of IPv4 prefixes issigned by a key that was previously trusted. Typically, inanother AF with immediate practical value. To show how referrals are followed to find the RLOCs for aMap Resolver,number of EIDs, consider therootfollowing 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 | +---------------------+ +---------------------+ | \ / | | \ / | | / \ | | / \ | | | | | V V V V +-------------------------+ +--------------------------+ | DDTnode public keys should benode1: 192.0.2.11 | | DDT node2: 192.0.2.12 | | authoritative: | | authoritative: | | 2001:db8::/32 | | 2001:db8::/32 | +-------------------------+ +--------------------------+ | \ / | | \ / | | / \ | | / \ | | | | | 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 configuredas trust anchors. Once afor this "root" at IP addresses 192.0.2.1 and 192.0.2.2. DDT MapResolver authenticates a public key it locally caches the key alongResolvers are configured withthe associated DDT node RLOC and XEID- prefix for future use. 8.1. XEID-prefix Delegation In orderdefault referral cache entries to these addresses. The root DDT nodes delegateXEID sub-prefixes2001:db8::/32 toits children, a parenttwo DDTnode signs its Map-Referrals. Every signed Map-Referral also includes the public keys associatednodes witheach childIP addresses 192.0.2.11 and 192.0.2.12. The DDTnode. Such a signature indicates that the parent node is delegating the specified XEID -prefixnodes for 2001:db8::/32 delegate 2001:db8:0100::/40 to agiven childDDTnode.Map Server with RLOC 192.0.2.101 ThesignatureDDT Map Server for 2001:db8:0100::/40 isalso authenticating the public keys associated with the children nodes, and authorizing themconfigured tobe used byallow ETRs to register thechildrensub-prefixes 2001:db8:0103::/48 and 2001:db8:0104::/48 The DDT nodesto provide origin authentication and integrity protectionforfurther delegations and mapping information of the XEID-prefix allocated2001:db8::/32 also delegate 2001:db8:0500::/40 tothe DDT node. Asaresult,DDT node with RLOC 192.0.2.201 The DDT node fora given XEID-prefix, a Map Resolver can form an authentication chain from a2001:db8:0500::/40 is further configuredtrust anchor (typically the root DDT node)tothe leaf nodes (Map Servers). Map Resolvers leverage this authentication chaindelegate 2001:db8:0500::/48 toverify the Map-Referral signatures while walking the DDT tree until they reacha DDT Map Serverauthoritative for the given XEID-prefix. 8.2. DDT node operation Upon receiving a Map-Request, the DDT node respondswitha Map- Referral as specified in Section 5. For every record present in the Map-Referral, theRLOC 192.0.2.211 and 2001:db8:0501::/48 to a DDTnode also includes the public keys associatedMap Server with RLOC 192.0.2.221 The DDT Map Server for 2001:db8:0500::/48 is configured to allow ETRs to register therecord's XEID-prefixsub-prefixes 2001:db8:0500:1::/64 andthe RLOCs of the children2001:db8:0500:2::/64 The DDTnodes. Each record contained in the Map-ReferralMap Server for 2001:db8:0501::/48 issigned usingconfigured to allow ETRs to register theDDT node's private key. 8.2.1. DDT public key revocationsub-prefixes 2001:db8:0501:8::/64 and 2001:db8:0501:9::/64 9.1. Lookup of 2001:db8:0103:1::1/128 Thenode that ownsfirst example shows apublic key can also revoke that public key. For instance ifDDT Map Resolver following aparentdelegation from the root to a DDT nodeadvertisesfollowed by another delegation to apublic keyDDT Map Server. ITR1 sends an Encapsulated Map-Request for 2001:db8:0103:1::1 to one of itschildconfigured (DDT) Map Resolvers. The DDT Map Resolver proceeds as follows: 1. Send 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 referral cache) Map-Referral for EID-prefix 2001:db8::/32, action code NODE-REFERRAL, RLOC set (192.0.2.11, 192.0.2.12) 3. Send DDT Map-Request to 192.0.2.11 or 192.0.2.12 4. Receive (and save in referral cache) Map-Referral for EID-prefix 2001:db8:0100::/40, action code MS-REFERRAL, RLOC set (192.0.2.101) 5. Send DDT Map-Request to 192.0.2.101; if thechildITR-originated Encapsulated Map-Request had a LISP-SEC signature, it is included 6. DDTnode canMap Server at 192.0.2.101 decapsulates the DDT Map-Request and forwards to alater time revoke that key. Sinceregistered site1 ETR for 2001:db8:0103::/48 7. DDTnodes do not keep track of theMapResolvers that query them, revocation is done inServer at 192.0.2.101 sends apull model, whereMap-Referral message for EID-prefix 2001:db8:0103::/48, action code MS-ACK to the DDT Map Resolver 8. DDT Map Resolveris informed ofreceives Map-Referral message and dequeues therevocationpending request for 2001:db8:0103:1::1 9. site1 ETR for 2001:db8:0103::/48 receives Map-Request forwarded by DDT Map Server and sends Map-Reply to ITR1 9.2. Lookup of 2001:db8:0501:8:4::1/128 The next example shows akey only when it queries the node that owns that key. If the parentthree-level delegation: root to first DDTis configurednode, first DDT node toadvertise this key, the parentsecond DDT node, second DDT nodemust also be signaledtoremove the keyDDT 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 fromthe records it advertisesthose forthe childITR1. The DDTnode; this is necessaryMap Resolver proceeds as follows: 1. Send DDT Map-Request (for 2001:db8:0501:8:4::1) toavoid further distributionone of therevoked key. To securely revoke a key, theroot DDTnode creates a new Recordnodes, 192.0.2.1 or 192.0.2.2 2. Receive (and save in referral cache) Map-Referral forthe associated XEID-prefix and locator, including the revoked key with the R bit set. TheEID-prefix 2001:db8::/32, action code NODE-REFERRAL, RLOC set (192.0.2.11, 192.0.2.12) 3. Send DDTnode must also include a signatureMap-Request to 192.0.2.11 or 192.0.2.12 4. Receive (and save inthe Record that covers this record; this is computed using the private key correspondingreferral cache) Map-Referral for EID-prefix 2001:db8:0500::/40, action code NODE-REFERRAL, RLOC set (192.0.2.201) 5. Send DDT Map-Request tothe key being revoked. Such a record is termed a "revocation record". By including this record192.0.2.201 6. Receive (and save inits Map- Referrals,referral cache) Map-Referral for EID-prefix 2001:db8:0501::/48, action code MS-REFERRAL, RLOC set (192.0.2.221) 7. Send DDT Map-Request to 192.0.2.221; if the ITR-originated Encapsulated Map-Request had a LISP-SEC signature, it is included 8. DDTnode informs queryingMapResolvers aboutServer at 192.0.2.221 decapsulates therevoked key. A digital signature computed withDDT Map-Request and forwards to arevoked key can only be usedregistered site5 ETR for 2001:db8:0501:8::/64 9. 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, toauthenticatetherevocation,DDT Map Resolver 10. DDT Map Resolver receives Map-Referral(MS-ACK) message andshould not be useddequeues the pending request for 2001:db8:0501:8:4::1 11. site5 ETR for 2001:db8:0501:8::/64 receives Map-Request forwarded by DDT Map Server and sends Map-Reply tovalidate any data. To preventITR2 9.3. Lookup of 2001:db8:0104:2::2/128 This example shows how acompromised key from revoking other valid keys,DDT Map Resolver uses agiven key can only be usedsaved referral cache entry to skip the referral process and go directly tosignarevocationDDT Map Server for a prefix thatspecific key; it cannot be usedis similar torevoke other keys. This preventsone previously requested. In this case, ITR1 uses theuse of a compromised key to revoke other valid keys as describedsame Map Resolver used in[RFC5011]. A revocation record must be advertisedexample Section 9.1. It sends an Encapsulated Map-Request fora period of time equal2001:db8:0104:2::2 toor greater than the TTL value of the Record that initially advertised the key, starting from the timethat (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 DDT Map-Request (for 2001:db8:0104:2::2) to 192.0.2.101; if theadvertisement of the key was stopped by removal from the parentITR-originated Encapsulated Map-Request had a LISP-SEC signature, it is included 2. DDTnode. 8.3.Map Serveroperation Similarat 192.0.2.101 decapsulates the DDT Map-Request and forwards to a registered site2 ETR for 2001:db8:0104::/48 3. DDTnode, aMap Serveris 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 asat 192.0.2.101 sends aresult they do not needMap-Referral message for EID-prefix 2001:db8:0104::/48, action code MS-ACK toinclude keys intheMap-Referrals they generate. 8.4.DDT Map Resolveroperation Upon receiving a Map-Referral, the4. DDT Map Resolvermust first verifyreceives Map-Referral(MS-ACK) and dequeues thesignature(s) by using a trust anchor, orpending request for 2001:db8:0104:2::2 5. site2 ETR for 2001:db8:0104::/48 receives Map-Request and sends Map-Reply to ITR1 9.4. Lookup of 2001:db8:0500:2:4::1/128 This example shows how apreviously authenticated public key, associated with theDDTnode sending the Map-Referral. If multiple authenticated keys are associated withMap Resolver uses a saved referral cache entry to start the referral process at a non-root, intermediate DDT nodesendingfor a prefix that is similar to one previously requested. In thisMap-Referral, the Key Tag field ofcase, ITR2 asks thesignature can besame Map Resolver used in example Section 9.2. It sends an Encapsulated Map-Request for 2001:db8:0500:2:4::1 toselect the right public keythat (DDT) Map Resolver, which finds a NODE- REFERRAL cache entry forverifying the signature. If the key tag matches more than one key associated2001:db8:0500::/40 withthatRLOC set (192.0.2.201). It proceeds as follows: 1. Send DDTnode, the Map Resolver must try verifyingMap-Request (for 2001:db8:0500:2:4::1) to 192.0.2.201 2. Receive (and save in referral cache) Map-Referral for EID-prefix 2001:db8:0500::/48, action code MS-REFERRAL, RLOC set (192.0.2.211) 3. Send DDT Map-Request to 192.0.2.211; if thesignature with all matching keys. For every matching key thatITR-originated Encapsulated Map-Request had a LISP-SEC signature, it isfound theincluded 4. DDT MapResolver must also verify thatServer at 192.0.2.211 decapsulates thekey is authoritativeDDT Map-Request and forwards to a registered site4 ETR forthe XEID-prefix in the Map-Referral record. If such2001:db8:0500:2::/64 5. DDT Map Server at 192.0.2.211 sends akey is found,Map-Referral message for EID-prefix 2001:db8:0500:2::/64, action code MS-ACK to the DDT Map Resolvermust use it to verify the associated signature in the record. If no matching key is found, or if none of6. DDT Map Resolver receives Map-Referral(MS-ACK) and dequeues thematching keys is authoritativepending request forthe XEID-prefix in the Map-Referral record, or if such a key is found but the signature is not valid the Map-Referral record is considered corrupted2001:db8:0500:2:4::1 7. site4 ETR for 2001:db8:0500:2::/64 receives Map-Request andmust be discarded. This may be duesends Map-Reply toexpired keys. The Map Resolver can try other siblingsITR2 9.5. Lookup ofthis node if there is an alternative node authoritative2001:db8:0500::1/128 (non-existent EID) This example uses the cached MS-REFERRAL for 2001:db8:0500::/48 learned above to start thesame prefix. If not,lookup process at the DDT Map-Server at 192.0.2.211. The DDT Map Resolvercan query theproceeds as follows: 1. Send DDTnode's parent to retrieve a valid key. It is good practice to use a counter or timerMap-Request (for 2001:db8:0500::1) toavoid repeating this process192.0.2.211; if theresolver cannot verify the signature after several trials. Once the signatureITR-originated Encapsulated Map-Request had a LISP-SEC signature, it is included 2. DDT Map Server at 192.0.2.211, which isverified,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 MapResolver has verified the XEID-prefix delegation inResolver. The prefix 2001:db8:0500::/64 is used because it is theMap-Referral, and authenticatedleast-specific prefix that does match thepublic keysrequested EID, but does not match one ofthe childrenconfigured delegations (2001:db8:0500:1::/64 and 2001:db8:0500:2::/64). 3. DDTnodes. TheMap Resolvermust add these keys toreceives theauthenticated keys associated with each child DDT node and XEID-prefix. These keys are considered validdelegation, adds a negative referral cache entry for 2001:db8:0500::/64, dequeues theduration specified in the record's TTL field. 9. Open Issuespending request for 2001:db8:0500::1, andConsiderations There arereturns anumber of issues with the organization ofnegative Map-Reply to ITR2. 10. Securing themappingdatabasethat need further investigation. Among these are: o Unlike in LISP-ALT (see [RFC6836]), DDT does not currently define a mechanism for propagating ETR-to-Map Server registration state.and message exchanges Thisrequiressection specifies the DDTMap Servers to suppress returning negative Map- Reply messages for defined but unregistered XEID-prefixes to avoid losssecurity architecture that provides data origin authentication, data integrity protection, and XEID- prefix delegation. Global XEID-prefix authorization is out ofconnectivity during partial ETR registration failures. Suppressing these messages may cause a delay for an ITR obtaining a mapping entry when such a failurethe scope of this document. Each DDT node isoccurring. o Defining an interface to implement interconnection and/or interoperabilityconfigured with one or more public/private key pair(s) that are used to digitally sign referral records for XEID- prefix(es) that the DDT node is authoritative for. In othermapping databases, such as LISP+ALT. o o Additionalwords, each public/private keystructures for usepair is associated withLISP-DDT, such as to support additional EID formats as defined in [LCAF]. o o Authenticationthe combination ofdelegations betweena DDT node and the XEID-prefix that it is authoritative for. Every DDT node is also configured with the public keys of its children DDT nodes.o PossibilityBy including public keys ofa new, more general format fortarget child DDT nodes in the Map-Referralmessages to facilitaterecords, and signing each record with theuseDDT node's private key, a DDT node can securely delegate sub-prefixes ofLISP-DDTits authoritative XEID-prefixes to its children DDT nodes. Map Resolvers are configured withadditional DBID/ IID/EID combinations. Currently-defined packet formats should be consideredone or more trusted public keys referred tobe preliminary and provisional until this issue has received greater attention. o o Management ofas trust anchors. Trust anchors are used to authenticate the DDT security infrastructure. MapResolver referral cache, in particular, detecting and removing outdated entries. The authors expect that experimentation onResolvers can discover a DDT node's public key either by having it configured as a trust anchor, or by obtaining it from theLISP pilot network will help answer open questions surrounding these and other issues. 10. IANA Considerations This document makes no requestnode'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, theIANA. 11. Security Considerations Section 8 describesroot DDT node 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 DDTsecurity architecture that provides data origin authentication, data integrity protection,node RLOC and XEID- prefix for future use. 10.1. XEID-prefixdelegation within theDelegation In order to delegate XEID sub-prefixes to its children, a parent DDTInfrastructure. Global XEID-prefix authorization is beyondnode signs its Map-Referrals. Every signed Map-Referral also includes thescope of this document, butpublic keys associated with each child DDT node. Such a signature indicates that theSIDR working group [RFC6480]parent node isdeveloping an infrastructuredelegating the specified XEID -prefix tosupport improved security of Internet routing. Further worka given child DDT node. The signature isrequired to determine if SIDR'salso authenticating the publickey infrastructure (PKI) andkeys associated with thedistributed repository system it uses for storingchildren nodes, anddisseminating PKI data objects may alsoauthorizing them to be used by the children DDTdevicesnodes toverifiably assert thatprovide 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 theyarereach a Map Server authoritative for thelegitimate holders ofgiven XEID-prefix. 10.2. DDT node operation Upon receiving aset of XEID prefixes.Map-Request, the DDTsecurity and [LISP-SEC] complement each othernode responds with a Map- Referral as specified in Section 7. For every record present insecuringtheDDT infrastructure, Map-Referral messages and the Map-Request/Map-Reply protocol. In addition LISP-SEC can useMap-Referral, the DDT node also includes the publickey infrastructure to securekeys associated with thetransportrecord's XEID-prefix and the RLOCs ofLISP-SEC key material (the One-Time Key) from a Map-Resolver tothecorresponding Map-Server. For this reason, when LISP-SEC is deployedchildren DDT nodes. Each record contained inconjunction with a LISP-DDT mapping database andthepath between Map-Resolver and Map- Server needs to be protected, DDT security should be enabled as well. 12. References 12.1. Normative References [LCAF] Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical Address Format", <http://www.ietf.org/id/draft-ietf-lisp-lcaf>. [RFC1035] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, November 1987, <http://www.rfc-editor.org/info/rfc1035>. [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- Hashing for Message Authentication", RFC 2104, DOI 10.17487/RFC2104, February 1997, <http://www.rfc-editor.org/info/rfc2104>. [RFC4634] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms (SHA and HMAC-SHA)", RFC 4634, DOI 10.17487/RFC4634, July 2006, <http://www.rfc-editor.org/info/rfc4634>. [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>. [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>. 12.2. Informative References [LISP-SEC] Maino, F., Ermagan, V., Cabellos, A., and D. Sanchez, "LISP-Security", <http://www.ietf.org/id/draft-ietf-lisp-sec>. [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>. [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>. Appendix A. AcknowledgmentsMap-Referral is signed using the DDT node's private key. 10.2.1. DDT public key revocation Theauthors withnode that owns a public key can also revoke that public key. For instance if a parent 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 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 is configured toexpress their thanksadvertise this key, the parent node must also be signaled toDamien Saucez, Lorand Jakab, Olivier Bonaventure, Albert Cabellos-Asparicio, and Florin Corasremove the key from the records it advertises forwork on LISP-TREE and LISP iterable mappings that inspiredthehierarchical database structurechild 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 andlookup iteration approach describedlocator, including the revoked key with the R bit set. The DDT node must also include a signature in the Record that covers thisdocument. Thanks also gorecord; 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 toDino Farinacciauthenticate the revocation, andIsidor Kouvelas for their implementation work;SHOULD NOT be used toSelina Heimlich and Srin Subramanian for testing;validate any data. To prevent a compromised key from revoking other valid keys, a given key can only be used toFabio Mainosign a revocation forwork on security processing; andthat specific key; it cannot be used toJob Snijders, Glen Wiley, Neel Goyal, and Mike Gibbs for work on operational considerations and initial deploymentrevoke other keys. This prevents the use of aprototype database infrastructure. Special thanks gocompromised key toJesper Skriver, Andrew Partan, and Noel Chiappa; all of whom have participatedrevoke other valid keys as described in(and put up with) seemingly endless hours[RFC5011]. A revocation record must be advertised for a period ofdiscussiontime equal to or greater than the TTL value ofmapping database ideas, concepts, and issues. Appendix B. 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 | +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |the RecordTTL | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ R | Referral Count| EID mask-len | ACT |A|I| Reserved | e +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ c |SigCnt |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. MapVersion Number | EID-AFI | o +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ r | EID-prefix ... | d +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | /| Priority | Weight | M Priority | M Weight | | L +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | o | Unused Flags |R| Loc/LCAF-AFI | | c +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | \| Locator ... | +-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ACT: The "action"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 they 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 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 of themapping recordsignature can be used to select the right 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 verifying the signature with all matching keys. For every matching key that is found the Map Resolver must also verify that the key is authoritative for the XEID-prefix inathe Map-Referralmessage encodes 6 action types. The values forrecord. If such a key is found, the Map Resolver must use it to verify the associated signature in the record. If no matching key is found, or if none of theaction types are: NODE-REFERRAL (0): Sent by a DDT node with a child delegation, whichmatching keys is authoritative for theEID. MS-REFERRAL (1): Sent by a DDT node that has information about Map Server(s) forXEID-prefix in theEIDMap-Referral record, or if such a key is found butitthe signature is notone ofvalid the Map-Referral record is considered corrupted and must be discarded. This may be due to expired keys. The MapServers listed, i.e.Resolver can try other siblings of this node if there is an alternative node authoritative for theDDT-Node sendingsame prefix. If not, thereferral is not aMapServer. MS-ACK (2): Sent by aResolver can query the DDTMap Server that has onenode's parent to retrieve a valid key. It is good practice to use a counter ormore ETR registered fortimer to avoid repeating this process if theEID. MS-NOT-REGISTERED (3): Sent by a DDT Map Server thatresolver cannot verify the signature after several trials. Once the signature isconfigured forverified, theEID-prefix, but for which no ETRs are registered. DELEGATION-HOLE (4): Sent by an intermediate DDT node with authoritative configuration coveringMap Resolver has verified therequested EID but without any childXEID-prefix delegationforin theEID. Also sent by aMap-Referral, and authenticated the public keys of the children DDT nodes. The MapServer with authoritative configuration coveringResolver must add these keys to therequested EID, but for which no specific site ETR is configured. NOT-AUTHORITATIVE (5): Sent by aauthenticated keys associated with each child DDT nodethat does not have authoritative configurationand XEID-prefix. These keys are considered valid for therequested EID. The EID-prefix returned MUST be the original requested EID andduration specified in the record's TTLMUST be set to 0. However, if such a DDT node hasfield. 11. Open Issues and Considerations There are achild delegation coveringnumber of issues with therequested EID, it may chooseorganization of the mapping database that need further investigation. Among these are: o Defining an interface toreturn NODE-REFERRAL or MS-REFERRALimplement interconnection and/or interoperability with other mapping databases, such asappropriate. A DDT Map ServerLISP+ALT. o Additional key structures for use withsite information may chooseLISP-DDT, such as toreturn of type MS-ACK or MS-NOT- REGISTEREDsupport additional EID formats asappropriate. Incomplete: The "I" bit indicates that a DDT node's referral-set of locators is incomplete and the receiverdefined in [I-D.ietf-lisp-lcaf] o Management ofthis message should not cachethereferral. ADDTsets the "incomplete" flag, the TTL, and the Action Type 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 onMapServer originatedResolver referralof MS-REFERRALcache, in particular, detecting andMS-NOT-REGISTERED types depend on whether the Map Server has the full peer Map Server configuration forremoving outdated entries. Operational experience will help answer open questions surrounding these and other issues. 12. IANA Considerations This document makes no request of thesame prefixIANA. 13. Security Considerations Section 10 describes a DDT security architecture that provides data origin authentication, data integrity protection, andhas encoded the information inXEID-prefix delegation within themapping record. Incomplete bitDDT Infrastructure. Global XEID-prefix authorization isnot set when the Map Server has encoded the information, which means the referral-set includes allbeyond theRLOCsscope ofall Map Servers that servethis document, but theprefix. ItSIDR working group [RFC6480] isset when the Map Server has not encoded the Map Server set information. SigCnt: Indicates the numberdeveloping an infrastructure to support improved security ofsignatures (sig section) present in the Record. If SigCntInternet routing. Further work islarger than 0,required to determine if SIDR's public key infrastructure (PKI) and thesignature information captured in a sig section as described in Appendix B.1 willdistributed repository system it uses for storing and disseminating PKI data objects may also beappendedused by DDT devices tothe end of the record. The number of sig sections at the end of the Record must match the SigCnt. Loc/LCAF-AFI: If this is a Loc AFI, keysverifiably assert that they arenot included intherecord. If this islegitimate holders of aLCAF AFI, the contentsset of XEID prefixes. This document specifies how DDT security and LISP-SEC ([I-D.ietf-lisp-sec]) complement one another to secure theLCAF depend onDDT infrastructure, Map-Referral messages, and theType field ofMap-Request/Map-Reply protocols. In theLCAF. Security material are stored in LCAF Type 11.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 DDTnodes and Map Serversto provide similar levels of protection. LISP-SEC can usethis LCAF Typethe DDT public key infrastructure to secure the transport of LISP-SEC key material (the One-Time Key) from a Map- Resolver toinclude public keys associatedthe corresponding Map-Server. For this reason, when LISP-SEC is deployed in conjunction withtheir Child DDT nodes foraXEID-prefix referral record. LCAF typesLISP-DDT mapping database andformats are defined in [LCAF]. Allthefield descriptions are equivalentpath between Map-Resolver and Map-Server needs tothose in the Map-Reply message,be protected, DDT security should be enabled asdefinedwell. 14. References 14.1. Normative References [RFC2119] Bradner, S., "Key words for use inLISP [RFC6830]. Note, though, that the setRFCs 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>. 14.2. Informative References [I-D.ietf-lisp-lcaf] Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical Address Format (LCAF)", draft-ietf-lisp-lcaf-12 (work in progress), March 2016. [I-D.ietf-lisp-sec] Maino, F., Ermagan, V., Cabellos-Aparicio, A., and D. Saucez, "LISP-Security (LISP-SEC)", draft-ietf-lisp-sec-09 (work in progress), October 2015. [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>. [RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1", RFC 3447, DOI 10.17487/RFC3447, February 2003, <http://www.rfc-editor.org/info/rfc3447>. [RFC5011] StJohns, M., "Automated Updates ofRLOCs correspondDNS 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>. Appendix A. Acknowledgments The authors with tothe DDT nodeexpress their thanks tobe queried as a result of the referral not the RLOCs for an actual EID-to-RLOC mapping. B.1. SIG section If SigCnt field in the Map-Referral is not 0, the signature information is included at the end of captured in a sig section as described below. SigCnt counts the number of sig sections that appear at the end of the Record. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /| 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 TTLDamien Saucez, Lorand Jakab, Olivier Bonaventure, Albert Cabellos-Asparicio, and Florin Coras forthis recordwork on LISP-TREE and LISP iterable mappings thatis covered byinspired thesignature. Record TTL ishierarchical database structure and lookup iteration approach described inminutes. Key Tag: An identifier to specify which key is used forthissignature if more than one valid key existsdocument. Thanks also go to Dino Farinacci and Isidor Kouvelas forthe signing DDT node. Sig Length: The length of the Signature field. Sig-Algorithm: The identifier of the cryptographic algorithm usedtheir implementation work; to Selina Heimlich and Srin Subramanian forthe signature. Default value is RSA-SHA1. Reserved: This field must be settesting; to0Fabio Maino for work ontransmitsecurity processing; andmust be ignored on receipt. Signature Expirationto Job Snijders, Glen Wiley, Neel Goyal, andInception: Specify the validity periodMike Gibbs forthe signature. Each specify a datework on operational considerations andtime in the forminitial deployment of a32-bit unsigned numberprototype database infrastructure. Special thanks go to Jesper Skriver, Andrew Partan, and Noel Chiappa; all ofseconds elapsed since 1 January 1970 00:00:00 UTC, ignoring leap seconds,whom have participated innetwork byte order. Signature: Contains the cryptographic signature that covers the entire record. The Record TTL and the sig fields are set to zero for the purpose(and put up with) seemingly endless hours ofcomputing the Signature Appendix C. Encapsulated Control 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ "D" is the "DDT-originated" flag and is set by a DDT client to indicate that the receiver candiscussion of mapping database ideas, concepts, andshould return Map-Referral messages as appropriate.issues. Authors' Addresses Vince Fuller Email: vaf@vaf.net 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