Network resources, such as web servers hosting web sites, are typically accessible over the Internet by network addresses. For example, in accordance with the Internet Protocol (IP) version four, commonly referred to as IPv4, a network address at which a network resource is accessible is given as a.b.c.d, where each of a, b, c, and d is an integer between 0 and 255. As another. example, in accordance with the IP version six, commonly referred to as IPv6, a network address is given as a:b:c:d:e:f:g:h, where each of a, b, c, d, e, f, g, and h is a hexadecimal number from 0x0000 to 0xFFFF. A given network resource may be accessible by an IPv4 address, by one or more IPv6 addresses, or by both an IPv4 address and one or more IPv6 addresses.
Historically, network resources were accessible over the Internet via IPv4 network addresses only. However, for a variety of reasons, including primarily the concern that the number of unique IPv4 network addresses was running out, addressing is being slowly transitioned to IPv6 network addresses, such that network resources will each ultimately become accessible by one or more IPv6 network addresses. Network configuration of a computing device is more complicated with respect to IPv6 network addresses as compared to IPv4 network addresses.
For instance, generally a computing device has just one IPv4 network address. However, a computing device may have more than one IPv6 network address, such as a so-called stateless address received from routing device like a router, one or more so-called stateful addresses received via a dynamic host configuration protocol (DHCP) server, as well as a manually assigned address and a so-called link local address. Therefore, when a computing device is to communicate with other devices on an IPv6-addressable network, it needs to perform a network configuration process in order to receive or otherwise be assigned one or more IPv6 network addresses.
The drawings referenced herein form a part of the specification. Features shown in the drawing are meant as illustrative of only some embodiments of the invention, and not of all embodiments of the invention, unless otherwise explicitly indicated.
The network 108, including the physical link 104, is addressable in accordance with a given protocol. More particularly, resources on the network 108 are addressable in accordance with a given protocol. In one embodiment, the network 108 is an Internet Protocol (IP) version six, or IPv6, network, in which network resources are each addressable via one or more network addresses each given as a:b:c:d:e:f:g:h, where each of a, b, c, d, e, f, g, and h is a hexadecimal number from 0x0000 to 0xFFFF.
The computing device 102, as representative of all resources on the network 108, thus may have four different types of IPv6 addresses, which are also referred to as protocol addresses or network addresses herein. First, the computing device 102 has a so-called link local address 112A. The link local address 112A is used by the computing device 102 to communicate with other devices on the same physical link 104. Data packets sent over the physical link 104 associated with link local addresses are not forwarded by the router 106 to the network 108, since they are intended for local receipt by other devices on the physical link 104. The terminology “link local address” is used herein consistent with the usage of this terminology as known to those of ordinary skill within the art.
Second, the computing device 102 may have a manual address 112B. The manual address 112B is an address that the computing device 102 is assigned manually. More particularly, the manual address 112B is an address that a user may enter on a user interface of the computing device 102. As compared to other addresses of the computing device 102, as will be described, the manual address 112B is not received from another device on the network in accordance with an automatic configuration process, but rather is manually assigned to the computing device 102.
Third, the computing device 102 may have a so-called stateless address 112C. The stateless address 112C is an address that is received in accordance with a protocol, such as IPv6, from a routing device, like the router 106. That is, the computing device 102 performs stateless network configuration in accordance with a protocol in order to receive the stateless address 112C from a routing device, as is described in more detail later in the detailed description. The terminology “stateless address” and “stateless network configuration” is employed herein consistent with the usage of this terminology as known to those of ordinary skill within the art.
Fourth, the computing device 102 may have one or more stateful addresses 112D. Each of the stateful addresses 112D is an address that is received from a DHCP server, like the DHCP server 110. The stateful addresses 112D are received by the computing device 102 performing stateful network configuration in accordance with a policy for a protocol, such as a DHCP policy, and in accordance with one or more managed configuration flags for the stateful network configuration, as is described in more detail later in the detailed description. In at least some embodiments, as will be described, the policy for the protocol at least partially conflicts with the managed configuration flags for the stateful network configuration. The terminology “stateful address” and “stateful network configuration” is employed herein consistent with the usage of this terminology as known to those of ordinary skill within the art.
Embodiments of the invention are concerned with performing network configuration of the computing device 102, so that it receives or acquires one or more network or protocol addresses in order for the computing device 102 to communicate with other devices and other types of network resources. Such network configuration can thus result in the computing device 102 receiving or being assigned one or more of the addresses 112A, 112B, 112C, and 112D that have been described. Furthermore, some embodiments of the invention are concerned with the particular DHCP policy in accordance with which stateful network configuration is achieved.
It is noted that the network topology depicted in
First, a link local protocol configuration is performed for the computing device 102 to acquire the link local address 112A (202). In one embodiment, the link local protocol configuration is performed as is standard in accordance with IPv6. Next, where the manual address 112B has been previously stored within the computing device 102, it is acquired (204). In one embodiment, the manual address 112B is further acquired only if the computing device 102 is in an active state, which means that a manual address is to be employed in relation to the computing device 102, as opposed to an address being automatically assigned ot the computing device 102.
Thereafter, the computing device 102 may perform stateless network configuration to acquire the stateless address 112C from the router 106 or another routing device (206). In one embodiment, the stateless network configuration is performed as is standard in accordance with IPv6. Therefore, the stateless address 112C may be acquired only if the router 106 is appropriately configured to provide the stateless address 112C to the computing device 102. Otherwise, no stateless address may be acquired by the computing device 102. Furthermore, one or more managed configuration flags may be received as part of the stateless network configuration, where such flags are employed in conjunction with performing stateful network configuration.
The computing device 102 thus then performs stateful network configuration to acquire at least the stateful addresses 112D (208). Stateful network configuration is performed in accordance with the one or more managed configuration flags, such as is standard in conjunction with IPv6, as may have been received in relation to the stateless network configuration, and also in accordance with a stateful network configuration policy, such as a DHCP policy, as is described in more detail later in the detailed description. In one embodiment, however, the policy at least partially conflicts with the managed configuration flags. Thus, where the policy-does conflict with the managed configuration flags, the computing device 102 disregards these flags and instead performs stateful network configuration only in accordance with the policy (210). This is also described in more detail later in the detailed description.
It is noted that in one embodiment, the managed configuration flags are received from a routing device, as part of the stateless network configuration, as has been described, whereas the stateful network configuration policy itself is set as part of the configuration process of the computing device 102 itself. It is also noted that the stateful network configuration may be performed in an asynchronous manner. For example, the stateful network configuration may be performed in response to a request received from the router 106 or another routing device to perform such stateful configuration. In another embodiment, the stateful network configuration may be performed in a synchronous manner, in order after part 206 has been performed.
Performance of the stateful network configuration may result in the computing device 102 acquiring other information in addition to the stateful addresses 112D. For instance, the network address of a gateway device, such as a gateway server, for use by the computing device 102 to communicate with other device on the network 108, may be acquired. As another example, the network address of the DNS server 110 may be also be received, for communicative use by the computing device 102.
Thereafter, the computing device 102 completes active network configuration (212), where the computing device 102 is in an active state. Completion of the active configuration can include performing any other processes needed by the computing device 102 to reach a ready state where it can be used, as can be appreciated by those of ordinary skill within the art.
Network configuration of the computing device 102 can result in errors occurring. For instance, there may be duplicate addresses within the addresses 112A, 112B, 112C, and 112D, which is generally not allowed or otherwise undesirable within IPv6, among other types of networking protocols. As another example, an overflow address condition may occur, which is acquiring more addresses than can be stored in local memory.
Where either type of error is detected (214), the corresponding error message is forwarded to an error-logging device, such as an error-logging server (216). Furthermore, the error message is posted to a user interface of the computing device 102 itself (218), so that a user of the device 102 is able to review the error message. The method 200 is then finished (220), and is also finished where no error is detected in part 214, such that parts 216 and 218 are not performed. It is noted that while parts 214, 216, and 218 are depicted as being performed after parts 202, 204, 206, and 208 are performed, in another embodiment, these parts are performed after each of the parts 202, 204, 206, and 208 is performed. That is, the various errors are detected after each of these parts is performed.
As has been described, in one embodiment the stateful network configuration of part 208 is performed by the computing device 102 to obtain at least the stateful addresses 112D, in accordance with a policy for the protocol in question and in accordance with one or more managed configuration flags.
If the value for the policy is 1, corresponding to the row 302A of the table 300, then DHCP is performed only when requested by a routing device. That is, the computing device 102 performs stateful network configuration to obtain at least the stateful addresses 112D by performing DHCP in relation to a DHCP server, such as the server 110, only when a routing device, such as the router 106 requests that the device 102 do so, as specified by one or more managed configuration flags, as will be described in more detail in relation to
If the value for the policy is 2, corresponding to the row 302B of the table 300, then DHCP is performed only when the stateless network configuration of part 206 of the method 200 fails. That is, the computing device 102 first attempts to perform the stateless network configuration in part 206 of the method 200. If such configuration is unsuccessful, in that the stateless address 112C was not obtained from a routing device like the router 106, then the computing device 102 performs stateful network configuration to obtain at least the stateful addresses 112D by performing DHCP in relation to a DHCP server.
Finally, if the value for the policy is 4, corresponding to the row 302C of the table 300, then DHCP is always performed. Therefore, it does not matter whether a routing device has not requested that DHCP be performed, nor whether the stateless network configuration has been performed. Rather, stateful network configuration is always performed by the computing device 102, to obtain at least the stateful addresses 112D by performing DHCP in relation to a DHCP server.
If both the M and the O flags are set, corresponding to the row 352A of the table 350, then a stateful network address, as well as other information, such as gateway and DNS server network address information, are acquired by the computing device 102. That is, the computing device 102 performs complete stateful network configuration, by, for instance, performing DHCP in relation to a DHCP server, like the DHCP server 110. Similarly, if only the M flag is set, corresponding to the row 352B of the table 350, then a stateful network address and other information are acquired by the computing device 102. Because the meanings of both the M and the O flags being set and of just the M flag being set are the same, the value for either such situation can be considered the same, which is denoted as 2 in the table 350 of
If just the O flag is set, corresponding to the row 352C of the table 350, then only the other information, such as gateway and DNS server network address information, is acquired by the computing device 102, and no stateful network addresses are obtained. That is, the computing device 102 performs partial stateful network configuration, by, for instance, partially performing DHCP in relation to a DHCP server. In this situation, then, the stateful addresses 112D are not obtained by the computing device 102. The value for this situation is denoted as 1 in the table 350 of
Finally, if neither the M flag nor the O flag is set, corresponding to row 352D of the table 350, then no stateful information is obtained. That is, the computing device 102 does not perform DHCP in relation to a DHCP server, does not obtain the stateful addresses 112D, and does not obtain gateway and DNS server network address information. No stateful network configuration is performed. The value for this situation is denoted as 0 in the table 350 of
Performing stateful network configuration in accordance with the policy of
It is noted, however, that the policy of
In such instances, the policy of
By comparison, where the policy has the first value of 1 or the second value of 2, and the managed configuration flags have a second value of 1, then partial stateful network configuration is performed (404). In particular, information other than stateful network addresses, such as a gateway network address and a DNS server network address, are obtained. Stateful network addresses are not obtained by the computing device 102, however.
Finally, where the policy has a third value of 4, or where the policy has the first value of 1 or the second value of 2 and the managed configuration flags have a third value of 2, then complete stateful network configuration is performed (406). That is, stateful network addresses are obtained, via performing DHCP, as well as gateway and DNS server network addresses. It is noted that part 406 includes the situation where the policy conflicts with the managed configuration flags. In particular, where the policy has the third value of 4, and the managed configuration flags have the first value of 0 or the second value of 1 (i.e., a value other than the third value of 2), there is a conflict between the policy and the managed configuration flags. This is why it is stated that complete network configuration is performed where the policy has the third value of 4, without regards to the value of the managed configuration flags, since DHCP is always performed in this case, regardless of the value of the managed configuration flags.
The network component 502 is to communicatively connect the device 102 to a network, such as the physical link 104 of the network 108, and may be an Ethernet wired or wireless network adapter, or another type of network component. The logic 504 may be implemented in software, firmware, and/or hardware. The logic 504 is to perform the network configuration that has been described, such as that of the method 200 of