This is the first application filed for the present invention.
Not Applicable.
The invention relates in general to the transition of Internet Protocol (IP) networks from IP version 4 (IPv4) to IP version 6 (IPv6) and, in particular, to a method and apparatus for connecting IPv4 devices through an IPv6 network using a tunnel setup protocol.
Internet Protocol (IP) was created in the 1960's by the United States Advanced Research Projects Agency (ARPA). The Agency's mission was to create instruments useful for military purposes, in particular communications and decentralized computer networks. The original idea was to create connections between military bases using a decentralized communications network with a mesh structure that would permit network function despite significant damage to the country's infrastructure sustained in a military attack. In the early years of its development, the Internet was used for data transfers, principally as file transfer protocol (FTP) sessions.
Use of the Internet spread from the military to the scientific and educational communities in the 1970's and 80's. Propagation of the Internet was, however, slow until the Worldwide Web (WWW) was created. The Worldwide Web was first intended to provide a convenient channel for the transfer of scientific information. However, it caught the attention of the commercial world and in the 1990's an explosive growth of the Internet ensued. That explosive growth continues today. The current Internet uses an Internet Protocol referred to as IP version 4 (IPv4). IPv4 uses address fields that are 32 bits long. Although the potential number of IP addresses is 232, over 70% of those addresses have already been assigned and, if as expected the explosive growth of the Internet continues at its current pace, total exhaustion of IPv4 addresses will occur by 2006. Consequently, the Internet Engineering Task Force (IETF) has developed a new Internet standard referred to as IPv6 which uses 128-bit addressing. The address space in IPv6 is intended to accommodate connection of substantially any intelligent electronic device to the IP network. This includes mobile devices.
It is well known that IPv4 and IPv6 are not compatible because of the differences in address space. Consequently, IPv4 and IPv6 networks can only be interconnected by gateway nodes provisioned with both IPv4 and IPv6 network stacks. However, because of the current lack of available IPv4 address space, IPv6 networks are being deployed and connected to the IPv4 network. A need has therefore arisen for equipment and methods to permit IPv4 devices to communicate across the IPv6 network. It is also well known that a data encapsulation technique known as tunneling can be used for transferring IPv4 packets across the IPv6 network. When an Ipv4-in-IPv6 tunnel is created, IPv4 packets are encapsulated with IPv6 headers that are used to transfer the packets through the IPv6 network to a predetermined IPv4-IPv6 host or gateway. The establishment of Ipv4-in-IPv6 tunnels is a complex process. Traditionally, the tunnels have been constructed using a manual process for setting up tunnel endpoints at edges of the IPv6 network. This is a time-consuming task that requires a considerable level of expertise and experience. Consequently, manual establishment of tunnels is unworkable with mobile devices and beyond the expertise of a majority of users.
A semi-automatic establishment of IPv6-in-IPv4 tunnels is described in RFC3053 entitled “IPv6 Tunnel Broker” (January 2001). The tunnel broker described in this document is a worldwide web implementation that permits end-users to select a pre-configured IPV6-in-IPv4 tunnel. However, the system does not support any real negotiation between the end-user and the tunnel broker. If end-users use dynamic IPv4 addresses, a manual operation must be done to update the tunnel broker. This limits the scalability of deploying IPv6 networks, and introduces a considerable onus on inexperienced users.
The problem of automating and simplifying the establishment of IPv6-in-IPv4 tunnels to facilitate adoption and use of IPv6, as well as to ameliorate the transition from IPv4 to IPv6 has been solved by the applicant, as described in applicant's co-pending U.S. patent application Ser. No. 10/195,396 filed Jul. 16, 2002 and entitled Method and Apparatus for Connecting IPv6 Devices Through an IPv4 Network Using a Tunnel Setup Protocol, the specification of which is incorporated herein by reference.
However, as IPv6 becomes increasingly deployed, the problem shifts to being one of having to interconnect isolated IPv4 networks and/or IPv4 devices in a predominantly IPv6 network. Also, certain networks will be deployed with an IPv6 backbone first, and have to transport and support IPv4 until the entire network is eventually converted to IPv6.
During the initial deployment of IPv6, hosts in native IPv6 networks have required connectivity to hosts and/or applications that can only be reached using IPv4. The Dual Stack Transition Mechanism (DSTM) provides a method to ensure this connectivity using IPv6-over-IPv4 tunnels and the temporal allocation of a global IPv6 address to hosts requiring such communication.
DSTM is designed to help the interoperation of newly deployed IPv6 networks with existing IPv4 networks. Since the available IPv4 globally routable address space is becoming a scarce resource, it is assumed that users will deploy IPv6 to reduce their reliability on IPv4 within a portion of their networks. Under this premise, supporting native IPv4 and native IPv6 simultaneously significantly increases the complexity of network administration (address plan, routing infrastructure). On the other hand, if the network is configured for IPv6 alone, no IPv4 connectivity is maintained in the network.
When DSTM is deployed in a network, an IPv4 address is allocated to a dual stack node if the connection can not be established using IPv6. This permits IPv6 nodes to communicate with IPv4-only nodes, or IPv4-only applications to run on an IPv6 node without modification. This allocation mechanism is coupled with an ability to perform IPv4-over-IPv6 (4over6) tunnelling, hiding IPv4 packets inside native IPv6 packets. This simplifies network management, because only the IPv6 routing plan has to be managed inside the network.
The DSTM architecture requires an address server (DSTM server), a gateway and a number of nodes (DSTM nodes). The address server is in charge of IPv4 address allocation to client nodes. This allocation is very simple because there is no localization purpose in the address. The DSTM server only has to guarantee the uniqueness of the IPv4 address for a period of time. The gateway, or Tunnel End Point (TEP), can be thought of as a border router between the IPv6-only domain and an IPv4 internet or intranet. The gateway performs encapsulation/decapsulation of packets to ensure bi-directional forwarding between the two networks. Finally, in order to ensure IPv4 connectivity, nodes in the IPv6-only domain must be able to dynamically configure their IPv4 stack (by asking the address server for a temporary address) and must be capable of establishing IPv4-over-IPv6 tunnels to the TEP.
DSTM may be deployed in several phases. As a first step, IPv4 connectivity may be ensured by manually configuring tunnels from a DSTM node to a TEP. However, manual configuration of tunnels is time-consuming and inefficient.
Consequently, there exists a need for a method and apparatus for automating and simplifying the establishment of IPv4-in-IPv6 tunnels to facilitate communication between legacy IPv4 networks and devices, as well as to ameliorate the transition from IPv4 to IPv6 by providing a mechanism that permits a piecemeal transition to IPv6.
It is therefore an object of the invention to provide a tunnel setup protocol for automating the establishment of IPv4-in-IPv6 tunnels through the IPv6 network.
The invention provides a tunnel setup protocol that permits IPv4 devices to communicate across an IPv6 network. In accordance with the invention, a control channel is established between a tunnel client and a tunnel broker server. The control channel established between the tunnel client and the tunnel broker server is used to exchange tunnel configuration information and, optionally, to negotiate configuration parameters for the IPv4-in-IPv6 tunnel. After the tunnel configuration parameters have been established, the tunnel broker server configures a tunnel broker server endpoint. The tunnel broker server endpoint may be supported by the tunnel broker server, or by another gateway node, such as an IPv6/IPv4 router connected to both the IPv6 and the IPv4 networks.
The tunnel client also configures a tunnel endpoint, referred to as the tunnel client endpoint for the IPv4-in-IPv6 tunnel. The tunnel client endpoint may likewise be configured on the tunnel client, or another IPv6/IPv4 node, such as a gateway router. In order to extend capacity, either the tunnel client or the tunnel broker server may have a list of nodes that support tunnel endpoints so that traffic loads can be distributed to improve throughput. The invention therefore permits the automated establishment of IPv4-in-IPv6 tunnels using a control channel. The use of the control channel enables the automated negotiation of specific configuration details, such as an IPv4 address range (hereinafter referred to as “IPv4 prefix” to be consistent with IPv6 terminology), DNS delegation and router peering protocol. This facilitates the preservation of legacy IPv4 networks, and ameliorates the transition from IPv4 to IPv6 by permitting a gradual transition to IPv6. The invention is particularly useful for legacy IPv4 mobile devices, since IPv4-in-IPv6 tunnels can be rapidly and automatically configured to permit true, unencumbered mobility of those devices as IPv6 becomes increasingly prevalent.
Further features and advantages of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
a-3d are a flow chart of a method for connecting IPv4 devices through an IPv6 network using a tunnel setup protocol;
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
The invention provides a method and apparatus for connecting IPv4 devices through an IPv6 network using a tunnel setup protocol (TSP).
In accordance with the invention, a control channel is established between a tunnel client and a tunnel broker server. Both the tunnel client and the tunnel broker server must be connected to the IPv6 network. The control channel established between the tunnel client and the tunnel broker server is used to negotiate configuration parameters for an IPv4-in-IPv6 tunnel. After the configuration parameters are established, the tunnel broker server configures a tunnel broker server endpoint and the tunnel client configures a tunnel client endpoint for the IPv4-in-IPv6 tunnel. The respective tunnel endpoints may be configured on the respective tunnel client and tunnel broker server. Alternatively, either of the tunnel client and the tunnel broker server may configure remote tunnel endpoints. In order to extend capacity, either the tunnel client or the tunnel broker server may have a list of nodes that support tunnel endpoints, so that traffic loads can be distributed to improve throughput. The invention therefore permits the automated establishment of IPv4-in-IPv6 tunnels, which facilitates the support of IPv4 nodes and networks in IPv6 networks and ameliorates the transition from IPv4 to IPv6.
The control channel 40 is used to negotiate parameters for establishing an IPv4-in-IPv6 tunnel through the IPv6 network 29. The tunnel is used to establish a data channel 42, which extends between first and second tunnel endpoints. In this example, the tunnel endpoints are the tunnel client 50 and the tunnel broker server 60. The data channel is used to transfer IPv4 data packets through the IPv6 network. The IPv4 data packets are encapsulated at the respective endpoints of the IPv4-in-IPv6 tunnel, as will be explained below in more detail.
a-3d are a flow diagram illustrating the tunnel setup protocol in accordance with the invention. The process begins in step 100 when a tunnel setup protocol (TP) client, hereinafter referred to as a tunnel client 50 (
In step 110, the tunnel client 50 determines whether the capabilities of the tunnel broker server 60 are satisfactory for the purposes it requires. If not, the tunnel client 50 closes the tunnel setup protocol session (step 112) and the process ends. Otherwise, the tunnel client 50 selects an authentication mechanism from the list supported by the tunnel broker server 60 and specifies the authentication mechanism in an authentication message sent via the control channel 40 to the tunnel broker server 60 (step 114). Subsequently, the tunnel broker server 60 and the tunnel client 50 exchange authentication data (step 116) via the control channel 40. In step 118, the tunnel broker server 60 verifies the tunnel client authentication data.
As shown in
If the tunnel broker is provisioned to provide the requested service or a similar service as determined in steps 128, 130, the tunnel broker server 60 assigns an IPv4-in-IPv6 tunnel to the tunnel client. The tunnel broker may also assign an IPv4 prefix in a manner well known in the art, provide domain name service (DNS) delegation, as will be explained below in more detail, and router peering to the tunnel client 50, as appropriate (step 134).
In step 136, the tunnel broker server 60 determines whether DNS delegation has been requested. If so, the tunnel broker server 60 configures its DNS servers for the DNS delegation by writing the tunnel client's DNS server addresses to DNS servers associated with the tunnel broker server 60, to point to the tunnel client's DNS servers for name space associated with the assigned IPv4 prefix (step 138). Then the tunnel broker server 60 configures its DNS servers with an “AAAA record” (step 140) for the client tunnel endpoint address, in a manner known in the art. In step 142 (
If the tunnel endpoint configuration is determined to be successful in step 144, the tunnel broker server 60 sends the tunnel configuration parameters along with any required IPv4 prefix, DNS information, router peering information, etc. to the tunnel client 50 using the control channel 40, along with a success code (step 150). On receipt of this information, the tunnel client determines whether it will accept the tunnel configuration (step 152). If it does not find the tunnel configuration acceptable, the tunnel client determines (step 154) whether it will negotiate a different configuration. It should be noted that the tunnel client may be implemented with or without the capacity for parameter negotiation. If it is not equipped for negotiation or decides to terminate negotiation, the process moves to step 156, in which the client refuses the tunnel configuration and advises the tunnel broker 60 by sending a refusal message over the control channel 40 (step 156). On receipt of the refusal message, the tunnel broker server 60 rolls back the configuration of the tunnel endpoint, the DNS configurations, etc. (step 158) and branches to steps 178-180, as explained above.
If the client determines in step 154 that it will negotiate the tunnel configuration, it may, for example, assess whether negotiation should proceed by comparing a negotiation count with a predetermined threshold (step 160). If the negotiation count is greater than the threshold, the process branches to steps 156, 158 and 178-180, as explained above. Otherwise, the negotiation counter is incremented (step 162) and the tunnel client 50 returns via the control channel 40 a revised parameter list to the tunnel broker server 60 and the process branches back to step 128.
If the tunnel client accepts the tunnel configuration in step 152, the tunnel client 50 configures its tunnel endpoint and, if required, configures its DNS server(s) as explained above, and router peering in its tunnel endpoint, if required (step 166). The tunnel is thus established and IPv4 traffic can be sent over the established tunnel (step 168). The tunnel client 50 then determines whether it wants to keep the tunnel setup protocol session alive (step 170). If so, the tunnel client 50 sends a keep-alive message to the tunnel broker server 60 via the control channel 40 (step 172) and after a predetermined time delay (step 174) repeats steps 170, 172. If the tunnel client 50 does not wish to keep the tunnel setup protocol session alive, the tunnel client 50 closes the tunnel setup protocol session by dropping the control channel 40 (step 176). The tunnel established between the tunnel endpoints continues, however, for a period determined by the tunnel broker server 60, or through negotiation with the tunnel client 50, for a predetermined period of time, as will be explained below with reference to
As shown in the diagram, in step 200, the router is configured as a tunnel client 50. Once configured as a tunnel client 50 so that it knows how to contact the tunnel broker server 60, the router is provisioned to establish a control channel 40 to the tunnel broker server 60, as explained above. Subsequently, in step 202, the tunnel client 50 sends a connect message to the tunnel broker server 60 to establish the control channel 40. The tunnel client 50 may be prompted to establish the control channel for any number of reasons. For example, the tunnel client 50 is prompted to establish the control channel when the IPv4 node 72 generates IPv4 traffic addressed to an IPv4 node in a different IPv4 network, on reboot, on re-establishing IPv6 re-connectivity, etc. On receipt of the connect message, the tunnel broker server 60 returns an acknowledgement message (step 204) and the control channel 40 is established. The tunnel client 50 then sends the version of the tunnel setup protocol it supports to the tunnel broker server 60 (step 206) via the control channel 40. The tunnel broker server 60 returns, via the control channel 40, a list of the tunnel setup functions it supports (step 208). The tunnel client 50 selects an authentication mechanism and authentication information is exchanged (step 210). In step 212, the tunnel broker server 60 determines that the tunnel client 50 is authorized for the service and returns an authorization successful message (step 214). On receipt of the message, the tunnel client 50 formulates a tunnel request message which it sends to the tunnel broker server 60 in step 216. The request, as explained above, optionally includes a request for an IPv4 prefix, DNS delegation, and a router peering. On receipt of the request, the tunnel broker 60, in this example, is provisioned to satisfy the request and configures a tunnel endpoint (step 218) to serve the request.
The tunnel broker server 60 then returns a tunnel answer message (step 220) which includes tunnel configuration parameters, including IPv6 and IPv4 addresses for both the tunnel broker server and the tunnel client endpoints as well as any other information requested by the tunnel client 50 in step 216. On receipt of the tunnel answer message, the tunnel client configures its tunnel endpoint (step 222). Thereafter, the tunnel client 50 may optionally send keep-alive messages (step 224), as explained above, to keep the control channel 40 open. The tunnel client may also optionally terminate the tunnel protocol session (step 226) at any time. After step 222 is complete, the tunnel is established and data packets can flow between the IPv4 node 72 and the IPv4 node 74, as shown in steps 228-240.
Included in the information sent by the tunnel broker server 60 in the tunnel answer (step 220), was a tunnel lifetime parameter, which specifies a duration of the IPv4-in-IPv6 tunnel. When the tunnel lifetime expires (step 242), the tunnel broker server 60 deconstructs the tunnel endpoint, DNS delegation and router peering so that traffic can no longer pass through the tunnel, as explained below with reference to
The methods and apparatus in accordance with the invention therefore permit mobile devices to automatically establish IPv4-in-IPv6 tunnels through the IPv6 network to permit IPv4 nodes to communicate with other IPv4 nodes in other IPv4 subnetworks. This is of critical importance to the exponentially expanding use of wireless devices and mobile devices in general, and permits seamless networking of such devices. It is also of critical importance in new networks where IPv4 compatibility and access are not generalized because there is a small number of IPv4 devices. Such networks include control networks, gaming networks, etc.
The embodiment(s) of the invention described above is(are) intended to be exemplary only. The scope of the invention is therefore intended to be limited solely by the scope of the appended claims.
| Number | Date | Country | |
|---|---|---|---|
| Parent | 10286137 | Nov 2002 | US |
| Child | 11457641 | Jul 2006 | US |