Abstract:
Methods and apparatuses for allowing mobile nodes to have access to mobility functions after being attached to their home networks. The invention allows a home agent to authenticate a registration request and validate a DHCP-acquired home address even if no mobile bindings currently exist. Typically, a home agent will not create mobility bindings if a mobile node attaches itself to a home agent network segment. By using either cached information or DHCP resources, the home agent can approve a registration request.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]    This application is a continuation-in-part of U.S. application Ser. No. 10/241,969, filed Sep. 11, 2002, which claims the benefit of U.S. Provisional Application No. 60/362,251, filed Mar. 5, 2002, both of which are incorporated herein by reference in their entireties 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 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 roaming of 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 3344, “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 R2  125 . Router R2  125  may, in turn, connect one or more other routers R3  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 R2  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 3344, 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.  
           [0014]    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.  
           [0015]    Although Mobile IP has many well-defined mechanisms that are useful for mobility services, RFC 3344 also states, “When connected to its home network, a mobile node operates without the support of mobility services. That is, it operates in the same way as any other (fixed) host or router.” However, the mechanism by which a mobile node achieves this operation has not been described. Furthermore, once a mobile node is connected to home network, and is acting as “any other (fixed) host or router,” no mechanisms are available to allow the mobile node to roam.  
         SUMMARY OF THE INVENTION  
         [0016]    The present invention provides methods and apparatuses for mobile nodes home address management. In one embodiment a mobile node attaches itself to the mobile node&#39;s home agent network segment. The mobile node then performs agent discovery procedures and sends out a registration request to the home agent, requesting a home address. The mobile node then receives a registration reply with an allocated home address. The reply indicates that no mobility bindings have been created since the mobile node is on its home network, and the mobile node is responsible for its own DHCP address management.  
           [0017]    In another embodiment a home agent receives a registration request for a mobile node for which mobility bindings do not exist. The registration request indicates that a dynamically assigned home address has already been acquired. The home agent then authenticates the mobile node and creates mobility bindings for the mobile node. Afterwards, the home agent sends a registration reply to the mobile node.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0018]    [0018]FIG. 1 is a block diagram of a Mobile IP environment;  
         [0019]    [0019]FIG. 2 is a block diagram illustrating an exemplary environment in which the present invention may be implemented;  
         [0020]    [0020]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;  
         [0021]    [0021]FIG. 4 is a diagram illustrating an exemplary network device in which various embodiments of the invention may be implemented.  
         [0022]    [0022]FIG. 5 is a diagram illustrating a network device suitable for implementing the techniques of the present invention.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0023]    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.  
         [0024]    The present invention allows a mobile node that connects to a home network to use mobility services if the mobile node later roams. A home agent is able to authenticate a roaming mobile node, even though mobility bindings were not created. Methods by which a home agent can accomplish this include use of cached information and performing a DHCP INFORM on the mobile node&#39;s IP address.  
         [0025]    [0025]FIG. 2 is a block diagram illustrating an exemplary environment in which the present invention may be implemented. A network  205  contains a home agent  210 , a foreign agent  215 , a DHCP server  220 , and a mobile node  225 . The mobile node  225  can attach itself to the home agent  210  via the home agent network segment  230 , which may have several different ports  235  and  240 , and the mobile node  225  can attach itself to the foreign agent  215  via the foreign agent network segment  245 .  
         [0026]    [0026]FIG. 3 is a control flow diagram illustrating an implementation of the invention. Steps performed by the mobile node  225 , the home agent  210  and DHCP server  220  are represented by corresponding vertical lines  305 ,  310 , and  315 .  
         [0027]    At  320  the mobile node  225  and the home agent  210  perform standard agent discovery procedures (e.g., the home agent  210  sends an agent advertisement, either on its own or in response to an agent solicitation from the mobile node  225 ). Once agent discovery is complete, at  325  the mobile node  225  sends out a registration request, similar to a standard registration request that the mobile node  225  sends out when it finds itself on the foreign agent network segment  245 . The mobile node  225  could append a DHCP extension that indicates that the mobile node  225  wants an address allocated via DHCP.  
         [0028]    Additionally, the DHCP extension can have a bit indicating that the mobile node  225  wants to manage its home address via DHCP. Upon receipt of the registration request, the home agent  210  does DHCP address allocation for the mobile node  225 . As requested by the mobile node  225 , the home agent  210  sends the DHCP server  220  information, lease lifetime, and subnet mask information in a DHCP extension appended to the registration reply back to the mobile node  225 . When the mobile node  225  is attached via the home agent network segment  230  and the mobile node  225  asked for DHCP information indicating that it is DHCP aware, the home agent  210  can specifically ask the mobile node  225  to manage its own home address via DHCP. The home agent  210  informs the mobile node  225  of this by setting the M bit in the DHCP extension in the registration reply.  
         [0029]    Depending on the specific embodiment, the home agent  210  can process the message several different ways at  330 . For example, if the home agent  210  had cached the mobile node&#39;s  225  original DHCP request, as described in U.S. application Ser. No. 10/241,969, the home agent  210  could immediately submit a registration reply back to the mobile node  225 , reusing the DHCP address as the mobile node&#39;s  225  home address.  
         [0030]    Other methods of assigning a home address to the mobile node  225  include referring to a static internal table of available IP addresses, using an AAA server or using a DHCP server  220  to assign a home address. If the mobile node  225  did not identify a source IP address (i.e., it did not receive a prior DHCP address), the home agent  210  could use the gateway interface address (giaddr) of the registration request at  325  in its communications with the DHCP server  220  at  335 . Communications with the DHCP server  220  could then include a DHCP discover, a DHCP offer, a DHCP request and a DHCP acknowledgement.  
         [0031]    Once the home agent  210  determines a home address for the mobile node  225 , it can optionally cache the home address, the NAI and the MAC address. However, no mobility bindings need to be created at  330  since the mobile node is on its home network.  
         [0032]    At  340  the home agent  210  sends a registration reply to the mobile node  225 . The registration reply should contain the NAI, the home address of the mobile node  225 , the address of the home agent  210 , and a lifetime.  
         [0033]    At  345  a zero lifetime will alert the mobile node  225  that the home agent  210  has not created any mobility bindings, and the M bit in the DHCP extension relays that the mobile node  225  is responsible for its own DHCP address management.  
         [0034]    Any number of other methods could also be used to alert the mobile node of its address management responsibilities. For example, an extension to the registration reply could also alert the mobile node  225  of its responsibilities. Alternatively, the mobile node  225  could have determined that it was in its home network segment  230  from the agent discovery procedures at  320 .  
         [0035]    Once the mobile node  225  is alerted to its address management responsibilities, the mobile node  225  will also need to have the IP address of the DHCP server  220  and the net prefix in order to perform these responsibilities. If the mobile node  225  did not already receive the information in accordance with the method described in U.S. application Ser. No. 10/241,969 or through some other means, the home agent  210  could include the DHCP server  220  address and the net prefix in the registration reply. Therefore, for as long as the mobile node  225  was attached to the appropriate port  235  on the home agent network segment  230 , it would act as any other fixed host.  
         [0036]    At  350  the mobile node  225  roams to another port  240  on the home agent network segment  230 . At  355  the mobile node  225  conducts agent discovery procedures and detects movement. At  360  the mobile node  225  sends a registration request to the home agent  210  with an appended DHCP extension, indicating that the home address was already acquired via DHCP by setting the H bit in the DHCP extension. Since the NAI is mapped to the client ID in DHCP, the home agent  210  would require the DHCP information in order to authorize the mobile node&#39;s  225  home address. The mobile node  225  might have to supply the information (DHCP server address, subnet mask etc), depending on whether the home agent  210  previously cached the information.  
         [0037]    At  365  the home agent  210  processes the registration request. In order to authenticate the request, the home agent  210  would either refer to its cache or, if no cache was kept, at  370  the home agent  210  could perform a DHCP INFORM on the mobile node&#39;s  225  IP address in order to get the required information. If the home agent  210  referred to its cache to authenticate the mobile node  225 , it could also ping the home address to ensure the DHCP server  220  did not give out the address to another device in the interim. Once the mobile node  225  is authenticated, the home agent  210  would create mobility bindings. However, since the mobile node  225  was still connected to the home agent  210 , no tunnels need to be created.  
         [0038]    At  375  the home agent  210  sends a registration reply to the mobile node  225 , and the mobile node  225  would have access to fill mobility services. If the DHCP TLV M bit was set, the mobile node  225  could continue to renew its lease with the DHCP address directly. Otherwise the home agent  210  would provide DHCP proxy services.  
         [0039]    At  380  the mobile node  225  roams back to the original port  235  on the home agent network segment  230 . At  385  the mobile node  225  conducts agent discovery procedures and detects movement. At  390  the mobile node  225  sends a deregistration request to the home agent  210 , requesting the home agent  210  delete its bindings so the mobile node  225  can act as any other fixed node.  
         [0040]    At  395  the home agent  210  can delete the bindings to the mobile node  225  If a tunnel was created, it would also be deleted. If the home agent  210  uses the cached information method for authenticating later registration requests, the home agent  210  might need to re-cache information relating to the mobile node  225 . At  398  the home agent  210  sends a registration reply back to the mobile node  225 . Once again, the mobile node  225  would be responsible for its DHCP management responsibilities.  
         [0041]    [0041]FIG. 4 is a control flow diagram illustrating an implementation of the invention. Steps performed by the mobile node  225 , the home agent  210 , DHCP server  220  and foreign agent  215  are represented by corresponding vertical lines  305 ,  310 ,  315  and  405 .  
         [0042]    At  410  the mobile node  225  roams to the foreign agent network segment  245  from its original port  235  on the home agent network segment  230 . It does not matter whether the mobile node  225  had previously roamed and deregistered (as described in FIG. 3) or whether the foreign agent network segment  245  is the mobile node&#39;s  225  first roam.  
         [0043]    At  415  the mobile node  225  conducts agent discovery procedures and detects movement. At  420  the mobile node  225  sends a registration request with an appended DHCP extension to the home agent  210 , indicating that the home address was already acquired by setting the H bit in the DHCP extension. Depending upon which scheme is being used, the mobile node  225  might also have to supply the DHCP information in order to authorize the mobile node&#39;s  225  home address.  
         [0044]    At  425  the foreign agent  215  relays the registration request to the home agent  210 . Once the home agent  210  receives the registration request at  430 , it must authenticate the request. The home agent  210  would either refer to its cache or at  435  perform a DHCP INFORM on the mobile node&#39;s  225  IP address in order to get the required information. A ping on the mobile node&#39;s  225  IP address might also be appropriate. Once the mobile node  225  is authenticated, the home agent  210  would create mobility bindings and an appropriate tunnel.  
         [0045]    At  440  the home agent  210  sends a registration reply to the foreign agent  215 , which relays the registration reply to the mobile node  225  at  445 . Once the mobile node  225  receives the registration reply it would have access to full mobility services.  
         [0046]    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.  
         [0047]    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.  
         [0048]    Referring now to FIG. 5, a network device  500  suitable for implementing the techniques of the present invention includes a master central processing unit (CPU)  505 , interfaces  510 , memory  515  and a bus  520 . When acting under the control of appropriate software or firmware, the CPU  505  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  505  may be responsible for analyzing packets, encapsulating packets, and forwarding packets for transmission to a set-top box. The CPU  505  preferably accomplishes all these functions under the control of software including an operating system (e.g. Windows NT), and any appropriate applications software.  
         [0049]    CPU  505  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  500 .  
         [0050]    The interfaces  510  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  500 . 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.  
         [0051]    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.  
         [0052]    Regardless of network device&#39;s configuration, it may employ one or more memories or memory modules (such as, for example, the memory  515 ) 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.  
         [0053]    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.  
         [0054]    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.