The Next Generation Network (NGN) is an open network oriented to unconnected IP networks. IPv4 runs successfully on the Internet. With the development of the Internet, IPv4 faces many problems, such as lack of Address Resources, node security, and mobility. This is what IPv6 can solve. However, the transition from IPv4 to IPv6 is not completed overnight. Therefore, the transition from IPv4 to IPv6 has become a concern of IETF and the IT industry at home and abroad. It directly affects the promotion and application of IPv6.
It is suitable for the translation of IPv6/IPv4 for general purposes. The GT64 design is more flexible than the vast majority of existing network address translation, it can be easily configured into many address translation scripts, including IPv6 local network connected to IPv4 internet, IPv6 local network connected to IPv6 Internet, the IPv6 private network is connected to the IPv6 Internet, and the private network is connected to the IPv4 internet. GT64 can also be configured as many Load Balancing solutions. Thanks to the modularization and scalability of GT64, it is a powerful tool to help transform to IPv6 networks.
I. Implementation
GT64 has three basic components, see Figure 1): one address/port converter and two protocol converters. One protocol converter is used to convert IPv6 to IPv4, while the other is switched from IPv4 to IPv6. GT64 splits the conversion function into the basic layer to increase the flexibility and tonality of the system, and separates the address/port conversion and protocol conversion.
Address/port converter APT) is the most important component of GT64, because it is responsible for network address and port conversion. APT contains information about valid data streams. When a data packet arrives, APT uses its data flow verification system to find the matched address ing and converts the ing to the corresponding address and port. If no matching ing is found, APT will generate a new ing based on the corresponding rules. APT is always converted in two different IPv6 address categories. What are two GT64 protocol converters ?? PT64 and PT46 are responsible for packet and ICMP packet address translation between IPv4 and IPv6. The packet header format of IPv6 and IPv4 data is very similar, but not completely consistent. In this way, some adjustments are required during the conversion from one IP address or ICMP version to another version. PT64 only receives IPv6 data packets with IPv6/IPv4 ing relationships. Similarly, PT46 only receives corresponding IPv4 data packets. Because the ing between IPv6 addresses and IPv4 addresses is one-to-one, the Protocol converter only needs to establish a ing between the two Protocols for the group header. When an IPv6 or ICMPv6 Packet arrives, PT64 only needs to retrieve the lowest 32 bits in the source/destination address fields of the IPv6 group as the source/destination address of the corresponding IPv4 group. Similarly, when an IPv4 or ICMPv4 packet arrives, PT46 only needs to add 96-bit pre-data to the address field of the group to complete the conversion from IPv4 to IPv6.
Ii. Design of Address/port converter APT)
1. APT Functions
When a GT64 host needs to be connected to the external world, GT64 must temporarily allocate a globally identifiable address. If more than one internal node needs to be connected to the external node and only one global address, each independent connection is temporarily allocated a unique address/port binding, so that these internal nodes can share a global address. For example, to communicate with an IPv4 external network, an IPv6 LAN is usually allocated with IPv6 addresses that can be mapped to valid IPv4 addresses, but the number of hosts that need to communicate with the external network is usually greater than the number of available addresses ). APT solves this problem by allowing multiple hosts in the IPv6 LAN to share an IPv6 address with a valid ing relationship. This is actually a reuse of transport identifiers. During communication, the source address field and port number in the Data Group header are replaced with a special address/port binding. This special binding relationship is temporarily allocated by APT. This function of APT is called address/port conversion.
When communicating with external networks, APT should not only replace the original address/port binding in the Data Group with the new address/port binding relationship, but also remember this alternative relationship. When sending a group to an external network, APT replaces the source address and port number in the group with the new address/port bound. When receiving a group, APT needs to replace the address/port field in the group with the address/port bound in the LAN.
When APT receives an IPv6 packet, it uses an address ing Stream ID to replace the original stream ID in the packet, the mapped Stream ID replaces the source or destination address/port binding in the data packet with other address/port binding. The APT configuration string determines the specific processing process of this substitution relationship. In addition to the Dynamic Allocation discussed above, APT can also handle some other simple forms of address/port conversion, such as static address conversion and dynamic single address conversion.
APT processes data packets from external networks and internal networks in different ways. APT usually allocates Dynamic Address ing for data packets in a certain direction. In this way, the initialization stream in the other direction cannot perform address ing. Outward packets refers to the PACKETS sent from the local network for IPv4 or IPv6 hosts on the Internet. inward packets is the opposite. APT has two input ports and two output ports for receiving and sending of the OUTWARD group and the INWARD group respectively. APT receives data packets from different input ports and forwards the packets from different output ports after conversion.
2. APT for IPv4/IPv6 Conversion Based on IPv6
APT only receives and sends IPv6 data packets containing IPv6 addresses. To enable GT64 to process both IPv4 and IPv6 modes, when it communicates with a host that only supports IPv4, GT64 assigns a temporary IPv4 address to its internal IPv6 host. IPv6-Based APT assigns IPv6 addresses that support IPv4 ing to IPv6 hosts.
When GT64 needs to convert an IPv6 group to an IPv4 group, APT first maps the IPv6 address and port to the IPv6 address and port number mapped to the IPv4 address. Then, convert the ing address to an IPv4 address to convert the IPv6 group to an IPv4 address. The conversion process from IPv4 to IPv6 is similar. First, convert the IPv4 address to the IPv6 address/port number with ing relationship, and then bind the address/port to the actual IPv6 address and port number.
3. Static and Dynamic ing
APT can map the actual host address and port number into a global address/port binding. Static ing means that the ing between the address/port binding of the internal network and the Global Address/port binding is static. In most cases, static ing is used as a single address ing. For example, a certain external address is retained to indicate a specific internal address. Compared with static ing, dynamic ing only retains the ing relationship between active data streams.
4. Dynamic Address ing and Dynamic Address/port ing
Dynamic Address ing means that APT only dynamically allocates an external address ing for internal hosts, rather than binding an address/port. APT will directly use the mapped address to specify the internal node, and replace the original stream ID with the mapped Stream ID. In this ing process, APT not only needs to dynamically allocate an external address ing, but also maps the original port number to the new port number. Unlike Dynamic Address/port ing, dynamic address ing only replaces an address field in the group header, while retaining the other three parts of the stream ID. For an external packet, it replaces the original source address field with a ing address. For an inner packet, the actual address of the inner node replaces the destination address in the group, this destination address is the ing address.
Iii. Design of protocol Converter
A very important application of GT64 is to allow nodes that only support IPv6 to communicate with nodes that only support IPv4. A packet transmitted from an IPv6 node to an IPv4 node or its inverse process involves protocol conversion and address and port conversion. PT64 and PT46 are used to connect IPv6-Based APT and complete protocol conversion for the groups to be converted. PT64 is used to send an IPv6 packet from a local node that only supports IPv6 to an Internet node that only supports IPv4. APT converts a socket consisting of the source address and port into an IPv4 ing IPv6 socket. PT64 converts the IPv6 Header in the package into an IPv4 header and uses the lowest 32 bits of the IPv6 address as the valid IPv4 address.
Similarly, an IPv4 packet is sent from a node that only supports IPv4 to a node that only supports IPv6. It must pass through PT46 and APT to complete the conversion. PT46 converts an IPv4 header to an IPv6 Header by adding a 96-bit prefix to the source and target addresses to an IPv4 ing IPv6 address. APT then maps the destination IPv4 ing IPv6 address to the IPv6 address. Because APT processes address ing and allocation, PT64 and PT46 are only responsible for protocol conversion. Because of the modular design, the implementation of PT64 and PT46 is very easy. After packet protocol conversion, both PT64 and PT46 need to re-calculate the checksum of high-level protocols such as TCP and UDP. TCP and UDP calculate their checksum based on a pseudo-random header, which includes the source address and destination address of the IP/IPv6 Header, the length of the top packet, And the next header of the Protocol. When converting from IPv6 to IPv4, PT64 must calculate the IP address checksum required by the IPv4 header. However, PT46 does not need to calculate the IPv6 checksum, because the IPv6 Header does not have this field.
ICMPv6 and ICMPv4 are also different in the calculation of checksum. PT46 must calculate ICMPv6 according to the TCP and UDP styles, because the calculation of ICMPv6 contains a pseudo random header. However, PT64 can calculate the ICMPv4 checksum directly from the ICMPv4 package. In the process of mutual conversion between ICMPv4IC and MPv6, the difference of the verification value must be taken into account.
Obviously, it takes many years for the Internet to change from IPv4 to IPv6. Each site must consider its own transition plan. Only a few sites will complete the transformation step by step. For most websites, NAT will be used as a mechanism to enable communication between nodes that only support IPv4 and IPv6.
GT64 meets three basic requirements required by a good network converter: it can complete communication between nodes that only support IPv6 and nodes that only support IPv4. It does not need to be changed on the source host or target host, and the application is simple. GT64 can be simply configured to perform different conversions at different IPv4 and IPv6 addresses and protocol layers.
The modular design and configuration extension make GT64 a powerful network communication tool. The further development of GT64 will promote us to the IPv6 field faster.