The present invention relates generally to Internet Protocol communication, and specifically to facilitating Internet Protocol Version 6 (IPv6) communication over a network containing Internet Protocol Version 4 components using Domain Name System servers to automatically discover IPv6 connect agents.
There are currently two versions of Internet Protocol in use: the widely used but older Internet Protocol Version 4 (IPv4) and the less used but newer Internet Protocol Version 6 (IPv6). IPv6 is expected to gradually replace IPv4, but the two versions will coexist for a number of years during the transition period. Thus, enabling IPv6 communication over a network containing IPv4 components during the transition period when the two versions coexist is an important concern among users of the Internet. Such communication requires a connect agent to provide IPv6 connectivity to an IPv6 enabled node in an IPv4 network or in an IPv4 and IPv6 mixed network (a “mixed network”). What is needed are methods and systems for an IPv6 enabled node in an IPv4 or mixed network to automatically discover a connect agent that is capable of providing IPv6 connectivity across the IPv4 or mixed network. The methods and systems should not require an upgrade of the IPv4 or mixed network.
In order to engage in IPv6 communication over a network containing IPv4 components, an IPv6 enabled node uses an IPv6 connect agent. An IPv6 enabled node finds an IPv6 connect agent by using a Domain Name System (DNS) server. The DNS server can be located either inside or outside the network containing the IPv6 enabled node.
The IPv6 enabled node sends a query to the DNS server and, in response, receives an identifier of at least one IPv6 connect agent. In one embodiment, an identifier comprises the name of an IPv6 connect agent. In this embodiment, the IPv6 enabled node then sends a name of a desired IPv6 connect agent to the DNS server and, in response, receives the address of that IPv6 connect agent. The IPv6 enabled node is then able to engage in IPv6 communication using that IPv6 connect agent. In another embodiment, an identifier comprises the address of an IPv6 connect agent. In this embodiment, the IPv6 enabled node is able to engage in IPv6 communication using that IPv6 connect agent without any further contact with the DNS server.
In another embodiment, when the IPv6 enabled node sends a query to the DNS server, it receives multiple IPv6 connect agent identifiers. In this embodiment, the IPv6 enabled node determines which IPv6 connect agent it wants to use. In one embodiment, this determination is based on selection criteria such as the order of the IPv6 connect agents in the list or the IPv6 connect agents' proximity to the IPv6 enabled node. In another embodiment, this determination is based on associated attributes of the IPv6 connect agents, such as bandwidth or speed.
The features and advantages described in this summary and the following detailed description are not all-inclusive, and particularly, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims hereof. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter.
The figures depict embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
In the illustrated embodiment, IPv4 network 100 includes two IPv4 nodes 110A and 110B and one IPv6 enabled node 120. This architecture is used only by way of example. While
Communications network 150 may include multiple processing systems and comprises a local area network (LAN), a wide area network (WAN; e.g., the Internet), and/or any other interconnected data path across which multiple devices may communicate. In the illustrated embodiment, communications network 150 includes one Domain Name System (DNS) server 160 and three IPv6 connect agents 170A, 170B, and 170C. This architecture is used only by way of example. While
While the illustrated embodiment shows the DNS server 160 and the IPv6 connect agents 170 located in the same network, in another embodiment, they are located in different networks. While the illustrated embodiment shows the DNS server 160 and the IPv6 connect agents 170 located externally to the network containing IPv6 enabled node 120, in another embodiment, the DNS server 160 and/or the IPv6 connect agents 170 are located within the network containing IPv6 enabled node 120.
DNS server 160 is configured such that the nodes of the IPv4 network 100, including the IPv6 enabled node 120, can send queries to and receive responses from the DNS server 160.
IPv6 connect agent 170 is a node that includes the functionality required to enable an IPv6 enabled node 120 residing in an IPv4 network 100 (or in an IPv4 and IPv6 mixed network, as discussed below) to engage in IPv6 communications across the network. As shown in
In the illustrated embodiment, mixed network 105 includes an IPv4 section 106 and an IPv6 section 107. IPv4 section 106 includes two IPv4 nodes 110A and 10B and one IPv6 enabled node 120. This architecture is used only by way of example. While
As shown in
In the illustrated embodiment, mixed network 105 includes an IPv4 section 106, an IPv6 section 107, and a DNS server 160. IPv4 section 106 includes two IPv4 nodes 110A and 110B and one IPv6 enabled node 120. This architecture is used only by way of example. While
As shown in
Methods and techniques of creating IPv6 enabled nodes 120 and connecting an IPv4 network 100 or mixed network 105 to a communications network 150 are known to those of ordinary skill in the relevant art. Note that the methods and systems described herein do not require the IPv4 elements of the IPv4 network 100 or mixed network 105 to be upgraded to IPv6 to allow the IPv6 enabled node 120 to undertake IPv6 communications.
In response to the query, the IPv6 enabled node 120 receives 210 a list containing the names of zero or more IPv6 connect agents 170. The IPv6 connect agents 170 on the list are available to provide IPv6 communications to the IPv6 enabled node 120. If the list contains zero IPv6 connect agent 170 names, then no IPv6 connect agent 170 is available. A list of zero IPv6 connect agent 170 names can be implemented as an empty list or, alternatively, as the absence of a list. If the list contains at least one IPv6 connect agent 170 name, then at least one IPv6 connect agent 170 is available.
The IPv6 enabled node 120 then selects 215 an IPv6 connect agent 170 from the list. If the list of IPv6 connect agents 170 contains only one IPv6 connect agent 170, then the IPv6 enabled node 120 will select the IPv6 connect agent 170 listed. If the list of IPv6 connect agents 170 contains more than one IPv6 connect agent 170, then the IPv6 enabled node 120 will select an IPv6 connect agent 170 according to a set of selection criteria. In one embodiment, the selection criteria is simply the order of IPv6 connect agents 170 in the list such that the IPv6 connect agent 170 listed first is selected. In another embodiment, the IPv6 connect agent 170 that is physically closest to the IPv6 enabled node 120 is selected.
In yet another embodiment, the information received from DNS server 160 includes both IPv6 connect agent 170 names and associated attributes of each IPv6 connect agent 170. Examples of associated attributes are an IPv6 connect agent's location, bandwidth, speed, and supported communication protocols. Any combination of these or other associated attributes may also be used as selection criteria. Of course, the attributes and selection criteria described herein are only examples. Other examples of associated attributes and selection criteria will be apparent to those of ordinary skill in the relevant art in light of this document.
The IPv6 enabled node 120 then queries 220 the DNS server 160 using the name of the selected IPv6 connect agent 170. The DNS server 160 uses the name of the selected IPv6 connect agent 170 as a key to a DNS lookup to find an associated record. In one embodiment, the DNS lookup uses a Naming Authority Pointer (NAPTR) DNS resource record.
In response to the query, the IPv6 enabled node 120 receives 225 the Internet address of the selected IPv6 connect agent 170. The IPv6 enabled node 120 can then use the Internet address of the selected IPv6 connect agent 170 to communicate with the IPv6 connect agent 170 and thus engage in IPv6 communications.
The IPv6 enabled node 120 then selects 215 an IPv6 connect agent 170 from the list as described above. Once the IPv6 enabled node 120 has selected an IPv6 connect agent 170 from the list, the IPv6 enabled node 120 is able to use the Internet address of the selected IPv6 connect agent 170 to communicate with the IPv6 connect agent 170 and thus engage in IPv6 communications.
The DNS server 160 then sends the IPv6 enabled node 120 the list of IPv6 connect agent 170 names. If the list contains zero IPv6 connect agents 170, then no IPv6 connect agent 170 is available. If the list contains at least one IPv6 connect agent 170, then at least one IPv6 connect agent 170 is available.
In response to receiving a query from the IPv6 enabled node 120 including the name of a selected IPv6 connect agent 170, the DNS server 160 performs a lookup using the name of the selected IPv6 connect agent 170 as a key. Each IPv6 connect agent 170 name corresponds to a record which contains the IPv6 connect agent's Internet address. In one embodiment, the DNS lookup uses a Naming Authority Pointer (NAPTR) DNS resource record.
The DNS server 160 then sends the IPv6 enabled node 120 the Internet address of the selected IPv6 connect agent 170. The IPv6 enabled node 120 is then able to use the Internet address of the selected IPv6 connect agent 170 to communicate with the IPv6 connect agent 170 and thus engage in IPv6 communications.
The DNS server 160 then sends the IPv6 enabled node 120 both the list of IPv6 connect agent 170 names and their associated attributes, including at least the Internet address. Thus, the IPv6 enabled node 120 can use the Internet address of a selected IPv6 connect agent 170 to communicate with the IPv6 connect agent 170 and thus engage in IPv6 communications.
As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, features, attributes, methodologies, nodes, servers, connect agents, and other aspects are not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, divisions, and/or formats. Furthermore, as will be apparent to one of ordinary skill in the relevant art, the modules, features, attributes, methodologies, nodes, servers, connect agents, and other aspects of the invention can be implemented as software, hardware, firmware, or any combination of the three. Of course, wherever a component of the present invention is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of skill in the art of computer programming. Additionally, the present invention is in no way limited to implementation in any specific programming language or for any specific operating system or environment. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention.
This application claims priority from U.S. provisional patent application Ser. No. 60/474,794 filed on May 29, 2003, entitled “Automatic IPv6 Connect Agent Discovery Using DNS.”
Number | Date | Country | |
---|---|---|---|
60474794 | May 2003 | US |