Network Working Group | M. Boucadair |
Internet-Draft | C. Jacquenet |
Intended status: Experimental | France Telecom |
Expires: March 20, 2016 | September 17, 2015 |
Triggered LISP Map-Request for Inter-Domain LISP Deployments
draft-boucadair-lisp-triggered-map-request-00
It is commonly acknowledged that one of the issues raised by the current Locator/ID Separation Protocol (LISP) design is that some packets are likely to be lost in specific situations such as the absence of a mapping entry in the mapping cache maintained by an ITR. This issue is usually referred to as the "first packet loss" problem.
This document specifies a new LISP capability called Triggered Map-Request which aims at addressing the "first packet loss" issue. Also, it proposes to extend the LISP mapping entries with names instead of achieving RLOC resolution based upon EID prefixes only.
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 RFC 2119 [RFC2119].
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 on March 20, 2016.
Copyright (c) 2015 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.
Locator/ID Separation Protocol (LISP, [RFC6830] ) operation relies upon a mapping mechanism that is used by ingress/egress Tunnel Routers (xTR) to forward traffic over the LISP network. It is commonly acknowledged that some packets are likely to be lost in some specific situations, such as the absence of a mapping entry in the mapping cache maintained by an ITR. This problem is usually denoted as the "first packet loss" issue.
Deploying LISP at the scale of the Internet heavily relies upon the reliability of the LISP Mapping service. In particular, LISP deployments at large scale must not degrade the level of quality as currently provided by several decades of inter-domain routing practices.
This document describes a solution to prepare the local mapping service by anticipating the process of retrieving appropriate mapping entries by ITRs of a LISP-enabled domain before a packet is actually received by one of these ITRs. The LISP resolution result may remain valid until a Map-Request reaches the ultimate ETR.
In addition to better accommodating the risk raised by the "first packet loss" issue, this proposal reduces the delivery time that is likely to be exacerbated by the two indirection levels (DNS and LISP) together with the delay between the DNS resolution and the LISP resolution. An example is shown in Section 2 for illustration purposes.
This document focuses on the sole LISP inter-domain use case. As such, the applicability of the proposed solution to other LISP uses cases is out of the scope of this document.
In addition to the terms defined in [RFC6830] and [RFC6833], this document makes uses of the following terms:
In order to further illustrate the issue related to the processing of the first packet, let's consider this example in which Host1 wants to communicate with a remote Host2, identified with "host2.xyz.example.com". To do so, the following steps need to be followed:
The rationale adopted by this document is that, instead of waiting for a packet to be received by an ITR for issuing a Map-Request message, the request can be triggered by other events so that the local mapping cache is ready to process a packet that needs to be forwarded outside a LISP leaf domain. This mode is called Triggered Map-Request.
Triggered Map-Request has the same message format as a normal Map-Request: that is, an external entity receiving a triggered Map-Request or a normal Map-Request won't be able to make the difference between the two messages. Whether the Map-Request is triggered by an external entity or carried by a packet that needs to be forwarded outside a LISP leaf domain reflects a context that is local to the LISP domain that originates the Map-Request message.
Triggered Map-Request is meant to anticipate the receipt of a packet that would have to be forwarded outside so that the ITR installs the required state and proceed with the forwarding of the packet over a LISP infrastructure accordingly.
An example of Triggered Map-Request is shown in Figure 1. This example does not explicitly identify which entity has triggered the Map-Request in Step (a).
+--------+ +-------+ +--------+ +-------+ | Host | | ITR | | MR | | ETR | +--------+ +-------+ +--------+ +-------+ | | | | | (a)Map-Request--->|-(b)Map-Request-->| | | |<-(c)Map-Response-| | |src=s_EID st=d_EID| | | |--------(1)---------->|src=RLOC_itr dst=RLOC_etr| | |==(2)==Encapsulated Packet======>| | | | | | | |src=s_EID st=d_EID| | |--------------------->|src=RLOC_itr dst=RLOC_etr| | |======Encapsulated Packet=======>| | | |
Figure 1: Triggered Map-Request: A Flow Example
Figure 2 illustrates the changes that are required to the Map-Request message in order to support names as EID identifiers. The design relies upon the definition of one of the reserved bits for this purpose. This bit is called the N-bit. When set (name-as-an-eid bit), this is an indication that the EID-Prefix field must be interpreted as a name.
OLD: 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=1 |A|M|P|S|p|s| Reserved | IRC | Record Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce . . . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . . Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source-EID-AFI | Source EID Address ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITR-RLOC-AFI 1 | ITR-RLOC Address 1 ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITR-RLOC-AFI n | ITR-RLOC Address n ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Reserved | EID mask-len | EID-Prefix-AFI | Rec +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ | EID-Prefix ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Map-Reply Record ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NEW: 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=1 |A|M|P|S|p|s|N| Reserved | IRC | Record Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce . . . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . . Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source-EID-AFI | Source EID Address ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITR-RLOC-AFI 1 | ITR-RLOC Address 1 ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITR-RLOC-AFI n | ITR-RLOC Address n ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Reserved | Name-Len | EID-Prefix-AFI | Rec +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ | Name ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Map-Reply Record ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Name as an EID
The "Reserved" bits MUST each be set to zero and MUST be ignored upon receipt.
When this N-bit is set, the EID-Prefix-AFI MUST be set to zeros and MUST be ignored upon receipt. Also, EID mask-len ( Name-Len) MUST indicate the length of the enclosed "Name". Name is a domain name (as per Section 3.1 of [RFC1035]) that contains one or more labels. The Name encoding MUST follow the Name Syntax defined in [RFC1035][RFC1123][RFC2181] and are represented in ASCII form.
The solution relies upon an extension to the DNS resolver (and possibly a management platform) to trigger the sending of Map-Request messages for a given destination EID (that is eventually encoded as a name or an IP address/prefix) by all the ITRs deployed in a given LISP-enabled domain.
This document assumes that in the context of inter-domain LISP deployment use cases, interconnection between Mapping Systems is required for the sake of global reachability. Furthermore, these Mapping Systems are supposed to deploy massive cache systems so that they can service resolution requests as close to the leaf LISP domain as possible, rather than forwarding the Map-Request until it reaches the ultimate ETR. Furthermore, some service innovation can be encouraged by coupling DNS/LISP Mapping services.
The proposed procedure also takes into account CDN environments, at the benefit of relaxing the constraint on the traffic increase on interconnection links, thereby minimizing the need for soliciting inter-domain LISP forwarding.
The solution also acknowledges that DNS replies can be policy-based. In particular, this document does not interfere with DNS policies that are enforced on a subnet basis (e.g., [I-D.ietf-dnsop-edns-client-subnet]). When the Mapping System has to undertake a DNS resolution, it will supply the same subnet value as the one that would be indicated by a host connected to the leaf LISP network. Doing so ensures that the address that will be returned to the requesting host during the DNS resolution will match a mapping entry that will be retrieved when Triggered Map-Request operation is enabled.
The detailed procedure to be implemented to minimize the risk of the "first packet loss" issue is specified hereafter:
+--------+ +--------+ | Host | |Resolver| +--------+ +--------+ | | |Query |Query |---------->|----> | | Triggered |Response |(a)Query->|-(b)Map-Request-->| |<----------| |<-(c)Map-Response-| | | | | +-------+ +--------+ +-------+ | | ITR | | MR | | ETR | | +-------+ +--------+ +-------+ | | | |src=s_EID st=d_EID| | |--------(1)---------->|src=RLOC_itr dst=RLOC_etr| | |==(2)==Encapsulated Packet======>| | | | | | | |src=s_EID st=d_EID| | |--------------------->|src=RLOC_itr dst=RLOC_etr| | |======Encapsulated Packet=======>| | | |
Figure 3: Processing Triggered Map-Request: Close to the Stub-resolver
+--------+ +--------+ +---- | Host | |Resolver| ... |Resolver +--------+ +--------+ +------- | | | |Query |Query | |---------->|-----..------------->| | | Response| | |<-----..-------------| |Response | |<--Response--| |<----------| | Triggered | |--Map-Request->| | |<-Map-Response>| | | | | +-------+ +--------+ +-------+ | | ITR | | MR | | ETR | | +-------+ +--------+ +-------+ | | | |src=s_EID st=d_EID| | |------------------->|src=RLOC_itr dst=RLOC_etr| | |======Encapsulated Packet===>| | | | | | | |src=s_EID st=d_EID| | |------------------->|src=RLOC_itr dst=RLOC_etr| | |======Encapsulated Packet===>| | | |
Figure 4: Processing Triggered Map-Request: Far from to the Stub-Resolver
+--------+ +--------+ | Host | |Resolver| +--------+ +--------+ | | |Query |Query |------->|----> | | |Response|Map-Request->|-(b)Map-Request-->| |<-------| |<-(c)Map-Response-| | | | | +-------+ +--------+ +-------+ | | ITR | | MR | | ETR | | +-------+ +--------+ +-------+ | | | |src=s_EID st=d_EID| | |--------(1)---------->|src=RLOC_itr dst=RLOC_etr| | |==(2)==Encapsulated Packet======>| | | | | | | |src=s_EID st=d_EID| | |--------------------->|src=RLOC_itr dst=RLOC_etr| | |======Encapsulated Packet=======>| | | |
Figure 5: Processing Triggered Map-Request: Close to the Stub-Resolver
+--------+ +--------+ +---- | Host | |Resolver| ... |Resolver +--------+ +--------+ +------- | | | |Query |Query | |---------->|-----..------------->| | | Response| | |<-----..-------------| |Response | |<-Map-Request-| |<----------| | Triggered | |--Map-Request->| | |<-Map-Response-| | | | | +-------+ +--------+ +-------+ | | ITR | | MR | | ETR | | +-------+ +--------+ +-------+ | | | |src=s_EID st=d_EID| | |------------------->|src=RLOC_itr dst=RLOC_etr| | |======Encapsulated Packet===>| | | | | | | |src=s_EID st=d_EID| | |------------------->|src=RLOC_itr dst=RLOC_etr| | |======Encapsulated Packet===>| | | |
Figure 6: Processing Triggered Map-Request: Far from to the Stub-resolver
Security considerations discussed in [RFC6830] and [RFC6833] should be taken into account.
To be completed.
This work is partly funded by ANR LISP-Lab project #ANR-13-INFR-009-X.
[RFC1035] | Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, November 1987. |
[RFC1123] | Braden, R., "Requirements for Internet Hosts - Application and Support", STD 3, RFC 1123, DOI 10.17487/RFC1123, October 1989. |
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC2181] | Elz, R. and R. Bush, "Clarifications to the DNS Specification", RFC 2181, DOI 10.17487/RFC2181, July 1997. |
[RFC6830] | Farinacci, D., Fuller, V., Meyer, D. and D. Lewis, "The Locator/ID Separation Protocol (LISP)", RFC 6830, DOI 10.17487/RFC6830, January 2013. |
[RFC6833] | Fuller, V. and D. Farinacci, "Locator/ID Separation Protocol (LISP) Map-Server Interface", RFC 6833, DOI 10.17487/RFC6833, January 2013. |
[I-D.ietf-dnsop-edns-client-subnet] | Contavalli, C., Gaast, W., Lawrence, D. and W. Kumari, "Client Subnet in DNS Queries", Internet-Draft draft-ietf-dnsop-edns-client-subnet-03, August 2015. |
[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. |