IPv6 anycast Technology and Its anycast Address Resolution Protocol
Author: Wang Jianli fangwei
Abstract: anycast is a new network application. Anycast communication supports service routing. However, many definitions of anycast communication in IPv6 are vague, and no protocol standards have been reached in controlling routes, therefore, anycast communication between nodes cannot be implemented. In this article, we will first describe the anycast Communication Based on IPv6 and many potential applications in this field, and point out some problems and corresponding solutions, next, we introduced a special anycast Address Resolution Protocol (AARP) that uses TCP connections to establish a TCP connection, so that the anycast address can adapt to existing applications and high-level protocols, it is more effective without modification or extension.
1 Overview of IPv6 address types
The length of an IPv6 address is 128 bits. The address can be divided into three types, namely, unicastaddress, multicast address, and anycast address ). Unicast and multicast addresses already exist in IPv4. Any multicast address is a new Member in IPv6, RFC 2723 defines the anycast address in the IPv6 address structure as the identifier of a series of network interfaces (usually different nodes). It features: the Group sent to any multicast address will be forwarded to a "nearest" Network Interface identified by this address (the "nearest" is defined based on the distance measurement in the routing protocol ).
The Unicast address is the unique identifier of each network interface. Multiple Interfaces cannot be assigned the same Unicast address. packets with the same destination address are sent to the same node, multicast addresses are assigned to a group of nodes. All members in a group have the same multicast address, and packets with the same address are sent to all Members at the same time. multicast addresses are similar to multicast addresses, A single multicast address is assigned to multiple nodes (any multicast member), but the multicast mechanism is different: each time only one multicast address is assigned to the sender for communication. Generally, there are three nodes related to the anycast address. When the source node sends a data packet with the destination address as the anycast address, the data packet is sent to one of the three nodes, instead of all hosts. The advantage of the anycast mechanism is that the source node does not need to know the service node or the current network conditions, but can receive specific services. When a node cannot work, data packets with any multicast address are sent to the other two host nodes. selecting an appropriate destination node from any multicast Member depends on the anycast routing protocol.
2 Analysis of IPv6 anycast Technology
Anycast is a new network application. It supports allocating the same address to multiple nodes to provide service-oriented addresses for specific services, the datagram with any multicast Destination Address can use the same anycast address and be transmitted to any of the many nodes. The Internet research task group (IRTF) defined the role of the anycast technology from January 1, 1993 to RFC 1546: "A host sends a datagram to any stream address, the network is responsible for transferring data packets to at least one server, preferably one server that receives data at any stream address. "The original intention of using the anycast mechanism is to completely simplify the tasks of finding suitable servers on the Internet. The basic concept of anycast communication is the logical Service Identifier separated from physical host devices, the anycast address can be assigned according to the service type, so that the network service plays the role of a logical host.
Although the definition of anycast technology is not very clear at present, the terminal host is determined by packet switching through the router. The concept of anycast technology is not limited to the network layer. It can also be implemented at other layers (for example, the application layer). anycast technology at the network layer and the application layer has advantages and disadvantages.
3 Application of IPv6 anycast Technology
There are many applications suitable for anycast communication. One of the most important applications is the server location. The sending host can select one of the many hosts with the same function. If you use the anycast routing method to evenly distribute the anycast requirement to the host, the load distribution target of any multicast host can be reached. The simple and instant Selection Method for any caster does not work in the network layer anycast technology, for example, the CPU load, because it is difficult to know the resource usage status of each server, however, this method is practical for the application layer anycast technology.
Another important application is the service location. The sender host can choose the best, minimum latency, and maximum output host from Multiple Multicast hosts by specifying the anycast address, for example, this method is particularly applicable in environments with dynamic changes such as mobile Ad Hoc networks. Through the anycast technology at the network layer, nodes can communicate with appropriate or nearest servers and obtain such services through the anycast technology at the application layer.
The advantage of the network layer anycast technology is that it can provide a simple way for source nodes to receive specific service mechanisms without the need for service nodes and networks.
4 Problems and Solutions of IPv6 anycast Technology
IPv6 anycast technology still has many problems. The first is the application of the anycast technology and the advantages of the anycast technology. The second is that the anycast Technology Based on IPv6 is a routing protocol that is not included in the IPv6 specification, this is a condition that makes the anycast technology more widely used and indispensable. The router should play an active role in determining the destination network so that the anycast package can be properly transmitted. The current task is to design and apply suitable anycast routing protocols to anycast applications, and enable the Internet to gradually support anycast technology. For example, anycast routing can work properly even if only a few nodes or routers on the Internet support anycast technology. All TCP-based and UDP-based protocols have been described in Internet applications. The communication process is established between the host and is considered to be consistent during information exchange.
4.1 The host notifies the cast member about the issue of participation
Nodes declare acceptable data packets in addition to public route information for any multicast addresses. in IPv6 Technical Instructions, the node must be a router. When a host is ready to be added to or left as a member, it must have different capabilities to advertise its current status (add or quit) to the "nearest" anycast router ).
4.2 support for high-level declarative Protocol issues
Due to the stateless nature of the anycast technology, it cannot ensure that all data packets belonging to the same anycast address are transmitted to the same destination node, however, this will cause a serious problem where full-state protocols such as TCP are not supported. When the host initiates a TCP connection to the anycast address, the receiver host cannot set its own anycast address as the source address to confirm the information package. In the IPv6 technical instruction, any multicast address is not allowed to come from the source address set in the header. This is mainly because the IPv6 anycast address does not have a separate source node defined. If the Protocol allows any multicast address to be set to the source address of the packet header, the receiving host cannot be sure that all sent packets are from the same host during communication, that is to say, the anycast address of the host cannot receive package confirmation.
4.3 anycast routing
Currently, the standard-defined routing protocols of the existing anycast technology are not clear, so there are still some technical problems when designing the IPv6 anycast routing protocol.
(A) measurable problem. The positions of any multicast members are scattered regardless of their actual prefixes, so route entries for any multicast addresses cannot be clustered. Therefore, route entries for the anycast address must be stored in the vro. When the anycast address is widely used, the route table becomes very crowded.
(B) security issues. It is particularly important to maintain the anycast member relationship. The easiest way to obtain the membership for the host is to broadcast the route entries that enter the vro for the relevant anycast address. However, this method may sometimes cause serious security problems, that is, the anycast host can freely add or delete route entries in the routing table.
(C) Criteria for selecting the caster membership. Different applications require different standards. If rapid response is required in an application, the propagation latency between the source node and the anycast node is very important. The nearest node that is qualified as a member should be selected. The standard selection of the anycast routing mechanism has a great impact on the anycast communication capacity.
An important feature of a anycast address is that the anycast address must be allocated as a unicast address from the same address space, so it cannot be differentiated from the unicast address. Rfc1546 originally recommended the allocation of the address space of the anycast mechanism itself, in order to greatly reduce the risk of being unable to identify the anycast address due to application errors. When any multicast router is configured, some routers on the Internet cannot process any multicast addresses. If these addresses are allocated in the unicast address space, it is unnecessary for the inherited router to configure special operations for communication. It is very difficult for the anycast router to determine whether the destination address of the received packet is a anycast address or Unicast address. The design of the routing protocol also has problems.
5. New anycast address resolution protocols and Applications
The anycast Address Resolution Protocol (AARP) can meet the requirements of IPv6 anycast and high-level protocols (for example, there is no need to modify the TCP and UDP protocols for applications and protocols ). Specifically, the purpose of implementing AARP is to solve the problem of any multicast address dedicated for communication unicast addresses. AARP is used as a dynamic link library (DLL) written on the original application programming interface (API). This library can actually provide a set of API slots that are the same as the original IPv6 API slots, it is also used to address the AARP database of the anycast address. It can convert the anycast address into the corresponding communication Unicast address before calling the original API. The anycast address is only used at the application layer and the AARP database layer. The layer below the AARP database layer does not use anycast addresses, but only processes the converted unicast addresses.
5.1 AARP address parsing process
Assume that host C wants to establish anycast communication with another host whose anycast address is aa. The process of anycast address resolution is as follows: (1) host C calls the socket API module (for example, connect () in TCP) with the parameter anycast address, and the API of the AARP library replaces the interface of the API and is called. (2) The AARP database converts any multicast address to a unicast address in the called object function. (3) After the conversion, the AARP database calls the original socket API through the unicast address. (4) After the communication is established, the destination addresses of all information packets sent from host C are assigned a unicast address and transmitted to host S.
5.2 AARP address conversion method
According to the IPv6 protocol specification, when the anycast address cannot be determined by itself, the communication between the host connected to the anycast address should receive at least one packet from the destination host. Address translation can be performed in either of the following ways:
5.2.1 method of detecting data packets (initiated by the client)
Before communication, the host sends a test data packet to the anycast address, which can obtain the unicast address of the destination host from the source address of the returned data packet.
5.2.2 validation method (initiated by the server)
The tape-based validation method refers to a full-duplex (dual-) data link. It does not use a dedicated (validation) message to return the validation information. The confirmation information clamp related to the packet stream in one direction is in the packet stream that normally carries data in the opposite direction. When the packet is returned from the communication peer, the anycast host attaches the anycast address to the data packet. By checking the information appended to the data packet, you can confirm that the data packet is sent from the host associated with the anycast address.
The probe package method needs to provide extra network bandwidth to the probe packet, which will waste network resources. In contrast, the merge with validation method needs to modify the application so that the anycast address can be merged to the data packet. In actual application, any modification to the application should be avoided. The probe packet method must be used to include unicast addresses in AARP.
5.3 application of AARP
You can use the ICMPv6 echo request/reply package to resolve the anycast address to the corresponding Unicast address. As the anycast address cannot be set to the source address of the data packet header, the anycast member host sets the communication Unicast address in the source address area of the ICMP packet to replace the anycast address. Therefore, the host receiving the ICMPv6 echo request/reply packet sent to the anycast address will use its Unicast address to send this packet. If AARP cannot use the ICMPv6 mechanism, special software needs to be configured from the caller host to detect data packets accordingly.
The AARP database also provides a high-speed buffer storage table to parse any stream play addresses. When any stream play address cannot be hidden on the table, AARP can send test packets to resolve any stream play addresses. The resolved Unicast address and timer are stored in the cache table together and will be deleted after timeout. For the client, data packets sent to the anycast address are transmitted to the same anycast server until the cache fails, AARP returns the resolved Unicast address from the high-speed buffer memory table. Entries for any multicast addresses are sent only after the high-speed buffer memory table fails. Although the ICMP packet method is simple, it cannot solve the security problem. Even if a malicious user captures an ICMP echo request packet and sends it, the client only uses the source address of the packet.
6 conclusion
At present, there are still many problems in the application of the IPv6 anycast mechanism in actual communication. To solve these problems, this article introduces a new IPv6 Address Resolution Protocol (AARP) to convert any multicast address to the corresponding communication Unicast address, after the conversion, it can be directly used in the actual communication, so that the anycast communication can be implemented without changing the existing application settings protocol.