WO2008106773A1 - Tunneling device for automatic protocol provisioning in a network - Google Patents

Tunneling device for automatic protocol provisioning in a network Download PDF

Info

Publication number
WO2008106773A1
WO2008106773A1 PCT/CA2008/000400 CA2008000400W WO2008106773A1 WO 2008106773 A1 WO2008106773 A1 WO 2008106773A1 CA 2008000400 W CA2008000400 W CA 2008000400W WO 2008106773 A1 WO2008106773 A1 WO 2008106773A1
Authority
WO
WIPO (PCT)
Prior art keywords
ipv6
ipv4
tunneling
protocol
router
Prior art date
Application number
PCT/CA2008/000400
Other languages
French (fr)
Other versions
WO2008106773A8 (en
Inventor
Eric Melin
Mikael Lind
Original Assignee
Hexago
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hexago filed Critical Hexago
Publication of WO2008106773A1 publication Critical patent/WO2008106773A1/en
Publication of WO2008106773A8 publication Critical patent/WO2008106773A8/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2542Translation of Internet protocol [IP] addresses involving dual-stack hosts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6

Definitions

  • the present invention relates to a tunneling device for automatic protocol provisioning in a network.
  • the present invention relates to a device for providing transparent data communications between networked devices communicating using a first protocol, illustratively IPv6, where the networked devices are interconnected via at least one network segment using a second protocol, illustratively IPv4, which is incompatible with the first protocol.
  • IPv4 is already deployed in most existing IP based infrastructures, and provides access to both the Internet and to private IP networks (such as a corporate network). Success in the deployment of the IPv4 protocol has lead to rapid exhaustion of the pool of available IPv4 addresses.
  • IPv4 addresses which are not unique and can be reused in different independent networks
  • NAT Network Address Translation
  • ISPs Internet Service Providers
  • mobile cellular operators to support a large number of new customers without changes to the existing IPv4 protocol.
  • one drawback of this solution is a more complex network infrastructure and a deployment of peer-to-peer services such as VoIP, video-conferencing, on-line gaming (where each peer typically requires a known public IP address that is easily distinguished from any other peer) which is much more difficult.
  • IPv6 was developed.
  • the IPv6 protocol has been designed to address those problems associated with the exhaustion of the IPv4 address space.
  • IPv6 addresses public by nature
  • each user and even each device at home, in a car, etc.
  • IPv6 address can be allocated a unique IPv6 address. This significantly simplifies the deployment of services based on the peer to peer paradigm which as a result can by deployed at a lower cost than with IPv4.
  • IPv6 devices for example a local IPv6 client
  • IPv6 devices located on an isolated portion of the network infrastructure may be unable to communicate with other IPv6 devices (for example an IPv6 server) located on another portion of the network infrastructure as the intermediate network infrastructure supports only IPv4.
  • IPv6 in IPv4 Tunnelling where IPv6 packets are transferred using IPv4 packets, and which enables an isolated IPv6 enabled client, host or network to exchange IPv6 packets with a different IPv6 enabled client, host or network separated from the isolated IPv6 enabled client, host or network by an IPv4 network.
  • Tunnel Setup Protocol see draft- blanchet-v6ops-tunnelbroker-tsp-03
  • L2TP RCC 2661
  • ISATAP RCC 4214
  • Teredo RCC 4380
  • 6to4 RCC 3056
  • IPv6 enabled clients interact with a central server via an IPv4 only network in order to negotiate the particular properties of the tunnel and will be accorded a tunnel end-point.
  • This tunnel end-point can be the client itself (the client must then be enabled for IPv6 in IPv4 tunneling), or a dedicated default router implementing IPv6 in IPv4 tunneling (this router may then serve several clients).
  • This solution is typically deployed by installing dedicated software for tunnel negotiation and setup on each client. However, this solution is not always scalable and it is necessary to upgrade the software on each client in order to provide them with this IPv6 in IPv4 tunneling capability.
  • the present invention addresses the above and other drawbacks by providing a protocol tunneling device for supporting communication between a local IPV6 data source comprising a network layer identified by a data source IPv6 address and located on a native IPv4 network and a remote IPv6 data sink, the data source communicating using IPv6 protocol data packets with the - A -
  • the device comprises an IPv6 network layer compatible with the IPv6 protocol for communicating with the data source, the IPv6 network layer identified by an IPv6 compatible address, an IPv4 network layer compatible with the IPv4 protocol for communicating with the IPv4 router, the IPv4 network layer identified by an IPv4 compatible address, a tunneling client providing a tunnel to the tunneling end point via the IPv4 network layer and the IPv4 router, and an IPv6 routing function emitting router advertisements for reception by the data source, the router advertisements indicating that the IPv6 compatible address should be used as a default IPv6 router address.
  • IPv6 data packets compatible with the IPv6 protocol and for transfer to the IPv6 data sink received from the IPv6 data source at the IPv6 network layer are encapsulated in IPv4 data packets by the tunneling client, the IPv4 data packets transmitted to the tunneling end point via the IPv4 network layer and the IPv4 router using the IPv4 protocol for subsequent transmission to the data sink as IPv6 data packets using the IPv6 protocol.
  • a data communication system comprising a data source identified by a data source IPv6 address and located on a local network, the local network providing native support for an IPv4 protocol, a data sink located on a remote IPv6 network, the data source communicating with the data sink using an IPv6 protocol via a communications path comprising an IPv4 router located on the local network and an intermediate IPv4 network and a tunneling end point located on the intermediate IPv4 network and a remote IPv6 network, and a protocol tunneling device located on the local network, the tunneling device comprising a first network layer compatible with the IPv6 protocol, the first network layer identified by a first address compatible with the IPv6 protocol, a second network layer compatible with the IPv4 protocol, the second network layer identified by a second address compatible with the IPv4 protocol, a tunneling client providing a tunnel to the tunneling end point via the IPv4 router and the intermediate IPv4 network using the IPv4 protocol and an IPv6 routing function emitting router advertisements for reception by
  • the tunneling client When IPv6 data packets for transfer to the data sink are received from the data source at the first network layer, the tunneling client encapsulates the IPv6 data packets into IPv4 data packets by the tunneling client and transmits the IPv4 data packets to the tunneling end point via the second network layer, the IPv4 router and the intermediate IPv4 network segment using the IPv4 protocol, the tunneling end point removing the IPv6 data packets from the IPv4 data packets and subsequently transmitting the IPv6 data packets to the data sink using the IPv6 protocol.
  • a method for transferring IPv6 data packets between an IPv6 data source on a local IPv4 native network and a remote IPv6 data sink on a remote IPv6 network via an intervening IPv4 network comprises providing an IPV4 router between the IPv4 native network and the intervening IPv4 network and a tunneling end point between the intervening IPv4 network and the remote IPv6 network, establishing an IPv4 tunnel between a protocol tunneling device on the IPv4 native network and the tunneling end point via the IPv4 router and the intervening IPv4 network, the protocol tunneling device comprising an IPv6 routing function, transmitting at least one router advertisement between the routing function and the IPV6 data source, the router advertisement indicating the IPv6 data packets are to be transferred via the protocol tunneling device, receiving the IPv6 data packets at the protocol tunneling device, encapsulating the received IPv6 data packets into IPv4 data packets, transferring the IPv4 data packets from the protocol
  • Figure 1 is a schematic diagram of a protocol tunneling device in accordance with an illustrative embodiment of the present invention
  • FIG. 2 is a schematic diagram of the architecture of the protocol tunneling device and related devices in accordance with an illustrative embodiment of the present invention
  • FIG. 3 is a schematic diagram of an architecture of a tunneling communication system in accordance with an illustrative embodiment of the present invention.
  • FIG. 4 is a schematic diagram of an architecture of a tunneling communication system in accordance with an alternative illustrative embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a protocol tunneling device implemented on a home network in accordance with an illustrative embodiment of the present invention.
  • Figure 6 is a flow chart detailing the actions performed by the protocol tunneling device in accordance with an illustrative embodiment of the present invention. DETAILED DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENTS
  • the protocol tunneling device 10 is illustratively comprised of a CPU 12 under control of program code and configuration information stored in a ROM 14 and/or a RAM 16.
  • the CPU 12 receives, handles and transmits packets (not shown), illustratively packets conforming to IPv4 and IPv6, via a network interface 18 which provides the protocol tunneling device 10 access to a first network segment such as a Local Area Network (LAN) 20.
  • LAN Local Area Network
  • a serial interface 22 such as a USB interface, could be provided, for example to allow the protocol tunneling device 10 to be configured using another suitably equipped computing device (not shown) such as a personal computer, PDA or the like.
  • a power supply 24 is also provided in order to supply the components with the requisite current to ensure their correct operation.
  • DMA Direct Memory Access
  • the network interface 18 is illustratively comprised of a plurality of network interfaces 18i and I 82. Provision of multiple network interfaces as in 18 1 and I8 2 can illustratively be used to improve data transfer rates and/or provide redundancy. Additionally, although the network interfaces as I8 1 and 18 2 are illustrated as comprising a direct physical connection 26 to the LAN, for example when the access technology conforms to Ethernet (e.g.
  • the protocol tunneling device 10 can also include those functions necessary to perform a firmware upgrade when a new software version of the protocol tunneling device 10 is available. This could be carried out in number of different ways. For example, the user of the protocol tunneling device 10 could be provided with a warning that new firmware is available and requested to reset the protocol tunneling device 10. Upon reset, the protocol tunneling device 10 would typically connect to a pre-configured upgrade web site (not shown), check if a software update is available, download it, install it and reboot using the new firmware.
  • Protocol tunneling device 10 An alternative to avoid resetting the protocol tunneling device 10 would be for the protocol tunneling device 10 to check regularly for updates at a preconfigured website (e.g. once everyday). In this regard, if a new version of the firmware was available it would be automatically downloaded, installed and the protocol tunneling device 10 rebooted.
  • an upgrade software module or function or the like provided to manage the software upgrade (e.g. connect to preconfigured web site, download and store new firmware, install new firmware on the protocol tunneling device 10 and activate the protocol tunneling device 10).
  • a more sophisticated mechanism would involve saving the current firmware and attempting reboot using the new firmware with provision of a revert to a previous software version if the upgrade fails.
  • the architecture 28 of the protocol tunneling device is comprised of a four (4) layer TCP/IP protocol stack 30, a configuration interface 32 and a tunneling client (such as a TSP client) 34.
  • the tunneling client 34 and the configuration interface 32 both take advantage of the communication services provided by the TCP/IP protocol stack 30 in order to communicate with other network devices (not shown).
  • the TCP/IP protocol stack 30 is comprised of a transport layer 36 which can establish end-to-end communications with other suitably equipped devices using either TCP or UDP. Additionally, a first network layer 38 compliant with a first protocol such as IPv6 is provided in order to communicate with other IPv6 compatible network devices (not shown) and a second network layer 40 compliant with a second protocol such as IPv4 which is native to the Local Area Network (LAN) 20 is also provided in order to communicate with other IPv4 compatible network devices such as an IPv4 router 42.
  • LAN Local Area Network
  • a data link layer 44 for example an Ethernet (as defined in IEEE 802.3) or WiFi (as defined IEEE 802.11) data link layer.
  • the data link layer 44 is interconnected with other network devices via the physical layer 46, for example a twisted pair cable, fiber optic cable, RF wireless transceiver or the like.
  • the configuration interface 32 allows parameters to be configured, for example when automatic configuration is otherwise unavailable. For instance, in the event that a suitable IPv4 configuration cannot be retrieved from a Dynamic Host Configuration Protocol (DHCP) server in the LAN, an IPv4 address, default IPv4 gateway address and subnet mask can be configured via the configuration interface 32. Note that a default IPv4 address, as well as the default IPv4 gateway and subnet mask, might be preconfigured by the manufacturer such that it is defaulted to on initial start up, for example for use in those cases where automatic configuration is otherwise unavailable.
  • DHCP Dynamic Host Configuration Protocol
  • configuration interface 32 This would allow the configuration interface 32 to be accessed via the TCP/IP protocol stack 30, for example using a web browser if HTTP support and suitable web based configuration pages are provided by the configuration interface 24.
  • serial (USB) interface reference 22 in Figure 1
  • USB serial interface
  • a number of other parameters could also be preconfigured or modifiable via the configuration interface 32.
  • a number of parameters related to the configuration of the tunneling client 34 (the operation of which will be explained in more detail hereinbelow).
  • the fully qualified domain name of the host 48 on which the tunneling end point 50 resides with which the tunneling client 34 wishes to establish a tunnel 52 via the external IPv4 network (or "domain") 54 could be configured via the configuration interface 32.
  • a Domain Name Server (DNS, not shown) could then be used to look up actual IPv4 address of the TSP peer 50.
  • Other parameters include those credentials necessary to authenticate the tunneling client 34 with the tunneling end point 50 when establishing the tunnel 52.
  • the protocol tunneling device 10 provides IPv6 connectivity to IPv6 enabled host devices, or data sources, as in 56, located on the LAN 20, which without the presence of the protocol tunneling device 10 would provide only support for IPv4 compatible devices.
  • the LAN 20 provides native support for IPv4 other IPv4 enabled host devices as in 58 may also be found on LAN 20.
  • at least one IPv4 enabled router 42 is provided in order to provide access to and from external IPv4 networks such as the Internet 54.
  • the protocol tunneling device 10 automatically provisions IPv6 in the LAN where it is connected.
  • the protocol tunneling device 10 illustratively includes all the necessary networking protocols to offer IPv6 connectivity to the IPv6 enabled devices within the LAN 20 (by means of standard IPv6 procedures over the LAN 20), as well as outside the LAN (by means of IPv6 in IPv4 tunneling).
  • One feature of the protocol tunneling device 10 is that software upgrade or modification to the IPv6 enabled host devices as in 56 is avoided, provided the IPv6 enabled host devices as in 56 are equipped with those minimum set of functionalities required for an IPv6 host to operate in an IPv6 LAN. Additionally, no software upgrade or modification is required to the IPv4 enabled host devices as in 58, IPv4 enabled router 42 or other IPv4 enabled networking (such as other routers, gateways, firewalls, etc.) equipment found on the LAN 20.
  • the LAN 20 is connected to the second network segment, for example an external IPv4 network 54 (which could be the Internet, a private network run by an ISP, etc.) via the IPv4 router 42.
  • IPv4 network 54 which could be the Internet, a private network run by an ISP, etc.
  • IPv6 enabled host devices 56 and IPv4 enabled host devices 58 are attached to the LAN 20.
  • IPv6 enabled host devices 56 may include Personal computers (PCs), web enabled cameras, SIP phones, multimedia servers, etc.
  • the protocol tunneling device 10 is simply attached to the LAN 20, for example via a hub, wireless router or the like (all not shown).
  • the protocol tunneling device 10 illustratively comprises two main groups of functions in order to support the IPv6 enabled host devices 56 resident on the LAN 20.
  • the protocol tunneling device 10 comprises a routing function which provides at least those minimal functions as would normally be expected from a basic IPv6 Router.
  • the routing function of the protocol tunneling device 10 would typically provide each IPv6 enabled host device as in 56 with at least part of a suitable local or global IPv6 compatible address.
  • the routing function could provide a prefix to each IPv6 enabled host device as in 56 which would illustratively be combined with a unique interface identifier of each IPv6 enabled host device as in 56 to form an IPv6 compatible address.
  • the routing function could include a DHCPv ⁇ server for allocating IPv6 addresses to each IPv6 enabled host device as in 56 as requested. This would then allow the IPv6 enabled host devices 56 attached to the LAN 20 to discover each other using the Neighbor Solicitation/Neighbor Advertisement messages perform duplicate address detection and transfer packets between one another directly using IPv6 without the intervention of the protocol tunneling device 10.
  • the protocol tunneling device 10 provides those functions necessary to interconnect the data source IPv6 enabled host devices 56 resident on the LAN 20 with remote data sinks such as IPv6 enabled host devices as in 60 located on a remote IPv6 network 62 (the third network segment), but accessible only via the intermediate IPv4 network 54.
  • the protocol tunneling device 10 illustratively provides IPv6 in IPv4 tunneling and acts as the local tunnel end point.
  • the remote tunnel end point is, for example, an IPv4/IPv6 router (illustratively providing a Tunnel Server functionality) 64 illustratively interconnecting the remote IPv6 network 62 with the external IPv4 network 54.
  • IPv6 networking is used to support communications between the IPv6 enabled host devices 56 and the protocol tunneling device 10 and between the remote tunnel end point 64 and the remote IPv6 enabled host devices 60.
  • IPv6 in IPv4 tunneling is performed between the protocol tunneling device 10 and the remote tunnel end point 64 (which provides the remote tunnel end point) via the IPv4 enabled router 42. Additionally, native IPv4 protocol is used by the IPv4 enabled host devices 58 to communicate with each other, the IPv4 enabled router 42 and remote IPv4 enabled host devices 66.
  • the IPv4 enabled router 42 includes a Network Address Translator (NAT) module (often used in smaller home and SOHO networks where allocation of a large pool of IPv4 compatible addresses would prove unmanageable) and the remote tunnel end point is a Tunnel Broker Server (TBS) 68.
  • NAT Network Address Translator
  • TBS Tunnel Broker Server
  • the IPv6 in IPv4 tunnel as well as the interaction between the protocol tunneling device 10 and the TBS 68 complies with that as described US Patent Application entitled "method and apparatus for connecting IPv6 devices through an IPv4 network and address translator NAT using a tunnel setup protocol" and published with the number 2004/0133692 A1 , which is incorporated herein by reference in its entirely.
  • the IPv6 in IPv4 tunneling protocol could conform to Layer 2 Tunneling Protocol (L2TP) with the protocol tunneling device 10 compliant with the specifications of a L2TP client as defined in RFC2661 , which is incorporated herein by reference in its entirety.
  • L2TP Layer 2 Tunneling Protocol
  • the protocol tunneling device 10 is simply connected to the NAT IPv4 enabled router 42, for example by interconnecting it using an appropriate network cable or the like 70 or via a wireless connection.
  • the NAT IPv4 enabled router 42 could be a home gateway, connected to an ISP IPv4 network infrastructure 72. This home gateway would act as an IPv4 NAT router, with several network interfaces on the LAN side (the home network in this case).
  • the home IPv6 enabled host devices 56, the home IPv4 enabled host devices 58 and the protocol tunneling device 10 are illustratively all directly connected to one of a plurality of interfaces available on the NAT IPv4 enabled router 42.
  • additional networking equipment such as a hub or the like (not shown), could also be provided.
  • the first step 100 comprises configuring an IPv4 address on the network interface of the protocol tunneling device 10. This is typically carried out using DHCP, which makes the configuration dynamic. If the local area network does not provide DHCP service, the IPv4 address will have to be configured using other means, for example statically from a configuration file stored in the memory of the protocol tunneling device 10.
  • a second step 110 the IPv4 address of the TBS 68 is retrieved. This can be performed dynamically using for example a DNS query (provided the fully qualified domain name of the TBS 68, e.g. tunnel_broker.isp_provider.com, is available for example in a configuration file stored on the protocol tunneling device 10).
  • the IPv4 address of the TBS 68 can also be statically retrieved, for example from a configuration file stored on the protocol tunneling device 10.
  • a third step 120 comprises negotiating the IPv6-in-IPv4 tunnel parameters using TSP, between the TSP client located on the protocol tunneling device 10 and the TBS 68.
  • the negotiation, on the TSP client side, is typically based on pre-configured values stored in a configuration file on the protocol tunneling device 10.
  • Pre-configured values would typically include the version of the TSP protocol supported by the TSP client, authentication mode supported by the TSP client and associated credentials, the type of tunnel requested, etc.
  • the protocol tunneling device 10 is allocated an IPv6 address and a delegated IPv6 prefix, a tunnel mode (IPv6-in- IPv4, IPv6-in-UDP-in-IPv4, etc., and the IPv4 address of the associated tunnel end-point (this could be for example, the IPv4 address of the TBS 68, or the IPv4 address of an alternate tunnel end-point, such as a dual stack IPv6/IPv4 router).
  • IPv6-in- IPv4, IPv6-in-UDP-in-IPv4, etc. the IPv4 address of the associated tunnel end-point (this could be for example, the IPv4 address of the TBS 68, or the IPv4 address of an alternate tunnel end-point, such as a dual stack IPv6/IPv4 router).
  • a fourth step 130 comprises configuring the tunnel end-point at the protocol tunneling device 10 using the parameters negotiated during step 120.
  • the allocated IPv6 address is configured on the network interface of the protocol tunneling device 10.
  • a fifth step 140 involves auto-configuration of the protocol tunneling device 10 in order to perform those IPv6 router functionalities for the IPv6 enabled host devices 56 located in the LAN 20.
  • the delegated IPv6 prefix acquired in step 120 provides the IPv6 prefix advertised by the protocol tunneling device 10 on the LAN.
  • the routing table of the protocol tunneling device 10 will be updated according to the tunnel end-point configured in step 130.
  • the protocol tunneling device 10 is ready to act as the default IPv6 router for the IPv6 enabled host devices 56 on the LAN 20 and performs the following functions:
  • a flag in the router advertisement will specify that the protocol tunneling device 10 is the default IPv6 router.
  • the protocol tunneling device 10 will also answer router solicitations from the IPv6 enabled host devices 56.
  • An alternate method may rely on stateful auto- configuration of the IPv6 enabled host devices 56 provided they are equipped with an appropriate DHCPv ⁇ client, and the protocol tunneling device 10 acts as a DHCPv ⁇ server (in this regard the protocol tunneling device 10 will have to generate /128 IPv6 addresses based on the delegated IPv6 prefix).
  • Routes at step 152 IPv6 traffic from the IPv6 enabled host devices 56 located on the LAN 20 to remote IPv6 enabled host devices 60 located on a remote IPv6 network 62. This traffic is transmitted via the IPv6-in-IPv4 tunnel established by the protocol tunneling device 10.
  • IPv6 traffic from remote IPv6 enabled host devices 60 located on a remote IPv6 network 62 to the IPv6 enabled host devices 56 located on the LAN 20. This traffic will be received via the IPv6-in-IPv4 tunnel established by the protocol tunneling device 10.

Abstract

A protocol tunneling device for supporting communication between a local IPV6 data source comprising a network layer identified by a data source IPv6 address and located on a native IPv4 network and a remote IPv6 data sink, the data source communicating using IPv6 protocol data packets with the data sink via a communications path comprising the protocol tunneling device, an IPv4 router and a tunneling end point the protocol tunneling device, router and tunneling end point communicating using an IPv4 protocol, the tunneling end point and the data sink communicating using the IPv6 protocol, and the protocol tunneling device and the data source communicating using the IPv6 protocol.

Description

TITLE OF THE INVENTION
Tunneling Device for Automatic Protocol Provisioning in a Network
FIELD OF THE INVENTION
[001] The present invention relates to a tunneling device for automatic protocol provisioning in a network. In particular, the present invention relates to a device for providing transparent data communications between networked devices communicating using a first protocol, illustratively IPv6, where the networked devices are interconnected via at least one network segment using a second protocol, illustratively IPv4, which is incompatible with the first protocol.
BACKGROUND TO THE INVENTION
[002] The exponential development of IP based devices, and associated services, has created a need and an expectation, for end users, to have access to their favorite applications (mail, web, video streaming, etc.), wherever they are located, by means of IP networks. This trend has lead to the availability of IP based networking in corporate sites, over the cellular infrastructure, at home, in open WiFi hotspots, etc.
[003] IPv4 is already deployed in most existing IP based infrastructures, and provides access to both the Internet and to private IP networks (such as a corporate network). Success in the deployment of the IPv4 protocol has lead to rapid exhaustion of the pool of available IPv4 addresses.
[004] In order to address the above drawback, one prior art solution uses private IPv4 addresses (which are not unique and can be reused in different independent networks), in conjunction with Network Address Translation (NAT) technologies. This has enabled Internet Service Providers (ISPs) and mobile cellular operators to support a large number of new customers without changes to the existing IPv4 protocol. However, one drawback of this solution is a more complex network infrastructure and a deployment of peer-to-peer services such as VoIP, video-conferencing, on-line gaming (where each peer typically requires a known public IP address that is easily distinguished from any other peer) which is much more difficult.
[005] In order to address the above drawbacks, IPv6 was developed. In particular, the IPv6 protocol has been designed to address those problems associated with the exhaustion of the IPv4 address space. With an almost unlimited pool of IPv6 addresses (public by nature), each user (and even each device at home, in a car, etc.), can be allocated a unique IPv6 address. This significantly simplifies the deployment of services based on the peer to peer paradigm which as a result can by deployed at a lower cost than with IPv4.
[006] One problem which arises with the deployment of the IPv6 protocol is that, at least for an interim "transition" period, a large portion of the network infrastructure will support both IPv6 and IPv4 compatible devices, or will support only IPv4 compatible devices. As a result, IPv6 devices (for example a local IPv6 client) located on an isolated portion of the network infrastructure may be unable to communicate with other IPv6 devices (for example an IPv6 server) located on another portion of the network infrastructure as the intermediate network infrastructure supports only IPv4.
[007] The above problem has been investigated in some depth, in particular by the Internet Engineering Task Force (IETF). One effective and scalable solution proposed to overcome this problem is the use of "IPv6 in IPv4 Tunnelling", where IPv6 packets are transferred using IPv4 packets, and which enables an isolated IPv6 enabled client, host or network to exchange IPv6 packets with a different IPv6 enabled client, host or network separated from the isolated IPv6 enabled client, host or network by an IPv4 network. Several such tunneling mechanisms have been proposed and a number are already implemented and used, such as Tunnel Setup Protocol (TSP, see draft- blanchet-v6ops-tunnelbroker-tsp-03), L2TP (RFC 2661), ISATAP (RFC 4214), Teredo (RFC 4380) and 6to4 (RFC 3056).
[008] In one prior art version of IPv6 in IPv4 tunneling, IPv6 enabled clients interact with a central server via an IPv4 only network in order to negotiate the particular properties of the tunnel and will be accorded a tunnel end-point. This tunnel end-point can be the client itself (the client must then be enabled for IPv6 in IPv4 tunneling), or a dedicated default router implementing IPv6 in IPv4 tunneling (this router may then serve several clients). This solution is typically deployed by installing dedicated software for tunnel negotiation and setup on each client. However, this solution is not always scalable and it is necessary to upgrade the software on each client in order to provide them with this IPv6 in IPv4 tunneling capability.
[009] Consequently, there exists a need for a solution to simplify the establishment of an IPv6 in IPv4 tunnel, to offer IPv6 connectivity to one or several IPv6 enabled devices located in an IPv4 only local network.
SUMMARY OF THE INVENTION
[010] The present invention addresses the above and other drawbacks by providing a protocol tunneling device for supporting communication between a local IPV6 data source comprising a network layer identified by a data source IPv6 address and located on a native IPv4 network and a remote IPv6 data sink, the data source communicating using IPv6 protocol data packets with the - A -
data sink via a communications path comprising an IPv4 router and a tunneling end point, the router and tunneling end point communicating using an IPv4 protocol, the tunneling end point and the data sink communicating using the IPv6 protocol. The device comprises an IPv6 network layer compatible with the IPv6 protocol for communicating with the data source, the IPv6 network layer identified by an IPv6 compatible address, an IPv4 network layer compatible with the IPv4 protocol for communicating with the IPv4 router, the IPv4 network layer identified by an IPv4 compatible address, a tunneling client providing a tunnel to the tunneling end point via the IPv4 network layer and the IPv4 router, and an IPv6 routing function emitting router advertisements for reception by the data source, the router advertisements indicating that the IPv6 compatible address should be used as a default IPv6 router address. When IPv6 data packets compatible with the IPv6 protocol and for transfer to the IPv6 data sink received from the IPv6 data source at the IPv6 network layer are encapsulated in IPv4 data packets by the tunneling client, the IPv4 data packets transmitted to the tunneling end point via the IPv4 network layer and the IPv4 router using the IPv4 protocol for subsequent transmission to the data sink as IPv6 data packets using the IPv6 protocol.
[011] There is also provided a data communication system comprising a data source identified by a data source IPv6 address and located on a local network, the local network providing native support for an IPv4 protocol, a data sink located on a remote IPv6 network, the data source communicating with the data sink using an IPv6 protocol via a communications path comprising an IPv4 router located on the local network and an intermediate IPv4 network and a tunneling end point located on the intermediate IPv4 network and a remote IPv6 network, and a protocol tunneling device located on the local network, the tunneling device comprising a first network layer compatible with the IPv6 protocol, the first network layer identified by a first address compatible with the IPv6 protocol, a second network layer compatible with the IPv4 protocol, the second network layer identified by a second address compatible with the IPv4 protocol, a tunneling client providing a tunnel to the tunneling end point via the IPv4 router and the intermediate IPv4 network using the IPv4 protocol and an IPv6 routing function emitting router advertisements for reception by the data source, the router advertisements indicating that the first address should be used as a default IPv6 router address. When IPv6 data packets for transfer to the data sink are received from the data source at the first network layer, the tunneling client encapsulates the IPv6 data packets into IPv4 data packets by the tunneling client and transmits the IPv4 data packets to the tunneling end point via the second network layer, the IPv4 router and the intermediate IPv4 network segment using the IPv4 protocol, the tunneling end point removing the IPv6 data packets from the IPv4 data packets and subsequently transmitting the IPv6 data packets to the data sink using the IPv6 protocol.
[012] Additionally, there is provided a method for transferring IPv6 data packets between an IPv6 data source on a local IPv4 native network and a remote IPv6 data sink on a remote IPv6 network via an intervening IPv4 network. The method comprises providing an IPV4 router between the IPv4 native network and the intervening IPv4 network and a tunneling end point between the intervening IPv4 network and the remote IPv6 network, establishing an IPv4 tunnel between a protocol tunneling device on the IPv4 native network and the tunneling end point via the IPv4 router and the intervening IPv4 network, the protocol tunneling device comprising an IPv6 routing function, transmitting at least one router advertisement between the routing function and the IPV6 data source, the router advertisement indicating the IPv6 data packets are to be transferred via the protocol tunneling device, receiving the IPv6 data packets at the protocol tunneling device, encapsulating the received IPv6 data packets into IPv4 data packets, transferring the IPv4 data packets from the protocol tunneling device to the tunneling end point via the IPv4 router and the intervening IPv4 network, receiving the IPv4 data packets at the tunneling end point, decapsulating the IPv6 data packets from the received IPv4 packets, and transmitting the decapsulated IPv6 data packets to the IPv6 data sink via the remote IPv6 network.
BRIEF DESCRIPTION OF THE DRAWINGS
[013] Figure 1 is a schematic diagram of a protocol tunneling device in accordance with an illustrative embodiment of the present invention;
[014] Figure 2 is a schematic diagram of the architecture of the protocol tunneling device and related devices in accordance with an illustrative embodiment of the present invention;
[015] Figure 3 is a schematic diagram of an architecture of a tunneling communication system in accordance with an illustrative embodiment of the present invention;
[016] Figure 4 is a schematic diagram of an architecture of a tunneling communication system in accordance with an alternative illustrative embodiment of the present invention;
[017] Figure 5 is a schematic diagram of a protocol tunneling device implemented on a home network in accordance with an illustrative embodiment of the present invention; and
[018] Figure 6 is a flow chart detailing the actions performed by the protocol tunneling device in accordance with an illustrative embodiment of the present invention. DETAILED DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENTS
[019] Referring now to Figure 1 , a protocol tunneling device, generally referred to using the reference numeral 10, will now be described. The protocol tunneling device 10 is illustratively comprised of a CPU 12 under control of program code and configuration information stored in a ROM 14 and/or a RAM 16. The CPU 12 receives, handles and transmits packets (not shown), illustratively packets conforming to IPv4 and IPv6, via a network interface 18 which provides the protocol tunneling device 10 access to a first network segment such as a Local Area Network (LAN) 20. In a particular embodiment a serial interface 22, such as a USB interface, could be provided, for example to allow the protocol tunneling device 10 to be configured using another suitably equipped computing device (not shown) such as a personal computer, PDA or the like. A power supply 24 is also provided in order to supply the components with the requisite current to ensure their correct operation.
[020] Still referring to Figure 1 , in a particular embodiment Direct Memory Access (DMA) is provided between the network interface 18 and RAM 16 in order to allow for the direct transfer of incoming packets from the network interface 18 to the RAM 16 and direct transfer of outgoing packets from the RAM 16 to the network interface 18. The network interface 18 is illustratively comprised of a plurality of network interfaces 18i and I 82. Provision of multiple network interfaces as in 181 and I82 can illustratively be used to improve data transfer rates and/or provide redundancy. Additionally, although the network interfaces as I81 and 182 are illustrated as comprising a direct physical connection 26 to the LAN, for example when the access technology conforms to Ethernet (e.g. IEEE 802.3), Firewire (IEEE 1394) or the like, other wireless technologies such as WiFi (e.g. IEEE 802.11) may also prove suitable in a given application. The RAM 14 may also be used to store routing tables and the like (not shown). [021] The protocol tunneling device 10 can also include those functions necessary to perform a firmware upgrade when a new software version of the protocol tunneling device 10 is available. This could be carried out in number of different ways. For example, the user of the protocol tunneling device 10 could be provided with a warning that new firmware is available and requested to reset the protocol tunneling device 10. Upon reset, the protocol tunneling device 10 would typically connect to a pre-configured upgrade web site (not shown), check if a software update is available, download it, install it and reboot using the new firmware. An alternative to avoid resetting the protocol tunneling device 10 would be for the protocol tunneling device 10 to check regularly for updates at a preconfigured website (e.g. once everyday). In this regard, if a new version of the firmware was available it would be automatically downloaded, installed and the protocol tunneling device 10 rebooted.
[022] In order to support such upgrade functions, the protocol tunneling device
10 would typically be equipped with, for example, an upgrade software module or function or the like provided to manage the software upgrade (e.g. connect to preconfigured web site, download and store new firmware, install new firmware on the protocol tunneling device 10 and activate the protocol tunneling device 10). A more sophisticated mechanism would involve saving the current firmware and attempting reboot using the new firmware with provision of a revert to a previous software version if the upgrade fails.
[023] Referring now to Figure 2, an illustrative embodiment of the architecture 28 of the protocol tunneling device is provided. The architecture is comprised of a four (4) layer TCP/IP protocol stack 30, a configuration interface 32 and a tunneling client (such as a TSP client) 34. The tunneling client 34 and the configuration interface 32 both take advantage of the communication services provided by the TCP/IP protocol stack 30 in order to communicate with other network devices (not shown).
[024] Still referring to Figure 2, the TCP/IP protocol stack 30 is comprised of a transport layer 36 which can establish end-to-end communications with other suitably equipped devices using either TCP or UDP. Additionally, a first network layer 38 compliant with a first protocol such as IPv6 is provided in order to communicate with other IPv6 compatible network devices (not shown) and a second network layer 40 compliant with a second protocol such as IPv4 which is native to the Local Area Network (LAN) 20 is also provided in order to communicate with other IPv4 compatible network devices such as an IPv4 router 42. Furthermore, in order to access for example the LAN that the protocol tunneling device 10 resides in, a data link layer 44, for example an Ethernet (as defined in IEEE 802.3) or WiFi (as defined IEEE 802.11) data link layer, is provided. The data link layer 44 is interconnected with other network devices via the physical layer 46, for example a twisted pair cable, fiber optic cable, RF wireless transceiver or the like.
[025] Still referring to Figure 2, the configuration interface 32 allows parameters to be configured, for example when automatic configuration is otherwise unavailable. For instance, in the event that a suitable IPv4 configuration cannot be retrieved from a Dynamic Host Configuration Protocol (DHCP) server in the LAN, an IPv4 address, default IPv4 gateway address and subnet mask can be configured via the configuration interface 32. Note that a default IPv4 address, as well as the default IPv4 gateway and subnet mask, might be preconfigured by the manufacturer such that it is defaulted to on initial start up, for example for use in those cases where automatic configuration is otherwise unavailable. This would allow the configuration interface 32 to be accessed via the TCP/IP protocol stack 30, for example using a web browser if HTTP support and suitable web based configuration pages are provided by the configuration interface 24. Alternatively, the serial (USB) interface (reference 22 in Figure 1), if available, could be used to provide access to the configuration interface 32.
[026] A number of other parameters could also be preconfigured or modifiable via the configuration interface 32. For example, a fully qualified domain name of a web site where the protocol tunneling device 10 can retrieve updates and the like. Additionally, a number of parameters related to the configuration of the tunneling client 34 (the operation of which will be explained in more detail hereinbelow). For example, the fully qualified domain name of the host 48 on which the tunneling end point 50 resides with which the tunneling client 34 wishes to establish a tunnel 52 via the external IPv4 network (or "domain") 54 could be configured via the configuration interface 32. A Domain Name Server (DNS, not shown) could then be used to look up actual IPv4 address of the TSP peer 50. Other parameters include those credentials necessary to authenticate the tunneling client 34 with the tunneling end point 50 when establishing the tunnel 52.
[027] Referring now to Figure 3, the protocol tunneling device 10 provides IPv6 connectivity to IPv6 enabled host devices, or data sources, as in 56, located on the LAN 20, which without the presence of the protocol tunneling device 10 would provide only support for IPv4 compatible devices. As the LAN 20 provides native support for IPv4 other IPv4 enabled host devices as in 58 may also be found on LAN 20. Additionally, at least one IPv4 enabled router 42 is provided in order to provide access to and from external IPv4 networks such as the Internet 54.
[028] One aspect of the protocol tunneling device 10 is that it automatically provisions IPv6 in the LAN where it is connected. In this regard the protocol tunneling device 10 illustratively includes all the necessary networking protocols to offer IPv6 connectivity to the IPv6 enabled devices within the LAN 20 (by means of standard IPv6 procedures over the LAN 20), as well as outside the LAN (by means of IPv6 in IPv4 tunneling). One feature of the protocol tunneling device 10 is that software upgrade or modification to the IPv6 enabled host devices as in 56 is avoided, provided the IPv6 enabled host devices as in 56 are equipped with those minimum set of functionalities required for an IPv6 host to operate in an IPv6 LAN. Additionally, no software upgrade or modification is required to the IPv4 enabled host devices as in 58, IPv4 enabled router 42 or other IPv4 enabled networking (such as other routers, gateways, firewalls, etc.) equipment found on the LAN 20.
[029] Referring back to Figure 2 in addition to Figure 3, the LAN 20 is connected to the second network segment, for example an external IPv4 network 54 (which could be the Internet, a private network run by an ISP, etc.) via the IPv4 router 42. As discussed above, a variety of both IPv6 enabled host devices 56 and IPv4 enabled host devices 58 are attached to the LAN 20. For example, in a home or Small Office/Home Office setting (SOHO) such IPv6 enabled host devices 56 may include Personal computers (PCs), web enabled cameras, SIP phones, multimedia servers, etc. The protocol tunneling device 10 is simply attached to the LAN 20, for example via a hub, wireless router or the like (all not shown).
[030] The protocol tunneling device 10 illustratively comprises two main groups of functions in order to support the IPv6 enabled host devices 56 resident on the LAN 20.
[031] Firstly, the protocol tunneling device 10 comprises a routing function which provides at least those minimal functions as would normally be expected from a basic IPv6 Router. In this regard, in a LAN 20 where the IPv6 enabled host devices 56 are all part of the same subnetwork having the same IPv6 addressing prefix, the routing function of the protocol tunneling device 10 would typically provide each IPv6 enabled host device as in 56 with at least part of a suitable local or global IPv6 compatible address. For example, using a broadcast advertisement, the routing function could provide a prefix to each IPv6 enabled host device as in 56 which would illustratively be combined with a unique interface identifier of each IPv6 enabled host device as in 56 to form an IPv6 compatible address. Alternatively, and as will be discussed in more detail below, the routing function could include a DHCPvδ server for allocating IPv6 addresses to each IPv6 enabled host device as in 56 as requested. This would then allow the IPv6 enabled host devices 56 attached to the LAN 20 to discover each other using the Neighbor Solicitation/Neighbor Advertisement messages perform duplicate address detection and transfer packets between one another directly using IPv6 without the intervention of the protocol tunneling device 10.
[032] Secondly, provided the IPv6 enabled host devices 56 have the IPv6 address of the protocol tunneling device 10 configured (for example automatically from a router advertisements received by the host devices 56 from the routing function) as their default IPv6 gateway, the protocol tunneling device 10 provides those functions necessary to interconnect the data source IPv6 enabled host devices 56 resident on the LAN 20 with remote data sinks such as IPv6 enabled host devices as in 60 located on a remote IPv6 network 62 (the third network segment), but accessible only via the intermediate IPv4 network 54. In this regard, the protocol tunneling device 10 illustratively provides IPv6 in IPv4 tunneling and acts as the local tunnel end point. The remote tunnel end point is, for example, an IPv4/IPv6 router (illustratively providing a Tunnel Server functionality) 64 illustratively interconnecting the remote IPv6 network 62 with the external IPv4 network 54. Of course, in order for the protocol tunneling device 10 to communicate with the remote tunnel end point 64, a compatible tunneling mechanism must be implemented in both the protocol tunneling device 10 and the remote tunnel end point 64. [033] As will now be apparent to a person of skill in the art, IPv6 networking is used to support communications between the IPv6 enabled host devices 56 and the protocol tunneling device 10 and between the remote tunnel end point 64 and the remote IPv6 enabled host devices 60. IPv6 in IPv4 tunneling is performed between the protocol tunneling device 10 and the remote tunnel end point 64 (which provides the remote tunnel end point) via the IPv4 enabled router 42. Additionally, native IPv4 protocol is used by the IPv4 enabled host devices 58 to communicate with each other, the IPv4 enabled router 42 and remote IPv4 enabled host devices 66.
[034] Referring now to Figure 4, in alternative illustrative embodiment of the present invention the IPv4 enabled router 42 includes a Network Address Translator (NAT) module (often used in smaller home and SOHO networks where allocation of a large pool of IPv4 compatible addresses would prove unmanageable) and the remote tunnel end point is a Tunnel Broker Server (TBS) 68. Illustratively, the IPv6 in IPv4 tunnel as well as the interaction between the protocol tunneling device 10 and the TBS 68 complies with that as described US Patent Application entitled "method and apparatus for connecting IPv6 devices through an IPv4 network and address translator NAT using a tunnel setup protocol" and published with the number 2004/0133692 A1 , which is incorporated herein by reference in its entirely.
[035] In another illustrative embodiment of the present invention, the IPv6 in IPv4 tunneling protocol could conform to Layer 2 Tunneling Protocol (L2TP) with the protocol tunneling device 10 compliant with the specifications of a L2TP client as defined in RFC2661 , which is incorporated herein by reference in its entirety.
[036] Referring now to Figure 5, in a further illustrative embodiment of the present invention, the protocol tunneling device 10 is simply connected to the NAT IPv4 enabled router 42, for example by interconnecting it using an appropriate network cable or the like 70 or via a wireless connection. In this regard, the NAT IPv4 enabled router 42 could be a home gateway, connected to an ISP IPv4 network infrastructure 72. This home gateway would act as an IPv4 NAT router, with several network interfaces on the LAN side (the home network in this case). The home IPv6 enabled host devices 56, the home IPv4 enabled host devices 58 and the protocol tunneling device 10 are illustratively all directly connected to one of a plurality of interfaces available on the NAT IPv4 enabled router 42. Alternatively, for example if the NAT IPv4 enabled router 42 lacks the requisite number of interfaces, additional networking equipment such as a hub or the like (not shown), could also be provided.
[037] Referring now to Figure 6, a flow chart 74 describing the protocol tunneling device 10 mode of operation as a TSP client will now be described.
[038] Referring to Figure 4 in addition to Figure 6, the first step 100 comprises configuring an IPv4 address on the network interface of the protocol tunneling device 10. This is typically carried out using DHCP, which makes the configuration dynamic. If the local area network does not provide DHCP service, the IPv4 address will have to be configured using other means, for example statically from a configuration file stored in the memory of the protocol tunneling device 10.
[039] At a second step 110 the IPv4 address of the TBS 68 is retrieved. This can be performed dynamically using for example a DNS query (provided the fully qualified domain name of the TBS 68, e.g. tunnel_broker.isp_provider.com, is available for example in a configuration file stored on the protocol tunneling device 10). The IPv4 address of the TBS 68 can also be statically retrieved, for example from a configuration file stored on the protocol tunneling device 10. [040] A third step 120 comprises negotiating the IPv6-in-IPv4 tunnel parameters using TSP, between the TSP client located on the protocol tunneling device 10 and the TBS 68. The negotiation, on the TSP client side, is typically based on pre-configured values stored in a configuration file on the protocol tunneling device 10. Pre-configured values would typically include the version of the TSP protocol supported by the TSP client, authentication mode supported by the TSP client and associated credentials, the type of tunnel requested, etc. At the end of the negotiation, the protocol tunneling device 10 is allocated an IPv6 address and a delegated IPv6 prefix, a tunnel mode (IPv6-in- IPv4, IPv6-in-UDP-in-IPv4, etc., and the IPv4 address of the associated tunnel end-point (this could be for example, the IPv4 address of the TBS 68, or the IPv4 address of an alternate tunnel end-point, such as a dual stack IPv6/IPv4 router).
[041] A fourth step 130 comprises configuring the tunnel end-point at the protocol tunneling device 10 using the parameters negotiated during step 120. In particular, the allocated IPv6 address is configured on the network interface of the protocol tunneling device 10.
[042] A fifth step 140 involves auto-configuration of the protocol tunneling device 10 in order to perform those IPv6 router functionalities for the IPv6 enabled host devices 56 located in the LAN 20. The delegated IPv6 prefix acquired in step 120 provides the IPv6 prefix advertised by the protocol tunneling device 10 on the LAN. The routing table of the protocol tunneling device 10 will be updated according to the tunnel end-point configured in step 130.
[043] Following the fifth step 140, the protocol tunneling device 10 is ready to act as the default IPv6 router for the IPv6 enabled host devices 56 on the LAN 20 and performs the following functions:
• Advertises at step 150 the IPv6 prefix within the LAN 20 by means of router advertisements, thereby allowing the IPv6 enabled host devices 56 and other IPv6 devices (not shown) to configure an IPv6 address by means of stateless auto-configuration. A flag in the router advertisement will specify that the protocol tunneling device 10 is the default IPv6 router. The protocol tunneling device 10 will also answer router solicitations from the IPv6 enabled host devices 56. An alternate method may rely on stateful auto- configuration of the IPv6 enabled host devices 56 provided they are equipped with an appropriate DHCPvδ client, and the protocol tunneling device 10 acts as a DHCPvδ server (in this regard the protocol tunneling device 10 will have to generate /128 IPv6 addresses based on the delegated IPv6 prefix). • Routes at step 152 IPv6 traffic from the IPv6 enabled host devices 56 located on the LAN 20 to remote IPv6 enabled host devices 60 located on a remote IPv6 network 62. This traffic is transmitted via the IPv6-in-IPv4 tunnel established by the protocol tunneling device 10.
• Routes at step 154 IPv6 traffic from remote IPv6 enabled host devices 60 located on a remote IPv6 network 62 to the IPv6 enabled host devices 56 located on the LAN 20. This traffic will be received via the IPv6-in-IPv4 tunnel established by the protocol tunneling device 10.
[044] Although the present invention has been described hereinabove by way of an illustrative embodiment thereof, this embodiment can be modified at will without departing from the spirit and nature of the subject invention.

Claims

WHAT IS CLAIMED IS:
1. A protocol tunneling device for supporting communication between a local IPV6 data source comprising a network layer identified by a data source IPv6 address and located on a native IPv4 network and a remote
IPv6 data sink, the data source communicating using IPv6 protocol data packets with the data sink via a communications path comprising an IPv4 router and a tunneling end point, the router and tunneling end point communicating using an IPv4 protocol, the tunneling end point and the data sink communicating using the IPv6 protocol, the device comprising: an IPv6 network layer compatible with the IPv6 protocol for communicating with the data source, said IPv6 network layer identified by an IPv6 compatible address; an IPv4 network layer compatible with the IPv4 protocol for communicating with the IPv4 router, said IPv4 network layer identified by an IPv4 compatible address; a tunneling client providing a tunnel to the tunneling end point via said
IPv4 network layer and the IPv4 router; and an IPv6 routing function emitting router advertisements for reception by the data source, said router advertisements indicating that said
IPv6 compatible address should be used as a default IPv6 router address; wherein IPv6 data packets compatible with the IPv6 protocol and for transfer to the IPv6 data sink received from the IPv6 data source at said IPv6 network layer are encapsulated in IPv4 data packets by said tunneling client, said IPv4 data packets are transmitted to the tunneling end point via the IPv4 network layer and the IPv4 router using the IPv4 protocol for subsequent transmission to the data sink as IPv6 data packets using the IPv6 protocol.
2. The device of Claim 1 , wherein Tunnel Set-Up Protocol (TSP) is used to provide said tunnel between said tunneling client and the tunneling endpoint.
3. The device of Claim 1 , wherein Layer 2 Tunneling Protocol
(L2TP) is used to provide said tunnel between said tunneling client and the tunneling endpoint.
4. The device of Claim 1 , wherein a tunneling protocol which supports NAT transversal is used to provide said tunnel between said tunneling client and the tunneling endpoint.
5. The device of Claim 1 , wherein said router function emits router advertisements periodically.
6. The device of Claim 1 , wherein said router function emits router advertisements in response to a router solicitation message received from the data source.
7. The device of Claim 1 , wherein said routing function provides at least a portion of the data source IPv6 address to the local IPv6 data source.
8. The device of Claim 7, wherein said routing function emits router advertisements comprising a router prefix which are received by the data source, wherein the data source comprises a unique interface identifier and further wherein the data source IPv6 address comprises the unique interface identifier appended to said router prefix.
9. The device of Claim 7, wherein the local IPV6 data source further comprises a DHCPvβ client, said routing function comprises a DHCPvθ server and the data source IPv6 address is provided by said DHCPv6 server to the DHCPv6 client.
10. The device of Claim 1 , further comprising a data link layer, wherein the IPv4 router comprises a plurality of ports compatible with said data link layer and a switch function for selectively interconnecting each of the ports, and further wherein said data link layer is interconnected with one of the ports.
11. The device of Claim 10, wherein said data link layer is compatible with a set of standards conforming to IEEE802.3.
12. The device of Claim 10, wherein said data link layer is compatible with a set of standards conforming to IEEE802.11.
13. The device of Claim 1 , further comprising a configuration interface.
14. The device of Claim 13, wherein said configuration interface is used for configuring at least one of said IPv4 compatible address, an IPv4 gateway, a subnet mask.
15. The device of Claim 13, wherein said configuration interface is used for configuring said tunnel.
16. The device of Claim 1 , further comprising a DHCPv4 client, wherein the IPv4 router comprises a DHCPv4 server and further wherein said IPv4 compatible address is provided by the DHCPv4 server to said DHCPv4 client.
17. The device of Claim 13, further comprising a USB interface and wherein said configuration interface can be accessed via said USB interface.
18. The device of Claim 13, wherein said configuration interface is HTTP compatible and can be accessed via said IPv4 compatible address using a conventional Web browser.
19. The device of Claim 13, wherein said IPv4 compatible address is a default IPv4 address and further wherein said configuration interface can be accessed via said default IPv4 address.
20. The device of Claim 19, wherein on device start up said IPv4 compatible address is set to said default IPv4 address.
21. The device of Claim 4, wherein the IPv4 router comprises a
Network Address Translation (NAT) function and further wherein said IPv4 compatible address is provided by said NAT function.
22. A data communication system comprising: a data source identified by a data source IPv6 address and located on a local network, said local network providing native support for an IPv4 protocol; a data sink located on a remote IPv6 network, said data source communicating with said data sink using an IPv6 protocol via a communications path comprising an IPv4 router located on said local network and an intermediate IPv4 network and a tunneling end point located on said intermediate IPv4 network and a remote IPv6 network; and a protocol tunneling device located on said local network, said tunneling device comprising a first network layer compatible with said IPv6 protocol, said first network layer identified by a first address compatible with said IPv6 protocol, a second network layer compatible with said IPv4 protocol, said second network layer identified by a second address compatible with said IPv4 protocol, a tunneling client providing a tunnel to said tunneling end point via said IPv4 router and said intermediate IPv4 network using said IPv4 protocol and an IPv6 routing function emitting router advertisements for reception by said data source, said router advertisements indicating that said first address should be used as a default IPv6 router address; wherein when IPv6 data packets for transfer to said data sink are received from said data source at said first network layer, said tunneling client encapsulates said IPv6 data packets into IPv4 data packets by said tunneling client and transmits said IPv4 data packets to said tunneling end point via said second network layer, said IPv4 router and said intermediate IPv4 network segment using said IPv4 protocol, said tunneling end point removing said IPv6 data packets from said IPv4 data packets and subsequently transmitting said IPv6 data packets to said data sink using said IPv6 protocol.
23. The system of Claim 22, wherein Tunnel Set-Up Protocol (TSP) is used to provide said tunnel between said tunneling client and said tunneling endpoint.
24. The system of Claim 22, wherein Layer 2 Tunneling Protocol
(L2TP) is used to provide said tunnel between said tunneling client and said tunneling endpoint.
25. The device of Claim 22, wherein a tunneling protocol which supports NAT transversal is used to provide said tunnel between said tunneling client and the tunneling endpoint.
26. The system of Claim 22, wherein said routing function emits router advertisements comprising a router prefix which are received by said data source, wherein said data source comprises a unique interface identifier and further wherein said data source IPv6 address comprises said unique interface identifier appended to said router prefix.
27. The system of Claim 22, wherein the data source comprises a DHCPvδ client, said routing function comprises a DHCPvθ server and said data source IPv6 address is provided by said DHCPvβ server to said DHCPvβ client.
28. The system of Claim 22, wherein said protocol tunneling device further comprises a data link layer, wherein said IPv4 router comprises a plurality of ports compatible with said data link layer and a switch function for selectively interconnecting each of said ports, and further wherein said data link layer is interconnected with one of said ports.
29. The system of Claim 28, wherein said data link layer is compatible with a set of standards conforming to IEEE802.3.
30. The system of Claim 28, wherein said data link layer is compatible with a set of standards conforming to IEEE802.11.
31. The system of Claim 25, wherein said IPv4 router comprises a Network Address Translation (NAT) function and further wherein said second address is provided by said NAT function.
32. A method for transferring IPv6 data packets between an IPv6 data source on a local IPv4 native network and a remote IPv6 data sink on a remote IPv6 network via an intervening IPv4 network, the method comprising: providing an IPV4 router between the IPv4 network and the intervening IPv4 network and a tunneling end point between the intervening
IPv4 network and the remote IPv6 network; establishing an IPv4 tunnel between a protocol tunneling device on the IPv4 native network and said tunneling end point via said IPv4 router and the intervening IPv4 network, said protocol tunneling device comprising an IPv6 routing function; transmitting at least one router advertisement between said routing function and the IPV6 data source, said router advertisement indicating the IPv6 data packets are to be transferred via said protocol tunneling device; receiving the IPv6 data packets at said protocol tunneling device; encapsulating the received IPv6 data packets into IPv4 data packets; transferring said IPv4 data packets from said protocol tunneling device to said tunneling end point via said IPv4 router and the intervening IPv4 network; receiving said IPv4 data packets at said tunneling end point; decapsulating said IPv6 data packets from said received IPv4 packets; and transmitting said decapsulated IPv6 data packets to said IPv6 data sink via said remote IPv6 network.
33. The method of Claim 32, wherein the IPv6 data source comprises a data source IPv6 address, said routing function providing at least a portion of the data source IPv6 address to the IPv6 data source via said router advertisement.
34. The method of Claim 33, wherein said router advertisements comprise a router prefix, wherein the IPv6 data source comprises a unique interface identifier and further wherein the data source IPv6 address comprises said unique interface identifier appended to said router prefix.
35. The method of Claim 33, wherein the IPv6 data source comprises a DHCPvδ client, said routing function comprises a DHCPvδ server and the data source IPv6 address is provided by said DHCPv6 server to the DHCPv6 client.
PCT/CA2008/000400 2007-03-02 2008-02-29 Tunneling device for automatic protocol provisioning in a network WO2008106773A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US89254507P 2007-03-02 2007-03-02
US60/892,545 2007-03-02

Publications (2)

Publication Number Publication Date
WO2008106773A1 true WO2008106773A1 (en) 2008-09-12
WO2008106773A8 WO2008106773A8 (en) 2008-11-13

Family

ID=39737728

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2008/000400 WO2008106773A1 (en) 2007-03-02 2008-02-29 Tunneling device for automatic protocol provisioning in a network

Country Status (1)

Country Link
WO (1) WO2008106773A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559511A (en) * 2016-10-18 2017-04-05 上海优刻得信息科技有限公司 Cloud system, high in the clouds public service system and the exchanging visit method for cloud system
CN106576073A (en) * 2014-08-08 2017-04-19 柏思科技有限公司 Methods and systems for transmitting data through an aggregated connection
US11005685B2 (en) 2009-12-23 2021-05-11 Pismo Labs Technology Limited Methods and systems for transmitting packets through aggregated end-to-end connection
US11201699B2 (en) 2009-12-23 2021-12-14 Pismo Labs Technology Limited Methods and systems for transmitting error correction packets

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0840482A1 (en) * 1996-11-01 1998-05-06 Hitachi, Ltd. Communicating method between IPv4 terminal and IPv6 terminal and IPv4-IPv6 converting apparatus
WO2004045183A1 (en) * 2002-11-13 2004-05-27 Thomson Licensing S.A. Method and device for supporting a 6to4 tunneling protocol across a network address translation mechanism
US20040133692A1 (en) * 2003-01-07 2004-07-08 Hexago Inc. Method and apparatus for connecting IPV6 devices through an IPv4 network and a network address translator (NAT) using a tunnel setup protocol
US20050094575A1 (en) * 2003-10-31 2005-05-05 Samsung Electronics Co., Ltd. System for providing tunnel service capable of data communication between different types of networks
US20050099976A1 (en) * 2003-09-23 2005-05-12 Shu Yamamoto Enabling mobile IPv6 communication over a network containing IPv4 components using a tunnel broker model

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0840482A1 (en) * 1996-11-01 1998-05-06 Hitachi, Ltd. Communicating method between IPv4 terminal and IPv6 terminal and IPv4-IPv6 converting apparatus
WO2004045183A1 (en) * 2002-11-13 2004-05-27 Thomson Licensing S.A. Method and device for supporting a 6to4 tunneling protocol across a network address translation mechanism
US20040133692A1 (en) * 2003-01-07 2004-07-08 Hexago Inc. Method and apparatus for connecting IPV6 devices through an IPv4 network and a network address translator (NAT) using a tunnel setup protocol
US20050099976A1 (en) * 2003-09-23 2005-05-12 Shu Yamamoto Enabling mobile IPv6 communication over a network containing IPv4 components using a tunnel broker model
US20050094575A1 (en) * 2003-10-31 2005-05-05 Samsung Electronics Co., Ltd. System for providing tunnel service capable of data communication between different types of networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TOWNSLEY ET AL.: "Layer Two Tunneling Protocol L2TP", INTERNET ENGINEERING TASK FORCE, NETWORK WORKING GROUP, IETF-RFC 2661, August 1999 (1999-08-01), pages 1 - 79 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11005685B2 (en) 2009-12-23 2021-05-11 Pismo Labs Technology Limited Methods and systems for transmitting packets through aggregated end-to-end connection
US11201699B2 (en) 2009-12-23 2021-12-14 Pismo Labs Technology Limited Methods and systems for transmitting error correction packets
US11677510B2 (en) 2009-12-23 2023-06-13 Pismo Labs Technology Limited Methods and systems for transmitting error correction packets
US11943060B2 (en) 2009-12-23 2024-03-26 Pismo Labs Technology Limited Methods and systems for transmitting packets
CN106576073A (en) * 2014-08-08 2017-04-19 柏思科技有限公司 Methods and systems for transmitting data through an aggregated connection
CN106576073B (en) * 2014-08-08 2019-12-27 柏思科技有限公司 Method and system for transmitting data through aggregated connections
CN106559511A (en) * 2016-10-18 2017-04-05 上海优刻得信息科技有限公司 Cloud system, high in the clouds public service system and the exchanging visit method for cloud system
CN106559511B (en) * 2016-10-18 2019-05-24 优刻得科技股份有限公司 Cloud system, cloud public service system and the exchanging visit method for cloud system

Also Published As

Publication number Publication date
WO2008106773A8 (en) 2008-11-13

Similar Documents

Publication Publication Date Title
US8751617B2 (en) Method and device for identifying and selecting an interface to access a network
Waddington et al. Realizing the transition to IPv6
US6018767A (en) Method and system for managing subscription services with a cable modem
US6058421A (en) Method and system for addressing network host interfaces from a cable modem using DHCP
US7796616B2 (en) Apparatus and method for offering connections between network devices located in different home networks
US6065049A (en) Method and system for resolving addresses for network host interfaces from a cable modem
EP1759519B1 (en) Discovering a network element in a communication system
RU2602971C2 (en) Dynamic ipv6 configuration method for home gateway
US10659430B2 (en) Systems and methods for dynamic network address modification related applications
JP5475763B2 (en) Method for receiving data packets from IPv4 domain in IPv6 domain, and related devices and access equipment
US20060248202A1 (en) Method and apparatus for connecting ipv4 devices through an ipv6 network using a tunnel setup protocol
WO2000079765A1 (en) Reverse tunneling methods and apparatus for use with private computer networks
US20070254634A1 (en) Configuring a local network device using a wireless provider network
US20130205035A1 (en) Method and device for network communications
US20030172170A1 (en) Providing multiple ISP access to devices behind NAT
US20220311734A1 (en) Method and Device for Obtaining an IP Address
WO2007106446A2 (en) A method for configuring remote ip phones
KR20110060895A (en) A method and a gateway for providing multiple internet access
WO2009018658A1 (en) Device, system and method for automatic ipv4 provisioning in a local area network connected to an ipv6 network
WO2008106773A1 (en) Tunneling device for automatic protocol provisioning in a network
Cui et al. Public IPv4-over-IPv6 access network
WO2015127751A1 (en) Method for processing nat64 prefix, network device and dhcpv6 server
DK1817892T3 (en) PROCEDURE AND SYSTEM TO OPEN A NETWORK LINK
US7085836B1 (en) System and method for automatic private IP address selection
WO2015139397A1 (en) Nat64 resource acquisition method and acquisition/distribution apparatus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08714720

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08714720

Country of ref document: EP

Kind code of ref document: A1