The present invention relates to the field of mobile computing, and, more particularly to a method, apparatus and system for enabling a mobile node to dynamically obtain a home address and to retain the home address while roaming between its home subnet and foreign subnets.
Use of mobile computing devices (hereafter “mobile nodes”) such as laptops, notebook computers, personal digital assistants (“TDAs”) 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 IP standards. More specifically, the Internet Engineering Task Force (“IETF”) has promulgated roaming standards (Mobile IPv4, IETF RFC 3344, August 2002, hereafter “Mobile IPv4,” and Mobile IPv6, IETF Mobile IPv6, Internet Draft draft-ietf-mobileip-ipv6-24.txt (Work In Progress), June 2003, hereafter “Mobile IPv6”) to enable mobile node users to move from one location to another while continuing to maintain their connectivity to the same network.
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:
Embodiments of the present invention provide a method, apparatus and system for mobile nodes to dynamically discover configuration information while roaming. 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.
Mobile nodes that conform to Mobile IPv4 standards today may roam freely across subnets within Corporate Intranet 100. Thus, for example, when a mobile node (“MN 140”) exits its home subnet, it may continue to maintain its current transport connections and constant reachability by registering with a home agent (“HA 130”). During the registration process, MN 140 informs HA 130 of MN 140's home address (i.e., the invariant address assigned to MN 140) and its “care-of address” (hereafter “COA”), namely MN 140's address on its new subnet. MN 140 may obtain COAs via Dynamic Host Configuration Protocol (“DHCP”) or other similar protocols. Immediately after the registration process completes, HA 130 may broadcast a series of unsolicited ARP packets on behalf of MN 140 (hereafter referred to as “gratuitous ARPing”). HA 130 may also respond to ARP requests targeted to MN 140 (hereafter referred to as “proxy ARPing”). Both gratuitous ARPing and proxy ARPing have the effect of causing traffic addressed to MN 140 to be delivered to HA 130. HA 130 thereafter intercepts all IP packets addressed to MN 140 and reroutes the packets to MN 140's COA using IP tunneling. IP tunneling is well known to those of ordinary skill in the art and further description thereof is omitted. As MN 140 moves from one foreign subnet to another, to ensure that HA 130 is able to properly route packets to MN 140, MN 140 must continuously update HA 130 with its new COA. If MN 140 moves to its home subnet, it deregisters with HA 130, causing HA 130 to cease performing the proxy ARP and IP tunneling functions.
As previously described, in order for MN 140 to register with HA 130, it typically provides HA 130 with an invariant home address that uniquely identifies it to HA 130. In other words, HA 130 requires both a home address and a COA for MN 140 in order to properly perform IP tunneling. Typically, home addresses are assigned statically to mobile nodes, e.g., by a system administrator on Corporate Intranet 100. A proposed IETF solution (IETF RFC 2794, March 2000, hereafter referred to as “RFC 2794”) enables MN 140 to acquire a home address dynamically by using a NAI extension. More specifically, when MN 140 first attaches to a foreign subnet (i.e., when it exits its home subnet or starts up on a foreign subnet), it sends a registration request to HA 130 to register its COA; the registration request may also include a NAI extension requesting a home address assignment. HA 130 may dynamically assign a home address to MN 140 from a pool of addresses maintained by HA 130, or acquire a home address on behalf of MN 140 from a DHCP server (“DHCP Server 150”) on Corporate Intranet 100. HA 130 may return the home address to MN 140 via a registration reply and MN 140 may thereafter utilize this home address in subsequent registration requests each time it moves within the network.
RFC 2794 includes several shortcomings. Specifically, RFC 2794 does not address the situation when initially MN 140 starts up on its home subnet. Since the methodology described in RFCs 2794 and 3344 to acquire a home address do not allow MN 140 to register with HA 130 until it exits its home subnet, MN 140 has no way of obtaining a home address when it starts on its home subnet. Additionally, according to RFC 2794, MN 140 must deregister when it roams back to its home subnet. Even assuming MN 140 does obtain a home address for use, the deregistration process in RFC 2794 effectively releases MN 140's home address back to HA 130's address pool or back to DHCP Server 150. More specifically, HA 130 removes all bindings for MN 140 in its binding table and may release MN 140's home address, making MN 140's home address available for assignment to other mobile nodes. Concurrently, MN 140 may continue to use its home address on its home subnet, possibly leading to an address conflict if its home address was subsequently re-assigned to another mobile node.
Embodiments of the present invention alleviate the shortcomings of RFC 2794 by enabling MN 140 to dynamically acquire and retain a home address regardless of whether it starts up on its home subnet or a foreign subnet, and regardless of whether it subsequently moves from a foreign subnet to its home subnet. In one embodiment, MN 140 may be configured to register with HA 130 regardless of whether it is on its home subnet or on a foreign subnet. When it initially starts up, MN 140 may send a NAI extension with its registration request, and HA 130 may assign MN 140 a home address from its local pool of addresses or obtain a home address for MN 140 from DHCP Server 150. This initial registration on its home subnet addresses one of MN 140's problems, namely that of obtaining a home address dynamically while starting operation on its home subnet.
Additionally, according to an embodiment of the present invention, MN 140 may also be configured to inform HA 130 whether MN 140 is on its home subnet or on a foreign subnet. The registration request process as described in RFC 2794 currently includes various reserved bits that are not utilized. In one embodiment, MN 140 may set one of the reserved bits (hereafter referred to as the “OnHomeSubnet” bit) to a predetermined value to enable HA 130 to determine whether MN 140 is on its home subnet or on a foreign subnet. In one embodiment MN 140 may leave the OnHomeSubnet bit unchanged (i.e., at zero) when it is on a foreign subnet and set the bit to one when it is on its home subnet. MN 140 may then send the registration request to HA 130. When HA 130 receives the registration request, it may examine the OnHomeSubnet bit, and upon identifying whether the bit is set to one, determine whether MN 140 is on its home subnet or on a foreign subnet.
HA 130 may utilize the information obtained from the OnHomeSubnet bit to appropriately determine how handle gratuitous and proxy ARPing on behalf of MN 140, and how to forward communications to MN 140. More specifically, if HA 130 determines that MN 140 is on a foreign subnet (i.e., the OnHomeSubnet bit is zero), it may perform its typical role as a home agent, i.e., maintain a binding for MN 140's home address and COA in its binding table, perform proxy ARPing on behalf of MN 140, and tunneling packets to MN 140. If, however, HA 130 determines that MN 140 is on its home subnet (i.e., the OnHomeSubnet bit is set to one), HA 130 may process MN 140's registration request as a special registration request. HA 130 may therefore release the binding for MN 140's home address and COA in its binding table, but not release MN 140's home address. In other words, MN 140 may retain its home address while roaming on its home subnet, but HA 130 may no longer be performing its proxy ARPing and/or IP tunneling functions on behalf of MN 140. Regardless of whether MN 140 is on its home subnet or on a foreign subnet, it may periodically re-register with HA 130 to ensure that it retains its home address.
The following example describes an embodiment of the present invention further. Specifically, the example assumes that MN 140 starts up on its home subnet, roams to a foreign subnet, and then returns to its home subnet. When MN 140 initially starts up on its home subnet, in one embodiment, it may send a registration request to HA 130, with a NAI extension requesting a home address assignment. The registration request may additionally include the OnHomeSubnet bit set to one. Since it is on its home subnet, MN 140 may not acquire and send a COA to HA 130 with this registration request. MN 140 may, for example, utilize broadcast “agent solicitation” messages and receive “agent discovery” messages from HA 130 to discover whether it is on its home subnet. These types of broadcast messages are well known to those of ordinary skill in the art and further description thereof is omitted herein in order not to unnecessarily obscure embodiments of the present invention.
Upon receiving the registration request from MN 140, HA 130 may assign a home address to MN 140 from HA 130's local pool of addresses or acquire a home address for MN 140 from DHCP Server 150. This home address may be returned to MN 140 via a registration reply. Since HA 130 is aware that MN 140 is on its home subnet (because the OnHomeSubnet bit is set to one), HA 130 may not perform any proxy and gratituous ARPing on behalf of MN 140. MN 130 does, however, maintain information for MN 140 in its binding table, and does not release the home address it had assigned to MN 140.
When MN 140 exits its home subnet, it may acquire a COA from DHCP Server 150 (or other COA source), and use this COA and its home address in a registration request to HA 130. Additionally, in the registration request, MN 140 sets the OnHomeSubnet bit to zero, since MN 140 is now on a foreign subnet. When HA 130 receives the registration request, the OnHomeSubnet bit will inform it that MN 140 is on a foreign subnet. HA 130 may therefore create a binding for MN 140 in its binding table and perform typical home agent routing and/or proxy ARPing on behalf of MN 140. HA 130 may continue functioning as a typical home agent for as long as MN 140 continues to roam on foreign subnets.
When MN 140 returns to its home subnet, it may once again set the OnHomeSubnet bit to one. According to one embodiment, instead of deregistering with HA 130 as specified by RFC 2794, MN 140 may instead send another registration request to HA 130. HA 130 may identify from the OnHomeSubnet bit in the registration request that MN 140 is once again on its home subnet. In one embodiment, since MN 140 is on its home subnet and does not require a COA, the COA value in the registration request may be zeroed out. Upon recognizing that MN 140 is on its home subnet, HA 130 may treat this registration request as a special request and instead of releasing the home address assigned to MN 140, it may instead only stop sending proxy and gratuitous ARPs on behalf of MN 140; it will still maintain the binding for MN 140 in its binding table. This effectively stops HA 130 from tunneling packets to MN 140 and performing proxy ARPing, but enables MN 140 to retain its home address while on its home subnet.
Although the above description assumes that MN 140 roams only within Corporate Intranet 100, embodiments of the present invention are not so limited. Embodiments of the present invention may be applicable in any roaming scenarios, e.g., if MN 140 roams across a corporate demilitarized zone (“DMZ”) onto an external network. For the purposes of embodiments of the present invention, it is only necessary for HA 130 to determine whether MN 140 is on its home subnet or on a foreign subnet (either within Corporate Intranet 100 or on an external network) Additionally, although the above description assumes that the OnHomeSubnet bit is set to one when MN 140 is on its home subnet, it will be readily apparent to those of ordinary skill in the art that the bits may be reversed (i.e., set to one when MN 140 is on a foreign subnet) without affecting embodiments of the present invention. In such a situation, the OnHomeSubnet bit may zeroed when MN 140 is on its home subnet. Furthermore, it will be apparent to those of ordinary skill in the art that although the above description assumes that Corporate Intranet 100 is a Mobile IPv4 compliant network, embodiments of the present invention are not so limited and may also be implemented on other similar networks with minimal changes.
If, however, MN 140 identifies in 202 that it is not on its home subnet, in 207, MN 140 may acquire a COA from a DHCP server, and send a registration request to HA 130 with the COA. In the registration request, MN 140 may also request a home address and leave the OnHomeSubnet bit set to zero. When HA 130 receives the registration request, it may respond with a registration reply in 208. Since HA 130 may determine that MN 140 is on a foreign subnet, it may act as a typical home agent for MN 140 (e.g., creating a binding entry in its binding table and performing gratuitous ARPing and proxy ARPing on behalf of MN 140). In 209, MN 140 may periodically re-register with HA 130 (including the OnHomeSubnet bit left at zero), until it identifies that it has moved back to its home subnet in 206. In 205 and 209, if MN 140 senses that it has moved off or back to its home subnet, it may change the value of the OnHomeSubnet bit and re-register with HA 130. This informs HA 130 that MN 140 moved off or back to its home subnet and HA 130 may behave accordingly.
The mobile nodes and home agents according to embodiments of the present invention may be implemented on a variety of data processing devices. It will be readily apparent to those of ordinary skill in the art that these data processing devices may include various types of software, and may comprise any devices capable of supporting mobile networks, including but not limited to mainframes, workstations, personal computers, laptops, portable handheld computers, PDAs and/or cellular telephones. In an embodiment, mobile nodes may comprise portable data processing systems such as laptops, handheld computing devices, personal digital assistants and/or cellular telephones. According to one embodiment, home agents may comprise data processing devices such as personal computers, workstations and/or mainframe computers. In alternate embodiments, home agents may also comprise portable data processing systems similar to those used to implement mobile nodes.
According to an embodiment of the present invention, data processing devices may include various components capable of executing instructions to accomplish an embodiment of the present invention. For example, the data processing devices may include and/or be coupled to at least one machine-accessible medium. As used in this specification, a “machine” includes, but is not limited to, any data processing device with one or more processors. As used in this specification, a machine-accessible medium includes any mechanism that stores and/or transmits information in any form accessible by a data processing device, the machine-accessible medium including but not limited to, recordable/non-recordable media (such as read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media and flash memory devices), as well as electrical, optical, acoustical or other form of propagated signals (such as carrier waves, infrared signals and digital signals).
According to an embodiment, a data processing 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. 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 data processing device for providing input data.
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.