Dynamic Internet Protocol Translation using Port Control Protocol communications
Sending option requests to network devices through PCP client devices to obtain IPv6 prefixes solves the problem that PLAT cannot determine whether to convert IPv6 addresses in the 464XLAT architecture, achieving correct routing of services and efficient utilization of resources.
Patent Information
- Application Number
- CN202010935882.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-07-17
- Filing Date
- 2020-09-08
- Publication Date
- 2025-03-25
- Estimated Expiration
- 2040-11-13
AI Technical Summary
In the 464XLAT architecture, PLAT may not be able to determine whether the address of the IPv6 packet should be converted into an IPv4 address, resulting in incorrect routing of services and wasted computing resources.
An option request is sent to the network device through the PCP client device to obtain the source IPv6 prefix and the destination IPv6 prefix, allowing the IPv4 source device to use these prefixes to send services to the IPv4 destination device.
Ensure that services can be correctly routed to IPv4 destination devices, avoiding resource waste caused by incorrect routing.
Smart Images

Figure CN113949744B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate to dynamic Internet Protocol switching, and more particularly to dynamic Internet Protocol switching using port control protocol communications. Background Art
[0002] The Internet Protocol (IP) is a communication protocol for sending and receiving packets over a network (e.g., the Internet). A Network Address Translator (NAT) can provide translation of IP addresses in packets between private IP addresses and public IP addresses. In addition, NAT can support translation of IP addresses between different versions of IP as well as between the same version of IP. Summary of the invention
[0003] In some implementations, a method includes: receiving, by a network device, an option request from a client device, the option request including a source address of a source device and a destination address of a destination device, wherein the network device is associated with an Internet Protocol version 6 (IPv6) network; identifying, by the network device, a mapping code associated with an address translation for a service associated with the destination device; determining, by the network device, a source prefix code and a destination prefix code for the address translation based on the identified mapping code; determining, by the network device, a source IPv6 prefix and a destination IPv6 prefix for the address translation based on the source prefix code and the destination prefix code; and providing, by the network device, an option response to the option request to the client device to allow the source device to use the source IPv6 prefix and the destination IPv6 prefix for the service.
[0004] In some implementations, a network device includes one or more memories and one or more processors to: receive an option request from a port control protocol (PCP) client device, the option request including a source address of an Internet Protocol version 4 (IPv4) source device and a destination address of an IPv4 destination device, wherein the network device is associated with an Internet Protocol version 6 (IPv6) network; determine a source IPv6 prefix and a destination IPv6 prefix for address translation to facilitate communication between the IPv4 source device and the IPv4 destination device via the IPv6 network based on the PCP client device and the IPv4 destination device being associated with one or more IPv4 networks; and provide an option response to the option request to the PCP client device to cause the IPv4 source device to send traffic to the IPv4 destination device using the source IPv6 prefix and the destination IPv6 prefix.
[0005] In some implementations, a non-transitory computer-readable medium storing instructions includes one or more instructions that, when executed by one or more processors of a source device, cause the one or more processors to: obtain a destination address associated with a destination device; based on the destination address, configure an option request associated with communicating with the destination device via an Internet Protocol version 6 (IPv6) network; send an option request associated with address translation to a network device of the IPv6 network for traffic associated with the destination device; receive a source IPv6 prefix and a destination IPv6 prefix from the network device and associated with the option request; and maintain the source IPv6 prefix and the destination IPv6 prefix in a data structure as IPv6 address information for sending traffic to the destination device. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Figure 1A to Figure 1B is a schematic diagram of an example implementation described herein.
[0007] Figure 2 is a schematic diagram of an example environment in which the systems and / or methods described herein may be implemented.
[0008] Figure 3 to Figure 4 yes Figure 2 A schematic diagram of example components of one or more devices.
[0009] Figures 5 to 7 is a flow diagram of an example process associated with dynamic Internet Protocol translation for port control protocol communications. DETAILED DESCRIPTION
[0010] The following detailed description of example implementations refers to the accompanying drawings.The same reference numbers in different drawings may identify the same or similar elements.
[0011] Some devices and / or applications may support IPv4. Other devices and / or applications may support IPv6. NAT may be used to map an address space (e.g., IPv4, IPv6, etc.) to another address space (e.g., IPv6, IPv4, etc.) by modifying the network address information in the IP datagram header when the network address information is being routed between network devices.
[0012] The 464XLAT architecture provides IPv4 connectivity over an IPv6 network by using stateful protocol translation at the core device and stateless protocol translation at the edge device. For example, an application hosted by a first device may support IPv4 and may need to send IPv4 packets over an IPv6 network to a second device that also supports IPv4. In this case, the first device may use a client-side translator (CLAT) to perform stateless translation of IPv4 addresses to IPv6 addresses.
[0013] In stateless conversion, CLAT can convert IPv4 packets into IPv6 packets. For example, CLAT can convert a private IPv4 address included in the header of a packet into an IPv6 address by adding a CLAT prefix to the IPv4 address. Additionally, the first device can provide an IPv6 packet to a network device associated with an IPv6 network. In this case, the network device can use a provider-side translator (PLAT) to convert IPv6 packets into IPv4 packets, and can convert IPv6 addresses into public IPv4 addresses without using a CLAT prefix. In addition, the network device can provide an IPv4 packet to a second device.
[0014] The stateful NAT64 architecture provides IPv6 connectivity over an IPv4 network by using stateful protocol translation at the core device. For example, an application hosted by a first device may support IPv6 and may need to send IPv6 packets over an IPv4 network to a second device that supports IPv4. In this case, the first device can use NAT to perform stateful translation to convert IPv6 packets to IPv4 packets. For example, NAT can translate a private IPv6 address into a public IPv4 address and provide the IPv4 packet to the second device.
[0015] In some cases, according to the stateful NAT64 architecture, the first device may send a port control protocol (PCP) request to the NAT, and the NAT may provide a prefix and / or suffix to the first device in a PCP response, which prefix and / or suffix will be used in the destination IPv6 address of the IPv6 packet sent to the IPv4 device. The prefix and / or suffix may indicate that the IPv6 address is to be converted to an IPv4 address when the destination IPv6 address of the IPv6 packet is included. In this way, based on the PCP response, the first device may configure the IPv6 packet to include a prefix and / or suffix with an IPv6 address, so that the NAT can determine when to convert the IPv6 address to an IPv4 address, so that the NAT can correctly route the IPv6 packet to the IPv4 device.
[0016] However, this PCP request / response functionality is not available for the 464XLAT architecture. Therefore, when the PLAT receives an IPv6 packet from an IPv4 device, unless the PLAT is configured with information indicating how to handle traffic from the IPv4 device, the PLAT may not be able to determine whether the PLAT should convert the address of the IPv6 packet to an IPv4 address. This may cause the PLAT to incorrectly route traffic including IPv6 packets received by the PLAT from the IPv4 device (e.g., by incorrectly routing traffic without converting the address of the traffic when the address should be converted, or by incorrectly routing traffic with converted addresses when the address should not be converted). Incorrectly routing traffic may cause additional computing resources (e.g., processing resources, memory resources, communication resources, etc.) to be used to process, receive, and / or retransmit incorrectly routed traffic.
[0017] Some implementations described herein provide a PCP client device that sends an option request to a network device of an IPv6 network to cause the network device to send an option response including a source IPv6 prefix and / or a destination IPv6 prefix to the PCP client device. The PCP client device may provide the source IPv6 prefix and the destination IPv6 prefix to an IPv4 source device to allow the IPv4 source device to include the source IPv6 prefix in a source address of a packet and to include the destination IPv6 prefix in a destination address of a packet to be transmitted via the network device (e.g., via the IPv6 network) to an IPv4 destination device. The source IPv6 prefix and the destination IPv6 prefix may indicate to the network device that the IPv4 source device is an IPv4 device, that the IPv4 destination device is an IPv4 device, and / or that the network device will provide XLAT 464 conversion of the packet. In this way, the network device can determine that the network device is to convert the source address and the destination address to an IPv4 address based on the source IPv6 prefix in the source address of the packet and the destination IPv6 prefix in the destination address of the packet to allow the packet to be correctly routed to the IPv4 destination device. This can avoid business losses and prevent computing resources (e.g., processing resources, memory resources, communication resources, etc.) from being used to process, receive and / or retransmit incorrectly routed business.
[0018] In the following description, implementations will be described in the context of converting from IPv4 to IPv6 or vice versa. In practice, one or more of these implementations may be equally applicable to converting from a first version of IP (commonly referred to as IPvX) to a second version of IP (commonly referred to as IPvY) (where X≠Y), where the first version of IP is different from the second version of IP (i.e., a later version or an earlier version of IP).
[0019] Figure 1A to Figure 1B is a schematic diagram of the example 100 described herein. Figure 1A to Figure 1B As shown, example 100 includes a PCP client device, a network device, and an IPv4 destination device. The network device may be included in an IPv6 network (e.g., a network capable of supporting IPv4 and / or IPv6) and may host a PLAT, NAT, etc. The PCP client device may include a client device of a first network (e.g., a first private IPv4 network) and / or may be included in a CLAT of the first network. The IPv4 destination device may include a client device of a second network different from the first network (e.g., a second private IPv4 network).
[0020] In some implementations, an IPv4 source device (not shown) may be associated with a PCP client device (e.g., the IPv4 source device may be a client device of a first network) and is to communicate with an IPv4 destination device (e.g., the IPv4 source device will send one or more packets to the IPv4 destination device). Therefore, the IPv4 source device may obtain a destination address of the IPv4 destination device from a domain name service (DNS) device or another device. In some implementations, after obtaining the destination address, the IPv4 source device may attempt to communicate with the IPv4 destination device via an IPv6 network.
[0021] As in Figure 1A As shown by reference numeral 105 in FIG. 1 , the PCP client device may configure an option request to send to a network device (e.g., to allow the network device to facilitate an IPv4 source device to communicate with an IPv4 destination device via an IPv6 network). In some implementations, the option request may include a mapping request code, an announcement request code, etc. For example, Figure 1A As shown, the option request may be a map PCP request including an 8-bit option code of "MAP". In some implementations, the option request may include a prefix code, which may be configured (e.g., may have a specific value or text string) to indicate that the option request includes a source prefix code and / or a destination prefix code. For example, Figure 1A As shown, the Map PCP Response may include a "PREF64" 8-bit option code to indicate that the option request includes a source prefix code and / or a destination prefix code as described herein.
[0022] In some implementations, the options request may include a source prefix code and / or a destination prefix code. The source prefix code may be configured (e.g., may have a specific value or text string) to cause the network device to provide a source IPv6 prefix to the PCP client device (e.g., in an options response described herein). The destination prefix code may be configured (e.g., may have a specific value or text string) to cause the network device to provide a destination IPv6 prefix to the IPv4 destination device (e.g., in an options response described herein). For example, Figure 1AAs shown, the mapped PCP request includes a "src_pref:: / m" source (Src) prefix code (where m≥1) and a "dest_pref:: / n" destination (Dest) prefix code (where n≥1) to indicate to the network device that the PCP client device requests a source IPv6 prefix and a destination IPv6 prefix. The source prefix code and the destination prefix code may be preconfigured codes associated with the IPv6 network (e.g., the PCP client device may be preconfigured to include ":: / m" or ":: / n" as part of any prefix code in the option request). In some implementations, the option request may include a source address of an IPv4 source device (e.g., an IPv4 source address) and / or a destination address of an IPv4 destination device (e.g., an IPv4 destination address). For example, as Figure 1A As shown, the mapping PCP request includes a source IP address of "192.168.1.2" and a destination IP address of "198.51.100.1".
[0023] As in Figure 1A As further shown in FIG. 1 by reference numeral 110, the PCP client device may send a selection request to the network device. For example, the PCP client device and / or the network device may establish a communication session with the network device. Thus, the PCP client device may send the selection request to the network device via the communication session.
[0024] As in Figure 1A As further shown in FIG. 1 by reference numeral 115, the network device may process the option request to identify a source IPv6 prefix and / or a destination IPv6 prefix (e.g., to be used by an IPv4 source device when sending a packet to an IPv4 destination device via an IPv6 network). For example, when the network device receives a mapping PCP request (e.g., such as, Figure 1A When the network device includes a Map PCP request (such as a Map PCP request shown in FIG. 1 ), the network device may determine that the network device will provide address translation (e.g., IPv4 to IPv6 to IPv4 address translation, also known as XLAT 464 translation) based on the "MAP" 8-bit option code, the "src_pref:: / m" Src prefix code, and / or the "dest_pref:: / n" Dest prefix code. Therefore, the network device may search a data structure (e.g., included in and / or accessible to the network device) based on the source address included in the Map PCP request to identify a source IPv6 prefix associated with the source address (e.g., such as Figure 1A As shown, for the source address of "192.168.1.2", the source IPv6 prefix is "2001:db8:aaa:: / m"). Additionally or alternatively, the network device may search the data structure based on the destination address included in the mapping PCP request to identify the destination IPv6 prefix associated with the destination address (e.g., Figure 1A As shown, for the "198.51.100.1" destination address, the destination IPv6 prefix is "2001:db8:bbb:: / n"). In some implementations, the destination address includes the public address of the IPv4 destination device, and the destination IPv6 prefix is associated with the public address of the IPv4 destination device. For example, "198.51.100.1" can be the IPv4 public address of the IPv4 destination address, and "2001:db8:bbb:: / n" can be the IPv6 public address of the IPv4 destination device.
[0025] As in Figure 1B As shown by reference numeral 120 in FIG. 1 , the network device may configure an option response (eg, in response to an option request received by the network device). The option response may include a mapping response code, an announcement response code, etc. For example, Figure 1B As shown, the option response may be a mapped PCP response including an 8-bit option code of "MAP". The option response may include a source IPv6 prefix and / or a destination IPv6 prefix. For example, Figure 1B As shown, the option response includes a source IPv6 prefix of "2001:db8:aaa:: / m" and a destination IPv6 prefix of "2001:db8:bbb:: / n".
[0026] In some implementations, the option response may include a prefix learning code that may be configured (e.g., may have a specific value or text string) to cause an IPv4 source device to use a source IPv6 prefix and / or a destination IPv6 prefix when sending traffic to an IPv4 destination device via an IPv6 network. Figure 1B As shown, the Map PCP Response may include a "PREF64" 8-bit option code to indicate to the PCP client device that the IPv4 source device is to use a source IPv6 prefix and / or a destination IPv6 prefix when sending traffic to an IPv4 destination device via the network device.
[0027] As in Figure 1B As further shown in FIG. 1 by reference numeral 125, the network device may send an option response to the PCP client device. For example, the network device may send the option response to IPv4 via a communication session established between the PCP client device and the network device.
[0028] As in Figure 1BAs further shown by reference numeral 130, the PCP client device may provide a source IPv6 prefix and / or a destination IPv6 prefix to an IPv4 source device to allow the IPv4 source device to use the source IPv6 prefix and / or the destination IPv6 prefix to send traffic (e.g., one or more packets) to an IPv4 destination device (e.g., via a network device of an IPv6 network). In some implementations, the PCP client device may process (e.g., parse) the options response to identify a response code and / or a prefix learning code, and may store the source IPv6 prefix and / or the destination IPv6 prefix in a data structure (e.g., included in the PCP client device and / or accessible to the IPv4 source device) based on the response code and / or the prefix learning code. The PCP client device may store the source IPv6 prefix with a source address of the source device (e.g., an IPv4 source address) in the data structure (e.g., as an IPv6 source address) and / or store the destination IPv6 prefix with a destination address of the destination device (e.g., an IPv4 destination address) in the data structure (e.g., as an IPv6 destination address).
[0029] For example, Figure 1B As shown, the PCP client device may store the “2001:db8:aaa:: / m” source IPv6 prefix and the “192.168.1.2” source address (e.g., IPv4 source address) as the “2001:db8:aaa::192.168.1.2” IPv6 source address based on the “MAP” 8-bit option code and / or the “PREF64” 8-bit option code included in the mapping PCP response. As another example, Figure 1B As shown, the PCP client device may store the "2001:db8:bbb:: / n" destination IPv6 prefix and the "198.51.100.1" destination address (e.g., IPv4 destination address) in a destination address table based on the "MAP" 8-bit option code and / or the "PREF64" 8-bit option code included in the mapping PCP response, which associates the "198.51.100.1" destination address with the "2001:db8:bbb::198.51.100.1" IPv6 destination address. Thus, the IPv4 source device may include the source IPv6 address in the source address of a packet to be sent to the IPv4 destination device via the network device and the IPv6 network and / or include the destination IPv6 address in the destination of the packet.
[0030] In some implementations, the PCP client device may send a packet (including a source IPv6 address and / or a destination IPv6 address) to the network device via a communication session established between the PCP client device and the network device. The network device may modify the packet (e.g., by removing a source IPv6 prefix from a source address of the IPv4 packet and / or by removing a destination IPv6 prefix from a destination address of the IPv4 packet) to route the packet to an IPv4 destination device. For example, the network device may modify a packet including a source address of "2001:db8:aaa::192.168.1.2" and a destination address of "2001:db8:bbb::198.51.100.1" to have a source address of "192.168.1.2" and a destination address of "198.51.100.1". The network device may then convert and / or route the packet to an IPv4 destination device.
[0031] Additionally or alternatively, the network device may receive an additional options request (e.g., including a request code, such as a mapping request code) and a destination address (e.g., an IPv4 destination address) of an IPv4 destination device from an IPv6 source device. The additional options request may include a prefix code that is configured (e.g., may have a specific value or text string) to cause the network device to provide a destination IPv6 prefix in an additional options response (e.g., which is a response to the additional options request). The network device may process the additional options request to identify the destination IPv6 prefix (e.g., with a prefix code that is consistent with the IPv6 prefix specified in the text of this document). Figure 1A The network device may configure the additional option response to include a response code (such as a mapping response code) and a destination IPv6 prefix (e.g., in a manner similar to that described herein with respect to Figure 1B The network device may send an additional response to the IPv6 source device to allow the IPv6 source to use the destination IPv6 prefix for traffic to be sent to the IPv4 destination device (e.g., in a manner similar to that described herein with respect to Figure 1B and in a manner similar to that described with reference numerals 125 and 130).
[0032] As indicated above, Figure 1A to Figure 1B are provided as examples. Other examples may differ from those regarding Figure 1A to Figure 1B as described. Figure 1A to Figure 1B The number and arrangement of devices shown are provided as examples. Figure 1A to Figure 1B There may be additional devices, fewer devices, different devices, or devices arranged differently than those shown. Figure 1A to Figure 1B Two or more of the devices shown may be implemented in a single device, or Figure 1A to Figure 1BThe single device shown may be implemented as multiple distributed devices. Additionally or alternatively, Figure 1A to Figure 1B The device collection (e.g., one or more devices) shown may perform the operations described as being performed by Figure 1A to Figure 1B Another set of devices is shown performing one or more functions.
[0033] Figure 2 2 is a schematic diagram of an example environment 200 in which the systems and / or methods described herein may be implemented. Figure 2 As shown, environment 200 may include one or more peer devices 210, one or more network devices 220-1 to 220-N (N≥1) (hereinafter collectively referred to as "network device 220" and individually referred to as "network device 220"), a first IPv4 network 230-1 and a second IPv4 network 230-2 (hereinafter collectively referred to as "IPv4 network 230" and individually referred to as "IPv4 network 230"), and an IPv6 network 240. The devices of environment 200 may be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections.
[0034] The peer device 210 includes one or more devices capable of receiving and / or providing network services. For example, the peer device 210 may include a service delivery device, such as a router, a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a server executing a virtual machine, etc.), a load balancer, or a similar type of device. Additionally or alternatively, the peer device 210 may include an endpoint device that is a source or destination of network services. For example, the peer device 210 may include a computer or a similar type of device.
[0035] In some implementations, peer devices 210 may receive network traffic from other peer devices 210 and / or may provide network traffic to other peer devices 210. For example, peer device 210-1 (e.g., associated with IPv4 network 230-1) may provide network traffic (e.g., one or more packets) to peer device 210-2 (e.g., associated with IPv4 network 230-2). In this case, peer device 210-1 may provide network traffic to peer device 210-2 via network device 220 of IPv6 network 240. In some implementations, peer devices 210 may correspond to the network devices described herein with respect to Figure 1A to Figure 1B Described PCP client device and / or IPv4 destination device.
[0036] The network device 220 includes one or more devices (e.g., one or more service delivery devices) capable of processing, forwarding, and / or delivering services between peer devices (e.g., peer device 210) and / or service delivery devices (e.g., other network devices 220). For example, the network device 220 may include a router, such as a label switching router (LSR), a label edge router (LER), an ingress router, an egress router, a provider router (e.g., a provider edge router, a provider core router, etc.), a virtual router, etc. Additionally or alternatively, the network device 220 may include a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server, a data center server, etc.), a load balancer, or another type of service delivery device. In some implementations, the network device 220 may be a physical device implemented within a housing (e.g., a rack). In an implementation, the network device 220 may be a virtual device implemented by one or more computer devices of a cloud computing environment or a data center.
[0037] The IPv4 network 230 includes one or more wired and / or wireless networks that support IPv4 communications. For example, the IPv4 network 230 may include a cellular network (e.g., a fifth generation (5G) network, a fourth generation (4G) network (such as a long term evolution (LTE) network), a third generation (3G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber-based network, a cloud computing network, etc. and / or a combination of these or other types of networks.
[0038] The IPv6 network 240 includes one or more wired and / or wireless networks that support IPv6 communications. For example, the IPv6 network 240 may include a cellular network (e.g., a fifth generation (5G) network, a fourth generation (4G) network (such as a long term evolution (LTE) network), a third generation (3G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber-based network, a cloud computing network, etc. and / or a combination of these or other types of networks.
[0039] Figure 2 The number and arrangement of devices and networks shown are provided as examples. Figure 2There may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks arranged differently than those shown. Figure 2 Two or more of the devices shown may be implemented in a single device, or Figure 2 The single device shown may be implemented as multiple distributed devices. Additionally or alternatively, a set of devices (eg, one or more devices) of environment 200 may perform one or more functions described as being performed by another set of devices of environment 200.
[0040] Figure 3 2 is a diagram of example components of a device 300, which may correspond to a peer device 210 and / or a network device 220. In some implementations, a peer device 210 and / or a network device 220 may include one or more devices 300 and / or one or more components of a device 300. Figure 3 As shown, device 300 may include a bus 310 , a processor 320 , a memory 330 , a storage component 340 , an input component 350 , an output component 360 , and a communication interface 370 .
[0041] The bus 310 includes components that implement wired and / or wireless communications between components of the device 300. The processor 320 includes a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field programmable gate array, an application-specific integrated circuit, and / or another type of processing component. The processor 320 is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, the processor 320 includes one or more processors that can be programmed to perform functions. The memory 330 includes a random access memory, a read-only memory, and / or another type of memory (e.g., flash memory, magnetic memory, and / or optical memory).
[0042] The storage component 340 stores information and / or software related to the operation of the device 300. For example, the storage component 340 may include a hard disk drive, a disk drive, an optical disk drive, a solid state disk drive, a compact disk, a digital versatile disk, and / or another type of non-transient computer readable medium. The input component 350 enables the device 300 to receive input, such as user input and / or sensed input. For example, the input component 350 may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a global positioning system component, an accelerometer, a gyroscope, an actuator, etc. The output component 360 enables the device 300 to provide output, such as via a display, a speaker, and / or one or more light emitting diodes. The communication interface 370 enables the device 300 to communicate with other devices, such as via a wired connection and / or a wireless connection. For example, the communication interface 370 may include a receiver, a transmitter, a transceiver, a modem, a network interface card, an antenna, etc.
[0043] The device 300 may perform one or more processes described herein. For example, a non-transient computer-readable medium (e.g., memory 330 and / or storage component 340) may store an instruction set (e.g., one or more instructions, codes, software codes, program codes, etc.) for execution by the processor 320. The processor 320 may execute the instruction set to perform one or more processes described herein. In some implementations, execution of the instruction set by one or more processors 320 causes one or more processors 320 and / or the device 300 to perform one or more processes described herein. In some implementations, a hardwired circuit device may be used in place of an instruction or in combination with an instruction to perform one or more processes described herein. Therefore, the implementations described herein are not limited to any particular combination of hardware circuit devices and software.
[0044] Figure 3 The number and arrangement of components shown are provided as examples. Figure 3 The device 300 may include additional components, fewer components, different components, or components arranged differently than the components shown. Additionally or alternatively, a set of components (e.g., one or more components) of the device 300 may perform one or more functions described as being performed by another set of components of the device 300.
[0045] Figure 4 4 is a diagram of example components of device 400. Device 400 may correspond to peer device 210 and / or network device 220. In some implementations, peer device 210 and / or network device 220 may include one or more devices 400 and / or one or more components of device 400. Figure 4As shown, the device 400 may include one or more input components 410-1 to 410-B (B≥1) (hereinafter collectively referred to as input component 410, and individually referred to as input component 410), a switching component 420, one or more output components 430-1 to 430-C (C≥1) (hereinafter collectively referred to as output component 430, and individually referred to as output component 430) and a controller 440.
[0046] The input component 410 can be one or more attachment points of a physical link and can be one or more entry points for incoming traffic (such as packets). The input component 410 can process incoming traffic, such as by performing data link layer encapsulation or decapsulation. In some implementations, the input component 410 can transmit and / or receive packets. In some implementations, the input component 410 can include an input line card, which includes one or more packet processing components (e.g., in the form of an integrated circuit), such as one or more interface cards (IFCs), a packet forwarding component, a line card controller component, an input port, a processor, a memory, and / or an input queue. In some implementations, the device 400 may include one or more input components 410.
[0047] The switching component 420 can interconnect the input component 410 with the output component 430. In some implementations, the switching component 420 can be implemented via one or more crossbar switches, via a bus, and / or using a shared memory. The shared memory can act as a temporary buffer to store packets from the input component 410 before the packets are finally scheduled for delivery to the output component 430. In some implementations, the switching component 420 can enable the input component 410, the output component 430, and / or the controller 440 to communicate with each other.
[0048] The output component 430 can store packets and can schedule packets for transmission on an output physical link. The output component 430 can support data link layer encapsulation or decapsulation and / or various high-level protocols. In some implementations, the output component 430 can transmit packets and / or receive packets. In some implementations, the output component 430 may include an output line card, which includes one or more packet processing components (e.g., in the form of an integrated circuit), such as one or more IFCs, packet forwarding components, line card controller components, output ports, processors, memories, and / or output queues. In some implementations, the device 400 may include one or more output components 430. In some implementations, the input component 410 and the output component 430 can be implemented by the same set of components (e.g., and the input / output component can be a combination of the input component 410 and the output component 430).
[0049] Controller 440 includes a processor in the form of, for example, a CPU, a GPU, an APU, a microprocessor, a microcontroller, a DSP, an FPGA, an ASIC, and / or another type of processor. The processor is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, controller 440 may include one or more processors that can be programmed to perform a function.
[0050] In some implementations, controller 440 may include RAM, ROM, and / or another type of dynamic or static storage device (eg, flash memory, magnetic memory, optical memory, etc.) that stores information and / or instructions for use by controller 440 .
[0051] In some implementations, the controller 440 can communicate with other devices, networks, and / or systems connected to the device 400 to exchange information about the network topology. The controller 440 can create a routing table based on the network topology information, can create a forwarding table based on the routing table, and can forward the forwarding table to the input component 410 and / or the output component 430. The input component 410 and / or the output component 430 can use the forwarding table to perform a route lookup for incoming and / or outgoing packets.
[0052] The controller 440 may perform one or more processes described herein. The controller 440 may perform these processes in response to executing software instructions stored by a non-transient computer readable medium. A computer readable medium is defined herein as a non-transient memory device. A memory device includes memory space within a single physical memory device or memory space spread across multiple physical memory devices.
[0053] The software instructions may be read from another computer-readable medium or from another device into a memory and / or storage component associated with the controller 440 via a communication interface. When executed, the software instructions stored in the memory and / or storage component associated with the controller 440 may cause the controller 440 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, the implementations described herein are not limited to any specific combination of hardware circuitry and software.
[0054] Figure 4 The number and arrangement of components shown are provided as examples. Figure 4 The device 400 may include additional components, fewer components, different components, or components arranged differently than the components shown. Additionally or alternatively, a set of components (e.g., one or more components) of the device 400 may perform one or more functions described as being performed by another set of components of the device 400.
[0055] Figure 5 is a flow chart of an example process 500 associated with dynamic Internet Protocol conversion for PCP communications. In some implementations, Figure 5 One or more process blocks of may be performed by a network device (e.g., network device 220). In some implementations, Figure 5 One or more process blocks of may be performed by another device or device group separate from or including the network device, such as a peer device (eg, peer device 210), etc. Additionally or alternatively, Figure 5 One or more process blocks may be executed by one or more components of the device 300 (such as the processor 320, the memory 330, the storage component 340, the input component 350, the output component 360, the communication interface 370, etc.); the device 400 (such as the input component 410, the switching component 420, the output component 430, the controller 440, etc.); or the like.
[0056] like Figure 5 As shown, process 500 may include receiving an options request from a client device, the options request including a source address of a source device and a destination address of a destination device, wherein the network device is associated with an IPv6 network (block 510). For example, the network device may receive an options request from a client device, the options request including a source address of a source device and a destination address of a destination device, as described above. In some implementations, the network device is associated with an IPv6 network.
[0057] like Figure 5 As further shown, process 500 may include identifying a mapping code associated with an address translation for traffic associated with a destination device (block 520). For example, a network device may identify a mapping code associated with an address translation for traffic associated with a destination device, as described above.
[0058] like Figure 5 As further shown, process 500 may include determining a source prefix code and a destination prefix code for address translation based on the identification mapping code (block 530). For example, the network device may determine a source prefix code and a destination prefix code for address translation based on the identification mapping code, as described above.
[0059] As Figure 5 As further shown, process 500 may include determining a source IPv6 prefix and a destination IPv6 prefix for address translation based on the source prefix code and the destination prefix code (block 540). For example, the network device may determine a source IPv6 prefix and a destination IPv6 prefix for address translation based on the source prefix code and the destination prefix code, as described above.
[0060] like Figure 5As further shown, process 500 may include providing an option response to the option request to the client device to allow the source device to use the source IPv6 prefix and the destination IPv6 prefix for the traffic (block 550). For example, the network device may provide an option response to the option request to the client device to allow the source device to use the source IPv6 prefix and the destination IPv6 prefix for the traffic, as described above.
[0061] Process 500 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in conjunction with one or more other processes described elsewhere herein.
[0062] In a first implementation, the source device is an IPv4 device and the destination device is an IPv4 device.
[0063] In a second implementation, either alone or in combination with the first implementation, the destination address includes a public address of the destination device, and the destination IPv6 prefix is associated with the public address of the destination device.
[0064] In a third implementation, alone or in combination with one or more of the first and second implementations, the address translation includes IPv4 to IPv6 to IPv4 address translation.
[0065] In a fourth implementation, alone or in combination with one or more of the first to third implementations, the option request includes a PCP request, and the mapping code is a PCP option code.
[0066] In a fifth implementation, either alone or in combination with one or more of the first to fourth implementations, process 500 includes determining that an address translation is associated with an IPv4 to IPv6 to IPv4 address translation based on a source prefix code and a destination prefix code being included in an option request, wherein the source IPv6 prefix and the destination IPv6 prefix are identified based on determining that the address translation is associated with an IPv4 to IPv6 to IPv4 address translation.
[0067] In a sixth implementation, either alone or in combination with one or more of the first to fifth implementations, the option response includes a mapping code and a prefix learning code, wherein the option response is configured based on including the mapping code and the prefix learning code to cause the source device to use a source IPv6 prefix having a source address and a destination IPv6 prefix having a destination address as address information for the service.
[0068] In a seventh implementation, alone or in combination with one or more of the first to sixth implementations, the option request is a first option request and the option response is a first option response including a source IPv6 prefix, and process 500 includes: receiving a second option request including a mapping code and an additional prefix code from an IPv6 source device; determining that the IPv6 source device is associated with an IPv6 network based on the mapping code and the additional prefix code; and providing a second option response including a destination IPv6 prefix based on determining that the IPv6 source device is associated with the IPv6 network to allow the IPv6 source device to use the destination IPv6 prefix for services associated with the destination device.
[0069] although Figure 5 Example blocks of process 500 are shown, but in some implementations, Figure 5 Process 500 may include additional blocks, fewer blocks, different blocks, or blocks arranged differently than those depicted. Additionally or alternatively, two or more blocks of process 500 may be performed in parallel.
[0070] Figure 6 is a flow chart of an example process 600 associated with dynamic Internet Protocol conversion for PCP communications. In some implementations, Figure 6 One or more process blocks of may be performed by a network device (e.g., network device 220). In some implementations, Figure 6 One or more process blocks of may be performed by another device or device group separate from or including the network device, such as a peer device (eg, peer device 210), etc. Additionally or alternatively, Figure 6 One or more process blocks may be executed by one or more components of the device 300 (such as the processor 320, the memory 330, the storage component 340, the input component 350, the output component 360, the communication interface 370, etc.); the device 400 (such as the input component 410, the switching component 420, the output component 430, the controller 440, etc.); or the like.
[0071] like Figure 6 As shown, process 600 may include receiving an options request from a PCP client device, the options request including a source address of an IPv4 source device and a destination address of an IPv4 destination device, wherein the network device is associated with an IPv6 network (block 610). For example, the network device may receive an options request from a PCP client device, the options request including a source address of an IPv4 source device and a destination address of an IPv4 destination device, as described above. In some implementations, the network device is associated with an IPv6 network.
[0072] like Figure 6As further shown, process 600 may include determining a source IPv6 prefix and a destination IPv6 prefix for address translation based on the PCP client device and the IPv4 destination device being associated with one or more IPv4 networks to facilitate communication between the IPv4 source device and the IPv4 destination device via the IPv6 network (block 620). For example, the network device may determine a source IPv6 prefix and a destination IPv6 prefix for address translation based on the PCP client device and the IPv4 destination device being associated with one or more IPv4 networks to facilitate communication between the IPv4 source device and the IPv4 destination device via the IPv6 network, as described above.
[0073] like Figure 6 As further shown, process 600 may include providing an option response to the option request to the PCP client device to cause the IPv4 source device to send traffic to the IPv4 destination device using the source IPv6 prefix and the destination IPv6 prefix (block 630). For example, the network device may provide an option response to the option request to the PCP client device to cause the IPv4 source device to send traffic to the IPv4 destination device using the source IPv6 prefix and the destination IPv6 prefix, as described above.
[0074] Process 600 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in conjunction with one or more other processes described elsewhere herein.
[0075] In a first implementation, the PCP client device comprises an IPv4 client device of a first network, and the IPv4 destination device comprises an IPv4 server device of a second network different from the first network.
[0076] In a second implementation, either alone or in combination with the first implementation, a source IPv6 prefix and a destination IPv6 prefix are determined based on an options request including a mapping code, a source prefix code, and a destination prefix code.
[0077] In a third implementation, alone or in combination with one or more of the first and second implementations, the option request is a mapping request associated with a PCP and identified by a mapping code of the PCP.
[0078] In a fourth implementation, alone or in combination with one or more of the first to third implementations, process 600 includes determining that an address translation is associated with an IPv4 to IPv6 to IPv4 address translation based on the PCP client device and the IPv4 destination device being associated with one or more IPv4 networks.
[0079] In a fifth implementation, either alone or in combination with one or more of the first to fourth implementations, the option response includes a prefix learning code associated with the PCP, wherein the option response is configured based on including the prefix learning code to cause the IPv4 source device to use a source IPv6 prefix with a source address and a destination IPv6 prefix with a destination address as address information for the service.
[0080] although Figure 6 Example blocks of process 600 are shown, but in some implementations, Figure 6 Process 600 may include additional blocks, fewer blocks, different blocks, or blocks arranged differently than those depicted. Additionally or alternatively, two or more blocks of process 600 may be performed in parallel.
[0081] Figure 7 is a flow chart of an example process 700 associated with dynamic Internet Protocol conversion for PCP communications. In some implementations, Figure 7 One or more process blocks of may be performed by a peer device (e.g., peer device 210). In some implementations, Figure 6 One or more process blocks of may be performed by another device or device group that is separate from or includes the network device, such as a network device (eg, network device 220). Additionally or alternatively, Figure 7 One or more process blocks may be executed by one or more components of the device 300 (such as the processor 320, the memory 330, the storage component 340, the input component 350, the output component 360, the communication interface 370, etc.); the device 400 (such as the input component 410, the switching component 420, the output component 430, the controller 440, etc.); or the like.
[0082] like Figure 7 As shown, process 700 may include obtaining a destination address associated with a destination device (block 710). For example, a peer device may obtain a destination address associated with a destination device, as described above.
[0083] like Figure 7 As further shown, process 700 may include configuring an options request associated with communicating with a destination device via an IPv6 network based on the destination address (block 720). For example, a peer device may configure an options request associated with communicating with a destination device via an IPv6 network based on the destination address, as described above.
[0084] like Figure 7 As further shown, process 700 may include sending an options request to a network device of the IPv6 network (block 730). For example, the peer device may send an options request to a network device of the IPv6 network, as described above.
[0085] like Figure 7 As further shown, process 700 may include receiving a source IPv6 prefix and a destination IPv6 prefix from a network device and associated with an options request (block 740). For example, a peer device may receive a source IPv6 prefix and a destination IPv6 prefix from a network device and associated with an options request, as described above.
[0086] like Figure 7 As further shown, process 700 may include maintaining the source IPv6 prefix and the destination IPv6 prefix in a data structure as IPv6 address information for sending traffic to a destination device (block 750). For example, a peer device may maintain the source IPv6 prefix and the destination IPv6 prefix in a data structure as IPv6 address information for sending traffic to a destination device, as described above.
[0087] Process 700 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in conjunction with one or more other processes described elsewhere herein.
[0088] In a first implementation, the IPv6 address information includes an IPv6 source address associated with a source device, the IPv6 source address including a source IPv6 prefix and a source address of the source device. The IPv6 may also include an IPv6 destination address associated with a destination device, the IPv6 destination address including a destination IPv6 prefix and a destination address.
[0089] In a second implementation, either alone or in combination with the first implementation, the source device and the destination device are IPv4 devices.
[0090] In a third implementation, either alone or in combination with one or more of the first and second implementations, the option request includes a mapping code, a source prefix code, and a destination prefix code, the mapping code, the source prefix code, and the destination prefix code are configured to cause a network device to provide a source IPv6 prefix and a destination IPv6 prefix, and the source IPv6 prefix and the destination IPv6 prefix are received in an option response including a mapping code and a prefix learning code, the prefix learning code being configured to cause a source device to use the source IPv6 prefix and the destination IPv6 prefix when sending traffic.
[0091] In a fourth implementation, alone or in combination with one or more of the first to third implementations, the mapping code and the prefix learning code are option codes associated with a port control protocol (PCP) associated with the IPv6 network.
[0092] In a fifth implementation, alone or in combination with one or more of the first to fourth implementations, the source prefix code and the destination prefix code are preconfigured codes associated with the IPv6 network.
[0093] although Figure 7 Example blocks of process 700 are shown, but in some implementations, Figure 7 Process 700 may include additional blocks, fewer blocks, different blocks, or blocks arranged differently than those depicted. Additionally or alternatively, two or more blocks of process 700 may be performed in parallel.
[0094] According to implementations of the present disclosure, the following examples are provided.
[0095] Example 1. A method, comprising: receiving, by a network device, an option request from a client device, the option request including a source address of a source device and a destination address of a destination device, wherein the network device is associated with an Internet Protocol version 6 (IPv6) network; identifying, by the network device, a mapping code, the mapping code being associated with an address conversion for a service associated with the destination device; determining, by the network device, a source prefix code and a destination prefix code for the address conversion based on the identified mapping code; determining, by the network device, a source IPv6 prefix and a destination IPv6 prefix for the address conversion based on the source prefix code and the destination prefix code; and providing, by the network device, an option response to the option request to the client device to allow the source device to use the source IPv6 prefix and the destination IPv6 prefix for the service.
[0096] Example 2. The method of Example 1, wherein the source device is an Internet Protocol version 4 (IPv4) device and the destination device is an IPv4 device.
[0097] Example 3. The method of Example 1, wherein the destination address comprises a public address of the destination device, and the destination IPv6 prefix is associated with the public address of the destination device.
[0098] Example 4. The method of Example 1, wherein the address translation comprises Internet Protocol version 4 (IPv4) to IPv6 to IPv4 address translation.
[0099] Example 5. The method of Example 1, wherein the option request comprises a port control protocol (PCP) request, and the mapping code is a PCP option code.
[0100] Example 6. The method according to Example 1 further includes: determining that the address translation is associated with an Internet Protocol version 4 (IPv4) to IPv6 to IPv4 address translation based on a source prefix code and a destination prefix code being included in the option request, wherein the source IPv6 prefix and the destination IPv6 prefix are identified based on determining that the address translation is associated with an IPv4 to IPv6 to IPv4 address translation.
[0101] Example 7. A method according to Example 1, wherein the option response includes a mapping code and a prefix learning code, wherein the option response is configured based on including the mapping code and the prefix learning code to enable the source device to use a source IPv6 prefix with a source address and a destination IPv6 prefix with a destination address as address information for the service.
[0102] Example 8. A method according to Example 1, wherein the option request is a first option request and the option response is a first option response including a source IPv6 prefix, the method further comprising: receiving a second option request including a mapping code and an additional prefix code from an IPv6 source device; determining that the IPv6 source device is associated with an IPv6 network based on the mapping code and the additional prefix code; and providing a second option response including a destination IPv6 prefix based on determining that the IPv6 source device is associated with the IPv6 network to allow the IPv6 source device to use the destination IPv6 prefix for services associated with the destination device.
[0103] Example 9. A network device comprising: one or more memories; and one or more processors, configured to: receive an option request from a port control protocol (PCP) client device, the option request including a source address of an Internet Protocol version 4 (IPv4) source device and a destination address of an IPv4 destination device, wherein the network device is associated with an Internet Protocol version 6 (IPv6) network; determine a source IPv6 prefix and a destination IPv6 prefix for address translation to facilitate communication between the IPv4 source device and the IPv4 destination device via the IPv6 network based on the PCP client device and the IPv4 destination device being associated with one or more IPv4 networks; and provide an option response to the option request to the PCP client device so that the IPv4 source device uses the source IPv6 prefix and the destination IPv6 prefix to send traffic to the IPv4 destination device.
[0104] Example 10. The network device of Example 9, wherein the PCP client device comprises an IPv4 client device of a first network, and the IPv4 destination device comprises an IPv4 client device of a second network, the second network being different from the first network.
[0105] Example 11. The network device of Example 9, wherein the source IPv6 prefix and the destination IPv6 prefix are determined based on an option request including a mapping code, a source prefix code, and a destination prefix code.
[0106] Example 12. The network device of Example 9, wherein the option request is a mapping request associated with a port control protocol (PCP) and identified by a mapping code of the PCP.
[0107] Example 13. A network device according to Example 9, wherein the one or more processors are further used to: determine that the address translation is associated with an Internet Protocol version 4 (IPv4) to IPv6 to IPv4 address translation based on the PCP client device and the IPv4 destination device being associated with one or more IPv4 networks.
[0108] Example 14. A network device according to Example 9, wherein the option response includes a prefix learning code associated with a port control protocol (PCP), wherein the option response is configured to cause the PCP client device to use a source IPv6 prefix having a source address and a destination IPv6 prefix having a destination address as address information for the service based on including the prefix learning code.
[0109] Example 15. A non-transitory computer-readable medium storing instructions, the instructions comprising: one or more instructions, which, when executed by one or more processors of a client device, cause the one or more processors to: obtain a destination address associated with a destination device; based on the destination address, configure an option request, the option request associated with communicating with the destination device via an Internet Protocol version 6 (IPv6) network; send the option request to a network device of the IPv6 network; receive a source IPv6 prefix and a destination IPv6 prefix from the network device and associated with the option request; and maintain the source IPv6 prefix and the destination IPv6 prefix in a data structure as IPv6 address information for sending services to the destination device.
[0110] Example 16. A non-transitory computer-readable medium according to Example 15, wherein the IPv6 address information includes: an IPv6 source address associated with a source device, including: a source IPv6 prefix, and a source address of the source device; and an IPv6 destination address associated with a destination device, including: a destination IPv6 prefix, and a destination address.
[0111] Example 17. The non-transitory computer-readable medium of Example 15, wherein the source device and the destination device are Internet Protocol version 4 (IPv4) devices.
[0112] Example 18. A non-transitory computer-readable medium according to Example 15, wherein the option request includes a mapping code, a source prefix code, and a destination prefix code, the mapping code, the source prefix code, and the destination prefix code are configured to cause a network device to provide a source IPv6 prefix and a destination IPv6 prefix, and wherein the source IPv6 prefix and the destination IPv6 prefix are received in an option response including the mapping code and a prefix learning code, the prefix learning code being configured to cause the source device to use the source IPv6 prefix and the destination IPv6 prefix when sending traffic.
[0113] Example 19. The non-transitory computer readable medium of Example 18, wherein the mapping code and the prefix learning code are option codes associated with a port control protocol (PCP) associated with an IPv6 network.
[0114] Example 20. The non-transitory computer readable medium of Example 18, wherein the source prefix code and the destination prefix code are preconfigured codes associated with the IPv6 network.
[0115] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementation to the precise form disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from practice of the implementation.
[0116] As used herein, the term "component" is intended to be broadly interpreted as hardware, firmware, or a combination of hardware and software.
[0117] As used herein, a service or content may include a collection of packets. A "packet" may refer to a communication structure for conveying information, such as a protocol data unit (PDU), a service data unit (SDU), a network packet, a datagram, a segment, a message, a block, a frame (e.g., an Ethernet frame), a portion of any of the above, and / or another type of formatted or unformatted data unit capable of being transmitted via a network.
[0118] It will be apparent that the systems and / or methods described herein can be implemented in various forms of hardware, firmware, and / or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods does not limit the implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code—it is understood that software and hardware can be used to implement the systems and / or methods based on the description herein.
[0119] Even though particular combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of the various implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and / or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of the various implementations includes each dependent claim in combination with every other claim in the claim set.
[0120] Unless explicitly described in this way, the elements, actions or instructions used herein should not be interpreted as key or necessary. Moreover, as used herein, the articles "one" and "an" are intended to include one or more projects, and can be used interchangeably with "one or more". Further, as used herein, the article "the" is intended to include one or more projects quoted in conjunction with the article "the", and can be used interchangeably with "one or more". In addition, as used herein, the term "set" is intended to include one or more projects (for example, related projects, unrelated projects, combinations of related projects and unrelated projects, etc.), and can be used interchangeably with "one or more". In the case of only one project, phrases "only one" or similar language are used. Moreover, as used herein, the terms "have (has)", "have (have)", "have (having)" etc. are intended to be open terms. Further, unless otherwise expressly provided, the phrase "based on" is intended to represent "based at least in part". Furthermore, as used herein, the term "or" when used in tandem is intended to be inclusive and used interchangeably with "and / or" unless expressly stated otherwise (eg, if used in combination with "either" or "only one of...").
Claims
1. A method comprising: receiving, by the network device, from a client device, an options request, the options request including a source address of a source device and a destination address of a destination device, wherein the network device is associated with an Internet Protocol version 6 (IPv6) network; identifying, by the network device, a mapping code associated with an address translation for traffic associated with the destination device; Determining, by the network device, a source prefix code and a destination prefix code for the address translation based on identifying the mapping code; Determining, by the network device, a source IPv6 prefix and a destination IPv6 prefix for the address translation based on the source prefix code and the destination prefix code; as well as An option response to the option request is provided by the network device to the client device to allow the source device to use the source IPv6 prefix and the destination IPv6 prefix for the traffic.
2. The method of claim 1, wherein the source device is an Internet Protocol version 4 (IPv4) device and the destination device is an IPv4 device.
3. The method of claim 1, wherein the destination address comprises a public address of the destination device, and the destination IPv6 prefix is associated with the public address of the destination device.
4. The method of claim 1, wherein the address translation comprises Internet Protocol version 4 (IPv4) to IPv6 to IPv4 address translation.
5. The method of claim 1, wherein the option request comprises a Port Control Protocol (PCP) request, and the mapping code is a PCP option code.
6. The method according to claim 1, further comprising: determining that the address translation is associated with an Internet Protocol version 4 (IPv4) to IPv6 to IPv4 address translation based on the source prefix code and the destination prefix code being included in the options request, The source IPv6 prefix and the destination IPv6 prefix are identified based on determining that the address translation is associated with the IPv4 to IPv6 to IPv4 address translation.
7. The method of claim 1, wherein the option response includes the mapping code and a prefix learning code, The option response is configured based on the mapping code and the prefix learning code to enable the source device to use the source IPv6 prefix having the source address and the destination IPv6 prefix having the destination address as address information for the service.
8. The method of claim 1, wherein the option request is a first option request and the option response is a first option response including the source IPv6 prefix, the method further comprising: receiving, from an IPv6 source device, a second option request including the mapping code and an additional prefix code; Determining that the IPv6 source device is associated with the IPv6 network based on the mapping code and the additional prefix code; as well as A second option response including the destination IPv6 prefix is provided based on a determination that the IPv6 source device is associated with the IPv6 network to allow the IPv6 source device to use the destination IPv6 prefix for traffic associated with the destination device.
9. A network device comprising: one or more memories; as well as One or more processors to: receiving an options request from a port control protocol (PCP) client device, the options request including a source address of an Internet Protocol version 4 (IPv4) source device and a destination address of an IPv4 destination device, wherein the network device is associated with an Internet Protocol version 6 (IPv6) network; determining a source IPv6 prefix and a destination IPv6 prefix for address translation to facilitate communication between the IPv4 source device and the IPv4 destination device via the IPv6 network based on the PCP client device and the IPv4 destination device being associated with one or more IPv4 networks; as well as An option response to the option request is provided to the PCP client device to cause the IPv4 source device to send traffic to the IPv4 destination device using the source IPv6 prefix and the destination IPv6 prefix.
10. The network device of claim 9, wherein the PCP client device comprises an IPv4 client device of a first network and the IPv4 destination device comprises an IPv4 client device of a second network, the second network being different from the first network.
11. The network device of claim 9, wherein the source IPv6 prefix and the destination IPv6 prefix are determined based on the option request including a mapping code, a source prefix code, and a destination prefix code.
12. The network device of claim 9, wherein the option request is a mapping request associated with a port control protocol (PCP) and identified by a mapping code of the PCP.
13. The network device of claim 9, wherein the one or more processors are further configured to: Based on the PCP client device and the IPv4 destination device being associated with the one or more IPv4 networks, it is determined that the address translation is associated with an Internet Protocol version 4 (IPv4) to IPv6 to IPv4 address translation.
14. The network device according to claim 9, wherein the option response includes a prefix learning code associated with a port control protocol (PCP), The option response is configured to cause the PCP client device to use the source IPv6 prefix having the source address and the destination IPv6 prefix having the destination address as address information for the service based on including the prefix learning code.
15. A non-transitory computer-readable medium storing instructions, the instructions comprising: One or more instructions that, when executed by one or more processors of a client device, cause the one or more processors to: obtaining a destination address associated with a destination device; configuring, based on the destination address, an options request associated with communicating with the destination device via an Internet Protocol version 6 (IPv6) network; Sending the option request to a network device of the IPv6 network; receiving, from the network device and in association with the options request, a source IPv6 prefix and a destination IPv6 prefix; as well as The source IPv6 prefix and the destination IPv6 prefix are maintained in a data structure as IPv6 address information for sending traffic to the destination device.
16. The non-transitory computer-readable medium of claim 15, wherein the IPv6 address information comprises: The IPv6 source address associated with the source device, including: the source IPv6 prefix, and A source address of the source device; and The IPv6 destination address associated with the destination device, comprising: the destination IPv6 prefix, and The destination address.
17. The non-transitory computer-readable medium of claim 15, wherein the source device and the destination device are Internet Protocol version 4 (IPv4) devices.
18. The non-transitory computer-readable medium of claim 15, wherein the option request comprises a mapping code, a source prefix code, and a destination prefix code, the mapping code, the source prefix code, and the destination prefix code being configured to cause the network device to provide the source IPv6 prefix and the destination IPv6 prefix, and The source IPv6 prefix and the destination IPv6 prefix are received in an option response including the mapping code and a prefix learning code, and the prefix learning code is configured to enable the source device to use the source IPv6 prefix and the destination IPv6 prefix when sending the service.
19. The non-transitory computer-readable medium of claim 18, wherein the mapping code and the prefix learning code are option codes associated with a port control protocol (PCP) associated with the IPv6 network.
20. The non-transitory computer-readable medium of claim 18, wherein the source prefix code and the destination prefix code are preconfigured codes associated with the IPv6 network.