Routing method and apparatus

By deploying leaf nodes covering the network system in private network branches, and using the central controller configuration routing information to realize direct connection routing between leaf nodes and acceleration nodes, the problems of high operation and maintenance complexity and high hardware cost in SD-WAN technology are solved, improving routing efficiency and reducing interconnection costs.

WO2025161480A1PCT designated stage Publication Date: 2025-08-07HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/123811
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-17
Filing Date
2024-10-10
Publication Date
2025-08-07

AI Technical Summary

Technical Problem

In the existing SD-WAN technology, the interconnection operation and maintenance deployment of private network branches is complex and has high hardware costs, resulting in excessive interconnection costs.

Method used

By deploying leaf nodes covering the network system in private network branches, and using the central controller to configure routing information, the backbone acceleration nodes can directly forward messages, realizing direct connection routing between leaf nodes and acceleration nodes, reducing the interconnection cost of different private network branches.

Benefits of technology

Improves routing efficiency of different private network branches, reduces interconnection costs, and improves interconnection compatibility between different private network branches.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024123811_07082025_PF_FP_ABST
    Figure CN2024123811_07082025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in embodiments of the present application are a routing method and apparatus, used for reducing the interconnection costs of different private networks. The method in the embodiments of the present application comprises: a first leaf node sends a routing configuration request to a central controller, wherein the routing configuration request is used for requesting the central controller to configure routing information corresponding to one or more leaf nodes, and the routing information comprises one or more of the following: a virtual private network identifier, a virtual extensible local area network identifier and an Internet protocol (IP) network segment all corresponding to the one or more leaf nodes; the first leaf node generates a first message on the basis of the routing information, and sends the first message to a backbone acceleration node, wherein a destination IP address of the first message is an IP address in a private network corresponding to a second leaf node, and the first leaf node and the second leaf node are located in different private networks; and the backbone acceleration node forwards the first message on the basis of a private network location routing table, wherein the private network location routing table is used for querying an egress node of the first message, and the egress node is a backbone acceleration node corresponding to the second leaf node.
Need to check novelty before this filing date? Find Prior Art

Description

Routing method and device

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on January 30, 2024, with application number 202410129026.X and invention name “A routing method and device”, and the Chinese patent application filed with the State Intellectual Property Office on May 17, 2024, with application number 202410636992.0 and invention name “A routing method and device”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The embodiments of the present application relate to the field of computers, and in particular to a routing method and device. Background Art

[0003] With the development of Internet technology, in order to realize the information flow interaction between multiple private network branches of an enterprise, enterprises need to interconnect different private network branches through technologies such as virtual private network (VPN), thereby meeting the efficient interconnection needs of enterprise branches in different geographical locations.

[0004] In current private network branch interconnection solutions, enterprises typically use software-defined wide area network (SD-WAN) technology. In this SD-WAN solution, after obtaining SD-WAN services, enterprises determine the locations of their private network branches, and operations personnel install interconnection routers at each branch site. After the interconnection routers are registered and managed by the SD-WAN central controller, the SD-WAN central controller issues virtual extended LAN tunnel configurations to the interconnection routers. Different private network branches establish network connections through the virtual extended LAN tunnels, enabling network connectivity between private network branches.

[0005] However, in the current SD-WAN technology solution for interconnecting private network branches, since operation and maintenance personnel need to install interconnection routers at each branch site, the operation and maintenance deployment of interconnecting private network branches is highly complex. At the same time, installing interconnection routers also leads to high hardware costs for interconnecting private network branches.

[0006] Summary of the Invention

[0007] Embodiments of the present application provide a routing method in which an overlay network system can deploy leaf nodes in private network branches, enabling different private network branches to achieve direct routing connections between leaf nodes and acceleration nodes based on the overlay network, thereby improving the routing efficiency of different private network branches and reducing the interconnection costs of different private network branches. Embodiments of the present application also provide a data verification device, computing device, computing device cluster, computer-readable storage medium, and computer program product corresponding to the data verification method.

[0008] In a first aspect, an embodiment of the present application provides a routing method, which can be executed by an overlay network system, or by a component of the overlay network system, such as a processor, chip, or chip system of the overlay network system, or by a logic module or software that can implement all or part of the functions of the overlay network system. The method provided in the first aspect is applied to an overlay network system, which includes a central controller, one or more backbone acceleration nodes, and one or more leaf nodes, wherein the one or more leaf nodes are deployed in different private networks. The method provided in the first aspect includes: a first leaf node sends a routing configuration request to the central controller, the routing configuration request is used to request configuration of routing information corresponding to the one or more leaf nodes, and the routing information includes one or more of the following: a virtual private network identifier (VPNID), a virtual extended local area network identifier (VNI), and an Internet Protocol (IP) segment corresponding to the one or more leaf nodes. The first leaf node generates a first message based on the routing information and sends the first message to the backbone acceleration node, the destination IP address of the first message being the IP address in the private network corresponding to the second leaf node, the first leaf node being located in the first private network, the second leaf node being located in the second private network, and the first private network and the second private network being different private networks. The backbone acceleration node forwards the first message based on the private network location routing table. The private network location routing table is used to query the exit node of the first message. The exit node is the backbone acceleration node corresponding to the second leaf node.

[0009] In the interconnection solution for private network branches provided in the embodiments of the present application, the overlay network system can deploy leaf nodes in the private network branches and configure routing information corresponding to the leaf nodes, so that the backbone acceleration nodes in the overlay network can forward messages from different private network branches according to these routing information. Compared with the prior art in which different private network branches need to install interconnection routers to achieve private network interconnection, the embodiments of the present application achieve interconnection between different private network branches by deploying leaf nodes of the overlay network in the private network branches, thereby improving the routing efficiency of different private network branches and reducing the interconnection cost of different private network branches.

[0010] In one possible implementation, multiple leaf nodes are deployed in different private network domains, where the private network domains include one or more of the following: a virtual private cloud local area network (VPC) and an enterprise physical local area network (ERP). The VPC local area network can be a VPC provided by different cloud vendors. When the private network domain is a physical ERP, leaf nodes are deployed in hosts in the physical ERP. The physical ERP uses static routing to direct the next hop of the egress router to the leaf nodes. When the private network domain is a virtual private cloud (VPCL) ERP, virtual machines are requested and leaf nodes are deployed in the VPC local area network, with the next hop of the VPC local area network directed to the leaf nodes.

[0011] The overlay network provided in the embodiment of the present application can flexibly deploy leaf nodes in different types of private network branches, thereby realizing interconnection between different types of private network branches, thereby improving the compatibility of interconnection between different private network branches.

[0012] In one possible implementation, before a first leaf node sends a first message to a backbone acceleration node, the first leaf node sends a software development kit (SDK) tunnel negotiation request to the backbone acceleration node. The SDK tunnel negotiation request is used to obtain SDK tunnel direct connection routing information. The SDK tunnel direct connection routing information includes one or more items: an SDK tunnel identifier, an SDK tunnel source IP address, and an SDK tunnel destination IP address. The first leaf node receives an SDK tunnel negotiation response. The SDK tunnel negotiation response is used to establish an SDK tunnel between the first leaf node and the backbone acceleration node based on the SDK tunnel direct connection routing information. The SDK tunnel is used to transmit the first message between the first leaf node and the backbone acceleration node.

[0013] In the embodiment of the present application, the backbone acceleration node can obtain SDK direct connection routing information based on the SDK tunnel request of the leaf node and establish an SDK direct connection routing table, so that the backbone acceleration node can forward the message to the corresponding leaf node based on the SDK tunnel direct connection routing table, thereby improving the feasibility of the solution.

[0014] In one possible implementation, when a first leaf node generates a first message based on routing information and sends the first message to a backbone acceleration node, the first leaf node encapsulates the first message based on the SDK tunnel direct routing information to obtain an SDK tunnel-encapsulated first message. The SDK tunnel-encapsulated first message carries routing information, such as a VPN ID. The first leaf node sends the SDK tunnel-encapsulated first message to the backbone acceleration node.

[0015] In the embodiment of the present application, an SDK tunnel can be established between the first leaf node and the backbone acceleration node. The message sent by the first leaf node can be directly sent to the backbone acceleration node after being encapsulated by the SDK tunnel, thereby realizing SDK tunnel direct routing between the leaf node and the backbone acceleration node, and improving the routing efficiency between the leaf node and the backbone acceleration node.

[0016] In one possible implementation, when the backbone accelerator node forwards the first message based on the private network location routing table, the backbone accelerator node de-encapsulates the SDK tunnel-encapsulated first message and performs overlay network encapsulation to obtain the overlay network-encapsulated first message. The backbone accelerator node then sends the overlay network-encapsulated first message to the egress node based on the private network location routing table.

[0017] In the embodiment of the present application, when the backbone acceleration node forwards the message sent by the first leaf node to other backbone acceleration nodes, the message encapsulated by the SDK tunnel can be depacketized and repacked, and then overlaid with network encapsulation and forwarded to other backbone acceleration nodes, thereby improving the feasibility of message transmission between backbone acceleration nodes.

[0018] In one possible implementation, before the backbone acceleration node forwards the first message based on the private network location routing table, the backbone acceleration node receives a branch list and a private network location routing table sent by the central controller. The branch list is used to indicate the virtual extended local area network identifier (VNI) and Internet Protocol (IP) segment of different private network domains, and the private network location routing table is used to indicate the backbone acceleration node identifiers corresponding to different private network domains.

[0019] In an embodiment of the present application, the backbone acceleration node can receive a branch list and a private network location routing table sent by a central controller, thereby being able to identify the private network branch corresponding to the message and forward the message sent by the leaf node based on the branch list and the location routing table, thereby improving the feasibility of the backbone acceleration node function.

[0020] In one possible implementation, the private network location routing table includes mappings between virtual private network identifiers (VPNIDs), Internet Protocol (IP) segments, and backbone acceleration node identifiers for different private network domains. The private network location routing table also includes entries for IP segments, IP masks, and IP types.

[0021] In the embodiment of the present application, the private network location routing table includes the exit backbone acceleration node identifier corresponding to the virtual private network identifier VPNID of different private network domains. Therefore, the backbone acceleration node can forward the message sent by the leaf node to the exit backbone acceleration node based on the private network location routing table, thereby improving the feasibility of forwarding the message by the backbone acceleration node.

[0022] In one possible implementation, the backbone acceleration node receives a second message from the second leaf node. The second message carries the virtual private network identifier (VPNID) corresponding to the remote leaf node. The backbone acceleration node queries a direct routing table based on the VPNID corresponding to the second leaf node and forwards the second message to the first leaf node. The direct routing table is a routing table generated by the backbone acceleration node based on the direct routing information. When forwarding the message to the first leaf node, the backbone acceleration node can determine the SDK tunnel IP address of the first leaf node based on the SDK tunnel direct routing table.

[0023] In an embodiment of the present application, the backbone acceleration node can also receive messages sent from the second leaf node of the second private network, and forward the messages sent by the second leaf node to the first leaf node based on the SDK tunnel direct connection routing table, thereby realizing interconnection between different private network branches and improving the routing efficiency between different private network branches.

[0024] In the second aspect, an embodiment of the present application provides a routing device, which includes a transceiver unit and a processing unit. The transceiver unit is used to send a routing configuration request to the central controller, and the routing configuration request is used to request the central controller to configure routing information corresponding to one or more leaf nodes, and the routing information includes one or more of the following: a virtual private network identifier VPNID, a virtual extended local area network identifier VNI, and an Internet Protocol IP segment corresponding to one or more leaf nodes. The processing unit is used to generate a first message based on the routing information and send the first message to the backbone acceleration node. The destination IP address of the first message is the IP address in the private network corresponding to the second leaf node. The first leaf node is located in the first private network, and the second leaf node is located in the second private network. The processing unit is also used to forward the first message based on the private network location routing table. The private network location routing table is used to query the exit node of the first message. The exit node is the backbone acceleration node corresponding to the second leaf node.

[0025] In one possible implementation, the private network domain includes one or more of the following: a virtual private cloud local area network and an enterprise physical local area network.

[0026] In one possible embodiment, the transceiver unit is further configured to send a software development kit (SDK) tunnel negotiation request to the backbone acceleration node. The SDK tunnel negotiation request is used to obtain SDK tunnel direct connection routing information. The SDK tunnel direct connection routing information includes one or more items: an SDK tunnel identifier, an SDK tunnel source IP address, and an SDK tunnel destination IP address. The transceiver unit then receives an SDK tunnel negotiation response. The SDK tunnel negotiation response is used to establish an SDK tunnel between the first leaf node and the backbone acceleration node based on the SDK tunnel direct connection routing information. The SDK tunnel is used to transmit a first message between the first leaf node and the backbone acceleration node.

[0027] In one possible implementation, the processing unit is specifically configured to encapsulate the first message based on the SDK tunnel direct connection routing information to obtain the SDK tunnel encapsulated first message, which carries the routing information, and send the SDK tunnel encapsulated first message to the backbone acceleration node.

[0028] In one possible implementation, the processing unit is specifically configured to decompress and repack the first message encapsulated by the SDK tunnel, perform overlay network encapsulation on the first message, and send the overlay network encapsulated first message to the egress node based on the private network location routing table.

[0029] In one possible implementation, the processing unit is further configured to generate a branch list and a private network location routing table based on the routing configuration request. The transceiver unit is further configured to receive the branch list and the private network location routing table sent by the central controller, wherein the branch list indicates the Virtual Extended Local Area Network (VNI) identifiers (VNIs) and Internet Protocol (IP) segments of different private network domains, and the private network location routing table indicates the backbone acceleration node identifiers corresponding to different private network domains.

[0030] In a possible implementation, the private network location routing table includes mapping relationships between virtual private network identifiers VPNIDs, Internet Protocol IP segments, and backbone acceleration node identifiers of different private network domains.

[0031] In one possible implementation, the transceiver unit is further configured to receive a second message sent from the second leaf node, the second message carrying a virtual private network identifier (VPNID) corresponding to the second leaf node. The processing unit is further configured to query a direct routing table based on the virtual private network identifier (VPNID) corresponding to the second leaf node, and forward the second message to the first leaf node. The direct routing table is a routing table generated by the backbone acceleration node based on the direct routing information.

[0032] In a third aspect, an embodiment of the present application provides a computing device, comprising a processor coupled to a memory, the memory being used to store instructions. When the instructions are executed by the processor, the computing device executes the method described in the first aspect or any possible implementation of the first aspect.

[0033] In a fourth aspect, an embodiment of the present application provides a computing device cluster, which includes one or more computing devices, each of which includes a processor, the processor is coupled to a memory, and the memory is used to store instructions. When the instructions are executed by the processor, the computing device cluster executes the method described in the first aspect or any possible implementation method of the first aspect.

[0034] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium having instructions stored thereon. When the instructions are executed, the computer executes the method described in the first aspect or any possible implementation method of the first aspect.

[0035] In a sixth aspect, an embodiment of the present application provides a computer program product, which includes instructions. When the instructions are executed, the computer implements the method described in the first aspect or any possible implementation method of the first aspect.

[0036] It can be understood that the beneficial effects that can be achieved by any of the routing devices, computing devices, computing device clusters, computer-readable media or computer program products provided above can refer to the beneficial effects in the corresponding methods and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] FIG1a is a schematic diagram of a system architecture of an overlay network system provided in an embodiment of the present application;

[0038] FIG1b is a schematic diagram of a private network domain provided in an embodiment of the present application;

[0039] FIG2 is a flow chart of a routing method provided in an embodiment of the present application;

[0040] FIG3 is a flow chart of another routing method provided in an embodiment of the present application;

[0041] FIG4 is a flow chart of another routing method provided in an embodiment of the present application;

[0042] FIG5 is a flow chart of another routing method provided in an embodiment of the present application;

[0043] FIG6 is a schematic structural diagram of a routing device provided in an embodiment of the present application;

[0044] FIG7 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0045] FIG8 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0046] FIG9 is a schematic diagram of the structure of another computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION

[0047] Embodiments of the present application provide a routing method and apparatus for reducing the interconnection cost between different private network domains.

[0048] The terms "first," "second," "third," "fourth," and the like (if any) in the specification and claims of this application and in the accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a particular order or sequential sequence. It should be understood that the terms used in this manner are interchangeable where appropriate so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having," and any variations thereof, are intended to cover non-exclusive inclusions, e.g., a process, method, system, product, or apparatus comprising a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0049] In the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of this application should not be interpreted as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.

[0050] First, some terms involved in the embodiments of the present application are introduced to facilitate those skilled in the art to understand the technical solutions.

[0051] An overlay network is a virtual network built on top of an underlying network. Also known as an overlay network, an overlay network leverages the existing physical network infrastructure and adds a layer of abstraction and logic to provide higher-level services and functionality for applications.

[0052] Virtual Extensible Local Area Network (VXLAN) is a network virtualization technology that can be used to implement overlay networks. VXLAN establishes a logical tunnel on the IP network between the source and destination network devices. User-side packets are then forwarded through this tunnel after being specifically encapsulated.

[0053] The central controller (CC) is the brains of the overlay network, responsible for managing accelerator nodes and leaf nodes within the overlay network. This includes collecting latency and packet loss rates, measuring quality of service (QoS), performing path optimization calculations, and issuing routing entries. The CC also manages network services for accelerator nodes.

[0054] A backbone acceleration node is a backbone node covering the overlay network. It is used to measure the quality of service (QoS), obtain routing table entries, and forward traffic to other backbone acceleration nodes through the overlay tunnel.

[0055] Leaf nodes are embedded in enterprise network branches and cloud vendor virtual private clouds (VPCs), directing traffic from private network branches to acceleration nodes by default.

[0056] A private network domain (attachment) is a private network branch in the overlay network. A private network domain can be a physical local area network of an enterprise branch or a cloud vendor's VPC local area network.

[0057] In order to make the technical solution of the present application clearer and easier to understand, the system architecture of the present application is introduced below with reference to the accompanying drawings.

[0058] Please refer to Figure 1a, which is a schematic diagram of the system architecture of an overlay network system provided in this application. In the example shown in Figure 1a, overlay network system 10 includes a central controller 101, backbone acceleration nodes 102, leaf nodes 103, and private network domains 104. Central controller 101 includes a network management module 1011, a network scheduling module 1012, a network measurement module 1013, and a routing calculation module 1014. The following describes the specific functions of each component of overlay network system 10.

[0059] The central controller 101 is the management center of the overlay network, responsible for configuring, monitoring, and managing the entire overlay network, including coordinating the allocation of network resources, performing quality of service (QoS) measurements, performing path optimization calculations, and issuing routing table entries. The central controller 101 includes a network management module 1011, a network scheduling module 1012, a network measurement module 1013, and a routing calculation module 1014.

[0060] The network management module 1011 is responsible for global configuration, status monitoring, and fault management of the overlay network. Global configuration involves configuring each node, link, and service in the overlay network, including initialization, parameter adjustment, and function activation. Status monitoring involves collecting real-time status information about each node in the overlay network, including node load, link utilization, and network traffic, and visualizing this information. Fault management involves detecting network faults and anomalies, locating them, isolating them, and recovering from them, ensuring network stability and availability.

[0061] The network scheduling module 1012 is responsible for allocating and scheduling network resources for the overlay network. For example, the network scheduling module 1012 can dynamically adjust bandwidth allocation between different services based on real-time traffic monitoring results to ensure that high-priority services receive sufficient network resources. For another example, if a node in the overlay network is overloaded, the network scheduling module 1012 can dynamically adjust traffic distribution strategies to shift some traffic to nodes with lower loads, achieving load balancing.

[0062] The network measurement module 1013 is used to collect and analyze network performance data, providing data support for network optimization. For example, the network measurement module 1013 can collect performance indicator data such as latency and packet loss rate, and perform statistical analysis on the collected performance indicator data to identify network bottlenecks and traffic distribution. The network measurement module 1013 can also generate a network performance report based on the statistical analysis results and display the performance of the coverage network and each node based on the network performance report.

[0063] The routing calculation module 1014 is used to calculate and optimize routing paths within the overlay network. For example, based on the network topology and service requirements, the routing calculation module 1014 can calculate the routing path from the source node to the destination node to ensure efficient data transmission. If a link failure or node congestion occurs in the overlay network, the routing calculation module 1014 can recalculate the routing path and select a new, trouble-free path for data transmission, thus avoiding network interruption or performance degradation.

[0064] Backbone acceleration nodes 102 are backbone nodes in the overlay network. They are used to obtain routing table entries and forward traffic from leaf nodes 103 based on these entries. Backbone acceleration nodes 102 also accelerate and optimize data transmission performance. For example, backbone acceleration nodes 102 can cache popular or frequently accessed data, reducing the number of accesses to the original data source and thus accelerating data transmission. For another example, backbone acceleration nodes 102 can control the data transmission rate and sequence to make network traffic smoother and more stable, thereby avoiding network congestion and packet loss.

[0065] The leaf node 103 is an access node for the overlay network, and can provide access to the overlay network for various network devices. The leaf node 103 can be embedded in the private network domain 104 to divert the private network traffic of the private network domain 104 to the backbone acceleration node 102. As the endpoint of the overlay network Virtual Extended Local Area Network (VXLAN) tunnel, the leaf node 103 can also perform tunnel encapsulation and decapsulation operations on the data. For example, when data is transmitted from the private network domain 104 to the overlay network, the leaf node 103 converts it into a VXLAN tunnel-encapsulated data packet. Similarly, when data is transmitted from the overlay network back to the private network domain 104, the leaf node 103 decapsulates it and restores the data to its original format.

[0066] The private network domain 104 is a private network branch, which can also be called a private network branch or an attachment node. The private network domain 104 can be a physical local area network of an enterprise branch, or a virtual private cloud local area network of a cloud vendor, wherein the virtual private cloud local area network can be a virtual private cloud provided by different cloud vendors. When the private network domain 104 is a physical local area network, the leaf node 103 is deployed in the host of the physical local area network, and the physical local area network points the next hop of the egress router to the leaf node 103 through static routing. When the private network domain 104 is a virtual private cloud local area network, the virtual private cloud local area network applies for a virtual machine and deploys the leaf node 103, and points the next hop of the virtual private cloud local area network to the leaf node 103.

[0067] Please refer to Figure 1b, which is a schematic diagram of a private network domain provided in an embodiment of the present application. In Figure a of the example shown in Figure 1b, private network domain 104 is a physical local area network of an enterprise branch, which includes a switch and an egress router. When a computing device in the physical local area network sends a message to another private network domain, the computing device in the physical local area network routes the message to a leaf node 103 deployed in private network domain 104 based on the switch and the egress router. The leaf node 103 then forwards the message to the other private network domain via the overlay network.

[0068] Please continue to refer to Figure 1b. In Figure b of the example shown in Figure 1b, the private network domain 104 is the cloud vendor's virtual private cloud local area network. The virtual private cloud VPC local area network includes virtual machines and virtual private cloud VPC gateways. When the virtual machine VM in the virtual private cloud local area network sends a message to other private network domains, the virtual machine VM routes the message to the leaf node 103 deployed in the private network domain 104 based on the virtual private cloud VPC gateway, and then the leaf node 103 forwards the message to other private network domains through the overlay network.

[0069] Based on the overlay network system 10 shown in Figure 1a, the present application further provides a routing method. The routing method provided by the embodiment of the present application is introduced below in conjunction with an embodiment.

[0070] Please refer to Figure 2, which is a flow chart of a routing method provided in an embodiment of the present application. In the example shown in Figure 2, the method includes the following steps:

[0071] 201. The first leaf node sends a routing configuration request to the central controller. The routing configuration request is used to request the configuration of routing information corresponding to one or more leaf nodes. The routing information includes one or more of the following: the virtual private network identifier VPNID, the virtual extended local area network identifier VNI and the Internet Protocol IP segment corresponding to one or more leaf nodes.

[0072] The user of the private network domain 104 applies to the central controller 101 to deploy one or more leaf nodes in one or more private network domains 104. Afterwards, the first leaf node 103 sends a routing configuration request to the central controller 101. The routing configuration request is used to request the configuration of routing information corresponding to one or more leaf nodes. These routing information are the routing information of the private network domain 104 deployed by the leaf nodes. The routing information includes one or more of the following: the virtual private network identifier VPNID, the virtual extended local area network identifier VNI and the Internet Protocol IP segment corresponding to one or more leaf nodes.

[0073] Please refer to Figure 3, which is a flow chart of another routing method provided by an embodiment of the present application. In step a of the example shown in Figure 3, the user applies to the central controller 101 for a private network IP interconnection acceleration instance, that is, deploying corresponding leaf nodes for the private network domain 104 that accesses the overlay network. Specifically, the user of the private network domain 104 inputs a private network branch list to the central controller 101, and the private network branch list includes one or more private network branches that access the overlay network. For example, the private network branch list input by the user includes private network branch 1, private network branch 2, ..., private network branch n. The user can also input the geographical location corresponding to the private network branch, the private network branch IP segment, and the VPN network plane to which the private network branch belongs to the central controller 101.

[0074] In step d of the example shown in Figure 3, after the user applies for a private IP interconnection acceleration instance to the central controller 101, the first leaf node 103 sends a routing configuration request to the central controller 101, and the central controller 101 sends routing configuration information to the first leaf node 103. The routing configuration information includes the virtual private network identifier VPNID and the virtual extended local area network identifier VNI assigned by the central controller 101 to one or more private network branches in the private network branch list.

[0075] In one possible implementation, the central controller 101 sends a branch list and a private network location routing table to the backbone acceleration node 102. The branch list indicates the virtual extended local area network identifiers (VNIs) and Internet Protocol (IP) segments of different private network branches, while the private network location routing table indicates the backbone acceleration node identifiers corresponding to different private network branches. The backbone acceleration node is the egress node that forwards packets to the private network. The private network location routing table includes a mapping between the virtual private network identifiers (VPNIDs), Internet Protocol (IP) segments, and backbone acceleration node identifiers of different private network branches.

[0076] In steps b and c of the example shown in FIG3 , the central controller 101 sends a branch list and a private network location routing table to the backbone acceleration node 102. The branch list includes virtual extended local area network identifiers (VNIs) and Internet Protocol (IP) segments for different private network domains, and the private network location routing table includes backbone acceleration node identifiers corresponding to different private network domains.

[0077] The following describes the branch list and private network location routing table sent by the central controller 101 to the backbone acceleration node 102 in an embodiment of the present application.

[0078] Please refer to Table 1, which is a schematic diagram of a branch list provided in an embodiment of the present application. In the example shown in Table 1, each private network branch in the branch list includes three table items, namely, the virtual extended local area network identifier VNI, the virtual private network identifier VPNID, and the Internet Protocol IP segment, where the virtual extended local area network identifier VNI is the identifier of the private network branch, the virtual private network identifier VPNID is the identifier of the VPN plane to which the private network branch belongs, and the IP segment is the IP segment corresponding to the private network branch.

[0079] Table 1

[0080] Please refer to Table 2, which is a schematic diagram of a private network location routing table provided in an embodiment of the present application. In the embodiment of the present application, the private network location routing table can also be referred to as a private network VPN location routing table or a private network IP location routing table. In the example shown in Table 2, the private network location routing table includes 5 table items, namely, IP segment, IP mask, IP type, virtual private network identifier VPNID and exit node ID, wherein the IP segment is the IP segment of the private network domain corresponding to the leaf node, the IP mask includes a 32-bit mask and a 64-bit mask, the IP type includes IPv4 and IPv4, the virtual private network identifier VPNID is the identifier of the VPN plane to which the private network branch corresponding to the leaf node belongs, and the exit node ID is the identifier of the exit backbone acceleration node to which the backbone acceleration node forwards the leaf node message.

[0081] Table 2

[0082] 202. The first leaf node generates a first message based on the routing information and sends the first message to the backbone acceleration node. The destination IP address of the first message is the private network branch corresponding to the second leaf node.

[0083] After first leaf node 103 obtains routing information configured by central controller 101, it generates a first message based on the routing information. The destination IP address of the first message may be the IP address of the private network branch corresponding to the second leaf node. The second leaf node may also be referred to as a remote leaf node. The first leaf node 103 is located in the first private network, and the second leaf node is located in the second private network. The first and second private networks are two different private network branches in the overlay network. After generating the first message, first leaf node 103 obtains the IP address of the nearest backbone acceleration node 102 from central controller 101 and sends the first message to the nearest backbone acceleration node 102.

[0084] In one possible implementation, before the first leaf node 103 sends the first message to the backbone acceleration node 102, the first leaf node 103 sends a software development kit (SDK) tunnel negotiation request to the backbone acceleration node 102, where the SDK tunnel refers to the tunnel between the leaf node 103 and the backbone acceleration node 102. The SDK tunnel negotiation request is used to obtain SDK tunnel direct connection routing information. The SDK tunnel direct connection routing information includes one or more items: an SDK tunnel identifier, an SDK tunnel source IP address, and an SDK tunnel destination IP address. After the first leaf node 103 sends the SDK tunnel negotiation request, the first leaf node 103 receives an SDK tunnel negotiation response sent by the backbone acceleration node 102. The SDK tunnel negotiation response is used to establish the SDK tunnel between the first leaf node 103 and the backbone acceleration node 102 based on the SDK tunnel direct connection routing information.

[0085] Continuing with Figure 3, in steps e through g of the example shown in Figure 3, after leaf node 103 is deployed in private network domain 104, leaf node 103 accesses central control 101, obtains the nearest backbone acceleration node 102, and then sends an SDK tunnel negotiation request to backbone acceleration node 102, engaging in an SDK tunnel negotiation session with backbone acceleration node 102. During the SDK tunnel negotiation process, both backbone acceleration node 102 and leaf node 103 obtain SDK tunnel direct connection routing information.

[0086] It should be noted that during the SDK tunnel negotiation process between the first leaf node 103 and the backbone acceleration node 102, the backbone acceleration node 102 can learn the SDK tunnel direct connection routing table between the first generation leaf node 103 and the backbone acceleration node 102. This SDK tunnel direct connection routing table is used to indicate the first leaf node 103 corresponding to the backbone acceleration node 102. When the backbone acceleration node 102 forwards a message to the first leaf node 103, the backbone acceleration node 102 can determine the SDK tunnel IP address of the first leaf node 103 based on this SDK tunnel direct connection routing table.

[0087] Please refer to Figure 4, which is a flow chart of a direct route negotiation process provided by an embodiment of the present application. In steps a to d of the example shown in Figure 4, the central controller 101 sends a branch table to the backbone acceleration node 102. After the first leaf node 103 accesses the nearest backbone acceleration node, the first leaf node 103 sends an SDK tunnel direct route negotiation request to the backbone acceleration node 102. The SDK tunnel direct route negotiation request carries the virtual extended local area network identifier VNI corresponding to the leaf node 103. The backbone acceleration node 102 queries the branch list based on the VNI carried in the SDK tunnel direct route negotiation request, and learns to generate the SDK tunnel direct route table. The SDK tunnel direct route table carries the source and destination IP addresses of the SDK tunnel.

[0088] In the example shown in FIG4 , the SDK tunnel direct connection routing table generated by the backbone acceleration node 102 includes the SDK tunnel identifier, SDK tunnel source IP address, SDK tunnel sink IP address, virtual extended local area network identifier VNI, virtual private network identifier VPNID, and Internet Protocol IP segment.

[0089] Please refer to Table 3, which is a schematic diagram of a direct connection routing table provided in an embodiment of the present application. In the direct connection routing table shown in Table 3, the direct connection routing table includes 6 table items, namely, the SDK tunnel identifier, the SDK tunnel source IP address, the SDK tunnel destination IP address, the virtual extended local area network identifier VNI, the virtual private network identifier VPNID and the Internet Protocol IP segment, wherein the SDK tunnel identifier refers to the direct connection SDK tunnel identifier between the leaf node 103 and the backbone acceleration node 102, the SDK tunnel source IP address is the tunnel source IP address of the leaf node 103 for SDK tunnel encapsulation, and the SDK tunnel destination IP address is the tunnel destination IP address of the leaf node 103 for SDK tunnel encapsulation.

[0090] Table 3

[0091] In one possible implementation, when first leaf node 103 generates a first message and sends it to backbone acceleration node 103, first leaf node 103 encapsulates the first message based on the SDK tunnel direct connection routing information to obtain an SDK tunnel-encapsulated first message. The SDK tunnel-encapsulated first message carries routing information, including a VPN ID. First leaf node 103 then sends the SDK tunnel-encapsulated first message to backbone acceleration node 102.

[0092] Please refer to Figure 5, which is a flowchart of another routing method provided by an embodiment of the present application. In the example shown in Figure 5, when a leaf node sends a first message to a backbone acceleration node, the leaf node needs to perform SDK tunnel encapsulation on the first message. The message header of the SDK tunnel encapsulated first message is the SDK tunnel header. The SDK tunnel encapsulated first message carries a virtual private network identifier (VPNID). The backbone acceleration node can distinguish different private network branches based on these VPNIDs.

[0093] For example, in the example shown in Figure 5, the backbone acceleration node can determine that the first message is a message sent by a leaf node deployed on private network domain 1 based on the "virtual private network identifier VPNID 5010" carried in the first message. The backbone acceleration node can also determine that the first message is a message sent by a leaf node deployed on private network domain 3 based on the "virtual private network identifier VPNID 50120" carried in the first message.

[0094] 203. The backbone acceleration node forwards the first message based on the private network location routing table. The private network location routing table is used to query the exit node of the first message. The exit node is the backbone acceleration node corresponding to the second leaf node.

[0095] After backbone acceleration node 102 receives the first message sent by first leaf node 103, it forwards the first message based on the private network location routing table. The private network location routing table is used to query the egress node of the first message, which is the backbone acceleration node corresponding to the second leaf node. Specifically, backbone acceleration node 102 queries the private network location routing table based on the routing information carried in the first message and determines the egress node corresponding to the second leaf node. This second leaf node is the leaf node corresponding to the first message's destination private network domain.

[0096] Continuing with Figure 3, in steps h through j of the example shown in Figure 3, the private network branch switch or virtual private cloud (VPC) configures private network routing information to first leaf node 103. First leaf node 103 forwards traffic to backbone acceleration node 102 via the SDK tunnel. Backbone acceleration node 102 determines the egress node based on a query in the private network location routing table. Backbone acceleration node 102 then performs overlay encapsulation on the traffic and forwards it to the egress node closest to the second leaf node.

[0097] In one possible implementation, backbone acceleration node 102 receives the first packet encapsulated by the SDK tunnel, de-packets the packet, and performs overlay network encapsulation on the packet to obtain the first packet encapsulated by the overlay network. Backbone acceleration node 102 then determines the egress node based on the private network location routing table and sends the first packet encapsulated by the overlay network to the egress node.

[0098] Continuing with Figure 5, in the example shown in Figure 5, after a backbone acceleration node receives a first packet encapsulated by an SDK tunnel from a leaf node, it decapsulates the packet, obtains a virtual private network identifier (VPNID), and uses the VPNID to query the private network location routing table to determine the egress backbone acceleration node corresponding to the VPNID. The backbone acceleration node then performs overlay encapsulation on the decapsulated first packet based on the IP address of the egress backbone acceleration node, obtaining the first packet encapsulated by the overlay network.

[0099] In the example shown in Figure 5, the backbone acceleration node sends the first packet encapsulated with overlay to the egress backbone acceleration node. Upon receiving the first packet, the egress backbone acceleration node decapsulates and repacks the packet, queries the SDK direct routing table, and re-encapsulates the first packet with an SKD tunnel header. The egress backbone acceleration node then sends the first packet encapsulated with the SDK tunnel to the remote leaf node.

[0100] In one possible implementation, backbone acceleration node 102 receives a second message from a second leaf node. The second message carries the VPNID corresponding to the second leaf node. Backbone acceleration node 102 queries a direct routing table based on the VPNID corresponding to the second leaf node and forwards the second message to the leaf node. The direct routing table is generated by backbone acceleration node 103 based on the direct routing information.

[0101] Specifically, the second leaf node sends the SDK tunnel-encapsulated second message to the nearest remote backbone acceleration node. The remote backbone acceleration node decapsulates the second message, re-encapsulates it with overlay, queries the location routing table, and then forwards the overlay-encapsulated second message to the backbone acceleration node. After receiving the overlay-encapsulated second message, the backbone acceleration node decapsulates it and queries the SDK tunnel direct connection routing table based on the VPNID carried in the second message. It determines the SDK tunnel IP address of the leaf node corresponding to the VPNID. The backbone acceleration node then performs SDK tunnel encapsulation on the second message and sends it to the leaf node, which then forwards the second message to the corresponding private network domain.

[0102] Continuing with FIG4 , in steps e through g of the example shown in FIG4 , after backbone acceleration node 102 receives the second message sent by the remote backbone acceleration node, backbone acceleration node 102 queries the SDK tunnel direct routing table based on the IP address and virtual private network identifier (VPNID) carried in the second message, obtains the original IP address of the SDK tunnel, performs SDK tunnel encapsulation on the second message based on the original IP address of the SDK tunnel, and sends the SDK tunnel-encapsulated second message to leaf node 103.

[0103] Please continue to refer to Figure 5. In the example shown in Figure 5, during the process of forwarding the first message to the second leaf node by the egress backbone acceleration, the egress backbone node queries the SDK tunnel direct connection routing table and re-encapsulates the first message with the SKD tunnel message header. Specifically, the egress backbone acceleration node queries the SDK tunnel direct connection routing table based on the VPNID and IP address carried in the first message, determines the SDK tunnel IP address of the second leaf node, re-encapsulates the first message with the SKD tunnel message header based on the SDK tunnel IP address of the second leaf node, and sends the SDK tunnel-encapsulated first message to the second leaf node. The second leaf node receives the SDK tunnel-encapsulated first message and forwards the first message to the private network domain corresponding to the second leaf node.

[0104] It can be seen from the above embodiments that the interconnection solution of private network branches provided in the embodiments of the present application can be achieved by deploying leaf nodes in the private network branches and configuring routing information corresponding to the leaf nodes, so that the backbone acceleration nodes in the overlay network can forward messages from different private network branches according to these routing information, that is, by deploying leaf nodes of the overlay network in the private network branches, the interconnection of different private network branches is achieved, thereby improving the routing efficiency of different private network branches and reducing the interconnection cost of different private network branches.

[0105] Based on the above method embodiment, the embodiment of the present application further provides a routing device. The routing device provided by the embodiment of the present application is described in detail below.

[0106] Please refer to Figure 6, which is a schematic diagram of the structure of a routing device provided in an embodiment of the present application. In the example shown in Figure 6, the routing device 600 is used to implement the various steps performed by each node in the overlay network system in the above embodiments. The routing device 600 includes a transceiver unit 601 and a processing unit 602.

[0107] Among them, the transceiver unit 601 is used to send a routing configuration request to the central controller. The routing configuration request is used to request the central controller to configure routing information corresponding to one or more leaf nodes. The routing information includes one or more of the following: the virtual private network identifier VPNID, the virtual extended local area network identifier VNI, and the Internet Protocol IP segment corresponding to the one or more leaf nodes. The processing unit 602 is used to generate a first message based on the routing information and send the first message to the backbone acceleration node. The destination IP address of the first message is the IP address in the private network corresponding to the second leaf node. The first leaf node is located in the first private network, and the second leaf node is located in the second private network. The processing unit 602 is also used to forward the first message based on the private network location routing table. The private network location routing table is used to query the exit node of the first message. The exit node is the backbone acceleration node corresponding to the second leaf node.

[0108] In one possible implementation, the private network domain includes one or more of the following: a virtual private cloud local area network and an enterprise physical local area network.

[0109] In one possible embodiment, the transceiver unit 601 is further configured to send a software development kit (SDK) tunnel negotiation request to the backbone acceleration node. The SDK tunnel negotiation request is used to obtain SDK tunnel direct connection routing information. The SDK tunnel direct connection routing information includes one or more items: an SDK tunnel identifier, an SDK tunnel source IP address, and an SDK tunnel destination IP address. The transceiver unit 601 is further configured to receive an SDK tunnel negotiation response. The SDK tunnel negotiation response is used to establish an SDK tunnel between the first leaf node and the backbone acceleration node based on the SDK tunnel direct connection routing information. The SDK tunnel is used to transmit the first message between the first leaf node and the backbone acceleration node.

[0110] In one possible implementation, the processing unit 602 is specifically configured to encapsulate the first message based on the SDK tunnel direct connection routing information to obtain the SDK tunnel encapsulated first message, which carries the routing information, and send the SDK tunnel encapsulated first message to the backbone acceleration node.

[0111] In one possible implementation, the processing unit 602 is specifically configured to decompress and repack the SDK tunnel-encapsulated first message, perform overlay network encapsulation on the message, obtain the overlay network-encapsulated first message, and send the overlay network-encapsulated first message to the egress node based on the private network location routing table.

[0112] In one possible implementation, the processing unit 602 is further configured to generate a branch list and a private network location routing table based on the routing configuration request. The transceiver unit 601 is further configured to receive the branch list and private network location routing table sent by the central controller, wherein the branch list indicates the virtual extended local area network identifier (VNI) and Internet Protocol (IP) segment of different private network domains, and the private network location routing table indicates the backbone acceleration node identifiers corresponding to different private network domains.

[0113] In a possible implementation, the private network location routing table includes mapping relationships between virtual private network identifiers VPNIDs, Internet Protocol IP segments, and backbone acceleration node identifiers of different private network domains.

[0114] In one possible implementation, the transceiver unit 601 is further configured to receive a second message sent from the second leaf node, the second message carrying a virtual private network identifier (VPNID) corresponding to the second leaf node. The processing unit 602 is further configured to query a direct routing table based on the virtual private network identifier (VPNID) corresponding to the second leaf node, and forward the second message to the first leaf node. The direct routing table is a routing table generated by the backbone acceleration node based on the direct routing information.

[0115] It is understandable that the transceiver unit 601 and the processing unit 602 in the routing device 600 can be mapped as functional modules to the modules in the overlay network system 10 in FIG. 1 a , thereby realizing the functions of the modules in the overlay network system 10 .

[0116] It should be understood that the division of units in the above device is merely a division of logical functions. In actual implementation, they can be fully or partially integrated into one physical entity, or they can be physically separated. Moreover, the units in the device can all be implemented in the form of software called through processing elements; or they can all be implemented in the form of hardware; or some units can be implemented in the form of software called through processing elements, and some units can be implemented in the form of hardware. For example, each unit can be a separately established processing element, or it can be integrated into a certain chip of the device. In addition, it can also be stored in the memory in the form of a program, called by a certain processing element of the device and perform the function of the unit. In addition, all or part of these units can be integrated together, or they can be implemented independently. The processing element described here can also be a processor, which can be an integrated circuit with signal processing capabilities. In the implementation process, each step of the above method or each unit above can be implemented by the integrated logic circuit of the hardware in the processor element or in the form of software called through the processing element.

[0117] It is worth noting that, for the sake of simplicity of description, the above method embodiments are all expressed as a series of action combinations. However, those skilled in the art should know that this application is not limited to the order of the actions described. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required for this application.

[0118] Other reasonable step combinations that can be thought of by those skilled in the art based on the above description also fall within the scope of protection of this application. Secondly, those skilled in the art should also be familiar with that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by this application.

[0119] Please refer to Figure 7, which is a schematic diagram of the structure of a computing device provided in an embodiment of the present application. As shown in Figure 7, the computing device 700 includes: a processor 701, a memory 702, a communication interface 703, and a bus 704. The processor 701, the memory 702, and the communication interface 703 are coupled via a bus (not labeled in the figure). The memory 702 stores instructions. When the execution instructions in the memory 702 are executed, the computing device 700 executes the method executed by the computing node of the coverage network system in the above-mentioned method embodiment.

[0120] The computing device 700 may be one or more integrated circuits configured to implement the above method, such as one or more application specific integrated circuits (ASICs), one or more digital signal processors (DSPs), one or more field programmable gate arrays (FPGAs), or a combination of at least two of these integrated circuit forms. For example, when a unit in the apparatus can be implemented in the form of a processing element scheduler, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processor that can call a program. For example, these units may be integrated together and implemented in the form of a system-on-a-chip (SOC).

[0121] The processor 701 may be a central processing unit (CPU), other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA), other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.

[0122] Memory 702 may be volatile memory or nonvolatile memory, or may include both volatile and nonvolatile memory. Nonvolatile memory may be read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory may be random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link DRAM (SLDRAM), and direct rambus RAM (DR RAM).

[0123] The memory 702 stores executable program codes, and the processor 701 executes the executable program codes to respectively implement the functions of the aforementioned units or modules, thereby implementing the aforementioned routing method.

[0124] The communication interface 703 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 700 and other devices or a communication network.

[0125] In addition to the data bus, bus 704 may also include a power bus, a control bus, and a status signal bus. The bus may be a Peripheral Component Interconnect Express (PCIe) bus, an Extended Industry Standard Architecture (EISA) bus, a unified bus (Ubus or UB), a Compute Express Link (CXL), or a Cache Coherent Interconnect for Accelerators (CCIX). Buses can be categorized as address buses, data buses, and control buses.

[0126] Please refer to FIG8 , which is a schematic diagram of a computing device cluster provided in an embodiment of the present application. As shown in FIG8 , the computing device cluster 800 includes at least one computing device 700 .

[0127] As shown in Figure 8, the computing device cluster 800 includes at least one computing device 700. The memory 702 in one or more computing devices 700 in the computing device cluster 800 may store the same instructions for executing the above routing method.

[0128] In some possible implementations, the memory 702 of one or more computing devices 700 in the computing device cluster 800 may also store some instructions for executing the above routing method. In other words, the combination of one or more computing devices 700 can jointly execute the instructions for executing the above routing method.

[0129] It should be noted that the memory 702 in different computing devices 700 in the computing device cluster 800 can store different instructions, each for executing part of the functions of the above-mentioned routing device. In other words, the instructions stored in the memory 702 in different computing devices 700 can implement the functions of one or more modules in the processing unit and the transceiver unit.

[0130] In some possible implementations, one or more computing devices 700 in the computing device cluster 800 may be connected via a network, which may be a wide area network or a local area network.

[0131] Please refer to Figure 9, which is a schematic diagram of computer devices in a computer cluster provided by an embodiment of the present application connected via a network. As shown in Figure 9, two computing devices 700A and 700B are connected via a network. Specifically, the connection to the network is through a communication interface in each computing device.

[0132] In one possible implementation, the memory of the computing device 700A stores instructions for executing the functions of the transceiver unit, while the memory of the computing device 700B stores instructions for executing the functions of the processing unit.

[0133] It should be understood that the functions of the computing device 700A shown in Figure 9 may also be completed by multiple computing devices. Similarly, the functions of the computing device 700B may also be completed by multiple computing devices.

[0134] In another embodiment of the present application, a computer-readable storage medium is provided, in which computer-executable instructions are stored. When the processor of the device executes the computer-executable instructions, the device executes the method executed by the overlay network system in the above method embodiment.

[0135] In another embodiment of the present application, a computer program product is provided, the computer program product including computer-executable instructions stored in a computer-readable storage medium. When a processor of a device executes the computer-executable instructions, the device executes the method executed by the overlay network system in the above method embodiment.

[0136] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0137] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0138] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0139] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.

[0140] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

Claims

1. A routing method, characterized in that: Applied to an overlay network system, the overlay network system includes a central controller, one or more backbone acceleration nodes, and one or more leaf nodes, wherein the one or more leaf nodes are deployed in different private networks, the method includes: The first leaf node sends a routing configuration request to the central controller, wherein the routing configuration request is used to request the central controller to configure routing information corresponding to the one or more leaf nodes, wherein the routing information includes one or more of the following: a virtual private network identifier VPNID, a virtual extended local area network identifier VNI, and an Internet Protocol IP segment corresponding to the one or more leaf nodes; The first leaf node generates a first message based on the routing information and sends the first message to the backbone acceleration node. The destination IP address of the first message is the IP address in the private network corresponding to the second leaf node. The first leaf node is located in the first private network, and the second leaf node is located in the second private network. The backbone acceleration node forwards the first message based on a private network location routing table, where the private network location routing table is used to query an egress node of the first message, and the egress node is the backbone acceleration node corresponding to the second leaf node.

2. The method according to claim 1, characterized in that The private network domain includes one or more of the following: a virtual private cloud local area network and an enterprise physical local area network.

3. The method according to claim 1 or 2, characterized in that Before sending the first message to the backbone acceleration node, the method further includes: The first leaf node sends a software development kit (SDK) tunnel negotiation request to the backbone acceleration node, where the SDK tunnel negotiation request is used to obtain SDK tunnel direct connection routing information, where the SDK tunnel direct connection routing information includes one or more items: an SDK tunnel identifier, an SDK tunnel source IP address, and an SDK tunnel destination IP address; The first leaf node receives an SDK tunnel negotiation response, where the SDK tunnel negotiation response is used to establish an SDK tunnel between the first leaf node and the backbone acceleration node based on the SDK tunnel direct routing information, and the SDK tunnel is used to transmit the first message between the first leaf node and the backbone acceleration node.

4. The method according to claim 3, characterized in that The leaf node generating a first message based on the routing information and sending the first message to the backbone acceleration node includes: The first leaf node encapsulates the first message based on the SDK tunnel direct connection routing information to obtain a first message encapsulated by the SDK tunnel, where the first message encapsulated by the SDK tunnel carries the routing information; The first leaf node sends the first message encapsulated by the SDK tunnel to the backbone acceleration node.

5. The method according to claim 4, characterized in that The backbone acceleration node forwarding the first message based on the private network location routing table includes: The backbone acceleration node decompresses and repacks the first message encapsulated by the SDK tunnel, and performs overlay network encapsulation to obtain the first message encapsulated by the overlay network; The backbone acceleration node sends the first message encapsulated by the overlay network to the egress node based on the private network location routing table.

6. The method according to any one of claims 1 to 5, characterized in that Before the backbone acceleration node forwards the first message based on the private network location routing table, the method further includes: The central controller generates a branch list and the private network location routing table based on the routing configuration request; The backbone acceleration node receives a branch list and the private network location routing table sent by the central controller, wherein the branch list is used to indicate the virtual extended local area network identifier (VNI) and Internet Protocol (IP) segment of different private network domains, and the private network location routing table is used to indicate the backbone acceleration node identifiers corresponding to different private network domains.

7. The method according to any one of claims 1 to 6, characterized in that The private network location routing table includes mapping relationships between virtual private network identifiers VPNIDs, Internet Protocol IP segments, and backbone acceleration node identifiers of different private network domains.

8. The method according to any one of claims 3 to 7, characterized in that The method further comprises: The backbone acceleration node receives a second message sent from the second leaf node, where the second message carries a virtual private network identifier VPNID corresponding to the second leaf node; The backbone acceleration node queries a direct routing table based on the virtual private network identifier VPNID corresponding to the second leaf node, and forwards the second message to the first leaf node. The direct routing table is a routing table generated by the backbone acceleration node based on the direct routing information.

9. A routing device, characterized in that: include: a transceiver unit, configured to send a routing configuration request to the central controller, wherein the routing configuration request is used to request the central controller to configure routing information corresponding to the one or more leaf nodes, wherein the routing information includes one or more of the following: a virtual private network identifier VPNID, a virtual extended local area network identifier VNI, and an Internet Protocol IP segment corresponding to the one or more leaf nodes; a processing unit, configured to generate a first message based on the routing information and send the first message to the backbone acceleration node, wherein the destination IP address of the first message is an IP address in a private network corresponding to the second leaf node, the first leaf node is located in the first private network, and the second leaf node is located in the second private network; The processing unit is further configured to forward the first message based on a private network location routing table, where the private network location routing table is configured to query an exit node of the first message, where the exit node is a backbone acceleration node corresponding to the second leaf node.

10. The device according to claim 9, characterized in that The private network domain includes one or more of the following: a virtual private cloud local area network and an enterprise physical local area network.

11. The device according to claim 9 or 10, characterized in that The transceiver unit is further configured to: Sending a software development kit (SDK) tunnel negotiation request to the backbone acceleration node, where the SDK tunnel negotiation request is used to obtain SDK tunnel direct connection routing information, where the SDK tunnel direct connection routing information includes one or more items: an SDK tunnel identifier, an SDK tunnel source IP address, and an SDK tunnel destination IP address; An SDK tunnel negotiation response is received, where the SDK tunnel negotiation response is used to establish an SDK tunnel between the first leaf node and the backbone acceleration node based on the SDK tunnel direct routing information, and the SDK tunnel is used to transmit the first message between the first leaf node and the backbone acceleration node.

12. The device according to claim 11, characterized in that The processing unit is specifically configured to: Encapsulating the first message based on the SDK tunnel direct connection routing information to obtain an SDK tunnel-encapsulated first message, where the SDK tunnel-encapsulated first message carries the routing information; Send the first message encapsulated by the SDK tunnel to the backbone acceleration node.

13. The device according to claim 12, characterized in that The processing unit is specifically configured to: Decompressing and repackaging the first message encapsulated by the SDK tunnel, and performing overlay network encapsulation to obtain the first message encapsulated by the overlay network; The first message encapsulated by the overlay network is sent to the egress node based on the private network location routing table.

14. The device according to any one of claims 9 to 13, characterized in that The processing unit is further configured to: generating a branch list and the private network location routing table based on the routing configuration request; The transceiver unit is also used to receive the branch list and the private network location routing table sent by the central controller, the branch list is used to indicate the virtual extended local area network identifier VNI and Internet Protocol IP segment of different private network domains, and the private network location routing table is used to indicate the backbone acceleration node identifiers corresponding to different private network domains.

15. The device according to any one of claims 9 to 14, characterized in that The private network location routing table includes mapping relationships between virtual private network identifiers VPNIDs, Internet Protocol IP segments, and backbone acceleration node identifiers of different private network domains.

16. The device according to any one of claims 11 to 15, characterized in that The transceiver unit is further configured to: receiving a second message sent from a second leaf node, where the second message carries a virtual private network identifier VPNID corresponding to the second leaf node; The processing unit is further configured to query a direct routing table based on a virtual private network identifier VPNID corresponding to the second leaf node, and forward the second message to the first leaf node, wherein the direct routing table is a routing table generated by the backbone acceleration node based on the direct routing information.

17. A computing device cluster, characterized in that: The system comprises at least one computing device, wherein the computing device comprises a processor, the processor is coupled to a memory, and the memory is used to store instructions. When the instructions are executed by the processor, the computing device cluster performs the method according to any one of claims 1 to 8.

18. A computer-readable storage medium having instructions stored thereon, characterized in that: When the instructions are executed, the computer is caused to perform the method according to any one of claims 1 to 8.

19. A computer program product comprising instructions, characterized in that: When the instructions are executed, the computer is caused to implement the method according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Flow control method and related equipment

    CN115118659A

  • Data forwarding method and related device

    CN115225631A

  • Private network interconnection method and device, equipment and storage medium

    CN117459491A

  • Method and apparatus for providing network service for service, and computing device

    WO2021063028A1