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