# Patent

## Title
Method, apparatus and system for maintaining mobility resistant IP tunnels using a mobile router

## Abstract

A method, apparatus and system enable a mobile device to roam while maintaining a persistent IP tunnel. Specifically, a mobile router may be utilized to enable a mobile device to maintain a persistent IP tunnel while the device roams. In one embodiment, the mobile device is a virtual host and the mobile router is a virtual mobile router.

## Background
BACKGROUND
Use of mobile computing devices (hereafter “mobile nodes”) such as laptops, notebook computers, personal digital assistants (“PDAs”) and cellular telephones is becoming increasingly popular today. These mobile nodes enable users to move from one location to another (“roam”), while continuing to maintain their connectivity to the same network. Given its increasing popularity, it is unsurprising that most corporate (“enterprise”) networks today attempt to facilitate fast and secure mobile computing.
In order to roam freely, networks typically conform to one or more industry-wide mobile internet protocol (“IP”) standards. More specifically, the Internet Engineering Task Force (“IETF”) has promulgated roaming standards (Mobile IPv4, IETF RFC 3344, August 2002) and Mobile IPv6, IETF Mobile IPv6, Internet Draft draft-ietf-mobileip-ipv6-24.txt, June 2003) to enable mobile node users to move from one location to another while continuing to maintain their current connectivity to the same network, and/or to the networked devices (e.g., printers). These industry standards have unfortunately encountered various adoption and implementation problems. As a result, although these standards exist, there is still a need for one or more schemes to enable mobile nodes to roam easily.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements, and in which:
FIG. 1 illustrates a known corporate intranet structure;
FIG. 2 illustrates a known enterprise network topology;
FIG. 3 illustrates a typical virtual machine host;
FIG. 4 illustrates an embodiment of the present invention;
FIG. 5 is a sequence diagram illustrating conceptually an embodiment of the present invention; and
FIG. 6 is a flow chart illustrating an embodiment of the present invention.



DETAILED DESCRIPTION
Embodiments of the present invention provide a method, apparatus and system for mobile nodes to maintain a consistent IP tunnel while roaming across networks. More specifically, embodiments of the present invention utilize a mobile IP router to enable mobile nodes to maintain a consistent IP tunnel, while roaming across networks. The phrase “roaming across networks” is well known to those of ordinary skill in the art and includes roaming from one subnet to another on a single network (e.g., moving within a single building having multiple access points), roaming from one type of network to another (e.g., an 802.11 [Institute of Electrical and Electronics Engineers (“IEEE”) Std 802.11-1999 (Reaff 2003),] network to an 802.16 [IEEE Std 802.16-2004] network) and/or roaming from one location to another (e.g., roaming from a company to a residence, which may include changing access points and/or changing network types). Reference in the specification to “one embodiment” or “an embodiment” of the present invention means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment,” “according to one embodiment” or the like appearing in various places throughout the specification are not necessarily all referring to the same embodiment.
In order to facilitate understanding of embodiments of the present invention, FIG. 1 and FIG. 2 describe typical network topologies and roaming scenarios. Specifically, FIG. 1 illustrates a known corporate intranet (“Corporate Intranet 100”) structure. Corporate Intranet 100 may include both wired and wireless networks and may comprise multiple subnets. A subnet refers to a portion of an organization's network interconnected to other subnets by a routing element. Subnets are well known to those of ordinary skill in the art and further description thereof is omitted herein. Within Corporate Intranet 100, a mobile node (“MN 125”) may roam across subnets (illustrated as Subnets 1-4) when a user moves from one location to another (e.g., from conference room to another and/or from one building to another).
Corporate Intranet 100 may, however, also be connected to an external network, such as the Internet, and MN 125 may roam between Corporate Intranet 100 and the external network. FIG. 2 illustrates a known network topology today, comprising Corporate Intranet 100, separated from an external network (“External Network 200”) by a corporate demilitarized zone 205 (“Corporate DMZ 205”). Corporate DMZ 205 is well known to those of ordinary skill in the art and further description of such is omitted herein. Similar to Corporate Intranet 100, External Network 200 may also include both wired and wireless networks and comprise multiple subnets and/or access points. For security purposes, Corporate DMZ 205 is likely to include security gateways such as Virtual Private Network (“VPN”) gateways (collectively illustrated in FIG. 2 as “VPN Gateway 210”) to protect Corporate Intranet 100 from External Network 200. VPN Gateway 210 also provides a secure means of communication between nodes on Corporate Intranet 100 and nodes on External Network 200 by encrypting the packets between the nodes on External Network 200 and Corporate Intranet 100. Since VPNs are likely to include security features such as IP Security (“IEPSec”) and Secure Socket Layer/Transport Layer Security (“SSL/TLS”) security, all references herein to VPNs shall include IPSec-based VPNs and/or SSL/TLS-based VPNs, but embodiments of the present invention are not so limited. VPN gateways, SSL/TLS and IPSec are well known to those of ordinary skill in the art and further description thereof is omitted herein.
Typically, when MN 125 roams from Corporate Intranet 100 to External Network 200 or from access point to access point on Corporate Intranet 100 and/or on External Network 200, MN 125 may be required to establish an IPSec tunnel (“IPSec Tunnel 215”) to VPN Gateway 210 in order to securely access the corporate network. As is well known to those of ordinary skill in the art, IP tunnels such as IPSec are statically bound to fixed IP addresses at the time the tunnel is established. In other words, the binding of IPsec VPN tunnels is between the IP addresses of MN 125 and VPN Gateway 210 and if either of these IP addresses changes, the IPSec tunnel has to be renegotiated. As MN 125 roams from one location to another, its IP address typically changes, thus necessitating tear down of the existing IPSec tunnel and establishment of a new IPSec tunnel. This constant need to renegotiate IPSec VPN tunnels may cause a significantly degraded user experience, due to the latency in performing elaborate VPN tunnel setup procedures. Additionally, the constant need to renegotiate VPN tunnels may also disrupt and break many applications that rely on these tunnel. For example, corporate applications such as email and voice-over-IP (“VoIP”) services may experience problems when a user roams from network to network.
Embodiments of the present invention enhance the usability of mobile nodes by providing a method, apparatus and system for maintaining a consistent IP tunnel while roaming across networks. More specifically, according to an embodiment of the present invention, a mobile router (“MR”) may enable existing VPN tunnels to persist, even when MN 125 roams, i.e., as MN 125's IP address changes. It will be readily apparent to those of ordinary skill in the art that embodiments of the invention may be implemented in hardware, software, firmware and/or any combination thereof. Although the following description assumes that the MR is implemented in a “mobile” node, embodiments of the present invention are not so limited and may have other applicability (e.g., in scenarios where a computing device has multiple IP interfaces and the platform moves from one interface to another).
Additionally, although the following description assumes a virtualized environment, embodiments of the invention are not so limited. Instead, embodiments of the invention may have applicability within other environments such as in multi-core processing devices and/or devices having specialized processors dedicated to managing the platform. Other embodiments may include using Intel Corporation's Active Management Technologies (“AMT”), “Manageability Engine” (“ME”), Platform Resource Layer (“PRL”) and/or other comparable or similar technologies. Embodiments of the present invention may additionally include various personal devices, i.e., devices coupled to the mobile node. Thus, for example, although the following description assumes VMs on a host, instead of or in addition to a VM, one embodiment of the invention may include a personal digital assistant coupled to a mobile node and/or a cell phone coupled to the mobile node. Finally, although the following description assumes that a mobile node is moving from one location to another within a single network, other embodiments of the invention may include a mobile node moving from one type of network to another (e.g., from an 802.11 to an 802.16 network).
In order to facilitate understanding of embodiments of the invention, FIG. 3 illustrates an example of a typical virtual machine host platform (“Host 300”). One aspect of virtualization technology enables a single host computer running a virtual machine monitor (“VMM”) to present multiple abstractions and/or views of the host, such that the underlying hardware of the host appears as one or more independently operating virtual machines (“VMs”). A virtual-machine monitor (illustrated as “VMM 330”) typically runs on the host platform and presents an abstraction(s) and/or view(s) of the platform (also referred to as “virtual machines” or “VMs”) to other software. Although only two VM partitions are illustrated (“VM 310” and “VM 320”, hereafter referred to collectively as “VMs”), these VMs are merely illustrative and additional virtual machines may be added to the host. VMM 330 may be implemented in software (e.g., as a standalone program and/or a component of a host operating system), hardware, firmware and/or any combination thereof.
VM 310 and VM 320 may function as self-contained platforms respectively, running their own “guest operating systems” (i.e., operating systems hosted by VMM 330, illustrated as “Guest OS 311” and “Guest OS 321” and hereafter referred to collectively as “Guest OS”) and other software (illustrated as “Guest Software 312” and “Guest Software 322” and hereafter referred to collectively as “Guest Software”). Each Guest OS and/or Guest Software operates as if it were running on a dedicated computer rather than a virtual machine. That is, each Guest OS and/or Guest Software may expect to control various events and have access to hardware resources on Host 300. Within each VM, the Guest OS and/or Guest Software may behave as if they were, in effect, running on Host 300's physical hardware (“Host Hardware 340”).
According to embodiments of the present invention, a virtual machine host as described above may be leveraged to enable mobile nodes to maintain a persistent VPN tunnel while roaming. FIG. 4 illustrates an embodiment of the present invention. As illustrated, MN 125 comprises a virtual machine host wherein one of the partitions on the device (previously VM 320) is dedicated to function as a virtual MR (“VMR 400”) while VM 310 comprises a VPN client endpoint. Typically, each VM on a virtual host may be assigned a virtual (internal) IP address. Thus, for example, VM 310 may typically have a virtual IP address assigned to it. Additionally, VMR 400 may be assigned the physical Network Interface Card (“NIC”) interfaces (e.g., NIC Interface 420 and NIC Interface 425 in Host Hardware 340) on MN 125, including drivers associated with the interfaces (e.g., Driver 430 and Driver 435, respectively). VMM 330 may present VM 310 and VMR 400 with virtual versions of the interfaces (illustrated as “Virtual Adapter 440” and “Virtual Adapter 445” respectively). In other words, according to embodiments of the present invention, VMR 400 may own the physical NIC interfaces on MN 125 and VM 310 sees only a virtual version of the interfaces. Thus, according to one embodiment, VMR 400 acts as a dedicated partition for all NICs on MN 125.
DHCP Server/Client 410 may function as a DHCP server for MN 125 internally (i.e., it may allocate internal IP addresses on request) and a DHCP client otherwise (e.g., requesting external IP addresses for MN 125 from other DHCP servers on Corporate Intranet 100 or External Network 200). According to an embodiment of the present invention, Guest OS 311 may request an IP address for VM 310. This request may be intercepted by VMR 400 and DHCP Server/Client 410 may assign Guest OS 311 an “internal” address. Similarly, VMR 400 may request an IP address from a DHCP server on Corporate Intranet 100 or External Network 200. In this example, the request from VM 310 is assumed to be for Interface 420 (e.g., an 802.11 interface). Upon receipt of an address from the DHCP server on External network 200 (“external” IP address, hereafter referred to as the “Original Address”), VM 310 may establish VPN Tunnel 450 with VPN Gateway 210 using the Original Address. In one embodiment, NAT 405 may perform address translations and store all IP addresses for VPN Tunnel 450. All network traffic between VM 310 and VPN Gateway 210 may thereafter be encrypted and transmitted to and from via VPN Tunnel 450 (Path A, solid line in FIG. 4).
In one example, to illustrate how embodiments of the present invention maintain VPN Tunnel 450, MN 125 is assumed to roam to a new IP subnet. In one embodiment, MN 125 may move from one subnet to another, while in an alternate embodiment, VMR 400 may be configured to recognize a new network type and make the determination whether to move from one network type to another (e.g., an 802.11 network to an 802.16 network). It will be readily apparent to those of ordinary skill in the art that VMR 400 may be configured according to various predetermined schemes. As a result of the roaming, VMR 400 may be assigned a new IP address (hereafter referred to as the “New Address”) by the new subnet or network. If MN 125 is roaming within the same network, this New Address may be assigned to Interface 420 but if MN 125 roams to a different network and has to use a different wireless interface (e.g., NIC Interface 425 corresponding to the 802.16 NIC), the New Address may be assigned to the new interface. Regardless, as a result of roaming, VMR 400 now has a new address. Typically, at this point, MN 125 tears down VPN Tunnel 450 (established between VPN Gateway 210 and the now-obsolete Original Address) and reestablishes a new VPN tunnel (between VPN Gateway 210 and the New Address).
According to embodiments of the present invention, however, to eliminate the need to tear down and reestablish VPN Tunnel 450 and to avoid problems for VoIP and other applications when roaming across IP networks, VMR 400 may detect the oncoming transition to a new network and perform a DHCP renew of the Original Address and save this Original Address in a “mobility table”460. A mobility table, as used herein, may include any type of data structure (e.g., buffered information, a table, etc.). In one embodiment, the mobility table 460 may be a data structure that is maintained only for a predetermined period. The Original Address lease time may also be noted to ensure that the subnet does not allocate this IP address to any new client during this predetermined period.
VMR 400 may then request a New Address from the DHCP Server/Client 405 and send a “route update” message (via Router 415) to other routers on External Network 200 to publish its New Address as the route for its Original Address. As a result, the route update takes effect in the network, i.e., the network views Router 415 in VMR 400 as the router for the Original Address and packets destined for the Original Address are now routed to Router 415 in VMR 400, which in turn routes the packets to the New Address (illustrated as Path B in FIG. 4). It will be readily apparent to those of ordinary skill in the art that various routing algorithms may be used to update the route on External Network 200 without departing from the spirit of embodiments of the present invention. It will be additionally apparent to those of ordinary skill in the art that according to the embodiment described above, the internal IP addresses for the VMs do not change, i.e., Guest OS 311 and VPN Gateway 210 are unaware that Original Address has changed.
A significant advantage of embodiments of the present invention is that no complex tunneling protocols are required, unlike typical Mobile IP schemes, to make roaming transparent to Guest OS 311 applications (e.g., VoIP and/or multimedia applications). According to embodiments of the invention, each mobile device having a mobile router may be self-reliant. As previously described, although the above description assumes the use of a virtual machine host, embodiments of the present invention are not so limited. Thus, for example, one embodiment of the invention may be implemented on a mobile device having a multi-core processor. According to this embodiment, one core of the multi-core processor may be dedicated to provide the mobile router functionality described herein while the remaining processors remain unchanged. Similarly, in an alternate embodiment, special purpose hardware may be added to a device to enable a mobile router to be implemented while allowing the main processor(s) to remain unchanged.
FIG. 5 is a sequence diagram illustrating conceptually an embodiment of the present invention. When MN 125 initially starts up, Guest OS 311 in VM 310 may attempt to connect to the network. In one embodiment, in 501, this request to connect is routed from VMR 400 to an access point on Corporate Intranet 100 or External Network 200 via a network interface (e.g., Interface 420, the 802.11 interface). In 502, DHCP Server/Client 410 in VMR 400 (acting as a DHCP client) may issue a request to a DHCP server on Corporate Intranet 100 or External Network 200 for an external network address. In 503, in response to Guest OS 311's request for an IP address, DHCP Server/Client 410 in VMR 400 (acting as a DHCP server) may also provide VM 310 with an internal IP address. Upon receipt of the external IP address (Original Address), Guest OS 311 may establish an IPSec VPN tunnel (VPN Tunnel 450) with VPN Gateway 210 in 504, while NAT 405 in VMR 400 performs address translations (e.g., translating the internal IP address to the external IP address) and stores the addresses for VPN Tunnel 450. VPN Tunnel 450 thus comprises the external address assigned to VMR 400 (Original Address) on one end and VPN Gateway 210's address on the other end.
When MN 125 moves to a different subnet or network, in 505, DHCP Server/Client 410 in VMR 400 may request a new IP address from a DHCP server on Corporate Intranet 100 or External Network 200. VMR 400 may then in 506 maintain Original Address in its mobility table 460 while updating NAT 405 with the new IP address (New Address). In 507, Router 415 in VMR 400 may send a “route update” message to other routers on Corporate Intranet 100 and/or External Network 200 to publish its New Address as the route for its Original Address. Since NAT 405 in VMR 400 continues to perform address translation (i.e., translating New Address into the internal IP address assigned to VM 310), VPN Tunnel 450 appears to Guest OS 311 and VPN Gateway 210 to be unchanged. As a result, when IPSec packets are transmitted from Guest OS 311 in 508, the packets may continue to be routed in 509 by Router 415 in VMR 400 through VPN Gateway 210.
FIG. 6 is a flowchart illustrating an embodiment of the present invention. In 601, when MN 125 first starts up on the network, VM 310 reqeusts an IP address. In 602, VMR 400 may intercept this request and request an internal IP address from DHCP Server/Client 410. In 603, DHCP Server/Client 410 may also request an external IP address from DHCP servers on the network. Upon receipt of the external IP address (Original Address), in 604, VM 310 may establish an IPSec VPN tunnel with VPN Gateway 210. In 605, when MN 125 roams, VMR 400 may issue a new request for an IP address from the DHCP servers on the network. VMR 400 may additionally store Original Address in a mobility table 460 in 606. Upon receipt of the new IP address (New Address), Router 415 in VMR 400 may send out an update to all routers on the network in 607 and NAT 405 may continue to perform address translations. Thereafter, any packets destined for Original Address will be routed via Router 415 to New Address in 608. Since VMR 400 handles the address translations and routing, VM 310 and VPN Gateway 210 may not ever be aware that the external address has in fact changed due to MN 125's roaming.
The hosts according to embodiments of the present invention may be implemented on a variety of computing devices. According to an embodiment, a computing device may include various other well-known components such as one or more processors. The processor(s) and machine-accessible media may be communicatively coupled using a bridge/memory controller, and the processor may be capable of executing instructions stored in the machine-accessible media. The bridge/memory controller may be coupled to a graphics controller, and the graphics controller may control the output of display data on a display device. The bridge/memory controller may be coupled to one or more buses. One or more of these elements may be integrated together with the processor on a single package or using multiple packages or dies. A host bus controller such as a Universal Serial Bus (“USB”) host controller may be coupled to the bus(es) and a plurality of devices may be coupled to the USB. For example, user input devices such as a keyboard and mouse may be included in the computing device for providing input data. In alternate embodiments, the host bus controller may be compatible with various other interconnect standards including PCI, PCI Express, FireWire and other such existing and future standards.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be appreciated that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

## Claims

1. A method comprising:
establishing a mobile router in a client, the mobile router to intercept a request for at least one internal Internet Protocol (“IP”) address for the client directed to a first destination such that the request is not received at the first destination, the mobile router additionally to reroute the request for the at least one internal IP address to a Dynamic Host Configuration Protocol (“DHCP”) module on the client different from the first destination, the DHCP module to assign the at least one internal IP address for the client;
assigning a software device driver of at least one Network Interface Card (“NIC”) on the client to the mobile router
enabling the mobile router to receive the at least one internal IP address for the client assigned by the DHCP module;
enabling the mobile router to request a first external IP address for the client from a DHCP server on a first network via the DHCP module on the client;
enabling an address translation mechanism on the client;
enabling an operating system (“OS”) on the client to establish an IP tunnel with a gateway using the first external IP address;
enabling the mobile router to request a second external IP address for the client from a DHCP server on a second network via the DHCP module on the client when the client roams to the second network;
storing the first external IP address in a mobility data structure; and
sending a routing update to one or more routers of the first and second networks to route packets destined for the first external IP address to the second external IP address, wherein the one or more routers of the first and second networks are different from the mobile router.

2. The method according to claim 1, wherein the first network and the second network are subnets on a single network.

3. The method according to claim 1, wherein the first network is an 802.11 network and the second network is an 802.16 network.

4. The method according to claim 1 wherein the client is a virtual machine (“VM”) host, the method further comprising enabling the OS on a VM in the VM host to establish the IP tunnel with the gateway.

5. The method according to claim 4 further comprising establishing a virtual software device driver for the VM corresponding to the at least one NIC on the client, the virtual software device driver enabling the VM to access the NIC via the mobile router.

6. The method according to claim 1 wherein the client includes a personal computing device and an operating system on the personal computing device to establish the IP tunnel.

7. The method according to claim 6 wherein the personal computing device is one of a cellular telephone and a personal digital assistant.

8. A system comprising:
a guest operating system (“OS”) residing in a first virtual machine (“VM”);
a network interface card (“NIC”);
a mobile router residing in a second VM and coupled to the guest operating system and having control of the NIC, the guest OS additionally including a virtual software device driver corresponding to the NIC controlled by the mobile router;
the mobile router to intercept a request from the guest OS for at least one internal Internet Protocol (“IP”) address for the guest OS directed to a first destination such that the request is not received at the first destination, the mobile router additionally to reroute the request for the at least one internal IP address to a Dynamic Host Configuration Protocol (“DHCP”) module on the system different from the first destination, the DHCP module to assign the at least one internal IP address for the guest OS different from the first destination;
the DHCP module additionally to request a first external IP address for the guest OS from a DHCP server on a first network;
the mobile router additionally including an address translation mechanism, the mobile router enabling the guest OS to establish an IP tunnel with a gateway using the first external IP address;
the DHCP module further to request a second external IP address for the guest OS from a DHCP server on a second network when the guest OS roams to the second network;
the mobile router further to store the first external IP address received from the DHCP server in a mobility data structure; and
the mobile router further to send a routing update to one or more routers on the first and second networks to route packets destined for the first external IP address to the second external IP address, wherein the one or more routers of the first and second networks are different from the mobile router.

9. The system according to claim 8, wherein the first network is an 802.11 network and the second network is an 802.16 network.

10. The system according to claim 8 wherein the guest OS resides on a personal computing device.

11. The system according to claim 10 wherein the personal computing device is one of a cellular telephone and a personal digital assistant.

12. The system according to claim 8 further comprising an application running on the guest OS, the application to maintain a persistent connection via the IP tunnel when the guest OS roams to the second network.

13. An article comprising a non-transitory machine-accessible medium having stored thereon instructions that, when executed by a machine, cause the machine to:
establish a mobile router in a client, the mobile router to intercept a request for at least one internal Internet Protocol (“IP”) address for the client directed to a first destination such that the request is not received at the first destination, the mobile router additionally to reroute the request for the at least one internal IP address to a Dynamic Host Configuration Protocol (“DHCP”) module on the client different from the first destination, the DHCP module to assign the at least one internal IP address for the client;
assign a software device driver of at least one Network Interface Card (“NIC”) on the client to the mobile router;
enable the mobile router to receive the at least one internal IP address for the client assigned by the DHCP module;
enable the mobile router to request a first external IP address for the client from a DHCP server on a first network via the DHCP module on the client;
enable an address translation mechanism on the client;
enable an operating system (“OS”) on the client to establish an IP tunnel with a gateway using the first external IP address;
enable the mobile router to request a second external IP address for the client from a DHCP server on a second network via the DHCP module on the client when the client roams to the second network;
store the first external IP address in a mobility data structure; and
enable the mobile router to send a routing update to one or more routers on the first and second networks to route packets destined for the first external IP address to the second external IP address, wherein the one or more routers of the first and second networks are different from the mobile router.

14. The article according to claim 13 wherein the client is a virtual machine (“VM”) host and the instructions, when executed by the machine, further cause the machine to enabling the OS on a VM in the VM host to establish the IP tunnel with the gateway.