GB2525088A - Split network address translation - Google Patents
Split network address translation Download PDFInfo
- Publication number
- GB2525088A GB2525088A GB1504156.9A GB201504156A GB2525088A GB 2525088 A GB2525088 A GB 2525088A GB 201504156 A GB201504156 A GB 201504156A GB 2525088 A GB2525088 A GB 2525088A
- Authority
- GB
- United Kingdom
- Prior art keywords
- address
- network element
- ipv4
- network
- message
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/167—Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/251—Translation of Internet protocol [IP] addresses between different IP versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
- H04L61/2532—Clique of NAT servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Network address translation of messages transported over an autonomous system 12 between multiple network elements is disclosed. The network address translation may be performed by instructing one intermediary network element #1 to translate upstream messages for a particular upstream messaging path 14 and a different intermediary network element #5 to translate downstream messages for the same messaging path 16, thereby providing split network address translation. The address translation may be IPv4 to IPv6 translation such as when the origin device, device #1, may only support IPv4 and the destination device, server #1, may only support IPv6. Compression may be involved in converting an IPv6 address to an IPv4 address. The communication may begin from a Domain Name System (DNS) query as part of a Transfer Control Protocol (TCP) session. Translation may also be offloaded to another intermediary device, for example NE #4, for load sharing or based on capabilities of the intermediary devices. The intermediary devices may be selected by a controller to be those devices respectively closest to the origin and destination, such as those closest with an Application Layer Gateway (ALG). Instructions may be supplied to the intermediary network devices using OpenFlow protocol.
Description
Intellectual Property Office Application No. GB1504156.9 RTI\4 Date:16 April 2015 The following terms are registered trade marks and should be read as such wherever they occur in this document: OpenFlow Wi-Fi Bluray Intellectual Property Office is an operating name of the Patent Office www.gov.uk/ipo
SPLIT NETWORK ADDRESS TRANSLATION
TECHNICAL FIELD
[I] The present invention relates to translating addresses, such as but not limited to translation of Internet Protocol Version 4 (IPv4) and Internet Protocol Version 6 (lPv6) addresses.
BACKGROUND
[2] Internet Protocol (IF) is a computer network protocol (analogous to written and verbal languages) that all machines on the Internet must know so that they can communicate with one another, i.e.., IP is a layer 3 (network layer) protocol in the Open Systems Interconnection (051) model. The vast majority of IP devices support IF version 4 (IPv4) defined in Internet Engineering Task Force (IETF) request for comment (RFC) 791, the disclosure of which is hereby incorporated by reference in its entirety, and IF version 6 (IPv6) defined in RFC 2460, the disclosure of which is hereby incorporated by reference in its entirety. Devices relying on IF may be assigned an IF address (e.g., an IPv4 and/or an IPv6 address). In some cases, a device configured to support IPv4 may he unable to support IPv6, e.g., the device may he limited to processing messages having IPv4 addresses such that messages having lPv6 addresses are ignored. This can be problematic when it is desirable for the IPv4 dependent devices to interact with IPv6 dependent devices.
SUMMARY OF THE INVENTION
[3] In a broad aspect of the invention there is provided a non-transitory computer-readable medium having a plurality of instructions according to claim 1 and 21. In one form the non-transitory computer-readable medium is operable with a processor of a controller, sufficient to facilitate translation of Internet Protocol version 4 (lPv4) and Internet Frotocol version 6 (lPv6) addresses within an autonomous system, the autonomous system including a plurality of network elements arranged at various edge locations to facilitate exchanging messages with a plurality of devices, the network elements being configured to translate between IPv4 and IPv6 addresses as a function of instructions received from the controller, the computer-readable medium comprising instructions sufficient for: determining a first Domain Name System (DNS) query originating from a first device of the plurality of devices, the first device having been previously assigned a first IPv4 address; determining a first DNS record for the first DNS query, the first DNS record indicating a first TPv6 address for a first server outside of the autonomous system; determining a first network element closest to the first device: determining a second network element closest to the first server: associating a second TPv4 address with the first IPv6 address: associating a second IPv6 address with the first TPv4 address; instructing the first network element to translate an upstream traveling first message originating from the first device for transfer over the autonomous system to the first server, the first message having the first lPv4 address as a first source address and the second lPv4 address as a first destination address, such that the first source address becomes the second lPv6 address and the first destination address becomes the first IPv6 address; and instructing the second network element to translate a downstream traveling second message originating from the first server for transport over the autonomous system to the first device, the second message having the first lPv6 address as a second souce address and the second lPv6 address as a second destination address, such that the second source address becomes the second lPv4 address and the second destination address becomes the first lPv4 address.
[4] In one form, the non-transitory computer-readable medium a'so instructs the second network element to relay the first message without translating the first source and destination addresses such that source and destination address translation of the first message only occurs at the first network element; instructs the first network element to relay the second message without translating the second source and destination addresses such that source and destination address translation of the second message only occurs at the second network element; and wherein the first and second messages are exchanged between the first device and the first server as part of a transfer control protocol (TCP) session, whereby the tTanslation of the first message at the first network element and the translation of the second message at the second network element characterizes the TCP session as having split network address translation.
[5] In one form, the non-transitory computer-readable medium further comprises instructions sufficient for determining the second lPv4 address by compressing an entirety of the first IPv6 address illto a compressed expression, the first IPv6 address comprising a first ilumber of binary bits and the compressed expression comprising a second number of binary bits, the second number being tess than the first number; selecting an available IPv4 address prefix; and adding the selected IPv4 address prefix to the compresses compressed expression to form the second IPv4 address, the second IPv4 address being valid for IP-hased communications.
[6] In a further aspect of the invention there is provided a method, according to claim 8.
In one form the method translates network addresses for a plurality of messages being transported within an autonomous system between an Internet Protocol (IP) version 4 (IPv4) dependent device and an IP version 6 (TPv6) dependent device as part of a session, the TPv4 dependent device being referred to hereinafter as a first device and the lPv6 dependent device being referred to herein after as a second device, the autonomous system including a plurality of network elements having network address translation capabilities, the plurality of network elements being operable according to a common interior gateway protocol, the method comprising: instructing a first network element of the plurality network elements to translate addressing information included within one or more upstream messages, the one or more upstream messages being a corresponding one or more of the plurality of messages determined to be transported over the autonomous system in an upstream direction between the first and second devices; and instructing a second network element of the plurality network elements to translate addressing information included within one or more downstream messages, the one or more downstream messages being a corresponding one or more of the plurality of messages determined to he transported over the autonomous system in a downstream direction between the first and second devices.
[7] In a yet further aspect of the invention there is provided an autonomous system according to claim 17. In one form autonomous system comprises: a plurality of network elements having network routing and network address translation capabilities; and a controller configured to: determine messaging paths for each message transported between at least two network elements within the autonomous system; and implement split network address translation for messages transported within messaging paths between devices having incompatible addressing requirements, including, on a path by path basis, instructing one of the network elements in the corresponding messaging path to translate upstream messages according to addressing requirements of a corresponding upstream device and a different one of the network elements in the corresponding messaging path to translate downstream messages according to addressing requirements of a corresponding downstream device.
BRTEF DESCRIPTTON OF THE DRAWINGS
[8] Figure 1 illustrates a split-translation system in accordance with one non-limiting aspect of the present invention.
[9] Figure 2 illustrates message translation in accordance with one non-limiting aspect of the present ifivention.
[101 Figure 3 illustrates the split-translatioll system performing load sharing in accordance with one non-limiting aspect of the present invention.
[11] Figure 4 illustrates a flowchart of a method for split network address translation in accordance with one non-limiting aspect of the present invention.
DETAILED DESCRIPTION
[121 As required, detailed embodiments of the present invention are disclosed hereim however, it is to he understood that the disclosed embodiments are merely exemplary of the invention that may he embodied in various and alternative forms. The figures are not necessarily to scale; some features may be exaggerated or minimized to show details of particular components.
Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the present invention.
[131 Figure 1 illustrates a split-translation system 10 in accordance with one non-limiting aspect of the present invention. The system 10 illustrates a plurality of autonomous systems configured to facilitate signaling between a plurality of devices (two of which are labeled as servers).
The autonomous systems may include a set of network elements (NEs) or other router-capable devices under a single technical administration, such as in the manner described in RFC 1930, the disclosure of which is hereby incorporated by reference in its entirety. The autonomous systems may facilitate communications (e.g., route packets) between the network elements according to an interior gateway protocol and common metrics and with other autonomous systems using an exterior gateway protocol. Each of the autonomous systems may he configured similarly to the illustrated one of the autonomous systems to include a plurality of network elements, a controller, a dynamic name system (DNS) and/or any number of other devices or features sufficient to facilitate the operations contemplated herein. Figure I illustrates an exemplary scenario where the autonomous system 1 2 facilitates routing messages (packets) between a first device and a first server using split network address translation.
[14] The split network address translation may correspond with translating addressing information or other packet-transported information included within exchanged messages at different locations, e.g., the first network element and the fifth network element. A first line 14 may correspond with a first message travelillg in an upstream direction over a messaging path between the first device and the first server by way of the first network element and the fifth network element. A second line 16 may correspond with a second message traveling in a dowllstream direction over the messaging path from the first server to the first device by way of the fifth network element and the first network element. Optionally, additional hops or other devices (e.g., one or more of the other illustrated network elements and/or other non-illustrated devices) may facilitate trrnisport of the first and second messages. The first and second network elements are shown to facilitate the first and second messages due to beillg the network elements closest to the first device and the first server, however, other iletwork elements may have been similarly used without deviating from the scope of contemplation of the present invention. The selection of the two closest network elements to the two communicating deyices as endpoints within the autonomous system 12 is believed to he beneficial in ameliorating signaling demands, particularly when wireless signaling is employed to facilitate the communications.
[15] The network elements may include a translator (not shown) or translation capabilities sufficient to facilitate the contemplated translations, which for exemplary purposes are described with respect to facilitating translations necessary to enable communications between an Internet Protocol Version 4 (IPv4) limited device, such as the first device, and Internet Protocol Version 6 (TPv6) limited device, such as the first server. The TPv4 and IPv6 devices may correspond with one exemplary pair of devices configured to support a single version of a protocol or standard, and therefore being limited at least in so far as being unable to connect with a device supporting a different or later version of the protocol, at least in a mailner sufficient to facilitate message exchanges necessary to establish a session or other communication medium between the devices. As noted above, IPv4 devices may ignore or otherwise disregard messages having TPv6 addresses as the
S
destination address and/or the source address. The network elements having network address translation capabilities may he configured to facilitate translating messages between the IPv4 devices and TPv6 device in a manner sufficient to permit IP message exchange therehetween using split network address translation.
[16] The system 10 is described with respect to supporting Tnternet Protocol (TP) based connections between the first device and the first server and/or similarly configured devices (such as the second device and the second server) where the network elements may be include a Carrier Grade Network Address Translator (CGN) that facilitates mapping network addressing, such as but not limited to the CGN described in U.S. patent application no. 13/232,509, the disclosure of which is hereby Incorporated by reference in its entirety. The CGN is described for exemplary non-limiting purposes as one type of Network Address Translator (NAT) operable to facilitate the contemplated address translations. The present invention, however, fully contemplates its use and application with any network element having sufficient network address translations capabilities and is not particular limited to a CGN type of translator. While the present invention fully contemplates the autonomous system facilitating communications non-dependent devices, for exemplary purposes, the description herein highlights one scenario where at least one of the devices is an IPv4-dependent device (i.e., unable to process IPv6 addressed messaging) and at least one the devices is an IPv6-dependent device (i.e., unable to process IPv4 addressed messaging).
[17] The devices may he any device capable of supporting P-based communications and/or connections. The devices for example, may he any type of terminal sufficient for rendering and/or providing electronic content, such as hut not limited to a streaming server, a website, a set-top box (STB), a television, a computer (desktop, laptop, tablet, PDA, etc.), a mobile phone, a media terminal adapter (MTA), a digital video recorder (DVR), etc. The autonomous system I 2 may rely on any type of electronic medium to transport signaling (packets, messages, etc.), including being any type of wireline or wireless network, or combination thereof, such as hut not limited to a cable television network, a cellular network, a Wi-Fi network, an optical network, etc. The packets and/or other types of data carried over the autonomous system 12 may facilitate use of any type of electronic content suitable for electronic transmission, such as but not limited to video, audio, or some combination thereof. The devices may be associated with a service provider, for example, a cable television service provider, a broadcast television service provider, a satellite television service provider, a multiple system operator (MSO), a streaming video/audio server/service, a home media gateway andlor any other entity operable to facilitate the contemplated transmissions.
[1$] The controller may he configured in accordance with the present invention to facilitate regulating the transmissions carried out over the autonomous system, e.g., implementing the interior gateway protocol andJor the contemplated split network address translation. The controller may identify the network elements within the autonomous system 12 or those assigned to another autonomous system based on an autonomous system number (ASN) associated therewith and/or based on prefixes other addressing identifying information (elements within the same autonomous system may be assumed if operating within the same prefix range). The controller may communicate or possess the capability to communicate with any one or more of the network elements, the devices and/or or other non-illustrated intermediary devices to facilitate implementing the interior gateway protocol, provide instructions sufficient for directing travel of messaging through the autonomous system or to otherwise determine messaging paths 14, 16 created with the autonomous system 12 to facilitate transporting messages between the devices (e.g., in the event the network elements automatically implement the interior gateway protocol, the controller may monitor or otherwise assessed the paths created by the network elements).
[19] The controller may he aware of different or multiple message paths, sessions, connections, etc. constructed to transport messages over the autonomous system between the various devices, and based on this information, instructed the network elements tasked with performing split network address translations (e.g., some network elements may relay or transport messages without being instructed to translate included addressing information). One non-limiting aspect of the present invention contemplates the controller including a computer-readable medium having non-transitory instructions stored thereon, operable with a corresponding processor, to facilitate instructing or otherwise controlling the autonomous system and/or the devices in communication therewith to facilitate split network address translation, eg., translating related upstream and downstream messages at different locations. In this manner, the controller may leverage its awareness of system traffic with desired address translation points to facilitate managing resources.
[20] One non-limiting aspect of the present invention contemplates the controller facilitating split network address translation using information communicated to the network elements according to any suitable protocol, such as hut not necessary limited to OpenFlow (OF) described in Open Flow Specification littps://www.opennetworking.org/sdn-resources/onf-specifications/opentlow) , the disclosure of which is hereby incorporated by reference in its entirety.
OF may he particular beneficial in facilitating the split network address translation as it may he useful in ameliorating the processing demands on each network element, e.g., the controller may include the logic, mapping and other processing intensive aspects of generating, identifying, storing and facilitating use of translated to/from addresses rather than requiring each network element to identify the translated to/from network addresses. An Open Flow controller may be configured to have complete knowledge of network topology to facilitate the contemplated network translations.
OF or other suitable protocols may be used to facilitate split network address translation so that a single network element need not consume resources required to translate upstream and downstream messages (e.g., if a single device were required to support upstream and downstream messages that device would have to score twice as many translations and if it were only required to support translations in one direction). The ability to load-split the translations between multiple network elements may be beneficial in enabling network resources to be distributed on a dynamic basis according to processing demands on the network elements, e.g., rather than using the network elements closest to the communicating devices, additional network elements may be used depending on various operating characteristics.
[21] The network address translations may he based at least in part on addressing information provided from the DNS. When one of the devices attempts to ascertain an address, such as by generating a DNS query with entry of a website address or other information, the controller and/or the DNS may respond with a corresponding record. The DNS record maybe one of an A-type or an AAAA-type record, depending on whether the desired server is associated with an lPv4 address (A-type record) or an lPv6 address (AAAA-type record). The DNS record may he defined according to RFC 1035, RFC i 123, RFC 2181, and/or RFC 3596, the disclosures of which are hereby incorporated by reference in their entirety. While described with respect to identifying addressing information using DNS records, the present invention is not necessarily so limited and fully contemplates identifying TP and/or non-TP addresses according to other methods and protocols and it is not necessarily required that the addresses be specified in a record or other message issued in response to an inquiry from a requesting device, e.g., the translation operations contemplated by the present invention may be useful in advance or prior to receiving such requests whereby the translations may be performed on the addresses in anticipation of receiving such a request.
[22] The controller may process the DNS record issued in response to the query and provide corresponding addressing information to the first device, and if necessary, to the split network elements tasked with performing any related address translations. The controller may include a database (not shown) or processing capabilities sufficient to identify devices having limited or incompatible addressing requirements, e.g., the TPv4 and IPv6 dependent devices. The controller may also include capabilities for determining the closest network elements andlor assessing processing loads or other operating conditions to facilitate determining the non-closest network elements to be used when supporting the network address translation. In the event network address translation is not required for certain DNS records, e.g., in the event one of the communicating devices includes dual stack capability, i.e., the ability to support both lPv4 an lPv6 communications, and/or in the event the communications are to occur between similar configured devices, i.e., between devices operating according to the same one of the lPv4 an lPv6 standards, the controller may assigning one or more of the network elements to be used in facilitating the associated communications. In this manner, the controller may include capabilities associated with implementing or commanding implementation of the various operations contemplated herein to facilitate split network address translation and other operations carried out over the autollomous network.
[23] Figure 2 illustrates split translation of the first and second messages 20, 22 in accordance with one non-limiting aspect of the present invention. The first and second messages 20, 22 maybe related in so far as being exchange between the first device and the first server as part of a transfer of data, such as that associated with downloading a website from the first server to the first device. The first and second messages 20, 22 maybe exchanged as part of a transfer control protocol (TCP) session or connection where multiple messages are exchanged in order to facilitate transporting data between desired endpoints. The first message 20 is shown to be translated with the first network element and the second message 22 is shown to he translated with the fifth network element in order to comply with the illustration shown in Figure I. Similar translations of the first and second messages 20, 22 or other messages may he performed with another one or more of the network elements of the autonomous system 12 being used to facilitate a session, a connection or other related set of messaging between addressing-incompatible devices like the first device and the first server. While the present invention contemplates facilitating network address translation for irny number reasons, the description herein is described for exemplary purposes with respect to facilitate network address translation when the first device attempts to download a wehpage from the first server.
[24] When attempting to download the webpage, the exemplary description presumes the first device is an TPv4 limited device and the first server is IPv6 limited device, however, the invention would similarly operate if the addressing limitations were he reversed and the first device was an IPv6 limited device and the first server was an IPv4 limited device. Tn the described example, the first device may be assigning a first lPv4 address (1 sI IPv4), such as part of a Dynamic Host Configuration Protocol (DHCP) assignment (controller, etc. may assign), such as that described in RFCs 2131 and 3315, the disclosures of which are hereby incorporated by reference in their entirety.
The first device may use the first IPv4 address to issue an DNS query for a desired website, e.g., www.cablelabs.com, which may be intercepted or otherwise processed with the controller and/or DNS. A correspoilding DNS record may be generated indicating the first server and a corresponding first IPv6 address (151 lPv6). The controller may process the DNS record and associate or otherwise assigil a second IPv4 address (2'' IPv4) and a second IPv6 address (2' IPv6) to be use ill facilitating communicatiolls between the first device in the first server. Optionally, the controller may generate the second IPv4 address based on the first IPv6 address, such as by compressing the first IPv6 address into an IPv4 address in the manner described in United States patent application no. 13/288,334, the disclosure which is hereby for print by reference in its entirety. In this manner, the second JPv4 address may be used to compensate for the TPv4 limitations of the first device and the second IPv6 address may be used to compensate for the IPv6 limitations of the first server, i.e., to facilitate the translations occurring at the network elements associated with each of the first device in the first server.
[25] The controller may generate a table or other database for relating the second TPv4 address and the second lPv6 address respectively with the first lPv4 address and the first lPv6 address, thereby providing a relation between the addressing originally assigned to the first device and the first server. The controller may provide corresponding instructions to the first network element and the fifth network element, such as using OF, in order to control translations performed thereon in response to receiving messages having the first and second IPv4 addresses aild the first and second IPv6 addresses. As illustrated, the first message is translated at the first network element by replacing the first aild secoild IPv4 addresses respectively ideiltified as source and destination addresses with the first and second TPv6 addresses, thereby enabling the first message to be issued with IPv4 addresses according to the restrictions of the first device and to he subsequently translated to TPv6 addresses according to the restrictions of the first server. The second message or other messages with the combination of the first and second IPv6 addresses may he translated at the fifth network element by performing an inverse operation where the first and second IPv6 addresses respectftilly identify the source and destination addresses are replaced with the first and second IPv4 addresses.
[261 The controller may be configured to facilitate similar operations for additional messages desired to be transmitted over the autonomous system according to the lPv4 and lPv6 addresses associated with the corresponding source and destination. The use of OF or other messaging between the controller and the network elements may be beneficial in providing granular instructions to each network element with respect to their individual responsibility for trailsiating messages (e.g., some network elements may be used as hops or other non-translating network elements in some cases such that they may ignore otherwise not perform tnmslations for addresses assigiled to be translated by other network elemeilts). In particular, the present invention contemplates leveraging the capabilities of OF aild similar instructional protocols to enable the controller or other suitable network element to facilitate dynamically splitting network address translation responsibilities across multiple network elements and/or to re-assign or otherwise allocate translation responsibilities depending on network performance, congestion, failure, etc. The translating network elements may he instructed to persistently translate messages according to the instructions provided from the controller, such as on a per-connection basis whereby multiple messages may he exchange between same endpoints (e.g., multiple messages may he exchanged between the first device in the first server in order to provide user access to desired services that the first device).
[27] Figure 3 illustrates the split-translation system tO performing load sharing in accordance with one non-limiting aspect of the present invention. The load sharing may be characterized by instructing the fifth network element to rely upon the fourth network element to trmislate the secoild message irnder certain conditions, thereby creating a different path 24 for the second message. The load sharing may be beneficial when processillg capabilities or CPU output exceeds a threshold (eg., 80%), indicating it may be desirable to ameliorate further processing demands by relying upon another network element, andlor in the event a payload of the second message or other message would he more desirable to process at another network element, e.g., in the event VoIP capabilities of the fifth network element lack the application layer gateway (ALGi) or other capabilities necessary to facilitate processing VoTP related packets, those packets may he forwarded to another network element having sufficient capabilities. Any other one of the network elements included as part of the autonomous system 12 may he similarly used in the place or in addition to the fourth network element. One-limiting aspect of the present invention contemplates limiting the network elements assigned to perform the split network address translation to those within the same autonomous system as the control of those network elements would fall under the domain of a common technical administration (the controller), which may be beneficial in ensuring proper network translations. The present invention is not necessarily so limited and hilly contemplates facilitating split network address translation across network elements associated with different autonomous systems.
[281 Figure 4 illustrates a flowchart 30 of a method for split iletwork address translation in accordance with one non-limiting aspect of the present invention. The method may be embodied in a computer-readable medium having instructions stored therein that when operated with a processor or other functioning feature facilitate executing the translation and other operations contemplated by the present invention. The method for exemplary non-limiting purposes is predominately described with respect to translating addresses identified as part of a DNS process where an IPv4 limited device (first device) originates a DNS inquiry in order to connect to an TPv6 limited device (first server) or vice versa where an IPv6 limited device issues a DNS query for or otherwise attempts to reach an TPv4 limited device. While the present invention is described with respect to a DNS-hased process, the present invention is not necessarily limited to DNS and fully contemplates its use and application in any environment and with any messaging process where it may he desirable to translate IP and/or non-IP addresses such as streaming video from an TPv6-only video service provider connecting to a subscriber BluRay player that only supports TPv4.
[291 Block 32 relates to determining incompatible devices based on a DNS query or other requests issued from an origillating device to message with a destination device. An originating device may issue a DNS query or other inquiry using a universal resource locator (URL) ill an attempt to message with the destination device associated therewith. The DNS query may generate a DNS record indicating addressing requirements of the destination device to he one of IPv4 and TPv6.
The protocol addressing requirements of the destination device may be compared with the originating device to determine incompatibility, such as in the event the originating device requires IPv4 or TPv6 and the destination device requires the opposite one of IPv4 and IPv6. The requirements of the originating device may he determined for the purposes of adjudicating incompatibility based on addressing information included within the DNS query, i.e. the addressing or protocol requirements of the originating device may be assumed from the protocol used as a destination address within the DNS query. Of course, the present invention is that necessary so limited and fully contemplates determining addressing or other protocol requirements of the originating device through other means and mechanisms.
[301 Block 34 relates to determining messaging paths for the incompatible devices. The messaging paths may correspond with a path created within the autonomous system, such as according to the interior gateway protocol, to facilitate messaging between the originating device and the destination device. The messaging paths are shown above to extend betweell at least two network elements where one network element is closer to the originating device and another network element is closer to the destination device. The upstream and downstream messaging paths are the same in Figure 2 and different in Figure 3 due to Figure 3 illustrating a scenario where the downstream messaging path is diverted to an additional network due to processing restrictions of the network element closes to the destination device. Accordingly, Block 34 may include determining messaging paths on an upstream and a downstream basis or a path-by-path basis and identifying each network element being traversed andlor having network address translation capabilities (some of the network elements or intermediary elements may lack capabilities sufficient to facilitate network address translation).
[311 Block 36 relates to the controller providing OF instructions or other suitable instructions to at least two different network elements within a messaging path associated with the incompatible devices. The instructions may be sufficient for instructing translation operations to be performed at the network elements in order to accommodate protocol or addressing incompatibility of the originating and destination devices. The trailsiations may be performed in the manner described above where source and destillation addresses included within received messages are translated to different source and destination addresses according to the addressing requiremeilts of the upstream or downstream device intended to eventually receive the corresponding message. One non-limiting aspect of the present invention contemplates instructing no more than two of the network elements within each incompatible path to translate messages, optionally with the upstream translating network element being the network element closest to the device originating the corresponding upstream message and the downstream translating network element being the network element closest to the device originating the corresponding downstream message. Of course, the present invention is not necessary so limited fully contemplates the use of a single path (e.g., one of the upstream and downstream paths) and/or the use of network elements other than the closest network elements to facilitate address translations, particularly when load sharing is employed.
[321 As supported above, one non-limiting aspect of the present invention relates to enabling lPv4-lPv6 translation, and distributing the translation duties across two or more network elements. When a subscriber with IPv4-only connectivity wants to coilnect to an IPv6-only content source, the subscriber initiates an DNS request. The network element (e.g., cable modem termination system (CMTS)) may then forward the DNS traffic to the OpenFlow (OF) Controller. The OF Controller checks with a special application that queries DNS. The application sees an AAAA record, which indicates that only IPv6 is available, so it initiates NAT46 translation. The application sends a special DNS A record response with a well-known public address (e.g. OFC TPv4 address, 100.64.112.0/12, etc.). Then the application, working through the OF Controller, instructs the network element to rewrite lPv4 source & destination addresses to IPv6 Source & Destination addresses, as follows: [33] Source: MSO-NAT46 prefix (/96)+lPv4 source address [34] Destination: real' IPv6 destination address [351 In the downstream direction, a second OF Network Elemeilt (e.g., router, switch) sends the incoming IPv6 flow to the OF Controller. Sillce the destination address is set to the MSO-CGN IPv4-embedded IPv6 address described above, the CON application instructs the Network Element to rewrite the IP header, as follows: [36] Source: Well-known MSO public NAT46 address described above (e.g. OFC TPv4 address, 100.64.112.0/12, etc.) [37] Destination: "real" host IPv4 address (embedded inside TPv6 address) [3$] This approach also allows for traffic initiated in the downstream direction. The subscriber, MSO, andlor dynamic DNS provider (e.g., Dyn.com) simply publishes a DNS AAAA record for the subscriber IPv4-emhedded IPv6 address. The translation occurs as above.
[39] While exemplary embodiments are described above, it is not intended that these embodiments describe all possib'e forms of the inveiltion. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the scope of the invention. Additionally, the features of various imp'ementing embodiments may be combined to form further embodiments of the invention.
Claims (21)
- WHAT WE CLAIM IS: 1. A non-transitory computer-readable medium having a plurality of instructions, operable with a processor of a controller, sufficient to facilitate translation of Internet Protocol version 4 (lPv4) and Internet Protocol version 6 (lPv6) addresses within an autonomous system, the autonomous system including a plurality of network elements arranged at various edge locations to facilitate exchanging messages with a plurality of devices, the network elements being configured to translate between IPv4 and IPv6 addresses as a function of instructions received from the controller, the computer-readable medium comprising instructions sufficient for: determining a first Domain Name System (DNS) query originating from a first device of the plurality of devices, the first device having been previously assigned a first IPv4 address; determining a first DNS record for the first DNS query, the first DNS record indicating a first IPv6 address for a first server outside of the autonomous system; determining a first network element closest to the first device; determining a second network element closest to the first server; associating a second IPv4 address with the first IPv6 address; associating a second IPv6 address with the first IPv4 address; instructing the first network element to translate an upstream traveling first message originating from the first device for transfer over the autonomous system to the first server, the first message having the first TPv4 address as a first source address and the second IPv4 address as a first destination address, such that the first source address becomes the second IPv6 address and the first destination address becomes the first IPv6 address: and instructing the second network element to translate a downstream traveling second message originating from the first server for transport over the autonomous system to the first device, the second message having the first lPv6 address as a second source address and the second IPv6 address as a second destination address, such that the second source address becomes the second lPv4 address and the second destination address becomes the first lPv4 address; instructing the second network element to relay the first message without address translation of the first and second IPv6 addresses; and instructing the first network element to relay the second message without address translation of the first and second IPv4 addresses.
- 2. A non-transitory computer-readable medium having a plurality of instructions, operable with a processor of a controller, sufficient to facilitate translation of Internet Protocol version 4 (IPv4) and Tnternet Protocol version 6 (IPv6) addresses within an autonomous system, the autonomous system including a plurality of network elements arranged at various edge locations to facilitate exchanging messages with a plurality of devices, the network elements being configured to translate between IPv4 and TPv6 addresses as a function of instructions received from the controller, the computer-readable medium comprising instructions sufficient for: determining a first Domain Name System (DNS) query originating from a first device of the plurality of devices, the first device having been previously assigned a first lPv4 address; determining a first DNS record for the first DNS query, the first DNS record indicating a first lPv6 address for a first sen-er outside of the autonomous system; determining a first network element closest to the first device; determining a second network element closest to the first server; associating a second IPv4 address with the first IPv6 address; associating a second IPv6 address with the first IPv4 address; instructing the first network element to translate an upstream traveling first message originating from the first device for transfer over the autonomous system to the first server, the first message having the first TPv4 address as a first source address and the second IPv4 address as a first destination address, such that the first source address becomes the second TPv6 address and the first destination address becomes the first lPv6 address: and instructing the second network element to translate a downstream traveling second message originating from the first server for transport over the autonomous system to the first device, the second message having the first IPvô address as a second source address and the second TPv6 address as a second destination address, such that the second source address becomes the second lPv4 address and the second destination address becomes the first lPv4 address; instructing the second network element to relay the first message without translating the first source and destination addresses such that source and destination address translation of the first message only occurs at the first network element; instructing the first network element to relay the second message without translating the second source and destination addresses such that source and destination address translation of the second message only occurs at the second network element; and wherein the first and second messages are exchanged between the first device and the first server as part of a transfer control protocol (TCP) session, whereby the tTanslation of the first message at the first network element and the translation of the second message at the second network element characterizes the TCP session as having split network address translation.
- 3. The non-transitory computer-readable medium of claim 1 further comprising instructions sufficient for: determining a load on the second network ekment; instructing the second network element to relay a third message having the first and second IPv6 addresses respectively as source and destination addresses to a third network element without translating the first and second lPv6 addresses if the load is greater than a threshold, the third network ekment then translating the third message for transmission to the first network element, including translating the second IPv6 address to the first IPv4 address and the first IPv6 address to the second IPv4 address.
- 4. The non-transitory computer-readable medium of claim 3 further comprising instructions sufficient for instructing the second network element to translate the third message for transmission to the first network element if the load is less than the threshold, including translating the second IPv6 address to the first IPv4 address and the first IPv6 address to the second TPv4 address.
- 5. The non-transitory computer-readable medium of claim I further comprising instructions sufficient for: instructing the second network element to relay a third message having the first and second IPvG addresses respectively as source and destination addresses to a third network element without translating the first and second TPvb addresses if the third message includes a payload of a first type, the third network element then translating the third message for transmission to the first network e'ement, including trans'ating the second IPvô address to the first lPv4 address and the first lPv6 address to the second lPv4 address and translating the payload from the first type to a second type.
- 6. The non-transitory computer-readable medium of claim 1 further comprising instructions sufficient for querying a Dynamic Host Configuration Protocol (DHCP) server for the first DNS record.
- 7. The non-transitory computer-readable medium of claim I further comprising instructions sufficient for determining the second IPv4 address by compressing an entirety of the first IPvô address into a compressed expression, the first IPv6 address comprisillg a first number of binary bits aild the compressed expressioll comprising a second number of binary bits, the second number being less than the first number; selecting an availabk IPv4 address prefix; and adding the selected lPv4 address prefix to the compresses compressed expression to form the second IPv4 address, the second IPv4 address beillg valid for IP-based communications.
- 8. A method of trans'ating network addresses for a plurality of messages being transported within an autonomous system between an kternet Protocol (IP) version 4 (IPv4) dependent device aild an IP version 6 (IPv6) dependent device as part of a session, the IPv4 dependent device being referred to hereinafter as a first device and the IPv6 dependent device being referred to herein after as a second device, the autonomous system including a plurality of network elements having network address translation capabilities, the plurality of network elements being operable according to a common interior gateway protocol, the method comprising: instructing a first network element of the plurality network elements to translate addressing information included within one or more upstream messages, the one or more upstream messages being a corresponding one or more of the plurality of messages determined to he transported over the autonomous system in an upstream direction between the first and second devices; instructing a second network element of the plurality network elements to translate addressing information included within one or more downstream messages, the one or more downstream messages being a corresponding one or more of the plurality of messages determined to be transported over the autonomous system in a downstream direction between the first and second devices; instructing the first network element to relay the downstream messages without translation of the included addressing information; and instructing the second network element to relay the upstream messages without translation of the included addressing information.
- 9. The method of claim 8 further comprising selecting the first network element to be the one of the plurality of network elements closest to the fir st device and selecting the second network element to be the one of the plurality of iletwork elements closest to the second device.
- 10. The method of claim 8 further comprising selecting the first network element to be the one of the plurality of network elements closest to the first device and selecting the second network element to be one of the plurality network elements (next closest network elements) other than the one of the iletwork elements closest to the second device (closest network element).
- 11. The method of claim 10 further comprising selecting the second iletwork element to be the one of the next closest network elements closest to the closest network element having a application layer gateway (ALO), the closest network element not having an ALO.
- 12. The method of claim S further comprising: determining a first address assigned to the first device and a second address assigned to the second device, the first address being one of a first TPv4 address and a first IPv6 address and the second address being the other one of the first IPv4 address and the first IPv6 address: generating a third address for association with the first device, tile third address being one of a second IPv4 address and a second IPvb address, including associating the second TPv4 address with the first device if the first address is the first TPv4 address and associating the second TPv6 address with the first device if the first address is the first IPvG address; and generating a fourth address for association with the second device, the fourth address being the one of the second lPv4 address and the second IPv6 address not associated with the first device.
- 13. The method of claim 12 further comprising instructing the first network element to translate each upstream message having the first address as a first source address and the third address as a first destination address such that the first source address becomes the fourth address and the first destination address becomes the second address.
- 14. The method of claim 12 further comprising instructing the second network element to translate each downstream message having the second address as a first source address and the fourth address as a first destination address such that the first source address becomes the third address and the first destination address becomes the first address.
- 15. The method of claim 12 further comprising determining the second address based at least in part on a Dynamic Name System (DNS) query issued from the first device.
- 16. The method of c'aim 8 further comprising instructing the first md second network elements with instructiolls issued from a controller, the controller configured to generate the instructions according to OpenNow (OF).
- 17. An autonomous system comprising: a plurality of network elements having network routing and network address translation capabilities; and a controller configured to: i) determine messaging paths for each message transported between at least two network elements within the autonomous system; ii) implement split network address translation for messages transported within messaging paths between devices having incompatible addressing requirements, including, on a path by path basis, instructing one of the network elements in the corresponding messaging path to translate upstream messages according to addressing requirements of a corresponding upstream device and a different one of the network e'ements in the corresponding messaging path to translate downstream messages according to addressing requirements of a corresponding downstream device iii) instruct the one of the network elements to relay the downstream messages without translation of addressing previously translated with the different one of the network elements; and iv) instruct the different one of the network elements to relay the upstream messages without translation of addressing previously translated with the one of the network elements.
- 18. The autonomous system of claim 17 wherein the controller is configured to transmit instructions to the network elements associated with implementing the split network address translation according to OpenFlow (OF).
- 19. The autonomous system of claim 17 wherein the controller is configured to ideiltify incompatible devices based at least in part on a Dynamic Name System (DNS) query issued from one of the incompatible devices.
- 20. The autollomous system of claim 19 where the controllers configured to ideiltify illcompatible devices when the correspolldillg DNS query indicates one of an Internet Protocol (IP) version 6 (TPv6) address for a specified universal resource locator (URL) and the device issuing the DNS query is dependent on IP version 4 (TPv4).
- 21. A non-transitory computer-readable medium having a plurality of instructions, operable with a processor of a controller, sufficiellt to facilitate translation of Internet Protocol version 4 (IPv4) and Tnternet Protocol version 6 (IPv6) addresses within an autonomous system, the autonomous system including a plurality of network elements arrrniged at various edge locations to facilitate exchanging messages with a plurality of devices, the network elements being configured to translate between IPv4 and TPv6 addresses as a function of instructions received from the controller, the computer-readable medium comprising instructions sufficient for: determining a first Domain Name System (DNS) query originating from a first device of the plurality of devices, the first device having been previously assigned a first lPv4 address; determining a first DNS record for the first DNS query, the first DNS record indicating a first lPv6 address for a first server outside of the autonomous system; determining a first network element closest to the first device; determining a second network element closest to the first server; associating a second IPv4 address with the first IPv6 address: associating a second IPv6 address with the first IPv4 address: instructing the first network element to translate an upstream traveling first message originating from the first device for transfer over the autonomous system to the first server, the first message having the first IPv4 address as a first source address and the second IPv4 address as a first destination address, such that the first source address becomes the second IPv6 address and the first destination address becomes the first lPv6 address; instructing the second network elemeilt to translate a downstream traveling second message originating from the first server for transport over the autonomous system to the first device, the second message having the first IPv6 address as a second source address and the second IPv6 address as a second destination address, such that the second source address becomes the second IPv4 address and the second destination address becomes the first IPv4 address; determining a second Domain Name System (DNS) query origillating from the first device of the plurality of devices; determilling a second DNS record for the second DNS query, the second DNS record indicating a third IPv4 address for a second server outside of the autonomous system: and instructing the first network element to relay an upstream traveling third message originating from the first device for transfer over the autonomous system to the second server without translation of the first and third IPv4 addresses, the second message having the first TPv4 address as a second source address and the third TPv4 address as a second destination address.Amendments to the Claims have been filed as follows WHAT WE CLAIM IS: 1. A non-transitory computer-readable medium having a plurality of instructions, operable with a processor of a controller, sufficient to facilitate translation of Tnternet Protocol version 4 (lPv4) and Internet Protocol version 6 (lPv6) addresses within an autonomous system, the autonomous system including a plurality of network elements arranged at various edge locations to facilitate exchanging messages with a plurality of devices, the network elements being configured to translate between IPv4 and IPv6 addresses as a function of instructions received from the controller, the computer-readable medium comprising instructions sufficient for: determining a first Domain Name System (DNS) query originating from a first device of the plurality of devices, the first device having been previously assigned a first IPv4 address; determining a first DNS record for the first DNS query, the first DNS record indicating a first IPv6 address for a first server outside of the autonomous system: determining a first network element closest to the first device; determining a second network element closest to the first server; IC) associating a second IPv4 address with the first IPv6 address; associating a second IPv6 address with the first IPv4 address; instructing the first network element to translate an upstream traveling first message originating from the first device for transfer over the autonomous system to the first server, the first message having the first TPv4 address as a first source address and the second IPv4 address as a first destination address, such that the first source address becomes the second lPv6 address and the first destination address becomes the first IPv6 address: and instructing the second network element to translate a downstream traveling second message originating from the first server for transport over the autonomous system to the first device, the second message having the first IPv6 address as a second source address and the second lPv6 address as a second destination address, such that the second source address becomes the second lPv4 address and the second destination address becomes the first lPv4 address; instructing the second network element to relay the first message without address translation of the first and second IPv6 addresses; and instructing the first network element to relay the second message without address translation of the first and second IPv4 addresses.2. A non-transitory computer-readable medium having a plurality of instructions, operable with a processor of a controller, sufficient to facilitate translation of Tnternet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6) addresses within an autonomous system, the autonomous system including a plurality of network elements arranged at various edge locations to facilitate exchanging messages with a plurality of devices, the network elements being configured to translate between IPv4 and TPv6 addresses as a function of instructions received from the controller, the computer-readable medium comprising instructions sufficient for: determining a first Domain Name System (DNS) query originating from a first device of the plurality of devices, the first device having been previously assigned a first lPv4 address; determining a first DNS record for the first DNS query, the first DNS record indicating a first lPv6 address for a first server outside of the autonomous system; determining a first network element closest to the first device; determining a second network element closest to the first server; associating a second IPv4 address with the first IPv6 address; LI) associating a second IPv6 address with the first IPv4 address; instructing the first network element to translate an upstream traveling first message originating from the first device for transfer over the autonomous system to the first server, the first 0 message having the first TPv4 address as a first source address and the second lPv4 address as a first destination address, such that the first source address becomes the second TPv6 address and the first destination address becomes the first IPv6 address: and instructing the second network element to translate a downstream traveling second message originating from the first server for transport over the autonomous system to the first device, the second message having the first IPv6 address as a second source address and the second TPv6 address as a second destination address, such that the second source address becomes the second TPv4 address and the second destination address becomes the first IPv4 address; instructing the second network element to relay the first message without translating the first source and destination addresses such that source and destination address translation of the first message only occurs at the first network element; instructing the first network element to relay the second message without translating the second source and destination addresses such that source and destination address translation of the second message only occurs at the second network element; and wherein the first and second messages are exchanged between the first device and the first server as part of a transfer control protocol (TCP) session, whereby the tTanslation of the first message at the first network element and the translation of the second message at the second network element characterizes the TCP session as having split network address translation.3. The non-transitory computer-readable medium of claim 1 further comprising instructions sufficient for: determining a load on the second network ekment; instructing the second network element to relay a third message having the first and second IPv6 addresses respectively as source and destination addresses to a third network element without translating the first and second lPv6 addresses if the load is greater than a threshold, the third network element then translating the third message for transmission to the first network ekment, including translating the second IPv6 address to the first IPv4 address and the first IPv6 address to the second JPv4 address. IC)4. The non-transitory computer-readable medium of claim 3 further comprising instructions sufficient for instructing the second network element to translate the third message for 0 transmission to the first network element if the load is less than the threshold, including translating the second IPv6 address to the first IPv4 address and the first TPv6 address to the second IPv4 address.5. The non-transitory computer-readable medium of claim 1 further comprising instructions sufficient for: instructing the second network element to relay a third message having the first and second IPvG addresses respectively as source and destination addresses to a third network element without translating the first and second TPvb addresses if the third message includes a payload of a first type, the third network element then translating the third message for transmission to the first network element, including translating the second IPv6 address to the first IPv4 address and the first lPv6 address to the second IPv4 address and translating the payload from the first type to a second type.6. The non-transitory computer-readable medium of claim 1 further comprising instructions sufficient for querying a Dynamic Host Configuration Protocol (DHCP) server for the first DNS record.7. The non-transitory computer-readable medium of claim I further comprising instructions sufficient for determining the second IPv4 address by compressing an entirety of the first IPvô address into a compressed expression, the first IPv6 address comprising a first number of billary bits md the compressed expression comprising a second nmnber of binary bits, the second number being less than the first number; selecting an available IPv4 address prefix; and adding the selected lPv4 address prefix to the compresses compressed expression to form the second IPv4 address, the second IPv4 address beillg valid for IP-based communications.8. A method of translating network addresses for a plurality of messages being LI) transported within an autonomous system between an kternet Protocol (IP) version 4 (IPv4) dependent device and an IP version 6 (IPv6) depeildent device as part of a session, the IPv4 dependent device being referred to hereillafter as a first device and the IPv6 dependeilt device being referred to 0 herein after as a second device, the autonomous system including a plurality of network elements having network address translation capabilities, the plurality of network elements being operable C\J according to a common interior gateway protocol, the method comprising: instructing a first network element of the plurality network elements to translate addressing information included within one or more upstream messages, the one or more upstream messages being a corresponding one or more of the plurality of messages determined to he transported over the autonomous system in an upstream direction between the first and second devices: instructing a second network element of the plurality network elements to translate addressing information included within one or more downstream messages, the one or more downstream messages being a corresponding one or more of the plurality of messages determined to be transported over the autonomous system in a downstream direction between the first and second devices; instructing the first network element to relay the dowllstream messages without translation of the included addressing information; and instructing the second network element to relay the upstream messages without translation of the included addressing information.9. The method of claim 8 further comprising selecting the first network element to he the one of the plurality of network elements closest to the first device and selecting the second network element to he the one of the plurality of network elements closest to the second device.10. The method of claim 8 further comprising selecting the first network element to be the one of the plurality of network elements closest to the fir st device and selecting the second network element to be one of the plurality network elements (next closest network elements) other than the one of the network elements closest to the second device (closest network element).11. The method of claim 10 further comprising selecting the second iletwork element to be the one of the next closest network elements closest to the closest network element LI) having a application layer gateway (ALO), the closest network element not having an ALO.12. The method of claim 8 further comprising: 0 determining a first address assigned to the first device and a second address assigned to the second device, the first address being one of a first TPv4 address and a first TPv6 address and the second address being the other one of the first IPv4 address and the first IPv6 address: generating a third address for association with the first device, the third address being one of a second IPv4 address and a second IPv6 address, including associating the second IPv4 address with the first device if the first address is the first TPv4 address and associating the second IPv6 address with the first device if the first address is the first TPv6 address; and generating a fourth address for association with the second device, the fourth address being the one of the second IPv4 address and the second TPv6 address not associated with the first device.13. The method of claim 12 further comprising instructing the first network element to translate each upstream message having the first address as a first source address and the third address as a first destination address such that the first source address becomes the fourth address and the first destination address becomes the second address.14. The method of claim 12 further comprising instructing the second network element to translate each downstream message having the second address as a first source address and the fourth address as a first destination address such that the first source address becomes the third address and the first destination address becomes the first address.15. The method of claim 12 further comprising determining the second address based at least in part on a Dynamic Name System (DNS) query issued from the first device.16. The method of c'aim 8 further comprising instructing the first aid second network elements with instructiolls issued from a controller, the controller configured to generate the instructions according to a suitable protocol. IC)17. An autollomous system comprising: a plurality of iletwork ekments having network routing and network address translatioll 0 capabilities; and a controller configured to: i) determine messaging paths for each message transported between at least two network elements within the autonomous system; ii) implement split network address translation for messages transported within messaging paths between devices having incompatible addressing requirements, including, on a path by path basis, instructing one of the network elements in the corresponding messaging path to translate upstream messages according to addressing requirements of a corresponding upstream device and a different one of the network elements in the coffesponding messaging path to translate downstream messages according to addressing requirements of a corresponding downstream device iii) instruct the one of the iletwork elements to re'ay the downstream messages without translation of addressing previously translated with the different one of the network elements; and iv) instruct the different one of the network elements to relay the upstream messages without translation of addressing previously translated with the one of the network elements.I 8. The autonomous system of claim 17 wherein the controller is configured to transmit instructions to the network elements associated with implementing the split network address translation according to a suitable protocol.19. The autonomous system of claim 17 wherein the controller is configured to identify incompatible devices based at least in part on a Dynamic Name System (DNS) query issued from one of the incompatible devices.20. The autonomous system of claim 19 where the controllers configured to identify incompatible devices when the corresponding DNS query indicates one of an Internet Protocol (IP) versioll 6 (IPv6) address for a specified ulliversal resource locator (URL) and the device issuing the DNS query is depeildent on IP version 4 (IPv4).21. A non-transitory computer-readable medhim having a plurality of instructions, 0 operable with a processor of a controller, sufficient to facilitate trrnmlation of Internet Protocol versioll 00 4 (IPv4) and Internet Protocol version 6 (IPv6) addresses within im autollomous system, the autonomous system including a plurality of network elements arraiiged at various edge locations to facilitate exchanging messages with a plurality of devices, the network elements being configured to translate between IPv4 aild IPv6 addresses as a function of rnstructions received from the controller, the computer-readable medium comprising instructions sufficient for: determilling a first Domain Name System (DNS) query origillating from a first device of the plurality of devices, the first device having been previously assigned a first IPv4 address; determining a first DNS record for the first DNS query, the first DNS record indicating a first IPv6 address for a first server outside of the autonomous system: determining a first network element closest to the first device; determining a second network element closest to the first server; associating a second lPv4 address with the first lPv6 address; associating a second lPv6 address with the first lPv4 address; instructing the first network element to translate an upstream traveling first message originating from the first device for transfer over the autonomous system to the first server, the first message having the first TPv4 address as a first source address and the second IPv4 address as a first destination address, such that the first source address becomes the second TPv6 address and the first destination address becomes the first lPv6 address: instructing the second network element to translate a downstream traveling second message originating from the first server for transport over the autonomous system to the first device, the second message having the first IPv6 address as a second source address and the second IPv6 address as a second destination address, such that the second source address becomes the second lPv4 address and the second destination address becomes the first IPv4 address; determining a second Domain Name System (DNS) query originating from the first device of the plurality of devices; determining a second DNS record for the second DNS query, the second DNS record indicating a third IPv4 address for a second server outside of the autonomous system: and LI) instructing the first network element to relay an upstream traveling third message originating from the first device for transfer over the autonomous system to the second server without translation of the first and third IPv4 addresses, the second message having the first IPv4 address as a 0 second source address and the third TPv4 address as a second destination address. aD (4
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/250,829 US9009353B1 (en) | 2014-04-11 | 2014-04-11 | Split network address translation |
Publications (3)
Publication Number | Publication Date |
---|---|
GB201504156D0 GB201504156D0 (en) | 2015-04-29 |
GB2525088A true GB2525088A (en) | 2015-10-14 |
GB2525088B GB2525088B (en) | 2016-02-24 |
Family
ID=52782382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1504156.9A Active GB2525088B (en) | 2014-04-11 | 2015-03-12 | Split network address translation |
Country Status (6)
Country | Link |
---|---|
US (2) | US9009353B1 (en) |
JP (1) | JP5848478B2 (en) |
CA (1) | CA2884683C (en) |
DE (1) | DE102015004668B4 (en) |
GB (1) | GB2525088B (en) |
HK (1) | HK1216362A1 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009353B1 (en) * | 2014-04-11 | 2015-04-14 | Cable Television Laboratories, Inc. | Split network address translation |
MA41502A (en) * | 2015-02-14 | 2017-12-19 | Valimail Inc | CENTRALIZED VALIDATION OF EMAIL SENDERS BY TARGETING EHLO NAMES AND IP ADDRESSES |
CA2982783A1 (en) * | 2015-04-15 | 2016-10-20 | Level 3 Communications, Llc | System and method for correlating routing protocol information |
US10476980B2 (en) | 2015-08-07 | 2019-11-12 | Dell Products L.P. | Remote socket splicing system |
US9705949B2 (en) * | 2015-08-11 | 2017-07-11 | At&T Intellectual Property I, L.P. | Multi-hop small cell auto discovery for software defined networking-enabled radio access network |
CN107040616B (en) * | 2016-02-04 | 2020-01-10 | 李实� | Conversion method and message receiving and transmitting method for TCP/DN/IP network compatible with TCP/IP network |
CN106656720A (en) * | 2016-10-31 | 2017-05-10 | 上海斐讯数据通信技术有限公司 | SDN-based IPv4 to IPv6 transition method and system |
US10594829B2 (en) | 2017-05-24 | 2020-03-17 | At&T Intellectual Property I, L.P. | Cloud workload proxy as link-local service configured to access a service proxy gateway via a link-local IP address to communicate with an external target service via a private network |
US11949593B2 (en) * | 2022-05-10 | 2024-04-02 | Cisco Technology, Inc. | Stateless address translation at an autonomous system (AS) boundary for host privacy |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021706A1 (en) * | 1996-11-01 | 2002-02-21 | Hitachi, Ltd. | Communicating method between IPv4 terminal and IPv6 terminal and IPv4-IPv6 converting apparatus |
US20040190549A1 (en) * | 2003-03-27 | 2004-09-30 | Christian Huitema | Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload |
US20060153230A1 (en) * | 2005-01-13 | 2006-07-13 | Yokogawa Electric Corporation | IPv6 / IPv4 translator |
US20100061380A1 (en) * | 2008-09-05 | 2010-03-11 | Cisco Technology, Inc., A Corporation Of California | Load Balancing across Multiple Network Address Translation (NAT) Instances and/or Processors |
US20130111065A1 (en) * | 2011-10-31 | 2013-05-02 | Cable Television Laboratories, Inc. | Internet protocol (ip) address translation |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3531367B2 (en) * | 1996-07-04 | 2004-05-31 | 株式会社日立製作所 | Translator |
US6331984B1 (en) * | 1998-08-21 | 2001-12-18 | Nortel Networks Limited | Method for synchronizing network address translator (NAT) tables using the server cache synchronization protocol |
US6691165B1 (en) * | 1998-11-10 | 2004-02-10 | Rainfinity, Inc. | Distributed server cluster for controlling network traffic |
US7133365B2 (en) * | 2001-11-02 | 2006-11-07 | Internap Network Services Corporation | System and method to provide routing control of information over networks |
US7814232B2 (en) * | 2003-03-28 | 2010-10-12 | Cisco Technology, Inc. | Network address translation with gateway load distribution |
BR0318156A (en) * | 2003-04-01 | 2006-02-21 | Ericsson Telefon Ab L M | method and system for enabling the establishment of a connection between a node of an interior address domain and a node of an exterior address domain, portal resource manager for a communication portal, interior domain communication terminal, and methods to configure an interior domain communication node for communication with an exterior domain communication node, and to address processes on interior domain nodes |
US8473620B2 (en) * | 2003-04-14 | 2013-06-25 | Riverbed Technology, Inc. | Interception of a cloud-based communication connection |
US20050015497A1 (en) * | 2003-05-29 | 2005-01-20 | Hidetoshi Yokota | Automatic IPv6 connect agent discovery using DNS |
IES20050519A2 (en) * | 2005-08-04 | 2006-12-13 | Asavie R & D Ltd | Network communications system and method |
EP2111701B1 (en) * | 2007-01-31 | 2018-12-05 | BroadSoft, Inc. | System and method for reestablishing, with a client device, a signaling session associated with a call in progress |
US8428057B2 (en) * | 2007-03-14 | 2013-04-23 | Cisco Technology, Inc. | Optimizing return traffic paths using network address translation |
US7853680B2 (en) * | 2007-03-23 | 2010-12-14 | Phatak Dhananjay S | Spread identity communications architecture |
WO2008122828A1 (en) * | 2007-04-04 | 2008-10-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Large scale mobile network address translation |
US8170014B1 (en) * | 2009-07-22 | 2012-05-01 | Cisco Technology, Inc. | Multiple NAT traversal protocol |
US8289968B1 (en) * | 2010-10-27 | 2012-10-16 | Juniper Networks, Inc. | Distributed network address translation in computer networks |
US20120303809A1 (en) * | 2011-05-25 | 2012-11-29 | Microsoft Corporation | Offloading load balancing packet modification |
JP5741312B2 (en) * | 2011-08-12 | 2015-07-01 | 富士通株式会社 | Address translation device, communication system, address translation program, and address translation method |
US9003002B2 (en) * | 2012-01-18 | 2015-04-07 | Microsoft Technology Licensing, Llc | Efficient port management for a distributed network address translation |
US9049273B2 (en) | 2012-02-14 | 2015-06-02 | Cable Television Laboratories, Inc. | Selective network transmission |
US9553801B2 (en) | 2012-09-25 | 2017-01-24 | Google Inc. | Network device |
US9009353B1 (en) * | 2014-04-11 | 2015-04-14 | Cable Television Laboratories, Inc. | Split network address translation |
-
2014
- 2014-04-11 US US14/250,829 patent/US9009353B1/en active Active
-
2015
- 2015-03-12 GB GB1504156.9A patent/GB2525088B/en active Active
- 2015-03-13 CA CA2884683A patent/CA2884683C/en active Active
- 2015-04-09 US US14/682,185 patent/US10110711B2/en active Active
- 2015-04-09 JP JP2015079983A patent/JP5848478B2/en active Active
- 2015-04-13 DE DE102015004668.3A patent/DE102015004668B4/en active Active
-
2016
- 2016-04-11 HK HK16104078.9A patent/HK1216362A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021706A1 (en) * | 1996-11-01 | 2002-02-21 | Hitachi, Ltd. | Communicating method between IPv4 terminal and IPv6 terminal and IPv4-IPv6 converting apparatus |
US20040190549A1 (en) * | 2003-03-27 | 2004-09-30 | Christian Huitema | Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload |
US20060153230A1 (en) * | 2005-01-13 | 2006-07-13 | Yokogawa Electric Corporation | IPv6 / IPv4 translator |
US20100061380A1 (en) * | 2008-09-05 | 2010-03-11 | Cisco Technology, Inc., A Corporation Of California | Load Balancing across Multiple Network Address Translation (NAT) Instances and/or Processors |
US20130111065A1 (en) * | 2011-10-31 | 2013-05-02 | Cable Television Laboratories, Inc. | Internet protocol (ip) address translation |
Also Published As
Publication number | Publication date |
---|---|
CA2884683C (en) | 2016-01-19 |
HK1216362A1 (en) | 2016-11-04 |
JP2015204626A (en) | 2015-11-16 |
CA2884683A1 (en) | 2015-05-22 |
DE102015004668B4 (en) | 2016-03-31 |
GB2525088B (en) | 2016-02-24 |
JP5848478B2 (en) | 2016-01-27 |
US9009353B1 (en) | 2015-04-14 |
US10110711B2 (en) | 2018-10-23 |
GB201504156D0 (en) | 2015-04-29 |
DE102015004668A1 (en) | 2015-10-15 |
US20150296056A1 (en) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2884683C (en) | Split network address translation | |
US9491138B2 (en) | Internet protocol (IP) address translation | |
US8509244B2 (en) | Method and apparatus for providing host node awareness for multiple NAT64 environments | |
EP2449749B1 (en) | Method and apparatus for relaying packets | |
US20070189311A1 (en) | Symmetric network address translation system using stun technique and method for implementing the same | |
US20130117460A1 (en) | Data management methods for use in a network system and network systems using the same | |
CN102547553B (en) | Method, system and device for accessing service based on wireless application protocol (WAP) | |
US7764686B1 (en) | Migration to IPv6 using combination of globally significant and locally significant IPv4 addresses | |
US10129145B2 (en) | Routing IPv6 packets between autonomous systems | |
CN103888554A (en) | IPv4 and IPv6 compatible domain name resolution method and system | |
US9380021B2 (en) | Network address translation | |
CN103414800A (en) | Allocation and selection method and system of distributed relay servers in NAT traversal | |
Korhonen et al. | Analysis of solution proposals for hosts to learn NAT64 prefix | |
CN101043514B (en) | Method for reusing byname connection | |
US9369523B2 (en) | Method for exchanging network messages in distributed manner | |
WO2004021629A2 (en) | Method and apparatus for providing management access to devices behind a network address translator (nat) | |
KR100424154B1 (en) | Method for dispersing a protocol translator by using domain name server system | |
CN102118378A (en) | 3C (Computer Communication Consumer electronic) cooperation device, communication system and communication methods | |
JP5023672B2 (en) | Packet relay device | |
TW201616844A (en) | Network connection system for solving connection limitations of network address translation and method thereof | |
KR101768038B1 (en) | Method for connecting multimedia session |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1216362 Country of ref document: HK |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1216362 Country of ref document: HK |