Internet Engineering Task Force W. T. Teo INTERNET DRAFT National University of Singapore Y. Li Nortel Networks, Inc. Mobile IP extension for Private Internets Support (MPN) Status of This Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This memo specifies enhancements to Mobile IP that allow IP mobility support across routing realms. The protocol allows a mobile node to have the same home network connectivity, regardless of its current routing realm network point of attachment. It is designed to work in the presence of address collisions and network address translations. Private networks connected to the public Internet can extend IP mobility support to cover the public Internet and other private networks. Movement from a private home network to the public foreign network, from a private home network to another private foreign network or from the public home network to a private foreign network are possible under the MPN framework. Teo and Li Expires September 1999 [Page 1] Internet Draft February 1999 1. Introduction Mobile IP [1] allows a node to move from its home network, the IP subnet indicated by its home address. When away from the home network, datagrams destined to the node are tunnelled to a care-of address in the visited network. This assumes a node's address is sufficient to identify the node's location in the Internet and IP unicast datagrams can be routed solely based on the destination address in the datagram header. This is only true when the node's mobility is constrained within a common routing realm. For example, this routing realm could be the global public Internet or a localized private network. These assumptions are not valid beyond the mobile node's routing realm. Therefore, Mobile IP cannot ensure mobility across different routing realms. MPN is an extension to the Mobile IP base protocol that enables this mobility support spanning multiple routing realms. 1.1 MPN Framework Global Public Internet . ________________ . . +-----+ ( ) +-----+ . Private . |Realm| ( VPN ) |Realm| . Network .-|Agent|--( Tunnel /==)--|Agent|-. c Private. +-----+ ( /======/ ) +-----+ .......... Network. +-----+ / (______/_________) A . |Realm| / | .-|Agent|- | . +-----+ +-----------+ ......... |Realm Agent| +-----------+ | ................... .Private Network B. . . In MPN, the central routing realm is the global public Internet. All other routing realms (private routing realms) depend on this global routing infrastructure for wide area mobility. Unlike the central routing realm which has numerous public networks, each private network constitutes an independent routing realm. Examples of private networks are intranets, extranets and virtual private networks. These private routing realms are globally identified in the public Internet by their public agents. Realm agents are the private Teo and Li Expires September 1999 [Page 2] Internet Draft February 1999 networks link to the public Internet. For example, the public agent may be a border router or an Internet service provider network point of presence. An independent private network (e.g. private network A) may have more than one link to the public Internet, i.e. there are more than one public agents. A private routing realm may consists of multiple networks physically located in separate sites. For example, private network B and private network C may form a virtual private network. There will be a VPN tunnel established between the two networks, to route traffic between the two different physical sites. This VPN tunnel is transparent in the MPN framework. For such network configurations, in the context of MPN, the networks represent a single private routing realm. There is no cross routing realm movement if a node moves to another physical site within such a network. All the realm agents in a private routing realm should be advertised in the realm agents advertisement extension [ref Section 3.1]. In MPN, realm agents provide the tunnel routing required by visiting mobile nodes. The realm agents' addresses are also used in the identification of routing realms. Mobile nodes from a private network are configured with the realm agents' addresses in their routing realm. These addresses are used to determine the mobile node's current routing realm. 1.2 Addressing Concerns IP addresses are topologically significant and unique only within a routing realm. By enabling mobility across multiple routing realms, there may be address collisions due to overlapping address space in the visited routing realm. MPN is designed to work in the presence address collisions and solve the problem of tunneling across independent routing realms. However, MPN is not intended to provide communication across routing realms [ref Section 1.4]. The determination of the end host and the routing mechanisms for end-to-end communication in the home routing realm is independent of MPN. There are other protocols that provide communication across routing realms such as NAT [6] and PAID [8]. Their operation is transparent to MPN. 1.3 Mobile Node Concerns When a mobile node enters a foreign routing realm and its visited network link is broadcast-oriented (such as Ethernet), the mobile node MUST use a co-located care-of address, instead of a local Teo and Li Expires September 1999 [Page 3] Internet Draft February 1999 foreign agent care-of address, for reverse GRE tunnels [ref Section 2.2]. This is to avoid address ambiguity on the broadcast link due to home address collisions. A private mobile node should use a co-located care-of address (if possible) even when the foreign routing realm visited network link is not broadcast-oriented. As the local foreign agent is not the forward or reverse tunnel endpoint, end-to-end encryption can be supported. 1.4 Mobility Support The mobility support in Mobile IP allows a mobile node to be always identified by its home address, when it roams from its home network. The mobile node's reachability by other nodes and its accessibility to other nodes is not explicit in Mobile IP. This is because a common routing fabric is assumed. In MPN, mobility support is more accurately defined as maintaining the same home network connectivity. The mobile node should have access to all nodes that is reachable within its home network, even when it migrates into another routing realm. Similarly, all nodes that can reach the mobile node within its home network, should be able to reach the mobile node when it moves to another routing realm (if MPN mobility support is available in the visited network). 1.5 Design Goals The design goals of MPN are: 1. The MPN protocol shall require minimum changes and support all functions of the Mobile IP base protocol. 2. The MPN protocol must not affect the operation of Mobile IP mobile nodes and mobility agents. 2. The MPN protocol shall be migratory. It will enable the upgrading of a private network in phases while maintaining backward compatibility with a basic MPN deployment. 1.6 Protocol Requirements No protocol enhancements are required for realm agents in a basic MPN deployment. However, there are security risks involved when permitting unrestricted tunneling into a private network, for a basic MPN deployment. The reverse tunneling is required in MPN to maintain home network connectivity. 1.7 New Architectural Entity Teo and Li Expires September 1999 [Page 4] Internet Draft February 1999 Realm Agent A router or firewall that connects a private network to the global public Internet [ref Section 1.1]. A realm agent may be located at the private network's border or at the private network's ISP. The realm agent MUST have a public IP address, which is reachable from the global public Internet. All nodes within the private network MUST be able to reach the realm agent using this public IP address. The realm agent MUST be able to route to all local home agents and care-of addresses within the private network. 1.8 Terminology Unless otherwise specified, the document adopts all the terminology defined in "IP Mobility Support" [1] [2]. This document introduces the following terms: Private Network A network separated from the global public Internet with access restrictions. A private network typically assigns nodes private addresses specified in RFC 1918 [9] and the addresses may not be routable by the general public Internet. For this document, private networks only refer to private networks connected to the global public Internet and not physically isolated networks. Private Mobile Node A mobile node whose home network is in a Private Network. Public Mobile Node A mobile node whose home network is in the global public Internet. Routing Realm The global public Internet and each private network constitute individual routing realms [ref Section 1.1] This document operates on the paradigm that interconnecting routing realms may have overlapping address space but within a routing realm, all IP addresses are unique and unicast datagrams are routable solely based on the destination address in the datagram header. Home Routing Realm Teo and Li Expires September 1999 [Page 5] Internet Draft February 1999 A routing realm which the mobile node's home network is located. Foreign Routing Realm Any routing realm other than the mobile node's Home Routing Realm. Visited Routing Realm A network other than the mobile node's Home Routing Realm, which the mobile node is currently located. Passive Realm Agent A GRE [10] router. In a basic MPN deployment, a passive realm agent route GRE tunnels (where IP is both the delivery and payload protocol). A passive agent is not aware of nodes movement and it need not process MPN registration messages or maintain any mobility binding and security associations. This enables the immediate deployment of realm agents since there are no specific MPN protocol enhancements required. Active Realm Agent A GRE router. In addition, an active agent processes and relay MPN registration messages. It MUST maintain mobility bindings of successful registrations and may have security associations. Security policies for visiting mobile nodes may be enforced for the whole network at the active realm agent. An active realm agent may provide routing optimizations and tunnel circuit switching [ref Section 7]. Home Realm Agent A realm agent in the mobile node's Home Routing Realm. All Private Mobile Nodes MUST be assigned one or more realm home agents. A realm mobile node may be assigned a realm home agent located at its home network domain. Foreign Realm Agent Any realm agent other than the mobile node's Home Realm Agent. Mobility Binding The association of a home address with a care-of address and any intermediate tunnel destinations (realm home/foreign agent Teo and Li Expires September 1999 [Page 6] Internet Draft February 1999 address), along with the remaining lifetime of that association. Local Home Agent A home agent in Mobile IP terminology. Local Foreign Agent A foreign agent in Mobile IP terminology. Mobility Agent Either a local home agent, local foreign agent or a realm agent. 2. Tunneling Tunneling is a means to alter the normal IP routing for datagrams, by delivering them to intermediate destinations that would otherwise not be selected by the (network part of the) IP destination address in the original IP header. 2.1 Reverse tunneling A bidirectional tunnel is established when a mobile node is in a foreign routing realm. In order for the mobile node to have the same level of network connectivity as it does when in its home network, nodes that are reachable only when the mobile node is in the home routing realm or home network, should be accessible in the visited network. Packets destined to a node's address in another routing realm will probably not be delivered using the existing routing mechanism in the visited routing realm. A reverse tunnel [5] is used to deliver datagrams originating from the mobile node back to the home routing realm or home network. This will allow the datagrams to be routed to the correct correspondent nodes in the presence of address collisions and security restrictions. The reverse tunnel exit point need not be the mobile node's local home agent. 2.2 GRE encapsulation IP in IP encapsulation [3] is the default tunneling mechanism used in Mobile IP. While it is useful for re-routing a datagram from one point to another, the mechanism is unsuitable when multiple transitional points are required, to traverse across different routing realms. To achieve such functionality, the encapsulation method must support source routing or the intermediate destinations must be dynamically configured to forward the datagram to the next Teo and Li Expires September 1999 [Page 7] Internet Draft February 1999 correct tunneling point. MPN uses Generic Routing Encapsulation [10] as the default encapsulation method to tunnel across different routing realms. GRE provides a Source Route Entry (SRE) in the tunnel header. Using a SRE with an Address Family indicating an IP loose source route (Strict Source Route flag cleared), the intermediate destinations can be specified. In the case of MPN, the SRE's IP address list will include any realm agent along the tunnel route and the tunnel endpoint. Typically the tunnel endpoint is the local home agent (for a reverse tunnel) or the care-of address (for a forward tunnel). 2.3 Overall Encapsulated Packet The diagram below provides an overview of the GRE tunnelled packet layout. +-------------------+ +------------------------ | | | | IP Delivery Header| -> | ... Protocol Type 47 | | | +-------------------+ +------------------------ | | | ... Protocol Type 0x800 | GRE Header | -> +------------------------ +------------- | | | ... Source Route Entry -> | ... Address | | | | Family 0x800 | | | | +-------------------+ +------------------------ +------------- | | | ... Original IP Header | IP Payload | -> +------------------------ | | | --------------------+ +------------------------ 2.4 GRE SRE Processing All the intermediate tunnel destinations (the realm agents) MUST process the GRE header as specified in [10, 11]. The local home agent and the mobile node MUST be able to perform GRE encapsulation and decapsulation. The diagram below illustrates forward GRE tunneling (from the local home agent to the mobile node co-located care-of address) when the mobile node moves from the private home routing realm into a private visted routing realm with overlapping address space. The same route but in reverse is typically taken by the reverse GRE tunnel. Teo and Li Expires September 1999 [Page 8] Internet Draft February 1999 Private Home Routing Realm -------------------------- private home network: 10.0.0.0/8 correspondent node address: 10.10.10.10 MN home address: 10.0.0.10 MN local home agent address: 10.0.0.1 MN realm home agent address: 192.32.174.44 Private Visited Routing Realm ----------------------------- private visited network: 10.0.0.0/16 advertised realm foreign agent address: 200.9.2.1 MN co-located care-of address: 10.0.20.20 S1 and D1 represent the original IP header's source and destination addresses respectively. S2 and D2 represent the IP delivery header's source and destination addresses respectively. Global Public Internet ________________ ( ) ( ) ( ) ( ) (________________) | | {S2=192.32.174.44,^ | | |{S2=192.32.174.44, D2=200.9.2.1} | | | | D2=200.9.2.1} {S1=10.10.10.10,| | | |{S1=10.10.10.10 D1=10.0.0.10} | | | | D1=10.0.0.10} | | | v 192.32.174.44 | | | 200.9.2.1 +------------------+ +---------------------+ | Realm Home Agent | | Realm Foreign Agent | +------------------+ +---------------------+ | | Private | Home Network Private | Visited Network ------------------------------- ------------------------- {S2=10.0.0.1, ^ | | |{S2=200.9.2.1, D2=192.32.174.44}| | | | D2=10.0.20.20} {S1=10.10.10.10,| | | |{S1=10.10.10.10, D1=10.0.0.10} | +--+ +--+ v D1=10.0.0.10} |--| |--| /____ /____ 10.0.0.1 10.0.20.20 Local Home Agent Mobile Node 2.5 ICMP messages Teo and Li Expires September 1999 [Page 9] Internet Draft February 1999 The realm agents should handle ICMP messages from within the GRE tunnel as specified in [3], including the maintenance of tunnel "soft state". 3. MPN Agent Advertisement Mobile IP's agent advertisements allow a mobile node to detect movement across IP subnets. MPN includes a realm agent advertisement extension to Mobile IP's agent advertisements. This allows a mobile node to determine its current routing realm. All MPN extension type values are selected from the range 128 to 255. As specified in Mobile IP, values in this range can be silently ignored by mobile nodes supporting only the Mobile IP based protocol. 3.1 Realm Agent Extension This extension MUST be included in all local home agents' and local foreign agents' agent advertisements. All realm agents that serve as a realm home agent for any mobile node in the routing realm MUST be included in the list of Realm Agent Entries. The presence of this extension also indicates that the advertiser supports MPN. The Realm Agent Advertisement Extension is defined as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length |P| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | zero or more Realm Agent Entries | | ... | Type 128 Length (2 + 8*N), where N is the number of realm agent entries. P Public Network. The network is accessible from the global public Internet (not a private network) The Realm Agent Entry is defined as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Preference |R|F|P|T| rsvd | Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Realm Agent Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Teo and Li Expires September 1999 [Page 10] Internet Draft February 1999 Preference cost indicator. 0 means the realm foreign agent is busy and will not tunnel datagrams for additional mobile nodes. Lifetime The longest lifetime (measured in seconds) that this realm foreign agent is willing to accept in any registration request. A value of 0xffff indicates infinity. R Registration required. Registration with the realm foreign agent is required. The realm foreign agent will maintain the mobility binding of successful registrations. If the 'R' bit is not set, the Lifetime field is undefined and can be assumed to be infinite. If the 'R' bit is set, the 'P' bit can be assumed to be set. F Foreign Realm Agent. This realm agent offers service as a foreign realm agent in this routing realm. P Registration Proxy. This realm agent will relay the registration message to the next mobility agent or mobile node (registration reply). T Tunnel Circuit Switching. This realm agent supports tunnel circuit switching [ref Section 7]. The Realm Agent Address MUST be a public IP address reachable from the global public Internet. A realm agent MUST always be prepared to serve the mobile nodes for which it is the realm home agent. The Realm Agent Advertisement Extension MUST be before the Mobility Agent Advertisement Extension [1]. 3.2 Choosing a Realm Agent Having only one realm agent for a routing realm will be a single point of failure and possible bottleneck device. The realm agent entries [refer Section 3.1] carry with each realm agent address a preference identifier. To select a realm agent, one has to rely on heuristics approaches. The easiest may be to always choose the "preferred realm foreign agent" - the realm agent entry with the maximum preference value or alternatively chose the realm home/foreign agent randomly. This will spread the tunneled traffic on Teo and Li Expires September 1999 [Page 11] Internet Draft February 1999 different routes and introduce better load sharing and more redundancy to the network. 3.3 Absent Agent Advertisment Agent advertisements are needed to determine the current routing realm. If there is no agent advertisement detected, a mobile node should send agent solicitations, even when it acquires a co-located care-of address. This is to determine if the mobile node is within its home routing realm. In the absence of agent advertisements, a mobile node should proceed as if the current routing realm is the global public Internet. This implies, a public mobile node should proceed as specified in Mobile IP, and a private mobile node should proceed as specified in the private home routing realm to public visited routing realm movement scenario [ref Section 6.3]. 3.4 Movement Detection To determine the current routing realm, a mobile node should check the 'P' bit in the Realm Agent Advertisement Extension. Public Mobile Node ------------------ If the 'P' bit is set, the mobile node is in its home routing realm (the global public Internet) and it can proceed as specified in Mobile IP. If the 'P' bit is not set, the mobile node is in a private routing realm and it should proceed as specified in the public home routing realm to private visited routing realm movement scenario [ref Section 6.1] Private Mobile Node ------------------- If the 'P' bit is set, the mobile node is in the global public Internet and it should proceed as specified in the private home routing realm to public visited routing realm movement scenario [ref Section 6.3] If the 'P' bit is not set, the mobile node MUST search all the Realm Agent Entries. If one of the realm agent addresses advertised matches the mobile node's assigned realm home agent address, it is in its home routing realm and can proceed as specified in Mobile IP. If there is no matching realm agent address, the mobile node is in a private foreign routing realm and it should proceed as specified in the private home routing realm to private foreign routing realm Teo and Li Expires September 1999 [Page 12] Internet Draft February 1999 movement scenario [ref Section 6.2] Once the current routing realm is determined, the mobile node can detect movement between IP subnets as specified in Mobile IP. 4. MPN Registration Registration allows mobile nodes to communicate their current reachability information to the mobility agents. The following sections describes registration across routing realms. There are two registration procedures. One via the mobility agents that relay the registration to the mobile node's local home agent, and another by tunneling the registration to the mobile node's local home agent. By default, the registration messages are tunneled unless all intermediate tunnel destinations (the realm agents) support registration relay ('P' bit is set in the Realm Agent Entry [ref Section 3.1]). 4.1 Realm Agent Registration Extension All registration request and reply MUST include the Realm Agent Registration extension. This extension MUST be before the Mobile-Home Authentication extension. The extension is an explicit notification of the source route (realm agents) that SHOULD be traversed between the home routing realm and visited routing realms. There may be additional routing realms crossed implicity but they are transparent to MPN and no additional intermediate tunnel destinations are specified i.e. not included in the Realm Agent Registration extension. The Realm Agent Registration extension is defined as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length |H|F|R|T| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Realm Home Agent Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Realm Foreign Agent Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 128 Length 10 Teo and Li Expires September 1999 [Page 13] Internet Draft February 1999 H Realm Home Agent Present If the Realm Home Agent Present bit is set to 1, then the realm home agent address field is valid and indicate an intermediate tunnel destination requested. F Realm Foreign Agent Present If the Foreign Home Agent Present bit is set to 1, then the realm home agent address field is valid and represent an intermediate tunnel destination requested. R Registration Relay. If the 'R' bit is set, the mobile node or local home agent requests that the realm agents relay the registration messages. T Tunnel Circuit Switching. If the 'T' bit is set, the mobile node requests that the mobility agents use tunnel circuit switching [ref Section 7]. 4.2 Registration Considerations Tunneling of Registration Messages All mobility agents except the local foreign agent MUST be able to process GRE tunneled packets. This enables the mobile node to reverse tunnel the registration request to its local home agent and for the local home agent to forward tunnel the registration reply in a basic MPN deployment. Registration Relay A private mobile node MUST NOT request a realm foreign agent to relay its registration request (set 'R' bit in Realm Agent Registration extension) if its realm home agent does not support registration relay. Realm Foreign Agent A realm foreign agent that requires registration ('R' bit is set in the Realm Agent Entry) MUST tunnel the registration message to the local home agent if the 'H' bit is set but the 'R' bit is not set in the Realm Agent Registration extension, with the realm home agent as the intermediate tunnel destination. Local Foreign Agent A local foreign agent that requires registration ('R' bit is set in Teo and Li Expires September 1999 [Page 14] Internet Draft February 1999 the Mobility Agent Extension) MUST process the Realm Agent Registration Extension and relay the registration message to the next mobility agent. Local Home Agent The local home agent MUST return the same realm agent registration extension (in the registration request) for all registration replies. 5. Security Extensions There can be security associations between realm agents and Mobile IP mobility agents. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | SPI .... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... SPI (cont.) | Authenticator ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Mobile-Realm Home Authentication Extension Type 35 Mobile-Realm Foreign Authentication Extension Type 36 Realm Foreign-Realm Home Authentication Extension Type 37 6. Movement Scenarios Only movement across routing realms need to be considered. Mobility support within the home routing realm is provided by the Mobile IP base protocol. Only the differences from Mobile IP is illustrated. The movement detection algorithm is specified in Section 3.4 In all the scenarios, the mobile node will typically establish a bidirectional tunnel with its local home agent. 6.1 Public Home Routing Realm to Private Visited Routing Realm A realm foreign agent 200.9.2.1 is selected from the realm agent entries ('F' bit is set) advertised. Teo and Li Expires September 1999 [Page 15] Internet Draft February 1999 Registration Request -------------------- IP fields: Source Address MN co-located care-of address Destination Address MN local home agent address Mobile IP fields: The 'D' bit, 'G' bit and 'R' bit are set. Realm Agent Registration extension fields: The 'F' bit is set. Realm Foreign Agent Address 200.9.2.1 If the realm foreign agent 200.9.2.1 supports registration relay, the the mobile node's local home agent. Registration Reply ------------------ Realm Agent Registration extension fields: If the 'R' bit is not set, the registration message must be GRE tunneled in the reverse direction. Bidirectional Tunnel -------------------- On successful registration, a bidirectional GRE tunnel is established between the mobile node and local home agent. Mobile Node <--> Realm Foreign Agent <--> Local Home Agent Routing Optimization -------------------- The realm foreign agent may be the reverse tunnel endpoint. This should be determined by the mobile node. 6.2 Private Home Routing Realm to Private Visited Routing Realm The scenario is similar to Section 6.1 except there is now a realm home agent. Using the same example in Section 2.4: Teo and Li Expires September 1999 [Page 16] Internet Draft February 1999 Registration Request -------------------- The Realm Agent Registration fields: The 'H' bit and 'F' bit are set. Realm Foreign Agent Address 200.9.2.1 Realm Home Agent Address 192.32.174.44 If both the realm home agent and realm foreign agent support registration relay, the 'R' bit set, else the registration message must be GRE tunneled to the mobile's node local home agent. Bidirectional Tunnel -------------------- On successful registration, a bidirectional GRE tunnel is established between the mobile node and local home agent. Mobile Node <--> Realm Foreign Agent <--> Realm Home Agent ^ | Local Home Agent Routing Optimization -------------------- The realm home agent may be the reverse tunnel endpoint. This should be determined by the mobile node. 6.3 Private Home Routing Realm to Public Visited Routing Realm The scenario is similar to Section 6.2 except there is now no realm foreign agent. Registration Request -------------------- IP fields: Source Address MN co-located care-of address Destination Address 192.32.174.44 Mobile IP fields: Teo and Li Expires September 1999 [Page 17] Internet Draft February 1999 The 'D' bit, 'G' bit and 'R' bit are set. Realm Agent Registration extension fields: The 'H' bit is set. Realm Home Agent Address MN realm home agent If the realm home agent supports registration relay, the 'R' bit is set, else the registration message must be tunneled to the mobile node's local home agent. Bidirectional Tunnel -------------------- On successful registration, a bidirectional GRE tunnel is established between the mobile node and local home agent. Mobile Node <--> Realm Home Agent <--> Local Home Agent Routing Optimization -------------------- The realm home agent may be the reverse tunnel endpoint. This should be determined by the mobile node. 7. Tunnel Circuit Switching This section describes an alternative encapsulation mechanism to tunnel across multiple routing realms. Tunnel circuit switching is an extension of Minimal Encapsulation for IP [4]. In MPN, bidirectional tunneling is used to deliver datagrams between the mobile node and its local home agent. In tunnel circuit switching, the bidirection tunnel is a virtual routing circuit with the mobile node and its local home agent as the circuit end points. When the mobile node and its local home agent are in different routing realms, the virtual circuit must be routed through realm agent(s). The diagram illustrates all the MPN entities in a virtual circuit that crosses three separate routing realms - private home network to global public internet to private visited network. Mobile node with co-located care-of address ------------------------------------------- Mobile Node <--> Realm Foreign <--> Realm Home <--> Home Agent Agent Agent Teo and Li Expires September 1999 [Page 18] Internet Draft February 1999 For the reverse tunnel, the mobile node encapsulates the original datagram with the care-of address as the source address of the modified IP header. Mobile node with local foreign agent as care-of address ------------------------------------------------------- Mobile <--> Foreign <--> Realm Foreign <--> Realm Home <--> Home Node Agent Agent Agent Agent For the reverse tunnel, the mobile node encapsulates the original datagram with the home address as the source address and the local foreign agent or the realm foreign agent as the destination address of the modified IP header. For the forward tunnel, the local foreign agent or the mobile node may be the tunnel endpoint. The local foreign agent MUST forward the datagram with the mobile node's link layer address (learnt from the mobile node registration request) as the destination link layer address. 7.1 Conventional Datagram Tunneling Typically, there are only two entities involved in tunneling - the encapsulator and decapsulator - as the tunnel is established within a common routing realm. There is generally no benefit to establishing a virtual circuit since the tunnel header already stores both tunnel endpoints addresses. In MPN, to tunnel from the home agent to the care-of address and vice versa, the IP addresses of each of the intermediate tunnel destinations which routes the tunneled packet are required. In the conventional approach, all these routing information are recorded in the tunnel header. However, this information is duplicated for every datagram tunneled. The additional information is also only relevant to the realm agents. Establishing a tunnel circuit can reduce this overhead. 7.2 Tunnel Identifier Tunnel identifiers (TIDs) are assigned by realm agents. They are used by MPN entities to correctly switch the tunnel circuits. The TIDs are unique to a realm agent and have no relation to the TIDs assigned by other realm agent. Teo and Li Expires September 1999 [Page 19] Internet Draft February 1999 IP fragmentation must not occur at a tunnel circuit switching point as the TID is stored within the IP payload. The same requirement applies to GRE tunnels. The TID assigned must be authenticated to prevent modification during tunnel circuit establishment. Since a Mobile-Home security association MUST exist in Mobile IP, it can be used for the TID authenticaton. During the mobile node registration process, the realm agents allocate their TIDs in the TID extension [ref to Section 7.3] of the registration request. The TID extension MUST NOT be included in the Mobile-Home Authentication extension. If the registration process is successful, the home agent MUST include the TID extension in the Mobile-Home Authentication extension of the registration reply. The realm agents MUST verify that the TID in the TID extension of the registration reply is the original value allocated. If the value is changed, the realm agent MUST indicate a registration failure in the code field of the registration reply. 7.3 Tunnel Identifier Extension 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length |H|F| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Realm Home Agent TID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Realm Foreign Agent TID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 129 Length 10 H Realm Home Agent TID Present If the Realm Home Agent TID Present bit is set to 1, then the realm home agent TID field is valid. F Realm Foreign Agent TID Present If the Foreign Home Agent TID Present bit is set to 1, then the realm home agent TID field is valid. Teo and Li Expires September 1999 [Page 20] Internet Draft February 1999 7.4 Minimal Forwarding Header The minimal forwarding header is inserted into a datagram as specified by [4]. The format of the extended minimal forwarding header is as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Protocol |S|T|R|D| rsv | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Original Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : (if present) Original Source Address : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : (if present) Tunnel Identifier : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The new extensions are defined as follows: T TID Bit If set, the Tunnel Identifier field is present. R Reverse Bit If set, the packet is tunneled from the mobile node to its local home agent (reverse tunneling). D Decapsulation Bit If set, the packet SHOULD be decapsulated and forwarded using the existing routing mechanism. 7.5 Data Structures A realm agent MUST associate the TID with the following information: Index H R Next Hop IP Address Next Hop TID ----- - - ------------------- ------------ TID 0 0 Care-of Address Unchanged 0 1 Realm Home Agent Realm Home Agent TID 1 0 Realm Foreign Agent Realm Foreign Agent TID 1 1 Home Agent Unchanged H If set, the realm agent is a Realm Home Agent. R If set, the tunnel circuit is a reverse tunnel ('R' bit is set in the extended minimal forwarding header). A local home agent MUST associate the mobile node's home address with Teo and Li Expires September 1999 [Page 21] Internet Draft February 1999 the TID assigned by the (forward tunnel) next hop realm agent in the registration request. A local foreign agent MUST associate the TID assigned by the (reverse tunnel) next hop realm agent in the registration reply with the mobile node's link layer address. 8. Security Considerations GRE is a cleartext encapsulation mechanism and does not protect the data from eavesdroppers. The mobile node and its local home agent should establish an end-to-end bidirectional tunnel and encrypt it if privacy is a concern. Due to the current lack of trust for the Internet at large, a secure channel should be established from a private mobile node to its private home routing realm. Traffic between the private mobile node and its realm home agent's external interface should be encrypted. Firewall Filter Rules Access control at the realm agents into the private network should be provided as any node that gains access to it, can access the private network as well. Firewalls can deny mobile traffic on a per private routing realm basis or per public network basis. To control the visitor list on a per mobile node basis, the realm agents MUST be active realm agents. It is also possible to filter traffic based on the TID. Implementation Status A prototype implementation of MPN by W. T. Teo, one of the authors, is now undergoing testing. Acknowledgements Many thanks to Y. C. Tay at the National University of Singapore for supporting this joint work as well as for his valuable comments. This work was supported in part by National University of Singapore ARF grant RP960683. References [1] Perkins, C., Editor, "IP Mobility Support", RFC 2002, October 1996 Teo and Li Expires September 1999 [Page 22] Internet Draft February 1999 [2] C. Perkins. "IP Mobility Support Version 2", , November 1997 [3] C. Perkins, "IP Encapsulation within IP", RFC 2003, May 1996 [4] C. Perkins, "Minimal Encapsulation within IP", RFC 2004, October 1996 [5] G. Montenegro, "Reverse Tunneling for Mobile IP", RFC 2344, May 1998. [6] P. Srisuresh, K. Egevang, "Traditional IP Network Address Translator (Traditional NAT)", - work in progress, November 1998 [7] P. Srisuresh, M. Holdrege, "IP Network Address Translator (NAT) Terminology and Considerations", - work in progress, October 1998 [8] Y. Li, W. T. Teo, "IP Private Address Identification", - work in progress, November 1998 [9] Rekhter, Y., Moskowitz, B. Karrenberg, D., G. de Groot, and Lear, E. "Address Allocation for Private Internets", RFC 1918, February 1996 [10] S. Hanks, T. Li, D. Farinacci and P. Traina, "Generic Routing Encapsulation over IPv4 networks", RFC 1702, October 1994 [11] S. Hanks, T. Li, D. Farinacci, P. Traina, "Generic Routing Encapsulation (GRE)", RFC 1701, October 1994 Teo and Li Expires September 1999 [Page 23] Internet Draft February 1999 Author's Address W. T. Teo School of Computing National University of Singapore Lower Kent Ridge Crescent SINGAPORE 119260 E-mail: teoweetu@comp.nus.edu.sg Y. Li Nortel Networks BL60-304 600 Technology Park Drive Billerica, MA 01821 Phone: 1-978-916-1130 Fax: 1-978-670-8760 E-mail: yunli@NortelNetworks.COM Teo and Li Expires September 1999 [Page 24]