1. Field of the Invention
The invention generally relates to network communications, and, in particular, to obtaining addresses for multiple interfaces in a device.
2. Description of the Related Art
The Dynamic Host Configuration Protocol (DHCP) describes how Internet Protocol (IP) addresses can be dynamically assigned to devices on a network. DHCP allows static and dynamic IP addresses to coexist. Dynamic addressing simplifies network administration because the software keeps track of IP addresses rather than requiring an administrator to manage the task. This means that a new computer can be added to a network without the hassle of manually assigning it a unique IP address. One version of DHCP for IPv6 is described in Request For Comments (RFC) 3315, entitled “Dynamic Host Configuration Protocol for IPv6,” dated July 2003, which is incorporated by reference in its entirety.
It is not uncommon for a “multi-homed” host to utilize the DHCP to obtain a plurality of addresses from a DHCP server. A multi-homed host may be, for example, a computer that has multiple network cards that are connected to multiple data links that are on the same or different networks.
On a multi-homed host intending to perform dynamic configuration for more than one interface, the conventional configuration method requires that each interface be configured individually. As such, the multi-homed host needs to have one state machine per each interface and hence one session per interface with the server. However, requiring a separate session to configure each interface can be inefficient, particularly as the number of interfaces on a given multi-homed host increases.
The present invention is directed to addressing, or at least reducing, the effects of, one or more of the problems set forth above.
In one aspect of the instant invention, a method is provided for obtaining addresses for multiple interfaces in a device. The method comprises generating a message and transmitting the message to a server over a communication link. The message includes a request for a server to provide a first address to assign to a first interface of a client device and a second address to assign to a second interface of the client device. The method further comprises receiving a response from the server configuring at least one of the first interface and second interface based on the response received from the server. The response includes the first address and the second address.
In another aspect of the instant invention, a server is provided. The server includes an interface communicatively coupled to a control unit. The control unit is adapted to receive a message from a client and transmit a response to the client. The message includes a request to provide a first address for assignment to a first interface of the client and a second address for assignment to a second interface of the client. The response including the first address and the second address
In another aspect of the instant invention, an article comprising one or more machine-readable storage media containing instructions is provided for obtaining addresses for multiple interfaces in a device. The instructions, when executed, enable a processor to generate a message requesting a server to provide a first address to assign to a first interface of a client device and a second address to assign to a second interface of the client device, transmit the message to the server and receive a response from the server. The response includes the first address and the second address and further includes configuring at least one of the first interface and second interface based on the response received from the server.
In another aspect of the instant invention, a client device is provided for obtaining addresses for multiple interfaces in a device. The client device comprises at least a first interface and a second interface and a control unit. The control unit is adapted to generate a message requesting a server to provide a first address to assign to the first interface of a client device and a second address to assign to the second interface of the client device, transmit the message to the server and receive a response from the server. The response includes the first address and the second address and further includes configuring configure at least one of the first interface and second interface based on the response received from the server.
In another aspect of the instant invention, a message structure is provided. The message structure comprises a first field for identifying a type of message and a second field that includes a first interface option for providing configuration information associated with a first interface of a client. The configuration information includes a type of address desired for the first interface and a second interface option for providing configuration information associated with a second interface of the client. The configuration information includes a type of address desired for the second interface.
The invention may be understood by reference to the following description taken in conjunction with the accompanying drawings, in which like reference numerals identify like elements.
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.
The words and phrases used herein should be understood and interpreted to have a meaning consistent with the understanding of those words and phrases by those skilled in the relevant art. No special definition of a term or phrase, i.e., a definition that is different from the ordinary and customary meaning as understood by those skilled in the art, is intended to be implied by consistent usage of the term or phrase herein. To the extent that a term or phrase is intended to have a special meaning, i.e., a meaning other than that understood by skilled artisans, such a special definition will be expressly set forth in the specification in a definitional manner that directly and unequivocally provides the special definition for the term or phrase.
Referring to
The network 125 of
In the illustrated embodiment, the server 110 is a Dynamic Host Configuration Protocol (DHCP) server that assigns addresses requested by clients, such as the multi-homed host 105. As described in greater detail below, the multi-homed host 105 includes a client module 130 that, in accordance with one embodiment of the present invention, configures a plurality of interfaces 112 in an efficient manner such that one session for each interface 112 to be configured is not needed. The client module 130 communicates with a module 135 of the server 110. For illustrative purposes, it is herein assumed that the server 110 operates in accordance with DHCP for IPv6, as described in RFC 3315.
In the illustrated embodiment, the multi-homed host 105 and server 110 communicate using DHCP messages. In the illustrated embodiment, the multi-homed host 105 uses a link-local address or addresses determined through other mechanisms for transmitting and receiving DHCP messages. The server 110 may receive messages from the multi-homed host 105 using a link-scoped multicast address.
The network 125 may include one or more network routers 140(1-2) through which the multi-homed host and server 105, 110 may communicate. The number of routers 140(1-2) employed in a given network 125 may vary from one implementation to another, even though only two are shown in
In the illustrated embodiment of the communications system of
As a general matter, to request the assignment of one or more IP addresses, the multi-homed host 105 first locates the server 110 on the network 125, and then requests the assignment of addresses and other configuration information from the server 110. In accordance with the DHCP, the multi-homed host 105, for a given interface, sends a SOLICIT message to the relay agent or servers to find available DHCP servers. Any server that can meet the multi-homed host's requirements responds with an ADVERTISE message. The multi-homed host 105 can choose from one of the servers (e.g., server 110, in the illustrated embodiment) and then send a REQUEST message to the server 110 asking for confirmed assignment of addresses and other configuration information. The server 110 responds with a REPLY message that contains the confirmed addresses and configuration information.
It should be appreciated that the arrangement of the communications system 100 of
The various modules 130 and 135 illustrated in
In the illustrated embodiment, as noted, the client module 130 of the multi-homed host 105 and the server module 135 of the server 110 communicate via DHCP messages.
The interface option 300 of
In the illustrated embodiment, the interface option 300 includes a router sub-option 250 for storing the “global” address of the router 140 associated with a given interface 112. The router 140 may be “associated” with a given interface 112 if, for example, the router 140 and that interface 112 share the same prefix (or are in the same subnet) or, for example, the router 140 and the interface 112 are attached to the same communication link. In the illustrated example of the communications system 100 of
The interface option 300 of
The interface option 300 may also include one or more IA_TA sub-options 270 that carry Identity Association (IA), Temporary Address (TA), parameters associated with the IA_TA, and the addresses associated with the IA_TA. In one embodiment, the IA_NA and IA_TA sub-options 310, 315 may be similar or identical to the OPTION_IA_NA and OPTION_IA_TA, respectively, defined in RFC 3315 for the DHCP.
The interface option 300 may also include a status sub-option 280 to allow the server to indicate if the server 110 will allow or deny the group of addresses specified in the interface option 300. Thus, in one embodiment, the status sub-option 280 can be utilized to efficiently deny or allow all of the requested addresses at an interface-level.
While the present invention defines a new option, interface option 300, for the Dynamic Host Configuration Protocol, in an alternative embodiment, instead of defining a new option, one or more of the existing options in the DHCP may be modified to convey some or all of the information associated with the interface option 300 of
Referring now to
The client module 130 generates (at 310) a message including information associated with the identified interfaces 112(1-3) for delivery to the server 110. In one embodiment, the message generated (at 310) takes the form of the DHCP message 200 shown
The global address of the router 140 associated with a given interface 112 is stored (at 317) in the router sub-option 250 of each interface option 300. Thus, because the first interface 112(1) is associated with the first router 140(1) in the illustrated example of
The client module 130 determines (at 320) a type of address (e.g., non-temporary address and/or temporary address) desired for each identified interface 112 and determines (at 325) a number of addresses desired for each type of address. For example, it may be determined (at 320) that a non-temporary address (NA) type is desired for the first interface 112(1), and may be further determined (at 325) that two of this type of address are desired for the first interface 112(1). As another example, it may be determined (at 320 and 325) that one non-temporary address (NA) and one temporary address (TA) are desired for the third interface 112(3). Based on the type and number of addresses desired, the client module 130 stores (at 330) the appropriate information in the interface option 300 of the message 200. In particular, if a non-temporary address is desired, the client module 130 may utilize the IA_NA sub-option 260 to indicate that a non-temporary address is required for a given IAID. If a temporary address is desired, the client module 130 may utilize the IA_TA sub-option 270 to indicate that a temporary address is required for a given IAD. If more than one IA_NA or IA_TA is desired, the client module 130 may include an additional number of IA_NA or IA_TA sub-options 310, 315 in the interface option 300 for each additional address desired.
Upon generating the message (at 310), the client module 130 transmits (at 340) the message to the server 110 over a selected interface 112. The manner in which a particular interface 112 is selected by the client module 130 over which the message is transmitted may vary from one implementation to another. In the illustrated embodiment, because the second interface 112(2) and the server 110 share the same prefix, the second interface 112(2) is chosen as the interface over which the message is transmitted. The server 110, upon receiving the transmitted message, processes the information conveyed in each of the three interface options 300 of the message 200. In particular, the server 110 processes the IA options designated in the interface option 300 for the first interface 112(1), and further verifies the subnet (or prefix) on which the first interface 112(1) resides based on the global address provided in the router sub-option 250 of that interface option 300. Similarly, the server 110 processes the information conveyed in the interface option 300 for the other interfaces 112(2-3). Thereafter, the server 110 proceeds in the usual manner according to the DHCP, where the server 110 returns addresses for each of the IAs specified in the message 200.
The client module 130 receives (at 350), from the server 110, addresses assigned to each of the identified interfaces 112(1-3). Thereafter, the client module 130 configures (at 360) the identified interfaces 112(1-3) based on the addresses received from the server 110. In view of the aforementioned description, the client module 130 is able to efficiently configure a plurality of interfaces 112(1-3) by transmitting a request for IP addresses for a plurality of interfaces 112(1-3) in a DHCP message. As such, the amount of duplicative information that would ordinarily be carried in separate requests for addresses can now be reduced with the advent of one or more embodiments of the present invention.
Referring now to
A storage unit 450 is coupled to the south bridge 435. The client module 130 may be storable in the storage unit 450, and can be executable by the control unit 415. Although not shown, it should be appreciated that in one embodiment an operating system, such as Windows®, Disk Operating System®, Unix®, OS/2®, Linux®, MAC OS®, or the like, may be stored on the storage unit 450 and executable by the control unit 415. The storage unit 450 may also include device drivers for the various hardware components of the processor-based device 400.
In the illustrated embodiment, the processor-based device 400 includes a display interface 447 that is coupled to the south bridge 435. The processor-based device 400 may display information on a display device 448 via the display interface 447. The south bridge 435 of the processor-based device 400 may include a controller (not shown) to allow a user to input information using an input device, such as a keyboard 448 and/or a mouse 449, through an input interface 446.
The south bridge 435 of the processor-based device 400, in the illustrated embodiment, is coupled to one or more network interfaces 460(1-N), which may be adapted to receive, for example, local area network cards. The processor-based device 400 communicates with other devices coupled to the network 125 through the network interfaces 460(1-N). Although not shown, associated with the network interface 460(1-N) may be a network protocol stack, with one example being a UDP/IP (User Datagram Protocol/Internet Protocol) stack. In one embodiment, both inbound and outbound packets may be passed through the network interface 460(1-N) and the network protocol stack.
In one embodiment, the processor-based device 400 may also represent the server 110 of
It should be appreciated that the configuration of the processor-based device 400 of
The various system layers, routines, or modules may be executable control units (such as control unit 415 (see
The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below.