idnits 2.17.1 draft-ietf-lisp-mn-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 11 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 28, 2017) is 2545 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 3344 (Obsoleted by RFC 5944) ** Obsolete normative reference: RFC 3775 (Obsoleted by RFC 6275) ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) ** Obsolete normative reference: RFC 6830 (Obsoleted by RFC 9300, RFC 9301) ** Obsolete normative reference: RFC 6833 (Obsoleted by RFC 9301) ** Obsolete normative reference: RFC 6834 (Obsoleted by RFC 9302) == Outdated reference: A later version (-19) exists of draft-ermagan-lisp-nat-traversal-12 Summary: 6 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group D. Farinacci 3 Internet-Draft lispers.net 4 Intended status: Experimental D. Lewis 5 Expires: October 30, 2017 cisco Systems 6 D. Meyer 7 1-4-5.net 8 C. White 9 Logical Elegance, LLC. 10 April 28, 2017 12 LISP Mobile Node 13 draft-ietf-lisp-mn-00 15 Abstract 17 This document describes how a lightweight version of LISP's ITR/ETR 18 functionality can be used to provide seamless mobility to a mobile 19 node. The LISP Mobile Node design described in this document uses 20 standard LISP functionality to provide scalable mobility for LISP 21 mobile nodes. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on October 30, 2017. 40 Copyright Notice 42 Copyright (c) 2017 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 58 2. Definition of Terms . . . . . . . . . . . . . . . . . . . . . 4 59 3. Design Overview . . . . . . . . . . . . . . . . . . . . . . . 6 60 4. Design Requirements . . . . . . . . . . . . . . . . . . . . . 6 61 4.1. User Requirements . . . . . . . . . . . . . . . . . . . . 6 62 4.2. Network Requirements . . . . . . . . . . . . . . . . . . 7 63 5. LISP Mobile Node Operation . . . . . . . . . . . . . . . . . 7 64 5.1. Addressing Architecture . . . . . . . . . . . . . . . . . 8 65 5.2. Control Plane Operation . . . . . . . . . . . . . . . . . 8 66 5.3. Data Plane Operation . . . . . . . . . . . . . . . . . . 9 67 6. Updating Remote Caches . . . . . . . . . . . . . . . . . . . 10 68 7. Protocol Operation . . . . . . . . . . . . . . . . . . . . . 10 69 7.1. LISP Mobile Node to a Stationary Node in a LISP Site . . 11 70 7.1.1. Handling Unidirectional Traffic . . . . . . . . . . . 11 71 7.2. LISP Mobile Node to a Non-LISP Stationary Node . . . . . 12 72 7.3. LISP Mobile Node to LISP Mobile Node . . . . . . . . . . 12 73 7.3.1. One Mobile Node is Roaming . . . . . . . . . . . . . 12 74 7.4. Non-LISP Site to a LISP Mobile Node . . . . . . . . . . . 13 75 7.5. LISP Site to LISP Mobile Node . . . . . . . . . . . . . . 13 76 8. Multicast and Mobility . . . . . . . . . . . . . . . . . . . 14 77 9. RLOC Considerations . . . . . . . . . . . . . . . . . . . . . 15 78 9.1. Mobile Node's RLOC is an EID . . . . . . . . . . . . . . 15 79 10. LISP Mobile Nodes behind NAT Devices . . . . . . . . . . . . 17 80 11. Mobility Example . . . . . . . . . . . . . . . . . . . . . . 17 81 11.1. Provisioning . . . . . . . . . . . . . . . . . . . . . . 17 82 11.2. Registration . . . . . . . . . . . . . . . . . . . . . . 18 83 12. LISP Implementation in a Mobile Node . . . . . . . . . . . . 18 84 13. Security Considerations . . . . . . . . . . . . . . . . . . . 19 85 13.1. Proxy ETR Hijacking . . . . . . . . . . . . . . . . . . 20 86 13.2. LISP Mobile Node using an EID as its RLOC . . . . . . . 20 87 14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 88 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 89 15.1. Normative References . . . . . . . . . . . . . . . . . . 20 90 15.2. Informative References . . . . . . . . . . . . . . . . . 21 91 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 21 92 Appendix B. Document Change Log . . . . . . . . . . . . . . . . 22 93 B.1. Changes to draft-ietf-lisp-mn-00.txt . . . . . . . . . . 22 94 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 96 1. Introduction 98 The Locator/ID Separation Protocol (LISP) [RFC6830] specifies a 99 design and mechanism for replacing the addresses currently used in 100 the Internet with two separate name spaces: Endpoint Identifiers 101 (EIDs), used within sites, and Routing Locators (RLOCs), used by the 102 transit networks that make up the Internet infrastructure. To 103 achieve this separation, LISP defines protocol mechanisms for mapping 104 from EIDs to RLOCs. The mapping infrastructure is comprised of LISP 105 Map-Servers and Map-Resolvers [RFC6833] and is tied together with 106 LISP+ALT [RFC6836]. 108 This document specifies the behavior of a new LISP network element: 109 the LISP Mobile Node. The LISP Mobile Node implements a subset of 110 the standard Ingress Tunnel Router and Egress Tunnel Router 111 functionality [RFC6830]. Design goals for the LISP mobility design 112 include: 114 o Allowing TCP connections to stay alive while roaming. 116 o Allowing the mobile node to communicate with other mobile nodes 117 while either or both are roaming. 119 o Allowing the mobile node to multi-home (i.e., use multiple 120 interfaces concurrently). 122 o Allowing the mobile node to be a server. That is, any mobile node 123 or stationary node can find and connect to a mobile node as a 124 server. 126 o Providing shortest path bidirectional data paths between a mobile 127 node and any other stationary or mobile node. 129 o Not requiring fine-grained routes in the core network to support 130 mobility. 132 o Not requiring a home-agent, foreign agent or other data plane 133 network elements to support mobility. Note since the LISP mobile 134 node design does not require these data plane elements, there is 135 no triangle routing of data packets as is found in Mobile IP 136 [RFC3344]. 138 o Not requiring new IPv6 extension headers to avoid triangle routing 139 [RFC3775]. 141 The LISP Mobile Node design requires the use of the LISP Map-Server 142 [RFC6836] and LISP Interworking [RFC6832] technology to allow a LISP 143 mobile node to roam and to be discovered in an efficient and scalable 144 manner. The use of Map-Server technology is discussed further in 145 Section 5. 147 The protocol mechanisms described in this document apply those cases 148 in which a node's IP address changes frequently. For example, when a 149 mobile node roams, it is typically assigned a new IP address. 150 Similarly, a broadband subscriber may have its address change 151 frequently; as such, a broadband subscriber can use the LISP Mobile 152 Node mechanisms defined in this specification. 154 The remainder of this document is organized as follows: Section 2 155 defines the terms used in this document. Section 3 provides a 156 overview of salient features of the LISP Mobile Node design, and 157 Section 4 describes design requirements for a LISP Mobile Node. 158 Section 5 provides the detail of LISP Mobile Node data and control 159 plane operation, and Section 6 discusses options for updating remote 160 caches in the presence of unidirectional traffic flows. Section 7 161 specifies how the LISP Mobile Node protocol operates. Section 8 162 specifies multicast operation for LISP mobile nodes. Section 9 and 163 Section 12 outline other considerations for the LISP-MN design and 164 implementation. Finally, Section 13 outlines the security 165 considerations for a LISP mobile node. 167 2. Definition of Terms 169 This section defines the terms used in this document. 171 Stationary Node (SN): A non-mobile node who's IP address changes 172 infrequently. That is, its IP address does not change as 173 frequently as a fast roaming mobile hand-set or a broadband 174 connection and therefore the EID to RLOC mapping is relatively 175 static. 177 Endpoint ID (EID): This is the traditional LISP EID [RFC6830], and 178 is the address that a LISP mobile node uses as its address for 179 transport connections. A LISP mobile node never changes its EID, 180 which is typically a /32 or /128 prefix and is assigned to a 181 loopback interface. Note that the mobile node can have multiple 182 EIDs, and these EIDs can be from different address families. 184 Routing Locator (RLOC): This is the traditional LISP RLOC, and is in 185 general a routable address that can be used to reach a mobile 186 node. Note that there are cases in which an mobile node may 187 receive an address that it thinks is an RLOC (perhaps via DHCP) 188 which is either an EID or an RFC 1918 address [RFC1918]. This 189 could happen if, for example, if the mobile node roams into a LISP 190 domain or a domain behind a Network Address Translator (NAT)) See 191 Section 10 for more details. 193 Ingress Tunnel Router (ITR): An ITR is a router that accepts an IP 194 packet with a single IP header (more precisely, an IP packet that 195 does not contain a LISP header). The router treats this "inner" 196 IP destination address as an EID and performs an EID-to-RLOC 197 mapping lookup. The router then prepends an "outer" IP header 198 with one of its globally routable RLOCs in the source address 199 field and the result of the mapping lookup in the destination 200 address field. Note that this destination RLOC may be an 201 intermediate, proxy device that has better knowledge of the EID- 202 to-RLOC mapping closer to the destination EID. In general, an ITR 203 receives IP packets from site end-systems on one side and sends 204 LISP-encapsulated IP packets toward the Internet on the other 205 side. A LISP mobile node, however, when acting as an ITR LISP 206 encapsulates all packet that it originates. 208 Egress Tunnel Router (ETR): An ETR is a router that accepts an IP 209 packet where the destination address in the "outer" IP header is 210 one of its own RLOCs. The router strips the "outer" header and 211 forwards the packet based on the next IP header found. In 212 general, an ETR receives LISP-encapsulated IP packets from the 213 Internet on one side and sends decapsulated IP packets to site 214 end-systems on the other side. A LISP mobile node, when acting as 215 an ETR, decapsulates packets that are then typically processed by 216 the mobile node. 218 Proxy Ingress Tunnel Router (PITR): PITRs are used to provide 219 interconnectivity between sites that use LISP EIDs and those that 220 do not. They act as a gateway between the Legacy Internet and the 221 LISP enabled Network. A given PITR advertises one or more highly 222 aggregated EID prefixes into the public Internet and acts as the 223 ITR for traffic received from the public Internet. Proxy Ingress 224 Tunnel Routers are described in [RFC6832]. 226 Proxy Egress Tunnel Router (PETR): An infrastructure element used to 227 decapsulate packets sent from mobile nodes to non-LISP sites. 228 Proxy Egress Tunnel Routers are described in [RFC6832]. 230 LISP Mobile Node (LISP-MN): A LISP capable fast roaming mobile hand- 231 set. 233 Map-cache: A data structure which contains an EID-prefix, its 234 associated RLOCs, and the associated policy. Map-caches are 235 typically found in ITRs and PITRs. 237 Negative Map-Reply: A Negative Map-Reply is a Map-Reply that 238 contains a coarsely aggregated non-LISP prefix. Negative Map- 239 Replies are typically generated by Map-Resolvers, and are used to 240 inform an ITR (mobile or stationary) that a site is not a LISP 241 site. A LISP mobile node encapsulate packets to destinations 242 covered by the negative Map-Reply are encapsulated to a PETR. 244 Roaming Event: A Roaming Event occurs when there is a change in a 245 LISP mobile node's RLOC set. 247 3. Design Overview 249 The LISP-MN design described in this document uses the Map-Server/ 250 Map-Resolver service interface in conjunction with a light-weight 251 ITR/ETR implementation in the LISP-MN to provide scalable fast 252 mobility. The LISP-MN control-plane uses a Map-Server as an anchor 253 point, which provides control-plane scalability. In addition, the 254 LISP-MN data-plane takes advantage of shortest path routing and 255 therefore does not increase packet delivery latency. 257 4. Design Requirements 259 This section outlines the design requirements for a LISP-MN, and is 260 divided into User Requirements (Section 4.1) and Network Requirements 261 (Section 4.2). 263 4.1. User Requirements 265 This section describes the user-level functionality provided by a 266 LISP-MN. 268 Transport Connection Survivability: The LISP-MN design must allow a 269 LISP-MN to roam while keeping transport connections alive. 271 Simultaneous Roaming: The LISP-MN design must allow a LISP-MN to 272 talk to another LISP-MN while both are roaming. 274 Multihoming: The LISP-MN design must allow for simultaneous use of 275 multiple Internet connections by a LISP-MN. In addition, the 276 design must allow for the LISP mobile node to specify ingress 277 traffic engineering policies as documented in [RFC6830]. That is, 278 the LISP-MN must be able to specify both active/active and active/ 279 passive policies for ingress traffic. 281 Shortest Path Data Plane: The LISP-MN design must allow for shortest 282 path bidirectional traffic between a LISP-MN and a stationary 283 node, and between a LISP-MN and another LISP-MN (i.e., without 284 triangle routing in the data path). This provides a low-latency 285 data path between the LISP-MN and the nodes that it is 286 communicating with. 288 4.2. Network Requirements 290 This section describes the network functionality that the LISP-MN 291 design provides to a LISP-MN. 293 Routing System Scalability: The LISP-MN design must not require 294 injection of fine-grained routes into the core network. 296 Mapping System Scalability: The LISP-MN design must not require 297 additional state in the mapping system. In particular, any 298 mapping state required to support LISP mobility must BE confined 299 to the LISP-MN's Map-Server and the ITRs which are talking to the 300 LISP-MN. 302 Component Reuse: The LISP-MN design must use existing LISP 303 infrastructure components. These include map server, map 304 resolver, and interworking infrastructure components. 306 Home Agent/Foreign Agent: The LISP-MN design must not require the 307 use of home-agent or foreign-agent infrastructure components 308 [RFC3344]. 310 Readdressing: The LISP-MN design must not require TCP connections to 311 be reset when the mobile node roams. In particular, since the IP 312 address associated with a transport connection will not change as 313 the mobile node roams, TCP connections will not reset. 315 5. LISP Mobile Node Operation 317 The LISP-MN design is built from three existing LISP components: A 318 lightweight LISP implementation that runs in an LISP-MN, and the 319 existing Map-Server [RFC6833] and Interworking [RFC6832] 320 infrastructures. A LISP mobile node typically sends and receives 321 LISP encapsulated packets (exceptions include management protocols 322 such as DHCP). 324 The LISP-MN design makes a single mobile node look like a LISP site 325 as described in in [RFC6830] by implementing ITR and ETR 326 functionality. Note that one subtle difference between standard ITR 327 behavior and LISP-MN is that the LISP-MN encapsulates all non-local, 328 non-LISP site destined outgoing packets to a PETR. 330 When a LISP-MN roams onto a new network, it receives a new RLOC. 331 Since the LISP-MN is the authoritative ETR for its EID-prefix, it 332 must Map-Register it's updated RLOC set. New sessions can be 333 established as soon as the registration process completes. Sessions 334 that are encapsulating to RLOCs that did not change during the 335 roaming event are not affected by the roaming event (or subsequent 336 mapping update). However, the LISP-MN must update the ITRs and PITRs 337 that have cached a previous mapping. It does this using the 338 techniques described in Section 6. 340 5.1. Addressing Architecture 342 A LISP-MN is typically provisioned with one or more EIDs that it uses 343 for all transport connections. LISP-MN EIDs are provisioned from 344 blocks reserved from mobile nodes much the way mobile phone numbers 345 are provisioned today (such that they do not overlap with the EID 346 space of any enterprise). These EIDs can be either IPv4 or IPv6 347 addresses. For example, one EID might be for a public network while 348 another might be for a private network; in this case the "public" EID 349 will be associated with RLOCs from the public Internet, while the 350 "private" EID will be associated with private RLOCs. It is 351 anticipated that these EIDs will change infrequently if at all, since 352 the assignment of a LISP-MN's EID is envisioned to be a subscription 353 time event. The key point here is that the relatively fixed EID 354 allows the LISP-MN's transport connections to survive roaming events. 355 In particular, while the LISP-MN's EIDs are fixed during roaming 356 events, the LISP-MN's RLOC set will change. The RLOC set may be 357 comprised of both IPv4 or IPv6 addresses. 359 A LISP-MN is also provisioned with the address of a Map-Server and a 360 corresponding authentication key. Like the LISP-MN's EID, both the 361 Map-Server address and authentication key change very infrequently 362 (again, these are anticipated to be subscription time parameters). 363 Since the LISP LISP-MN's Map-Server is configured to advertise an 364 aggregated EID-prefix that covers the LISP-MN's EID, changes to the 365 LISP-MN's mapping are not propagated further into the mapping system 366 [RFC6836]. It is this property that provides for scalable fast 367 mobility. 369 A LISP-MN is also be provisioned with the address of a Map-Resolver. 370 A LISP-MN may also learn the address of a Map-Resolver though a 371 dynamic protocol such as DHCP [RFC2131]. 373 Finally, note that if, for some reason, a LISP-MN's EID is re- 374 provisioned, the LISP-MN's Map-Server address may also have to change 375 in order to keep LISP-MN's EID within the aggregate advertised by the 376 Map-Server (this is discussed in greater detail in Section 5.2). 378 5.2. Control Plane Operation 380 A roaming event occurs when the LISP-MN receives a new RLOC. Because 381 the new address is a new RLOC from the LISP-MN's perspective, it must 382 update its EID-to-RLOC mapping with its Map-Server; it does this 383 using the Map-Register mechanism described in [RFC6830]. 385 A LISP-MN may want the Map-Server to respond on its behalf for a 386 variety of reasons, including minimizing control traffic on radio 387 links and minimizing battery utilization. A LISP-MN may instruct its 388 Map-Server to proxy respond to Map-Requests by setting the Proxy-Map- 389 Reply bit in the Map-Register message [RFC6830]. In this case the 390 Map-Server responds with a non-authoritative Map-Reply so that an ITR 391 or PITR will know that the ETR didn't directly respond. A Map-Server 392 will proxy reply only for "registered" EID-prefixes using the 393 registered EID-prefix mask-length in proxy replies. 395 Because the LISP-MN's Map-Server is pre-configured to advertise an 396 aggregate covering the LISP-MN's EID prefix, the database mapping 397 change associated with the roaming event is confined to the Map- 398 Server and those ITRs and PITRs that may have cached the previous 399 mapping. 401 5.3. Data Plane Operation 403 A key feature of LISP-MN control-plane design is the use of the Map- 404 Server as an anchor point; this allows control of the scope to which 405 changes to the mapping system must be propagated during roaming 406 events. 408 On the other hand, the LISP-MN data-plane design does not rely on 409 additional LISP infrastructure for communication between LISP nodes 410 (mobile or stationary). Data packets take the shortest path to and 411 from the LISP-MN to other LISP nodes; as noted above, low latency 412 shortest paths in the data-plane is an important goal for the LISP-MN 413 design (and is important for delay-sensitive applications like gaming 414 and voice-over-IP). Note that a LISP-MN will need additional 415 interworking infrastructure when talking to non-LISP sites [RFC6832]; 416 this is consistent with the design of any host at a LISP site which 417 talks to a host at a non-LISP site. 419 In general, the LISP-MN data-plane operates in the same manner as the 420 standard LISP data-plane with one exception: packets generated by a 421 LISP-MN which are not destined for the mapping system (i.e., those 422 sent to destination UDP port 4342) or the local network are LISP 423 encapsulated. Because data packets are always encapsulated to a 424 RLOC, packets travel on the shortest path from LISP-MN to another 425 LISP stationary or LISP-MN. When the LISP mobile node is sending 426 packets to a stationary or LISP-MN in a non-LISP site, it sends LISP- 427 encapsulated packets to a PETR which then decapsulates the packet and 428 forwards it to its destination. 430 6. Updating Remote Caches 432 A LISP-MN has five mechanisms it can use to cause the mappings cached 433 in remote ITRs and PITRs to be refreshed: 435 Map Versioning: If Map Versioning [RFC6834] is used, an ETR can 436 detect if an ITR is using the most recent database mapping. In 437 particular, when mobile node's ETR decapsulates a packet and 438 detects the Destination Map-Version Number is less than the 439 current version for its mapping, in invokes the SMR procedure 440 described in [RFC6830]. In general, SMRs are used to fix the out 441 of sync mapping while Map-Versioning is used to detect they are 442 out of sync. [RFC6834] provides additional details of the Map 443 Versioning process. 445 Data Driven SMRs: An ETR may elect to send SMRs to those sites it 446 has been receiving encapsulated packets from. This will occur 447 when an ITR is sending to an old RLOC (for which there is one-to- 448 one mapping between EID-to-RLOC) and the ETR may not have had a 449 chance to send an SMR the ITR. 451 Setting Small TTL on Map Replies: The ETR (or Map Server) may set a 452 small Time to Live (TTL) on its mappings when responding to Map 453 Requests. The TTL value should be chosen such that changes in 454 mappings can be detected while minimizing control traffic. In 455 this case the ITR is a SN and the ETR is the MN. 457 Piggybacking Mapping Data: If an ITR and ETR are co-located, an ITR 458 may elect to send Map-Requests with piggybacked mapping data to 459 those sites in its map cache or to which it has recently 460 encapsulated data in order to inform the remote ITRs and PITRs of 461 the change. 463 Temporary PITR Caching: The ETR can keep a cache of PITRs that have 464 sent Map-Requests to it. The cache contains the RLOCs of the 465 PITRs so later when the locator-set of a LISP-MN changes, SMR 466 messages can be sent to all RLOCs in the PITR cache. This is an 467 example of a control-plane driven SMR procedure. 469 7. Protocol Operation 471 There are five distinct connectivity cases considered by the LISP-MN 472 design. The five mobility cases are: 474 LISP Mobile Node to a Stationary Node in a LISP Site. 476 LISP Mobile Node to a Non-LISP Site. 478 LISP Mobile Node to a LISP Mobile Node. 480 Non-LISP Site to a LISP Mobile Node. 482 LISP Site to a LISP Mobile Node. 484 The remainder of this section covers these cases in detail. 486 7.1. LISP Mobile Node to a Stationary Node in a LISP Site 488 After a roaming event, a LISP-MN must immediately register its new 489 EID-to-RLOC mapping with its configured Map-Server(s). This allows 490 LISP sites sending Map-Requests to the LISP-MN to receive the current 491 mapping. In addition, remote ITRs and PITRs may have cached mappings 492 that are no longer valid. These ITRs and PITRs must be informed that 493 the mapping has changed. See Section 6 for a discussion of methods 494 for updating remote caches. 496 7.1.1. Handling Unidirectional Traffic 498 A problem may arise when traffic is flowing unidirectionally between 499 LISP sites. This can arise in communication flows between PITRs and 500 LISP sites or when a site's ITRs and ETRs are not co-located. In 501 these cases, data-plane techniques such as Map-Versioning and Data- 502 Driven SMRs can't be used to update the remote caches. 504 For example, consider the unidirectional packet flow case depicted in 505 Figure 1. In this case X is a non-LISP enabled SN (i.e., connected 506 to the Internet) and Y is a LISP MN. Data traffic from X to Y will 507 flow through a PITR. When Y changes its mapping (for example, during 508 a mobility event), the PITR must update its mapping for Y. However, 509 since data traffic from Y to X is unidirectional and does not flow 510 though the PITR, it can not rely data traffic from Y to X to signal a 511 mapping change at Y. In this case, the Y must use one or more of the 512 techniques described in Section 6 to update the PITR's cache. Note 513 that if Y has only one RLOC, then the PITR has to know when to send a 514 Map-Request based on its existing state; thus it can only rely on the 515 TTL on the existing mapping. 517 +-------------------------------------------+ 518 | | 519 | | DP 520 v DP DP MQ | 521 X -----> Internet -----> PITR ------------> Y 522 ^ LEDP | 523 | | 524 +-----------------+ 525 MR 527 DP: Data Packet 528 LEDP: LISP Encapsulated Data Packet 529 MQ: Map Request 530 MR: Map Reply 532 Figure 1: Unidirectional Packet Flow 534 7.2. LISP Mobile Node to a Non-LISP Stationary Node 536 LISP-MNs use the LISP Interworking infrastructure (specifically a 537 PETR) to reach non-LISP sites. In general, the PETR will be co- 538 located with the LISP-MN's Map-Server. This ensures that the LISP 539 packets being decapsulated are from sources that have Map-Registered 540 to the Map-Server. Note that when a LISP-MN roams it continues to 541 uses its configured PETR and Map-Server which can have the effect of 542 adding stretch to packets sent from a LISP-MN to a non-LISP 543 destination. 545 7.3. LISP Mobile Node to LISP Mobile Node 547 LISP-MN to LISP-MN communication is an instance of LISP-to-LISP 548 communication with three sub-cases: 550 o Both LISP-MNs are stationary (Section 7.1). 552 o Only one LISP-MN is roaming (Section 7.3.1). 554 o Both LISP-MNs are roaming. The case is analogous to the case 555 described in Section 7.3.1. 557 7.3.1. One Mobile Node is Roaming 559 In this case, the roaming LISP-MN can find the stationary LISP-MN by 560 sending Map-Request for its EID-prefix. After receiving a Map-Reply, 561 the roaming LISP-MN can encapsulate data packets directly to the non- 562 roaming LISP-MN node. 564 The roaming LISP-MN, on the other hand, must update its Map-Server 565 with the new mapping data as described in Section 7.1. It should 566 also use the cache management techniques described in Section 6 to 567 provide for timely updates of remote caches. Once the roaming LISP- 568 MN has updated its Map-Server, the non-roaming LISP-MN can retrieve 569 the new mapping data (if it hasn't already received an updated 570 mapping via one of the mechanisms described in Section 6) and the 571 stationary LISP-MN can encapsulate data directly to the roaming LISP- 572 MN. 574 7.4. Non-LISP Site to a LISP Mobile Node 576 When a stationary ITR is talking to a non-LISP site, it may forward 577 packets natively (unencapsulated) to the non-LISP site. This will 578 occur when the ITR has received a negative Map Reply for a prefix 579 covering the non-LISP site's address with the Natively-Forward action 580 bit set [RFC6830]. As a result, packets may be natively forwarded to 581 non-LISP sites by an ITR (the return path will through a PITR, 582 however, since the packet flow will be non-LISP site to LISP site). 584 A LISP-MN behaves differently when talking to non-LISP sites. In 585 particular, the LISP-MN always encapsulates packets to a PETR. The 586 PETR then decapsulates the packet and forwards it natively to its 587 destination. As in the stationary case, packets from the non-LISP 588 site host return to the LISP-MN through a PITR. Since traffic 589 forwarded through a PITR is unidirectional, a LISP-MN should use the 590 cache management techniques described in Section 7.1.1. 592 7.5. LISP Site to LISP Mobile Node 594 When a LISP-MN roams onto a new network, it needs to update the 595 caches in any ITRs that might have stale mappings. This is analogous 596 to the case in that a stationary LISP site is renumbered; in that 597 case ITRs that have cached the old mapping must be updated. This is 598 done using the techniques described in Section 6. 600 When a LISP router in a stationary site is performing both ITR and 601 ETR functions, a LISP-MN can update the stationary site's map-caches 602 using techniques described in Section 6. However, when the LISP 603 router in the stationary site is performing is only ITR 604 functionality, these techniques can not be used because the ITR is 605 not receiving data traffic from the LISP-MN. In this case, the LISP- 606 MN should use the technique described in Section 7.1.1. In 607 particular, a LISP-MN should set the TTL on the mappings in its Map- 608 Replies to be in 1-2 minute range. 610 8. Multicast and Mobility 612 Since a LISP-MN performs both ITR and ETR functionality, it should 613 also perform a lightweight version of multicast ITR/ETR functionality 614 described in [RFC6831]. When a LISP-MN originates a multicast 615 packet, it will encapsulate the packet with a multicast header, where 616 the source address in the outer header is one of it's RLOC addresses 617 and the destination address in the outer header is the group address 618 from the inner header. The interfaces in which the encapsulated 619 packet is sent on is discussed below. 621 To not require PIM functionality in the LISP-MN as documented in 622 [RFC6831], the LISP-MN resorts to using encapsulated IGMP for joining 623 groups and for determining which interfaces are used for packet 624 origination. When a LISP-MN joins a group, it obtains the map-cache 625 entry for the (S-EID,G) it is joining. It then builds a IGMP report 626 encoding (S-EID,G) and then LISP encapsulates it with UDP port 4341. 627 It selects an RLOC from the map-cache entry to send the encapsulated 628 IGMP Report. 630 When other LISP-MNs are joining an (S-EID,G) entry where the S-EID is 631 for a LISP-MN, the encapsulated IGMP Report will be received by the 632 LISP-MN multicast source. The LISP-MN multicast source will remember 633 the interfaces the encapsulated IGMP Report is received on and build 634 an outgoing interface list for it's own (S-EID,G) entry. If the list 635 is greater than one, then the LISP-MN is doing replication on the 636 source-based tree for which it is the root. 638 When other LISP routers are joining (S-EID,G), they are instructed to 639 send PIM encapsulated Join-Prune messages. However, to keep the 640 LISP-MN as simple as possible, the LISP-MN will not be able to 641 process encapsulated PIM Join-Prune messages. Because the map-cache 642 entry will have a MN-bit indicating the entry is for a LISP-MN, the 643 LISP router will send IGMP encapsulated IGMP Reports instead. 645 When the LISP-MN is sending a multicast packet, it can operate in two 646 modes, multicast-origination-mode or unicast-origination-mode. When 647 in multicast-origination-mode, the LISP-MN multicast-source can 648 encapsulate a multicast packet in another multicast packet, as 649 described above. When in unicast-origination-mode, the LISP-MN 650 multicast source encapsulates the multicast packet into a unicast 651 packet and sends a packet to each encapsulated IGMP Report sender. 653 These modes are provided depending on whether or not the mobile 654 node's network it is currently connected can support IP multicast. 656 9. RLOC Considerations 658 This section documents cases where the expected operation of the 659 LISP-MN design may require special treatment. 661 9.1. Mobile Node's RLOC is an EID 663 When a LISP-MN roams into a LISP site, the "RLOC" it is assigned may 664 be an address taken from the site's EID-prefix. In this case, the 665 LISP-MN will Map-Register a mapping from its statically assigned EID 666 to the "RLOC" it received from the site. This scenario creates 667 another level of indirection: the mapping from the LISP-MN's EID to a 668 site assigned EID. The mapping from the LISP-MN's EID to the site 669 assigned EID allow the LISP-MN to be reached by sending packets using 670 the mapping for the EID; packets are delivered to site's EIDs use the 671 same LISP infrastructure that all LISP hosts use to reach the site. 673 A packet egressing a LISP site destined for a LISP-MN that resides in 674 a LISP site will have three headers: an inner header that is built by 675 the host and is used by transport connections, a middle header that 676 is built by the site's ITR and is used by the destination's ETR to 677 find the current topological location of the LISP-MN, and an outer 678 header (also built by the site's ITR) that is used to forward packets 679 between the sites. 681 Consider a site A with EID-prefix 1.0.0.0/8 and RLOC A and a site B 682 with EID-prefix 2.0.0.0/8 and RLOC B. Suppose that a host S in site 683 A with EID 1.0.0.1 wants to talk to a LISP LISP-MN MN that has 684 registered a mapping from EID 240.0.0.1 to "RLOC" 2.0.0.2 (where 685 2.0.0.2 allocated from site B's EID prefix, 2.0.0.0/8 in this case). 686 This situation is depicted in Figure 2. 688 EID-prefix 1.0.0.0/8 EID-prefix 2.0.0.0/8 689 S has EID 1.0.0.1 MN has EID 240.0.0.1 690 MN has RLOC 2.0.0.2 691 -------------- -------------- 692 / \ --------------- / \ 693 | ITR-A' | / \ | ETR-B' | 694 | | | | | | 695 | S | | Internet | | MN | 696 | \ | | | | ^ | 697 | \ | | | | / | 698 | --> ITR-A | \ / | ETR-B ---- | 699 \ / --------------- \ / 700 -------------- -------------- 701 | | | ^ ^ ^ 702 | | | | | | 703 | | | outer-header: A -> B | | | 704 | | +---------------------------------------+ | | 705 | | RLOCs used to find which site MN resides | | 706 | | | | 707 | | | | 708 | | middle-header: A -> 2.0.0.2 | | 709 | +------------------------------------------------+ | 710 | RLOCs used to find topological location of MN | 711 | | 712 | | 713 | inner-header: 1.0.0.1 -> 240.0.0.1 | 714 +-----------------------------------------------------------+ 715 EIDs used for TCP connection 717 Figure 2: Mobile Node Roaming into a LISP Site 719 In this case, the inner header is used for transport connections, the 720 middle header is used to find topological location of the LISP-MN 721 (the LISP-MN Map-Registers the mapping 240.0.0.1 -> 2.0.0.2 when it 722 roams into site B), and the outer header is used to move packets 723 between sites (A and B in Figure 2). 725 In summary, when a LISP-MN roams into a LISP site and receives a new 726 address (e.g., via DHCP) that is part of the site's EID space, the 727 following sequence occurs: 729 1. The LISP-MN in the LISP site (call it Inside) registers its new 730 RLOC (which is actually part of the sites EID prefix) to its map- 731 server. Call its permanent EID E and the EID it DHCPs D. So it 732 registers a mapping that looks like E->D. 734 2. The MN which is outside (call it Outside) sends a map request for 735 inside's EID (E) and receives D (plus its policy). Outside 736 realizes that D is an EID and sends a map request for D. This 737 will return the site's RLOCs (by its ETR). Call this R. 739 3. Outside then double encapsulates the outbound packet with the 740 inner destination being D and the outer destination being R. 742 4. The packet then finds its way to R, which strips the outer header 743 and the packet is routed to D in the domain to Inside. Inside 744 decapsulates the packet to serve the inner header to the 745 application. 747 Note that both D and R could be returned to Inside in one query, so 748 as not to incur the additional RTT. 750 10. LISP Mobile Nodes behind NAT Devices 752 When a LISP-MN resides behind a NAT device, it will be allocated a 753 private RLOC address. The private RLOC address is used as the source 754 address in the outer header for LISP encapsulated packets. The NAT 755 device will translate the source address and source UDP port in the 756 LISP encapsulated packet. The NAT device will keep this translated 757 state so when packets arrive from the public side of the NAT, they 758 can be translated back to the stored state. For remote LISP ITRs, 759 PITRs, and RTRs, will need to know the translated RLOC address and 760 port so they can encapsulate to the LISP-MN traversing the NAT 761 device. 763 Procedures a LISP-MN should follow when it resides behind a NAT, will 764 follow the LISP xTRs procedures in specification 765 [I-D.ermagan-lisp-nat-traversal]. 767 11. Mobility Example 769 This section provides an example of how the LISP-MN is integrated 770 into the base LISP Design [RFC6830]. 772 11.1. Provisioning 774 The LISP-MN needs to be configured with the following information: 776 An EID, assigned to its loopback address 778 A key for map-registration 780 An IP address of a Map-Resolver (this could be learned 781 dynamically) 782 An IP address of its Map-Server and Proxy ETR 784 11.2. Registration 786 After a LISP roams to a new network, it must immediately register its 787 new mapping this new RLOC (and associated priority/weight data) with 788 its Map-Server. 790 The LISP-MN may chose to set the 'proxy' bit in the map-register to 791 indicate that it desires its Map-Server to answer map-requests on its 792 behalf. 794 12. LISP Implementation in a Mobile Node 796 This section will describe a possible approach for developing a 797 lightweight LISP-MN implementation. A LISP-MN will implement a LISP 798 sub-layer inside of the IP layer of the protocol stack. The sub- 799 layer resides between the IP layer and the link-layer. 801 For outgoing unicast packets, once the header that contains EIDs is 802 built and right before an outgoing interface is chosen, a LISP header 803 is prepended to the outgoing packet. The source address is set to 804 the local RLOC address (obtained by DHCP perhaps) and the destination 805 address is set to the RLOC associated with the destination EID from 806 the IP layer. To obtain the RLOC for the EID, the LISP-MN maintains 807 a map-cache for destination sites or destination LISP-MNs to which it 808 is currently talking. The map-cache lookup is performed by doing a 809 longest match lookup on the destination address the IP layer put in 810 the first IP header. Once the new header is prepended, a route table 811 lookup is performed to find the interface in which to send the packet 812 or the default router interface is used to send the packet. 814 When the map-cache does not exist for a destination, the mobile node 815 may queue or drop the packet while it sends a Map-Request to it's 816 configured Map-Resolver. Once a Map-Reply is returned, the map-cache 817 entry stores the EID-to-RLOC state. If the RLOC state is empty in 818 the Map-Reply, the Map-Reply is known as a Negative Map-Reply in 819 which case the map-cache entry is created with a single RLOC, the 820 RLOC of the configured Map-Server for the LISP-MN. The Map-Server 821 that serves the LISP-MN also acts as a Proxy ETR (PETR) so packets 822 can get delivered to hosts in non-LISP sites to which the LISP-MN is 823 sending. 825 For incoming unicast packets, the LISP sub-layer simply decapsulates 826 the packets and delivers to the IP layer. The loc-reach-bits can be 827 processed by the LISP sub-layer. Specifically, the source EID from 828 the packet is looked up in the map-cache and if the loc-reach-bits 829 settings have changed, store the loc-reach-bits from the packet and 830 note which RLOCs for the map-cache entry should not be used. 832 In terms of the LISP-MN detecting which RLOCs from each stored map- 833 cache entry is reachable, it can use any of the Locator Reachability 834 Algorithms from [RFC6830]. 836 A background task that runs off a timer should be run so the LISP-MN 837 can send periodic Map-Register messages to the Map-Server. The Map- 838 Register message should also be triggered when the LISP-MN detects a 839 change in IP address for a given interface. The LISP-MN should send 840 Map-Registers to the same Map-Register out each of it's operational 841 links. This will provide for robustness on radio links with which 842 the mobile node is associated. 844 A LISP-MN receives a Map-Request when it has Map-Registered to a Map- 845 Server with the Proxy-bit set to 0. This means that the LISP-MN 846 wishes to send authoritative Map-Replies for Map-Requests that are 847 targeted at the LISP-MN. If the Proxy-bit is set when the LISP-MN 848 registers, then the Map-Server will send non-authoritative Map- 849 Replies on behalf of the LISP-MN. In this case, the Map-Server never 850 encapsulates Map-Requests to the LISP-MN. The LISP-MN can save 851 resources by not receiving Map-Requests (note that the LISP-MN will 852 receive SMRs which have the same format as Map-Requests). 854 To summarize, a LISP sub-layer should implement: 856 o Encapsulating and decapsulating data packets. 858 o Sending and receiving of Map-Request control messages. 860 o Receiving and optionally sending Map-Replies. 862 o Sending Map-Register messages periodically. 864 The key point about the LISP sub-layer is that no other components in 865 the protocol stack need changing; just the insertion of this sub- 866 layer between the IP layer and the interface layer-2 encapsulation/ 867 decapsulation layer. 869 13. Security Considerations 871 Security for the LISP-MN design builds upon the security fundamentals 872 found in LISP [RFC6830] for data-plane security and the LISP Map 873 Server [RFC6833] registration security. Security issues unique to 874 the LISP-MN design are considered below. 876 13.1. Proxy ETR Hijacking 878 The Proxy ETR (or PETR) that a LISP-MN uses as its destination for 879 non-LISP traffic must use the security association used by the 880 registration process outlined in Section 5.2 and explained in detail 881 in the LISP-MS specification [RFC6833]. These measures prevent third 882 party injection of LISP encapsulated traffic into a Proxy ETR. 883 Importantly, a PETR must not decapsulate packets from non-registered 884 RLOCs. 886 13.2. LISP Mobile Node using an EID as its RLOC 888 For LISP packets to be sent to a LISP-MN which has an EID assigned to 889 it as an RLOC as described in Section 9.1), the LISP site must allow 890 for incoming and outgoing LISP data packets. Firewalls and stateless 891 packet filtering mechanisms must be configured to allow UDP port 4341 892 and UDP port 4342 packets. 894 14. IANA Considerations 896 This document creates no new requirements on IANA namespaces 897 [RFC5226]. 899 15. References 901 15.1. Normative References 903 [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G., 904 and E. Lear, "Address Allocation for Private Internets", 905 BCP 5, RFC 1918, DOI 10.17487/RFC1918, February 1996, 906 . 908 [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", 909 RFC 2131, DOI 10.17487/RFC2131, March 1997, 910 . 912 [RFC3344] Perkins, C., Ed., "IP Mobility Support for IPv4", 913 RFC 3344, DOI 10.17487/RFC3344, August 2002, 914 . 916 [RFC3775] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support 917 in IPv6", RFC 3775, DOI 10.17487/RFC3775, June 2004, 918 . 920 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 921 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 922 DOI 10.17487/RFC5226, May 2008, 923 . 925 [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The 926 Locator/ID Separation Protocol (LISP)", RFC 6830, 927 DOI 10.17487/RFC6830, January 2013, 928 . 930 [RFC6831] Farinacci, D., Meyer, D., Zwiebel, J., and S. Venaas, "The 931 Locator/ID Separation Protocol (LISP) for Multicast 932 Environments", RFC 6831, DOI 10.17487/RFC6831, January 933 2013, . 935 [RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, 936 "Interworking between Locator/ID Separation Protocol 937 (LISP) and Non-LISP Sites", RFC 6832, 938 DOI 10.17487/RFC6832, January 2013, 939 . 941 [RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation 942 Protocol (LISP) Map-Server Interface", RFC 6833, 943 DOI 10.17487/RFC6833, January 2013, 944 . 946 [RFC6834] Iannone, L., Saucez, D., and O. Bonaventure, "Locator/ID 947 Separation Protocol (LISP) Map-Versioning", RFC 6834, 948 DOI 10.17487/RFC6834, January 2013, 949 . 951 [RFC6836] Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, 952 "Locator/ID Separation Protocol Alternative Logical 953 Topology (LISP+ALT)", RFC 6836, DOI 10.17487/RFC6836, 954 January 2013, . 956 15.2. Informative References 958 [I-D.ermagan-lisp-nat-traversal] 959 Ermagan, V., Farinacci, D., Lewis, D., Skriver, J., Maino, 960 F., and C. White, "NAT traversal for LISP", draft-ermagan- 961 lisp-nat-traversal-12 (work in progress), March 2017. 963 Appendix A. Acknowledgments 965 Albert Cabellos, Noel Chiappa, Pierre Francois, Michael Menth, Andrew 966 Partan, Chris White and John Zwiebel provided insightful comments on 967 the mobile node concept and on this document. A special thanks goes 968 to Mary Nickum for her attention to detail and effort in editing 969 early versions of this document. 971 Appendix B. Document Change Log 973 B.1. Changes to draft-ietf-lisp-mn-00.txt 975 o Posted April 2017. 977 o Changed draft-meyer-lisp-mn-16 to working group document. 979 Authors' Addresses 981 Dino Farinacci 982 lispers.net 983 San Jose, CA 95134 984 USA 986 Email: farinacci@gmail.com 988 Darrel Lewis 989 cisco Systems 990 Tasman Drive 991 San Jose, CA 95134 992 USA 994 Email: darlewis@cisco.com 996 David Meyer 997 1-4-5.net 998 USA 1000 Email: dmm@1-4-5.net 1002 Chris White 1003 Logical Elegance, LLC. 1004 San Jose, CA 95134 1005 USA 1007 Email: chris@logicalelegance.com