Abstract:
Methods and apparatuses for conserving addresses. The invention allows a mobile node to manage its own address, shifting responsibility away from the home agent. The home agent is able to detect when a mobile node has already been assigned an address for use of resources on the network. When the home agent recognizes that the mobile address has already been assigned an address, it allows the mobile node to use its already-assigned address in connection with mobile IP services. Additionally, the mobile node can be notified that it is now responsible for renewing the address.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]    This application claims the benefit of U.S. Provisional Application No. 60/362,251, filed Mar. 5, 2002, incorporated herein by reference in its entirety and for all purposes. This application is related to Ser. No. 10/150,377, filed May 17, 2002, and Ser. No. 10/187,084, filed Jun. 28, 2002, both of which are incorporated herein by reference in their entireties and for all purposes, and both of which also claim benefit of U.S. Provisional Application No. 60/362,251, filed Mar. 5, 2002. 
     
    
     
       BACKGROUND OF THE INVENTION  
         [0002]    1. Field of the Invention  
           [0003]    The present invention relates generally to mobile computing and more specifically to management of addresses for mobile nodes.  
           [0004]    2. Description of the Related Art  
           [0005]    Mobile IP is a protocol that allows laptop computers and other mobile computer units (“mobile nodes”) to roam between various sub-networks while maintaining Internet and/or WAN connectivity. Without Mobile IP or similar protocols a mobile node would be unable to stay connected while roaming from one location serviced by one sub-network to another location being serviced by a different sub-network. This is because each IP address has a field that specifies the particular sub-network on which the node resides. If a user desires to take a computer that is normally attached to one node and roam so that it passes through different sub-networks, the roaming computer cannot use its home base IP address. As a result, a businessperson traveling across the country cannot travel with his or her computer across geographically disparate network segments or wireless nodes while maintaining Internet connectivity. This is not acceptable in the age of portable computational devices.  
           [0006]    To address this problem, the Mobile IP protocol has been developed and implemented. An implementation of Mobile IP is described in RFC 3220, “IP Mobility Support for IPv4” of the Network Working Group, C. Perkins, Ed., January 2002. Mobile IP is also described in the text “Mobile IP, The Internet Unplugged” by J. Solomon, Prentice Hall, 1998. Both of these references are incorporated herein by reference in their entireties and for all purposes.  
           [0007]    The Mobile IP process and environment are illustrated in FIG. 1. A Mobile IP environment  100  includes the Internet (or a WAN)  105  over which a mobile node  110  can communicate via mediation by a home agent  115  or a foreign agent  120 . Typically, the home agent  115  and foreign agent  120  are routers or other network connection devices performing appropriate Mobile IP functions as implemented by software, hardware, and/or firmware. Note the overall network topology is arbitrary, and elements such as the home agent  115  need not directly connect to the Internet  105 . For example, the home agent  115  may be connected through another router R 2   125 . Router R 2   125  may, in turn, connect one or more other routers R 3   130  with the Internet  105 .  
           [0008]    When mobile node  110  is plugged into its home network segment  135  it connects with the Internet  105  through its designated home agent  115 . When the mobile node  110  roams, it can be connected to a remote network segment  140  and communicate through the available foreign agent  120 . Other nodes, such as a PC  145 , on remote network segment  140  also communicate with the Internet  105  through foreign agent  120 . Presumably, there are many foreign agents available at geographically disparate locations to allow wide spread Internet connection via the Mobile IP protocol.  
           [0009]    Mobile node  110  may identify foreign agent  120  through various agent solicitations and agent advertisements that form part of the Mobile IP protocol. When mobile node  110  engages with remote network segment  140 , it composes a registration request for the home agent  115  to bind the mobile node&#39;s  110  current location with its home location. Foreign agent  120  then relays the registration request  150  to home agent  115 . During the registration process, the home agent  115  and the mobile node  110  may then negotiate the conditions of the mobile node&#39;s  110  attachment to foreign agent  120 . For example, the mobile node  110  may request a registration lifetime of 5 hours, but the home agent  115  may grant only a 3 hour period. When the negotiation is successfully completed, home agent  115  updates an internal “mobility binding table” which links the mobile node&#39;s  110  current location via its care-of address (e.g., a co-located care-of address or the foreign agent&#39;s IP address) to the identity (e.g., home address) of the mobile node  110 . Further, if the mobile node  110  registered via foreign agent  120 , the foreign agent  120  updates an internal “visitor table” which specifies the mobile node address, home agent address, etc. The home agent&#39;s  115  association between a mobile node&#39;s home base IP address, its current care-of address, and the remaining lifetime of that association is referred to as a binding.  
           [0010]    If mobile node  110  wanted to send a message to a correspondent node  155  from its new location, the mobile node  110  would forward a packetized output message  160  through the foreign agent  120  over the Internet  105  to the correspondent node  155  according to standard Internet protocols. However, if the correspondent node  155  wanted to send a message  165  to the mobile node  110 —whether in reply to a message from the mobile node  110  or for any other reason—the correspondent node  155  addresses that message to the IP address of the mobile node  110  as if the mobile node  110  were on the home network segment  135 . The packets of the message from the correspondent node  155  are forwarded over the Internet  105  to the router R 2   125  and ultimately to the home agent  115 .  
           [0011]    From the home agent&#39;s  115  mobility binding table, the home agent  115  recognizes that the mobile node  110  is no longer attached to the home network segment  135 . The home agent  115  then encapsulates the packets from correspondent node  155  (which are addressed to the mobile node  110  on the home network segment  135 ) according to the Mobile IP protocol, and forwards these encapsulated packets  170  to the appropriate care-of address for mobile node  110 . If the care-of address is the IP address of the foreign agent  120  the foreign agent  120  strips the encapsulation and forwards the message to the mobile node  110  on the remote network segment  140 . The packet forwarding mechanism implemented by the home agent  115  to the foreign agent  120  is often referred to as “tunneling.” 
           [0012]    As set forth in RFC 3220, the Mobile IP specification, the mobile node  110  can be statically provisioned with its home address or request home address assignment. Home address assignment is typically requested by setting the home address field of the registration request to 0.0.0.0 and using a mobile node network address identifier (NAI) extension to identify itself. NAI is described in RFC 2794 of the Network Working Group, P. Calhoun and C. Perkins, March 2000, incorporated herein by reference in its entireties and for all purposes. After receiving and authenticating such a registration request, the home agent is expected to assign a home address to the mobile node in the registration reply.  
           [0013]    One proposal for home address assignment by the home agent is described in the IETF working group draft, “Mobile IP Agents as DHCP Proxies,” S. Glass, draft-glass-mobileip-agent-dhcp-proxy-01.txt, Mar. 2, 2000, incorporated herein by reference in its entirety and for all purposes. In that draft, the home agent behaves as a DHCP proxy agent, acting on behalf of the mobile node. However, having the home agent involved in address management (assignment, renewal, release etc) is an overhead, especially in enterprise networks.  
         SUMMARY OF THE INVENTION  
         [0014]    The present invention provides methods and apparatuses for conserving addresses. In one embodiment a mobile node requests an assignment of a first address so that the first address could be used to facilitate the mobile node&#39;s use of network resources. For instance, the first address may be an address allocated by a DCHP server. The mobile node also requests an assignment of a second address so that the second address could be used to facilitate the mobile node&#39;s ability to maintain connectivity while roaming. For instance, the request for assignment of the second address may be a Mobile IP registration request requesting a home address as the second address. The mobile node then uses a single address as both the first address and the second address  
           [0015]    In another embodiment a home agent receives a request for assignment of a first address. The home agent then routes the request for assignment to a server that can satisfy the request. The home agent also receives a request for assignment of a second address. The home agent then recognizes that the request for assignment of the first address and the request for assignment of the second address came from a single device. The home agent would then alert the single device to use a single address to satisfy both requests.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]    [0016]FIG. 1 is a block diagram of a Mobile IP environment;  
         [0017]    [0017]FIG. 2 is a block diagram illustrating an exemplary environment in which the present invention may be implemented;  
         [0018]    [0018]FIG. 3 is a control flow diagram illustrating a method of allowing a mobile node to use the same IP address it was initially assigned with DHCP for Mobile IP purposes when the mobile node boots up on the home agent&#39;s network segment;  
         [0019]    [0019]FIG. 4 is a diagram illustrating an exemplary network device in which various embodiments of the invention may be implemented.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0020]    In the following description, numerous specific details are set forth to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order to avoid unnecessarily obscuring the present invention.  
         [0021]    When a mobile node first connects to a network, it is assigned an IP address so that it can access network resources. The present invention allows a mobile node to use the same IP address initially assigned to it for mobile IP purposes. As a consequence, the mobile node can manage its own address, removing the burden of management from the home agent. Moreover, the home agent need not assign an additional address to the mobile node, thereby conserving IP addresses.  
         [0022]    [0022]FIG. 2 is a block diagram illustrating an exemplary environment in which the present invention may be implemented. An internal network  205 , having a home agent  210 , a foreign agent  215  and a Dynamic Host Configuration Protocol (DHCP) server  220  is connected to the Internet  225 , which is connected to an external network  230 , having an external foreign agent  235  and an external DHCP server  240 .  
         [0023]    DHCP is based on the Bootstrap Protocol (BOOTP), an Internet protocol that enables a diskless workstation to discover its own IP address. DHCP is described in RFC 2131 of the Network Working Group, R. Droms, March 1997, and BOOTP is described in RFC 951 of the Network Working Group, B. Croft, September 1985, both references incorporated herein by reference in their entirety and for all purposes. RFC 2131 defines a DHCP server as a host that provides initialization parameters through DHCP. Essentially, a DHCP server allows IP addresses to be dynamically assigned to devices on a network. Dynamic addressing simplifies network administration because the software keeps track of IP addresses rather than requiring an administrator to statically provision the IP address for every device on the network. Current Microsoft Windows® operating systems have integrated DHCP client support.  
         [0024]    Referring back to FIG. 2, once a mobile node  245  with Microsoft Windows® boots up it must obtain an IP address from a DHCP server. If the mobile node  245  boots up in the internal network  205  (i.e., on either the home agent&#39;s  210  or the foreign agent&#39;s  215  network segment), the internal DHCP server  220  will be responsible for assigning an initial IP address. If the mobile node  245  boots up in the external network  230  (i.e., on the external foreign agent&#39;s  235  network segment), the external DHCP server  240  will assign the mobile node  245  its initial IP address. Only after it obtains an address can the mobile node  245  begin Mobile IP registration.  
         [0025]    [0025]FIG. 3 is a control flow diagram illustrating a method of allowing a mobile node to use the same IP address it was initially assigned with DHCP for Mobile IP purposes when the mobile node  230  boots up on the home agent&#39;s  210  network segment. Steps performed by the mobile node  230 , the home agent  210  and DHCP server  220  are represented by corresponding vertical lines  305 ,  310 , and  315 .  
         [0026]    At  320  the mobile node  230  attempts to locate DHCP services by sending a broadcast (DHCPDISCOVER) to the home agent  210 . Although the mobile node  230  cannot include an IP address in the DHCP discover packet (an IP address has not yet been assigned) it can include its link-layer address. A link-layer address is defined in RFC 3220 as, “The address used to identify an endpoint of some communication over a physical link. Typically, the Link-Layer address is an interface&#39;s Media Access Control (MAC) address.” 
         [0027]    At  325  the home agent  210 , in its capacity as a DHCP/BOOTP relay agent, processes the DHCPDISCOVER, which includes substituting its own IP address into the DHCPDISCOVER message and noting the interface from which the DHCPDISCOVER originated. At  330  the home agent  210  relays the DHCPDISCOVER message to the DHCP server  220 .  
         [0028]    At  335  the DHCP server  220  performs its standard authentications and negotiations with the mobile node  230 , via the home agent  210 , as required by RFC 2131. At  340  the DHCP server  220  sends its acknowledgement (DHCPACK) to the home agent  210 . The DHCPACK contains all the necessary configuration parameters for the mobile node  245  including the IP address and link-layer address mapping.  
         [0029]    At  345  the home agent  210  recognizes the DHCPACK message and optionally maintains a mapping between the DHCP allocated IP address and the link-layer address. For instance, in one embodiment, the home agent  210  caches the IP address, link-layer address mapping and interface information. Several options are available for maintenance of the cached information. In one embodiment, the mapping is kept in a table until the table is filled up, and then the oldest entries are replaced by newer entries. Therefore, if the table could, for example, hold 1000 entries, the 1001st entry would replace the first entry. Additionally, when the mobile node  245  renews its lease on its IP address, the more recent DCHPACK could replace the older mapping.  
         [0030]    At  350  the home agent  210  forwards the DHCPACK message to the mobile node  245 . At  355  the mobile node processes the DHCPACK and obtains the IP address assigned by the DHCP server  220  from the DHCPACK. In addition, the mobile node may also obtain the lease time associated with the IP address from the DHCPACK so the mobile node can manage the IP address and associated lease time.  
         [0031]    As per RFC 3220, when the mobile node sends a registration request, the mobile node can indicate that it is requesting a home address by setting the home address field of the registration request to zero and by identifying itself in an NAI extension.  
         [0032]    At  360  the mobile node  245  sends a registration request that requests a home agent and home address assignment. In one embodiment, a generic home agent domain name (e.g., ha.cisco.com) is additionally provided in a generalized network access identifier extension (GNAIE). The GNAIE is fully described in the IETF working group draft “Generalized NAI (GNAI) Extension for Mobile IPv4,” Khalil, M., Qaddoura, E, Akhtar, H., and Calhoun, P., draft-ietf-mobileip-gnaie-05.txt, October 2001, incorporated herein by reference in its entirety and for all purposes.  
         [0033]    At  365  the home agent  210  recognizes the message as a Mobile IP registration request coming from a mobile node that previously received a DHCP address assignment. In embodiments where the cached table is used, the source address in the registration request and/or the interface that the registration request arrived from can be checked against the cached table of entries to determine if the mobile node  245  was previously assigned an IP address. Alternatively, the home agent  210  can recognize that it is in the same domain (e.g., cisco.com) as the domain specified in the NAI. Other extensions could also be appending to the registration request that signal the mobile node&#39;s ability to manage its own address. In other embodiments, the home agent  210  would recognize the source IP address as being on the same network as the home agent  210 . In yet other embodiments, the home agent  210  would recognize that the registration request originated from one of its own interfaces.  
         [0034]    Once the home agent  210  determines that the mobile node  245  was assigned a DHCP address, it would then process the registration request normally. At  370  the home agent  210  would send a registration reply to the mobile node  245 , setting the home address field of the registration reply equal to the DHCP address. In addition, the NAI extension and GNAIE extension may also be appended to the registration reply.  
         [0035]    At  375  the mobile node  245  recognizes that it is in charge of its own address management using DHCP. One mechanism that can be used to alert the mobile node  245  that it is in charge of managing its own address and associated lease time is by the home agent  210  appending a special extension to the registration reply. Another mechanism could be for the mobile node to compare its DHCP address with the home agent address in the registration reply.  
         [0036]    The mobile node  245 , therefore, does not discard the original DHCP information. Additionally, when it is time for the mobile node  245  to renew its lease on the DHCP address, it will send the appropriate renewal message (DHCPREQUEST). Since the DHCPREQUEST is a standard IP packet it will be routed as any other IP packet. Therefore, if the mobile node  245  roamed to the foreign agent  215 , the foreign agent would reverse tunnel the message to the home agent  210 , and the home agent  210  will route the DHCPREQUEST to the DHCP server  220  normally. Similarly, the home agent  210  would tunnel the DHCP server&#39;s  220  responses as normal IP packets back to the foreign agent  215 , for routing to the mobile node  245 . If the home agent  210  is maintaining a table, it could update its entries based on any DHCPACK received from renewal requests.  
         [0037]    As one skilled in the art will appreciate, the mobility bindings also need to be periodically refreshed according to the Mobile IP protocol. Using any of the techniques described in connection with  365 , the home agent  210  could recognize that the mobile node  245  is managing its own IP address. The home agent  210  would process the request normally, except it would not attempt to manage the mobile node&#39;s  245  IP address allocated by the DHCP server.  
         [0038]    Additionally, it should be appreciated that if the mobile node  245  does not roam from its home agent  210  the Mobile IP protocol treats the mobile node  245  as a stationary node, without making use of any other Mobile IP functionality. However, the mobile node  245  caches information about its home agent  210  until it is powered off, allowing it to roam at a later time. Therefore, if the mobile node  245  receives an agent advertisement from the home agent  210 , it will deregister in accordance with Mobile IP protocol. Since routing will allow traffic to be sent to and from the mobile node  245  while it is attached to its home agent  210 , the invention does not require any further modifications to Mobile IP processing when the mobile node  245  acts as a stationary node.  
         [0039]    If the mobile node  245  boots up in an external foreign agent&#39;s  235  service provider network (See FIG. 2), it registers with the home agent  210 , and home address assignment can be performed as per the description in the previously mentioned “Mobile IP Agents as DHCP Proxies.” This implementation can be optimized so that home agents are centralized when the mobile node  245  is registering from the external network  230 . Thus, even if the mobile node  245  roams back to the internal network  205 , the home agent  210  will continue to act as a proxy for the mobile node  245  and the mobile node  245  will not deregister until it power offs.  
         [0040]    Generally, the techniques of the present invention may be implemented on software and/or hardware. For example, they can be implemented in an operating system kernel, in a separate user process, in a library package bound into network applications, on a specially constructed machine, or on a network interface card. In a specific embodiment of this invention, the technique of the present invention is implemented in software such as an operating system or in an application running on an operating system.  
         [0041]    A software or software/hardware hybrid implementation of the techniques of this invention may be implemented on a general-purpose programmable machine selectively activated or reconfigured by a computer program stored in memory. Such a programmable machine may be a network device designed to handle network traffic, such as, for example, a router or a switch. Such network devices may have multiple network interfaces including frame relay and ISDN interfaces, for example. Specific examples of such network devices include routers and switches. For example, home agents, and foreign agents of this invention may be implemented in specially configured routers, switches or servers, such as specially configured router models 2600, 3200, 3600, 4500, 7200, and 7500 available from Cisco Systems, Inc. of San Jose, Calif. A general architecture for some of these machines will appear from the description given below. In an alternative embodiment, the techniques of this invention may be implemented on a general-purpose network host machine such as a personal computer or workstation. Further, the invention may be at least partially implemented on a card (e.g., an interface card) for a network device or a general-purpose computing device.  
         [0042]    Referring now to FIG. 4, a network device  400  suitable for implementing the techniques of the present invention includes a master central processing unit (CPU)  405 , interfaces  410 , memory  415  and a bus  420 . When acting under the control of appropriate software or firmware, the CPU  405  may be responsible for implementing specific functions associated with the functions of a desired network device. For example, when configured as an intermediate router, the CPU  405  may be responsible for analyzing packets, encapsulating packets, and forwarding packets for transmission to a set-top box. The CPU  405  preferably accomplishes all these functions under the control of software including an operating system (e.g. Windows NT), and any appropriate applications software.  
         [0043]    CPU  405  may include one or more processors such as those from the Motorola family of microprocessors or the MIPS family of microprocessors. In an alternative embodiment, the processor is specially designed hardware for controlling the operations of network device  400 .  
         [0044]    The interfaces  410  are typically provided as interface cards (sometimes referred to as “line cards”). Generally, they control the sending and receiving of data packets over the network and sometimes support other peripherals used with the network device  400 . Among the interfaces that may be provided are Ethernet interfaces, frame relay interfaces, cable interfaces, DSL interfaces, token ring interfaces, and the like. In addition, various very high-speed interfaces may be provided such as fast Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces, FDDI interfaces, ASI interfaces, DHEI interfaces and the like. Generally, these interfaces may include ports appropriate for communication with the appropriate media. In some cases, they may also include an independent processor and, in some instances, volatile RAM. The independent processors may control such communications intensive tasks as packet switching, media control and management. By providing separate processors for the communications intensive tasks, these interfaces allow the CPU  405  to efficiently perform routing computations, network diagnostics, security functions, etc.  
         [0045]    Although the system shown in FIG. 4 illustrates one specific network device of the present invention, it is by no means the only network device architecture on which the present invention can be implemented. For example, an architecture having a single processor that handles communications as well as routing computations, etc. is often used. Further, other types of interfaces and media could also be used with the network device.  
         [0046]    Regardless of network device&#39;s configuration, it may employ one or more memories or memory modules (such as, for example, the memory  415 ) configured to store data, program instructions for the general-purpose network operations and/or other information relating to the functionality of the techniques described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example.  
         [0047]    Because such information and program instructions may be employed to implement the systems/methods described herein, the present invention relates to machine readable media that include program instructions, state information, etc. for performing various operations described herein. Examples of machine-readable media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). The invention may also be embodied in a carrier wave traveling over an appropriate medium such as airwaves, optical lines, electric lines, etc. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.  
         [0048]    Although illustrative embodiments and applications of this invention are shown and described herein, many variations and modifications are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those of ordinary skill in the art after perusal of this application. For instance, the present invention is described as being configured to comply with Mobile IP standards in force as of the time this document was written. However, it should be understood that the invention is not limited to such implementations. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.