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