Distributed routing system, routing processing method and related device
By decoupling routing, forwarding, and controllers through a distributed routing system and adopting SDN technology, a high-performance, flexible, and highly scalable routing system is achieved, solving the problems of poor scalability and slow iteration of traditional commercial routers in cloud services.
Patent Information
- Application Number
- CN202410251831.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-05
- Publication Date
- 2025-09-05
AI Technical Summary
With the rapid development of cloud services, traditional commercial routers have slow iteration speeds, limited performance specifications, and poor scalability, making them unable to meet the needs of rapid expansion. In addition, their system architecture is complex, procurement costs are high, and maintenance is difficult.
A distributed routing system is adopted, and software-defined networking (SDN) is used to decouple routing, forwarding, and controllers. The routing subsystem is divided into control subsystem, routing subsystem, and forwarding subsystem. Each subsystem is deployed independently and supports dynamic expansion. The routing subsystem is responsible for receiving dynamic routes, the control subsystem completes route calculation and sends forwarding plane routes, and the forwarding subsystem focuses only on forwarding.
It improves the overall performance of the routing system, provides high performance, flexibility, and strong scalability, reduces network element costs, and solves the problems of poor scalability, limited specifications, and slow iteration of traditional commercial routers.
Smart Images

Figure CN120602408A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a distributed routing system, a routing processing method, and related devices. Background Art
[0002] To rapidly build their cloud computing systems, cloud vendors rely heavily on traditional commercial switching systems for data communication. These systems utilize commodity routers and switches as core network elements and devices, specifically designed to quickly and efficiently forward data frames within local area networks (LANs). While these systems offer advantages in speed and simplicity, they also have limitations in network design and functionality.
[0003] Specifically, traditional commercial router equipment is more focused on the versatility of commercial sales. Although it can quickly form a network and complete system construction, it cannot fully meet the routing control and forwarding needs of cloud services. For example, the traditional commercial router system architecture is complex, the procurement cost is high, and subsequent maintenance is difficult. In addition, the specifications of traditional commercial router equipment itself are fixed, which makes expansion difficult and cannot meet the characteristics of the rapid expansion of cloud business systems.
[0004] In summary, driven by the rapid development of cloud services, traditional commercial routers have exposed numerous shortcomings and bottlenecks in terms of iteration speed, performance specifications, and scalability. Therefore, it is urgent to find a routing system and routing processing method with better overall performance. Summary of the Invention
[0005] The embodiments of the present application provide a distributed routing system, a routing processing method, and related devices, so as to provide a routing system and a routing processing method with better overall performance, thereby improving the overall performance of the routing system.
[0006] An embodiment of the present application provides a distributed routing system, comprising: a control subsystem, at least one routing subsystem, and at least one forwarding subsystem;
[0007] Each of the routing subsystems is configured to establish a communication connection with a router on the associated business object side to receive routing report information notified by the business object side, and report the routing report information to the control subsystem; the routing report information is used to indicate the business network configured for the business object;
[0008] The control subsystem is configured to, after receiving the route reporting information reported by the routing subsystem, generate a forwarding plane route based on the route reporting information, and send the forwarding plane route to the forwarding subsystem associated with the business object;
[0009] Each of the forwarding subsystems is configured to receive the forwarding plane route issued by the control subsystem and update the first local routing table based on the forwarding plane route, so as to forward the service traffic request based on the first local routing table after receiving the service traffic request.
[0010] An embodiment of the present application provides a routing processing method, which is applied to a control subsystem in a distributed routing system. The distributed routing system further includes at least one routing subsystem and at least one forwarding subsystem. The method includes:
[0011] Receive routing report information reported by the routing subsystem; the routing subsystem is used to establish a communication connection with the router on the associated business object side to receive the routing report information notified by the business object side, and report the routing report information to the control subsystem; the routing report information is used to indicate the business network configured for the business object;
[0012] generating a forwarding plane route based on the route reporting information;
[0013] The forwarding plane route is sent to the forwarding subsystem associated with the business object, so that the forwarding subsystem updates the first local routing table based on the forwarding plane route, so as to forward the business traffic request based on the first local routing table after receiving the business traffic request.
[0014] An embodiment of the present application provides a routing processing device, which is applied to a control subsystem in a distributed routing system. The distributed routing system further includes at least one routing subsystem and at least one forwarding subsystem. The device includes:
[0015] a receiving unit, configured to receive routing report information reported by the routing subsystem; the routing subsystem is configured to establish a communication connection with a router on the associated business object side to receive routing report information notified by the business object side, and report the routing report information to the control subsystem; the routing report information is used to indicate the business network configured for the business object;
[0016] A generating unit, configured to generate a forwarding plane route based on the route reporting information;
[0017] A forwarding unit is used to send the forwarding plane route to the forwarding subsystem associated with the business object, so that the forwarding subsystem updates the first local routing table based on the forwarding plane route, so as to forward the business traffic request based on the first local routing table after receiving the business traffic request.
[0018] Optionally, each business object is associated with at least one of the routing subsystems; and the generating unit is specifically configured to:
[0019] For a business object, obtaining global routing information of each routing subsystem associated with the business object;
[0020] Based on the global routing information, the routing report information is merged and processed;
[0021] If it is determined that the service network indicated by the route reporting information represents a newly added route, a forwarding plane route of the service network is generated.
[0022] Optionally, if the same business object is associated with at least two routing subsystems, the generating unit is specifically configured to:
[0023] For routing report information for the same service network, after receiving the routing report information reported by the first routing subsystem in the at least two routing subsystems, generate a forwarding plane route based on the routing report information, and send the forwarding plane route to the forwarding subsystem associated with the service object;
[0024] After receiving the routing report information reported by other routing subsystems in the at least two routing subsystems, the routing report information is ignored.
[0025] Optionally, if the same business object is associated with at least two routing subsystems, the apparatus further includes:
[0026] The deleting unit is used to notify the relevant forwarding subsystem to delete the forwarding plane route generated based on the business network after receiving the route deletion information reported by the last routing subsystem among the at least two routing subsystems.
[0027] Optionally, if there are multiple routes to the service network and they need to be processed by the control subsystem, the generating unit is specifically configured to:
[0028] After receiving the route reporting information reported by the routing subsystem, performing route optimization on the plurality of routes in combination with the first route optimization rule predefined by the business object and the route reporting information;
[0029] Generate forwarding plane routes based on the route optimization results.
[0030] Optionally, the forwarding unit is further configured to:
[0031] The forwarding plane route is transmitted to another external system via the Border Gateway Protocol or a related application programming interface, so that at least one of the following operations is performed by the other external system:
[0032] Displaying the forwarding plane routing;
[0033] The second local routing table is updated based on the forwarding plane routing, so that after receiving the service traffic request, the service traffic request is forwarded based on the second local routing table.
[0034] An embodiment of the present application provides an electronic device, including a processor and a memory, wherein the memory stores a computer program, and when the computer program is executed by the processor, the processor performs the steps of any one of the above-mentioned routing processing methods.
[0035] An embodiment of the present application provides a computer-readable storage medium, which includes a computer program. When the computer program is run on an electronic device, the computer program is used to enable the electronic device to perform the steps of any one of the above-mentioned routing processing methods.
[0036] An embodiment of the present application provides a computer program product, which includes a computer program stored in a computer-readable storage medium; when a processor of an electronic device reads the computer program from the computer-readable storage medium, the processor executes the computer program, causing the electronic device to perform the steps of any one of the above-mentioned routing processing methods.
[0037] The beneficial effects of this application are as follows:
[0038] The embodiments of the present application provide a distributed routing system, a routing processing method, and related devices. The routing system in the present application is a high-performance distributed routing system of software. Specifically, the system is implemented using a software-defined network (SDN). SDN can provide flexible network management and isolation functions. Based on this, the present application decouples the routing, forwarding, and controller in a commercial switch, dividing them into a control subsystem, at least one routing subsystem, and at least one switching subsystem. Each subsystem can be independently deployed and operated, and supports dynamic expansion and cross-regional disaster recovery.
[0039] The routing subsystem is responsible for establishing communication connections with business objects and receiving dynamic routes from them. The control subsystem is responsible for obtaining business object routes from the routing subsystem, completing route calculation and iteration, and ultimately delivering the forwarding plane routes to the forwarding subsystem. The forwarding subsystem focuses solely on forwarding and no longer carries routing and controller functions, allowing it to fully utilize the device's central processing unit (CPU) and memory.
[0040] The above-mentioned distributed routing system has better overall performance. This distributed routing system fully disassembles and decouples the functions of traditional commercial routers, and uses a distributed software system to complete routing calculation and optimization. It has the characteristics of high performance, flexibility, and strong scalability. It successfully reduces the cost of network elements and solves the problems of poor scalability, limited specifications, and slow iteration of traditional commercial routers.
[0041] Other features and advantages of the present application will be described in the following description, and in part will become apparent from the description, or will be understood by practicing the present application. The purposes and other advantages of the present application can be realized and obtained by the structures particularly pointed out in the written description, claims, and drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0042] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0043] Figure 1 This is a schematic diagram of a user IDC accessing a public cloud in an embodiment of the present application;
[0044] Figure 2 This is an architectural diagram of a traditional large router in an embodiment of the present application;
[0045] Figure 3 This is a schematic diagram of an application scenario in an embodiment of the present application;
[0046] Figure 4A This is a structural diagram of a distributed routing system in an embodiment of the present application;
[0047] Figure 4B This is a schematic diagram of the structure of another distributed routing system in an embodiment of the present application;
[0048] Figure 4C This is a structural diagram of another distributed routing system in an embodiment of the present application;
[0049] Figure 5 This is a schematic diagram of routing processing based on a logical instance in an embodiment of the present application;
[0050] Figure 6 A schematic diagram of the working logic of a distributed routing system in an embodiment of the present application;
[0051] Figure 7 A schematic diagram of repeated reporting of routing reporting information in an embodiment of the present application;
[0052] Figure 8A schematic diagram of deleting duplicate reporting of routing information in an embodiment of the present application;
[0053] Figure 9 A schematic diagram of routing convergence in a distributed routing system according to an embodiment of the present application;
[0054] Figure 10 A schematic diagram of a traditional device routing linkage in an embodiment of the present application;
[0055] Figure 11 A schematic diagram of routing linkage of a distributed routing system in an embodiment of the present application;
[0056] Figure 12 A flowchart of an implementation of a routing processing method provided in an embodiment of the present application;
[0057] Figure 13 A schematic diagram of the interaction logic within a distributed routing system in an embodiment of the present application;
[0058] Figure 14 This is a schematic diagram of the structure of a routing processing device in an embodiment of the present application;
[0059] Figure 15 A schematic diagram of the hardware structure of an electronic device to which an embodiment of the present application is applied;
[0060] Figure 16 A schematic diagram of the hardware structure of a computing device using an embodiment of the present application. DETAILED DESCRIPTION
[0061] To make the purpose, technical solutions, and advantages of the embodiments of this application more clear, the technical solutions of this application will be clearly and completely described below in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are part of the embodiments of the technical solutions of this application, but not all of them. Based on the embodiments described in this application document, all other embodiments obtained by ordinary technicians in this field without making creative efforts shall fall within the scope of protection of the technical solutions of this application.
[0062] The following is an introduction to some concepts involved in the embodiments of this application.
[0063] Route reporting information: used to indicate the newly configured business network for the business object. For example, if a new business network is planned on the business object side, in order to enable the business network to provide services externally, the business network can be announced through route reporting information to notify the newly added related forwarding plane routes.
[0064] Route deletion information: used to indicate a business network that needs to be deleted. For example, if the business network on the business object side is no longer in use, is allocated incorrectly, the network environment changes, or for security reasons, a business network needs to be deleted. In this case, the business network can be announced through route deletion information to notify the deletion of the relevant forwarding plane routes.
[0065] Routing table: In computer networking, a spreadsheet or database-like table stored in a router or networked computer. A routing table stores the paths to specific network addresses (and, in some cases, the routing metrics for those paths). It contains topological information about the network's perimeter. The primary purpose of a routing table is to implement routing protocols and static routing.
[0066] Global routing information refers to all routing information currently learned by a network device, such as the routing information in the local routing table of the network device. Each routing information item contains at least the key elements of the destination network, next hop, and outbound interface, which guide the router on how to forward the data packet to the next destination. The destination network defines how the router should distinguish between different data packet destinations to ensure that each data packet is sent to the correct network. The next hop refers to the Internet Protocol (IP) address of the next router to reach the destination network. When a data packet is transmitted from one network to another, the next hop is responsible for directing the adjacent router to which the data packet should be sent. This usually involves obtaining the Media Access Control (MAC) address of the next hop device for further data encapsulation and transmission. The outbound interface refers to the local interface used by the router to send the data packet to the destination network.
[0067] Route optimization refers to selecting the optimal route based on specific rules when multiple routes to a destination exist. This process typically occurs when a router receives multiple routes to the same destination and uses a series of routing principles to determine the optimal route.
[0068] The rules for selecting the optimal route mentioned in the embodiments of the present application can be divided into the following two categories: one is the first route optimization rule used by the control subsystem to perform route optimization. This type of rule can be flexibly set by the business object according to its own needs to achieve customized route optimization; the other is the second route optimization rule used by the routing subsystem to perform route optimization. This type of rule is generally pre-configured on the routing subsystem side. In some cases, the routing subsystem can directly perform route optimization based on the pre-configured second route optimization rule to generate forwarding plane routing, and sink part of the convergence pressure that originally needed to be handled by the control subsystem to the routing subsystem side, so as to reduce the convergence pressure of the control subsystem.
[0069] Forwarding plane routing refers to the actual path that routers or other network devices take during data transmission. It involves the specific route that packets take from source to destination, and is responsible for processing and forwarding packets. This involves forwarding packets from one interface to another according to information in the routing table until they reach their final destination.
[0070] Routing plane logical instance: refers to a way of logically grouping routing functions in the control plane of the distributed routing system of this application. Its main responsibility is to maintain the routing table and determine how data should be routed from the source to the destination. Each routing plane logical instance can independently run different routing protocols, maintain its own routing table, and notify routing information to other routing plane logical instances or forwarding plane logical instances as needed. This grouping method helps to improve the scalability and flexibility of the device, allowing the device to support multiple routing protocols and network scenarios simultaneously.
[0071] Forwarding plane logical instance: refers to a way of logically grouping forwarding functions in the forwarding layer of the distributed routing system of this application. Its main responsibility is to handle the forwarding of data packets and transmit data packets from the source to the destination. Each forwarding plane logical instance can independently handle different types of data streams and forward data packets according to the corresponding routing tables and policies. This grouping method helps to improve the performance and scalability of the device, allowing the device to simultaneously support multiple forwarding scenarios and Quality of Service (QoS) requirements.
[0072] In the embodiment of the present application, the routing plane logical instance and the forwarding plane logical instance respectively carry the routing plane and forwarding plane functions, and jointly constitute the user's virtual router.
[0073] Routing space refers to the domain within a network where each routing or forwarding plane logical instance has independent management and decision-making capabilities. Each routing or forwarding plane logical instance has its own routing table. The routing table contains the best next-hop information for reaching each network destination. Different routing or forwarding plane logical instances independently make packet forwarding decisions based on their own routing tables, without the intervention of other routing or forwarding plane logical instances.
[0074] In an optional implementation, the distributed routing system and routing processing method in the embodiments of the present application involve cloud technology and can be designed based on cloud computing and other technologies in the cloud technology.
[0075] Cloud technology refers to a hosting technology that unifies hardware, software, network and other resources within a wide area network or local area network to achieve data computing, storage, processing and sharing.
[0076] Cloud technology is a general term for network technologies, information technologies, integration technologies, management platform technologies, and application technologies based on the cloud computing business model. It can form a resource pool that can be used flexibly and conveniently on demand. Cloud computing technology will become a key support. Backend services for technical network systems, such as video websites, image websites, and more portals, require extensive computing and storage resources. With the rapid development and application of the internet industry, every item will likely have its own unique identification mark, requiring transmission to backend systems for logical processing. Different levels of data will be processed separately, and data from all industries will require strong system support, which can only be achieved through cloud computing.
[0077] Cloud computing is a computing model that distributes computing tasks across a resource pool consisting of a large number of computers, enabling various application systems to access computing power, storage space, and information services as needed. The network that provides these resources is called the "cloud." To users, these resources appear infinitely scalable and can be accessed at any time, used on demand, expanded at any time, and paid for on a pay-per-use basis.
[0078] Cloud computing is the product of the integration of traditional computer and network technologies such as grid computing, distributed computing, parallel computing, utility computing, network storage technologies, virtualization, and load balancing.
[0079] Cloud computing has rapidly grown, driven by the internet, real-time data streams, the diversification of connected devices, and the growing demand for search services, social networks, mobile commerce, and open collaboration. Unlike previous parallel and distributed computing approaches, the emergence of cloud computing will fundamentally revolutionize the entire internet and enterprise management model.
[0080] Cloud computing is an Internet-based computing method that allows users to access a shared pool of computing resources, such as servers, storage, and applications, through the Internet.
[0081] In cloud computing, routers play a crucial role. They connect data center networks to the internet, enabling users to access cloud services remotely. Routers also forward data packets between different networks, ensuring secure and efficient data transmission.
[0082] In cloud computing systems, switches are responsible for data exchange within the data center. With technological advancements, the relationship between servers, storage, and switches has become increasingly close. In modern data centers, a single server may have three different ports: a management network, a data network, and a storage network. These ports need to be connected and managed through switches.
[0083] In summary, cloud computing systems provide a centralized resource pool, and routers and switches are key devices for achieving efficient and secure allocation and access to these resources.
[0084] The following is a brief introduction to the design concept of the embodiment of this application:
[0085] In order to quickly build their own cloud computing systems, cloud vendors use a large number of traditional commercial switch systems for data communication.
[0086] Take the user Internet Data Center (IDC) access to the cloud system as an example. Figure 1 As shown, it is a schematic diagram of a user IDC accessing a public cloud in an embodiment of the present application. The various business systems within the user IDC are converged through the Customer Edge Router (CER), and are connected to the public cloud's CloudEdge Switch (CES) through dedicated lines, virtual private networks (VPN) channels, and other means. The CER and CES complete the exchange and release of routes using the Border Gateway Protocol (BGP) and other means. After the user publishes the route in the IDC, the CES completes the route reception and calculation, and finally completes the route convergence and forwarding route configuration on the cloud side.
[0087] To quickly build cloud access systems, major cloud vendors use commercial switches as CES access switching devices on the access side, completing the entire cloud access channel. Traditional commercial switch systems use commercial routers and switches as core network elements and devices, specifically designed to quickly and efficiently forward data frames within the local area network.
[0088] However, traditional commercial router equipment is more based on the versatility of commercial sales. Although it can quickly form a network and complete system construction, it cannot fully meet the routing control and forwarding needs of cloud services. Driven by the rapid development of cloud services, traditional commercial routers have exposed many shortcomings and bottlenecks in terms of iteration speed, performance specifications and scalability.
[0089] On the one hand, traditional commercial routers have complex system architectures, high procurement costs, and difficulty in subsequent maintenance, which deeply binds cloud vendors to related equipment. On the other hand, traditional equipment itself has fixed specifications and is difficult to expand, which cannot meet the characteristics of the rapid expansion of cloud business systems, such as Figure 2 As shown, it is an architectural diagram of a traditional large router in an embodiment of the present application, wherein the traditional large router is composed of hardware such as a microprocessor unit (MPU) main control board and an interface card. Due to its fixed specifications, the table entries are limited, and the modules are coupled, resulting in complex operation and maintenance. At the same time, in terms of functional iteration, it is an extremely difficult task to promote the configuration business department of the equipment manufacturer to carry out rapid iteration and development.
[0090] The above problems have driven the development of new technologies such as SDN, which aims to solve these shortcomings through centralized management and more flexible traffic control.
[0091] In view of this, embodiments of the present application provide a distributed routing system, routing processing method, and related devices. The routing system in the present application is a software-based, high-performance distributed routing system. Specifically, the system is implemented using an SDN approach, which can provide flexible network management and isolation capabilities. Based on this, the present application decouples the routing, forwarding, and controller functions in commercial switches, dividing them into a control subsystem, at least one routing subsystem, and at least one switching subsystem. Each subsystem can be independently deployed and operated, and supports dynamic expansion and cross-regional disaster recovery.
[0092] The routing subsystem is responsible for establishing communication connections with business objects and receiving dynamic routes from them. The control subsystem is responsible for obtaining business object routes from the routing subsystem, completing route calculation and iteration, and ultimately delivering the forwarding plane routes to the forwarding subsystem. The forwarding subsystem focuses solely on forwarding and no longer carries routing and controller functions, allowing it to fully utilize the device's CPU and memory.
[0093] The above distributed routing system fully disassembles and decouples the functions of traditional commercial routers, using a distributed software system to complete routing calculation and optimization. It has the characteristics of high performance, flexibility, and strong scalability. It successfully reduces network element costs and improves system performance and scalability, solving the problems of poor scalability, limited specifications, and slow iteration of traditional commercial routers.
[0094] The preferred embodiments of the present application are described below in conjunction with the drawings in the specification. It should be understood that the preferred embodiments described herein are only used to illustrate and explain the present application and are not used to limit the present application. In addition, the embodiments and features in the embodiments of the present application can be combined with each other if there is no conflict.
[0095] like Figure 3 , which is a schematic diagram of an application scenario in an embodiment of the present application. The application scenario diagram includes a terminal device 310 and a distributed routing system 320.
[0096] In the embodiment of the present application, the terminal device 310 includes but is not limited to mobile phones, tablet computers, laptop computers, desktop computers, e-book readers, smart speakers, smart watches, smart voice interaction devices, smart home appliances, car terminals and other devices; a client can be installed on the terminal device, and the client can be software (such as a browser, routing management software, etc.), or a web page, a small program, etc.
[0097] Specifically, terminal devices, typically serving as service requesters, need to connect to the internet through network access points, allowing them to send and receive data through a distributed routing system. For example, these terminal devices can access the network through nodes in a mesh network or through an access controller and access point architecture. In a distributed routing system, a mesh network provides coverage through connections between multiple nodes, which can be routers or other network devices. In this topology, terminal devices can flexibly connect to any node, achieving seamless network access. The distributed routing system is responsible for effectively routing data to the correct destination, ensuring smooth and efficient information transmission.
[0098] The distributed routing system 320 can be an independent physical server, or a server cluster or distributed routing system composed of at least one physical server. It can also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms.
[0099] A cloud server is an Internet technology product that provides cloud computing services. It is characterized by simplicity, efficiency, security, reliability, elastic scalability of processing power, and reduced difficulty in development and operation and overall IT costs. It provides a comprehensive business service platform for all types of Internet users, integrating the three core elements of Internet applications: computing, storage, and networking, and providing public Internet infrastructure services.
[0100] In an optional embodiment, the distributed routing system includes a control subsystem, at least one routing subsystem, and at least one forwarding subsystem.
[0101] Specifically, the distributed routing system disassembles and decouples the functions of traditional routers, mainly splitting them into the three parts listed above: the control subsystem, routing subsystem, and forwarding subsystem. This solves the problems of poor scalability, limited specifications, and slow iteration of traditional commercial routers.
[0102] like Figure 4A FIG2 is a schematic diagram of a distributed routing system in an embodiment of the present application, which includes a control subsystem, two routing subsystems and four forwarding subsystems.
[0103] Each subsystem consists of three servers, such as Figure 4A The control subsystem in the network is either the routing subsystem or the forwarding subsystem.
[0104] It should be noted that each subsystem in the distributed routing system in the embodiment of the present application can be independently deployed and operated, and supports dynamic expansion and cross-regional disaster recovery.
[0105] The following combination Figure 4B An example of dynamic expansion is shown below:
[0106] like Figure 4B As shown, it is a structural diagram of another distributed routing system in an embodiment of the present application. Figure 4B Indicates Figure 4A A new distributed routing system is obtained by dynamic expansion based on the Figure 4B The distributed routing system shown in the figure includes a control subsystem, three routing subsystems and eight forwarding subsystems. Figure 4A Compared to the first routing subsystem, a new forwarding subsystem is associated with it; in addition, a third routing subsystem is added and associated with it, three new forwarding subsystems are added.
[0107] Each subsystem consists of two or three servers, such as Figure 4B The control subsystem or routing subsystem in the system is composed of three servers, and the forwarding subsystem is composed of two servers and three servers respectively.
[0108] In addition, in addition to dynamic expansion, dynamic reduction can also be performed based on the existing distributed routing system.
[0109] like Figure 4C As shown, it is a structural diagram of another distributed routing system in an embodiment of the present application. Figure 4C Indicates Figure 4A A new distributed routing system is obtained by performing certain dynamic reduction on the basis of Figure 4CThe distributed routing system shown in the figure includes a control subsystem, two routing subsystems and three forwarding subsystems. Figure 4A In comparison, one forwarding subsystem is deleted from the first routing subsystem; in addition, the capacity of the forwarding subsystem associated with the second routing subsystem is reduced.
[0110] Each subsystem consists of two or three servers, such as Figure 4C The control subsystem or routing subsystem in the system is composed of three servers, and the forwarding subsystem is composed of two servers and three servers respectively.
[0111] It should be noted that the above Figure 4A or Figure 4B or Figure 4C The components of the listed distributed routing system are just simple examples. Other related components are also applicable to the embodiments of the present application and will not be described in detail here.
[0112] In summary, the number of routing subsystems and forwarding subsystems included in the distributed routing system in the embodiment of the present application can be flexibly adjusted according to actual conditions, such as increasing flexibility when actual demand is greater, and reducing flexibility when actual demand is smaller.
[0113] In addition, the composition of each subsystem in the embodiments of the present application is not specifically limited. It can be composed of servers or other network devices, and this article does not make specific limitations.
[0114] For example: the control subsystem can be composed of an SDN controller or an SDN controller cluster, which can control the forwarding devices in the network and communicate with them through standardized protocols; the routing subsystem can be composed of routers (which can be physical routers or virtual routers), routing gateways, etc.; the forwarding subsystem can be composed of forwarding gateways, switches, etc.
[0115] For another example: taking the composition of servers as an example, the type and quantity of servers that make up each subsystem are not specifically limited. It can be an independent physical server, or a server cluster or distributed routing system composed of at least one physical server. It can also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, as well as big data and artificial intelligence platforms.
[0116] In an optional implementation, the terminal device 310 and the distributed routing system 320 may communicate via a communication network.
[0117] In an optional implementation, the communication network is a wired network or a wireless network.
[0118] It should be noted that Figure 3 The examples shown are only for illustration. In fact, the number of terminal devices and distributed routing systems, as well as subsystems in the distributed routing systems, is not limited and is not specifically limited in the embodiments of the present application.
[0119] In an embodiment of the present application, if the distributed routing system is a server, when the number of servers is at least one, at least one server can form a blockchain, and the server is a node on the blockchain; as disclosed in the embodiment of the present application, the routing-related data involved can be stored on the blockchain, for example, routing reporting information, forwarding plane routing, routing deletion information, routing tables, etc.
[0120] In addition, the embodiments of the present application can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving and other scenarios.
[0121] The following describes the routing processing method provided by the exemplary embodiment of the present application in combination with the application scenarios described above and with reference to the accompanying drawings. It should be noted that the above application scenarios are only shown to facilitate understanding of the spirit and principles of the present application, and the implementation of the present application is not limited in this respect.
[0122] The distributed routing system in the embodiment of the present application is developed and deployed using SDN, and the distributed routing system decouples routing, forwarding, and controllers in commercial switches.
[0123] The distributed routing system proposed in the embodiments of the present application is described in detail below. The distributed routing system is a multi-layered, modular architecture consisting of three main parts: a control subsystem, at least one routing subsystem, and at least one forwarding subsystem.
[0124] Each routing subsystem is used to establish a communication connection with the router on the associated business object side to receive routing report information notified by the business object side and report the routing report information to the control subsystem; wherein the routing report information is used to indicate the business network configured for the business object.
[0125] In the embodiment of the present application, the business object specifically refers to an independent entity or organization (such as an enterprise) that uses the distributed routing system, which will be referred to as a tenant (or user, customer, etc.) later.
[0126] Specifically, the distributed routing system in this application supports multi-tenancy. In a multi-tenant architecture, tenants generally refer to corporate users or organizations that have independent access to system resources. Specifically in a distributed routing system, data is isolated between each tenant, that is, when using a distributed routing system, the network traffic and configuration of each tenant are isolated from each other, ensuring data security and privacy. System administrators can allocate different network resources and services, such as bandwidth, IP addresses, etc., to each tenant based on their needs; and tenants can flexibly adjust the required network services and resources based on the growth and changes of their own business.
[0127] Specifically, each tenant can have its own network environment, including multiple hosts, such as hosts associated with different computer rooms, different business branches, etc. These hosts can be servers, workstations or other computing devices, as well as computers, smartphones or other devices that can connect to the network, such as Figure 3 The terminal device 310 in the network. This design enables efficient resource utilization and provides customized services for each tenant.
[0128] In summary, the business object (i.e., tenant) in the embodiment of the present application can be associated with one or more hosts, each host can be configured with one or more IP addresses, and the IP address here can be used to indicate the business network configured for the business object. Therefore, the routing reporting information in the embodiment of the present application can include the IP address configured for the host associated with the business object.
[0129] In addition, routing report information may also include changes in network topology, link status updates, or other information that affects routing decisions.
[0130] Specifically, the routing subsystem in the distributed routing system proposed in this application is responsible for establishing a communication connection with the user. In the embodiment of this application, the communication connection can specifically be a BGP connection. That is, the routing subsystem and the user communicate through the BGP protocol and receive dynamic routes from the user side. In addition, it can also be an internal gateway protocol such as the Open Shortest Path First (OSPF) protocol, the Routing Information Protocol (RIP), or the Multi-Protocol Label Switching (MPLS) protocol, a static routing protocol, a dynamic routing protocol, etc. This article does not make specific limitations, and the BGP protocol will be used as an example for illustration.
[0131] Optionally, the distributed routing system in the embodiment of the present application is developed and deployed based on SDN, and each routing subsystem can be abstracted as a routing plane logical instance cluster, and each routing plane logical instance in the routing plane logical instance cluster can be simply referred to as a routing instance.
[0132] Specifically, a routing instance is a software-level concept. In this context, it refers to a logical path managed by the routing subsystem. It involves how the router forwards packets based on the routing table. These routing instances are independent of each other and have their own routing space. This means that each routing subsystem can independently perform route calculations, improving the scalability and fault tolerance of the entire system.
[0133] In an embodiment of the present application, the routing instance is responsible for assuming the routing control plane function of a traditional network device. The routing instance supports traditional network protocols such as BGP, establishes a BGP neighbor relationship with the user-side router through the BGP protocol, and is responsible for receiving, transmitting and notifying learned routing change messages.
[0134] Specifically, a routing instance is also referred to as a virtual router (vRouter) instance. A vRouter is a logical router that emulates the functionality of a physical router at the software level. A vRouter belongs to a specific tenant, and each tenant can have one or more vRouter instances to manage and control their network traffic. The routing spaces of different vRouters are completely isolated, and each vRouter instance has its own independent network address space, routing table, and neighbor relationships.
[0135] In an embodiment of the present application, by providing each tenant with an independent vRouter instance, secure isolation of network traffic can be achieved. This way, even if a tenant is attacked or experiences a failure, the network traffic of other tenants will not be affected. Furthermore, independent routing spaces ensure that each tenant's resources are not affected by other tenants. This helps avoid resource contention and performance bottlenecks, ensuring that each tenant can achieve the expected network performance. Furthermore, independent routing spaces facilitate fault isolation. When a problem occurs in a vRouter instance, it will only affect the tenant to which it belongs, without affecting the network traffic of other tenants.
[0136] Furthermore, because each vRouter instance is independent, customized network configuration and management policies can be provided to each tenant. This enables network administrators to implement granular management tailored to the needs and business scenarios of different tenants. By using vRouter instances, the distributed routing system can more easily support multi-tenant environments. As the number of tenants increases, the system's capacity and functionality can be expanded by creating more vRouter instances without requiring major modifications to the existing architecture.
[0137] In summary, in the distributed routing system of the present application, by abstracting the routing instance function into a vRouter instance and providing each tenant with an independent routing space, a secure, efficient, flexible and scalable multi-tenant network environment can be achieved.
[0138] The above briefly introduces the working principle of the routing subsystem. The following is a brief introduction to the control subsystem:
[0139] The control subsystem is used to generate a forwarding plane route based on the route reporting information after receiving the route reporting information reported by the routing subsystem, and send the forwarding plane route to the forwarding subsystem associated with the business object.
[0140] In the embodiment of the present application, the control subsystem is the core of the entire distributed routing system, and controls the entire network by communicating with other subsystems.
[0141] Specifically, the control subsystem is responsible for obtaining the route reporting information reported by the user side from the routing subsystem, completing the route calculation and iteration, and finally sending the generated forwarding plane route to the forwarding subsystem.
[0142] In the embodiment of the present application, the control subsystem may be in the form of a controller cluster, specifically an SDN controller cluster, which is mainly responsible for receiving and processing BGP routing information reported by routing instances.
[0143] Optionally, the SDN controller and routing instance interact through Google Remote Procedure Calls (GRPC). The routing instance reports the latest routing information to the SDN controller. The SDN controller performs iterative and merging calculations based on the global routing information of the service to generate the optimal forwarding plane route. Finally, the forwarding device and external system are linked to send the forwarding plane routing configuration to the forwarding subsystem (such as the forwarding gateway) to open up the data plane.
[0144] The SDN controller performs iterative calculations based on global routing information, which may involve running routing algorithms such as Shortest Path First (SPF) and Dijkstra's algorithm. The controller considers network traffic demand, link status, and other relevant parameters to calculate the optimal forwarding path and generate new routing table entries, which are referred to as forwarding plane routing in this article.
[0145] After the calculation is complete, the SDN controller will send the new forwarding plane routes to the relevant forwarding subsystems, thereby updating the forwarding plane routing table. In this way, data packets can be forwarded along the newly calculated optimal path.
[0146] In the above implementation, the SDN controller, through iterative and merging calculations on global routing information, can effectively generate optimal forwarding plane routes to respond to changes in network status and ensure efficient and stable network operation. Furthermore, the SDN controller can effectively manage network resources and provide efficient and reliable network services.
[0147] In large-scale networks, multiple controllers may need to be deployed to share the load. In this case, the controllers need to collaborate to optimize network resiliency and reliability, which is not specified in this article.
[0148] The above briefly introduces the working principle of the control subsystem. The following is a brief introduction to the forwarding subsystem:
[0149] Each forwarding subsystem is configured to receive the forwarding plane route issued by the control subsystem and update the first local routing table based on the forwarding plane route, so as to forward the service traffic request based on the first local routing table after receiving the service traffic request.
[0150] In the embodiment of the present application, the forwarding subsystem only focuses on forwarding, that is, it is responsible for forwarding business traffic, and no longer carries the functions of routing and controller, so the CPU and memory of the device can be fully utilized.
[0151] Optionally, similar to the above-mentioned routing subsystem, each forwarding subsystem can be abstracted as a forwarding plane logical instance cluster, and each forwarding plane logical instance in the forwarding plane logical instance cluster can be simply referred to as a forwarding instance.
[0152] Specifically, a forwarding instance is a software-level concept. In this context, it refers to a logical path managed by the forwarding subsystem. This involves how the forwarding device forwards packets based on its routing table. These forwarding instances are independent and have their own routing space. This design allows for load balancing and high availability of packet forwarding.
[0153] In the embodiments of the present application, a forwarding instance may also be referred to as a virtual forwarding device (vForwarder) instance. A vForwarder is a logical forwarding device that allows the functionality of a physical forwarding device to be simulated at the software level.
[0154] Optionally, each business object can be associated with one or more routing subsystems. Specifically, when a business object is associated with multiple routing subsystems, they can provide redundancy and achieve high availability. Furthermore, each business object is generally associated with only one forwarding subsystem.
[0155] It should be noted that different business objects can be associated with the same routing subsystem or different routing subsystems. Similarly, different business objects can be associated with the same forwarding subsystem or different forwarding subsystems.
[0156] Therefore, for the same forwarding subsystem, the traffic entering the forwarding subsystem can come from different business objects. When the forwarding subsystem receives a business traffic request, it can determine which business object the incoming traffic comes from based on the traffic characteristics of these business traffic requests, and then determine the vForwarder corresponding to the business object, and forward it according to the vForwarder's routing table.
[0157] Since in the embodiment of the present application, each vForwarder has its own routing space, when traffic enters the forwarding device, it can be addressed to the corresponding vForwarder through traffic characteristics, and forwarded according to the routing table of the vForwarder, directing the network traffic to the correct destination, thereby ensuring that the network traffic of one tenant will not be accessed or affected by other tenants, thereby achieving tenant isolation and security protection.
[0158] Therefore, an optional implementation is that the forwarding subsystem is used to forward data in the following manner:
[0159] After receiving the service traffic request, the forwarding subsystem first determines the service object corresponding to the service traffic request by analyzing the traffic characteristics of the service traffic request; then, the service traffic request is forwarded through the first local routing table corresponding to the service object.
[0160] Traffic characteristics may include but are not limited to some or all of the following:
[0161] Source IP address, destination IP address, port number, protocol type, and other information.
[0162] In an embodiment of the present application, when network traffic reaches the forwarding subsystem, the forwarding subsystem will search for the corresponding vForwarder based on the characteristics of the traffic (such as IP address, port, etc.) and forward it according to the routing table in the vForwarder.
[0163] For example, forwarding subsystem 1 receives a business traffic request, recorded as business traffic request 1. By analyzing the traffic characteristics of business traffic request 1 (such as IP address), it is determined that the business object corresponding to business traffic request 1 is business object 1. Then, the vForwarder corresponding to business object 1 is found, such as vForwarder1; then, forwarding is performed according to the routing table in vForwarder1.
[0164] For another example, forwarding subsystem 1 receives another service traffic request, recorded as service traffic request 2. By analyzing the traffic characteristics (such as IP address) of service traffic request 2, it determines that the service object corresponding to service traffic request 2 is service object 2. Then, it searches for the vForwarder corresponding to service object 2, such as vForwarder2. Then, it forwards the request according to the routing table in vForwarder2.
[0165] Based on the above implementation, each vForwarder instance has its own independent routing space, which means it can have its own routing table and forwarding rules. This design can effectively achieve network isolation between different tenants, ensuring that the routing information between different vForwarder instances does not interfere with each other, and that the network traffic of one tenant cannot be accessed or affected by other tenants, thereby improving the security and stability of the network. In addition, the distributed routing system in this application supports the dynamic creation, modification, or deletion of vForwarder instances as needed, providing greater flexibility and scalability.
[0166] like Figure 5 As shown, it is a schematic diagram of routing processing based on a logical instance in an embodiment of the present application. Figure 5 This is a brief summary of the processing logic of the distributed routing system in the embodiment of the present application. Figure 5 In the example, after the routing plane cluster devicegroup1 determines the route change through communication with the user side, it can report the route to the virtual gateway based on the routing plane logical instance vRouter.
[0167] The virtual gateway supports functions such as route aggregation, calculation, and iteration. After receiving route report information, it can generate forwarding plane routes based on the above functions. Then, it synchronizes configuration changes for the forwarding plane routes and sends them to the forwarding plane logical instance vForwarder in the forwarding plane cluster devicegroup2.
[0168] In general, vRouter and vForwarder are two forms of network function virtualization, which convert traditional hardware-based network device functions into software form and run on standard commercial off-the-shelf hardware. Specifically:
[0169] As the routing surface of a virtual router, the vRouter handles routing decisions and control. It uses dynamic routing protocols (such as BGP) to communicate with other network elements, learn and maintain routing information, and ensure that data packets are transmitted along the optimal path.
[0170] vForwarder, as the forwarding plane of the virtual router, is responsible for the actual packet forwarding. It forwards packets from one interface to another based on the routing information provided by the vRouter, thus achieving packet delivery.
[0171] The benefit of this decoupled architecture is that it allows for flexible scaling and optimization of network performance. For example, either the routing or forwarding plane can be upgraded and maintained independently without impacting the functionality of the other. Furthermore, this architecture supports higher availability and fault tolerance because multiple virtual routers and forwarding devices can be emulated in software, improving network stability.
[0172] In the embodiment of the present application, the combination of vRouter and vForwarder provides users with a complete and flexible virtual router solution, which not only provides the same functions as traditional hardware routers, but also brings higher manageability and scalability.
[0173] It should also be noted that in addition to generating the forwarding plane routing of the forwarding subsystem based on the above method, each host side associated with the business object also needs to synchronize routing information to ensure network connectivity, enhance network stability, and improve data transmission efficiency. An optional implementation method is as follows:
[0174] The routing subsystem is also used to:
[0175] The route reporting information notified from the first router on the business object side is transmitted to at least one second router on the business object side through the BGP protocol, so that the at least one second router generates a forwarding plane route based on the route reporting information and updates the third local routing table, so as to forward the business traffic request based on the third local routing table after receiving the business traffic request.
[0176] Among them, the business object side can be associated with one or more routers. The first router refers to the router that announces the current routing report information among the routers associated with the business object side, and the routers other than the first router among the routers associated with the business object side can be understood as the second router.
[0177] In an embodiment of the present application, in addition to uploading the route reporting information to the control subsystem, the routing subsystem also needs to transmit the route reporting information to at least one second router on the business object side through the BGP protocol to ensure that the second router can also generate relevant forwarding plane routes based on the route reporting information, and update the forwarding plane routes to the local routing table on the second router side (i.e., the third local routing table in this article) to ensure that after subsequently receiving a business traffic request, the second router can forward the business traffic request based on the third local routing table.
[0178] The following combination Figure 6 , a simple example of the working logic of the distributed routing system in the embodiment of the present application is given:
[0179] like Figure 6 Figure 1 shows a schematic diagram of the operating logic of a distributed routing system in an embodiment of the present application. The user's two hosts are designated HOST1 and HOST2. The service gateway's routing plane logical instance is a vRouter, which connects to the user's two hosts via BGP. Its corresponding forwarding plane logical instance is a vForwarder, which carries all traffic between the user's HOST1 and HOST2. The vRouter and vForwarder, respectively, carry routing and forwarding plane functions, and together form the user's virtual router.
[0180] Assume that on user HOST1, the user has planned IP1 as HOST1's service network. To enable IP1 to provide external services, the user announces IP1 through BGP through a router (the first router in this article). As BGP propagates, the vRouter in routing instance cluster devicegroup1 receives a BGP update message (a form of route reporting information in this article) indicating that HOST1 has published IP1. According to the BGP standard, the vRouter forwards the IP1 notification message (the route reporting information in this article) externally. The router connected to user HOST2 (the second router in this article) ultimately learns IP1's routing information and generates a forwarding plane route for HOST2.
[0181] At the same time, the vRouter encapsulates the learned IP1 into a GRPC message (another form of route reporting in this article) and reports it to the SDN controller cluster. Upon receiving the route report, the SDN controller combines the vRouter's existing global routing information with IP1. After confirming that IP1 is a newly added route, it triggers a route iteration task. After merging and calculating, it generates the forwarding plane route IP1: (IP1, HOST1, peerAddress) and sends it to the forwarding plane cluster devicegroup2, thus completing the data plane connection and ultimately linking with other external systems such as the cloud Object Storage Service (OSS) for route display.
[0182] For example, the routing table of vForwarder on the devicegroup2 side of the forwarding plane is as follows, including at least two routing information:
[0183] Prefix1:(prefix1,nexthop1,gateway1)
[0184] Prefix2:(prefix2,nexthop2,gateway2)
[0185] …
[0186] After this study, the routing table of vForwarder on the devicegroup2 side of the forwarding plane cluster is as follows, with the newly added forwarding plane route IP1:(IP1,HOST1,peerAddress):
[0187] Prefix1:(prefix1,nexthop1,gateway1)
[0188] Prefix2:(prefix2,nexthop2,gateway2)
[0189] …
[0190] IP1:(IP1,HOST1,peerAddress).
[0191] To summarize, in a virtualized network environment, vRouter acts as a routing decision point, establishing connections with hosts in the user network through the BGP protocol, while vForwarder is the component that actually performs data forwarding, ensuring smooth communication between host 1 and host 2. This architectural design helps improve network flexibility and scalability, and also facilitates network management and optimization.
[0192] In addition, the above Figure 6 It also mentions "ultimately linking with other external systems such as Cloud OSS for routing display." The following explains how the control subsystem links with other external systems:
[0193] Optionally, the control subsystem is also used to:
[0194] Pass forwarding plane routes to other external systems via the Border Gateway Protocol or related application programming interfaces, so that the other external systems can perform at least one of the following operations:
[0195] Operation 1: Display the forwarding plane routing.
[0196] Operation 2: Update the second local routing table based on the forwarding plane route, so as to forward the service traffic request based on the second local routing table after receiving the service traffic request.
[0197] In the embodiments of the present application, "other external systems" refer to other systems outside the distributed routing system, such as the cloud OSS system listed above, or other external systems, such as other cloud storage systems, database systems, log management systems, customer relationship management (Customer Relationship Management, CMR) systems, CDN, Internet of Things (IoT) devices, etc.
[0198] Among them, the display route in operation one can be specifically displayed to the business object or other objects (such as other teams, operators, etc.).
[0199] Operation 2 refers to the case where the forwarding plane route is passed to other external systems. Other external systems can also store the route locally, specifically in a local routing table (such as the second local routing table in this article). When subsequent related business traffic requests are received, the data can be forwarded by querying the second local routing table.
[0200] In the embodiment of the present application, if BGP communication can be established between the control subsystem and other external systems, the forwarding plane route can be transmitted through BGP.
[0201] If BGP communication cannot be established between the control subsystem and other external systems, the forwarding surface route can also be passed out by calling the relevant API.
[0202] Specifically, relevant APIs include but are not limited to some or all of the following:
[0203] HTTP / HTTPS API, RESTful API, WebSocket API, GraphQL API, gRPC API, message queue API, database API, cache API, security API, configuration management API, service discovery API, logging API, load balancing API, etc.
[0204] In summary, these APIs can be selected and combined based on the specific needs of the distributed routing system and the functionality of external systems. They can also be selected based on specific application scenarios and requirements to ensure effective routing information delivery and efficient system operation. In practical applications, factors such as security, scalability, ease of use, and performance can be considered to meet the needs of different systems.
[0205] It should also be noted that the first local routing table, the second local routing table, and the third local routing table in the embodiments of the present application refer to routing tables stored on different devices themselves. The "first," "second," and "third" are used for distinction. Specifically, the first refers to the forwarding subsystem device, the second refers to the external system device, and the third refers to the second router device.
[0206] The routing iteration and calculation systems of the distributed routing system listed above feature forwarding and control separation, high security, and high availability, avoiding the single point of failure issues of traditional commercial systems. To provide more highly available and stable routing services, routing iteration and calculation support multi-neighborhood merging and iterative calculation.
[0207] In this distributed routing system, the independence of each logical instance allows the system to be expanded or modified without disrupting other components. For example, if a new routing policy or additional traffic needs to be processed, a new routing plane logical instance can be added without affecting existing instances. This modular design makes the system more flexible and adaptable to changing network needs and conditions.
[0208] Furthermore, this distributed routing system design also helps improve the reliability and fault tolerance of the entire network. Since each logical instance has its own routing space, even if one instance fails, it will not directly affect other instances, thus reducing the risk of single point failure.
[0209] In summary, the distributed routing system in this application achieves a highly scalable, fault-tolerant, and easy-to-manage network architecture through the collaborative work of the control subsystem, routing subsystem, and forwarding subsystem. Each routing subsystem and forwarding subsystem has an independent routing space, which gives the entire system greater flexibility and performance in routing calculation and packet forwarding. Furthermore, this distributed routing system design provides an efficient, reliable, and easy-to-manage way to handle complex network traffic, making it particularly suitable for large-scale and high-availability network environments.
[0210] It should be noted that the above briefly introduces the composition of the distributed routing system in the embodiment of the present application and the working principle of each part. The following will specifically describe the process of routing processing based on the distributed routing system:
[0211] First, let's describe how the control subsystem generates forwarding plane routes:
[0212] In an embodiment of the present application, each business object may be associated with at least one routing subsystem; therefore, an optional implementation is that the control subsystem is used to generate forwarding plane routing in the following manner:
[0213] For each business object, global routing information for each routing subsystem associated with the business object is obtained. Based on the obtained multiple global routing information, the routing reports are merged. If the merged analysis determines that the business network indicated by the routing report represents a newly added route, the forwarding plane route for the business network is generated.
[0214] Specifically, in the embodiment of the present application, for each routing subsystem, there is corresponding global routing information, and the global routing information includes a routing table used by the routing subsystem, which records the key information required for data packets in network transmission.
[0215] When the control subsystem receives the routing report information reported by a routing subsystem associated with the business object, it can obtain the current global routing information of the routing subsystem side and search the global routing information to see if there is a route related to the business network indicated in the routing report information. Specifically:
[0216] If it exists, there is no need to add a forwarding plane route for the service network this time; if it does not exist, a forwarding plane route for the service network needs to be added this time.
[0217] For example, for business object A, there is only one routing subsystem associated with it, which is routing subsystem 1. This routing update is triggered because IP1 is planned for business object A as the business network of one of its hosts. On the business object A side, IP1 is planned for the business object as the business network of host HOST1 of business object A. In order to allow IP1 to provide external services, business object A can announce IP1 through BGP on the router and announce the routing report information to the control subsystem.
[0218] As BGP transmits, routing subsystem 1 receives the route report information and then reports it to the control subsystem. After receiving the route report information, the control subsystem queries the current global routing information of routing subsystem 1. Assume that the global routing information is shown in Table 1 below:
[0219] Table 1
[0220] Destination network Next hop Outbound interface IP0 nexthop0 gateway0 IP2 nexthop2 gateway2 IP3 nexthop3 gateway3 … … …
[0221] Obviously, from Table 1 above, there is no route related to IP1 in the above routing table. Therefore, a forwarding plane route related to IP1 can be added this time.
[0222] For another example, assume that the global routing information is as shown in Table 2 below:
[0223] Table 2
[0224]
[0225]
[0226] Obviously, as can be seen from Table 2 above, there are routes related to IP1 in the above routing table. Therefore, there is no need to add forwarding plane routes related to IP1 this time, and the route reporting information can be ignored.
[0227] It should be noted that the above example takes a business object associating with only one routing subsystem. Of course, a business object can also be associated with multiple routing subsystems, as described below:
[0228] When the control subsystem receives routing report information reported by multiple routing subsystems associated with the business object, it can obtain the current global routing information of each of the multiple routing subsystems, and then merge these global routing information, that is, find the union between the multiple global routing information and analyze whether there is a route related to the business network indicated in the current routing report information. Specifically:
[0229] If it exists, there is no need to add a forwarding plane route for the service network this time; if it does not exist, a forwarding plane route for the service network needs to be added this time.
[0230] For example, for business object B, there are three routing subsystems associated with it, namely routing subsystem 1, routing subsystem 2, and routing subsystem 3. This routing update is triggered because IP2 is planned for business object B as the business network of one of its hosts. On the business object B side, IP2 is planned for the business object as the business network of host HOST6 of business object B. In order to allow IP2 to provide external services, business object B can announce IP2 through BGP on the router and announce the routing report information to the control subsystem.
[0231] As BGP transmits, routing subsystems 1, 2, and 3 receive the route report information, and then report it to the control subsystem. After the control subsystem receives the route report information for the first time, it will query the current global routing information of routing subsystems 1, 2, and 3, and then merge the three global routing information. Assume that the result of the global routing information union is shown in Table 3 below:
[0232] Table 3
[0233]
[0234]
[0235] Obviously, from Table 3 above, there is no route related to IP2 in the above-mentioned union routing table. Therefore, a forwarding plane route related to IP2 can be added this time.
[0236] The control subsystem will repeat the above process upon receiving the same route report. However, since the forwarding plane routes for IP2 have already been generated when the route report was first received, the subsequent union will find that the routes for IP2 already exist in the corresponding union routing table. Therefore, there is no need to add the forwarding plane routes for IP2 again. In this case, the route report can be ignored.
[0237] For another example, assume that the result of the union of the global routing information is as shown in Table 4 below:
[0238] Table 4
[0239] Destination network Next hop Outbound interface IP2 nexthop2 gateway2 IP1 nexthop1 gateway1 IP3 nexthop3 gateway3 … … …
[0240] Obviously, as can be seen from Table 4 above, there are routes related to IP2 in the above routing table. Therefore, there is no need to add forwarding plane routes related to IP2 this time, and the route reporting information can be ignored.
[0241] In summary, an optional implementation is as follows:
[0242] If the same business object is associated with at least two routing subsystems, the control subsystem is used to:
[0243] For routing report information for the same business network, after receiving the routing report information reported by the first routing subsystem in at least two routing subsystems, generate the forwarding plane route based on the routing report information, and send the forwarding plane route to the forwarding subsystem associated with the business object; then, after receiving the routing report information reported by other routing subsystems in at least two routing subsystems, ignore the routing report information.
[0244] For example, routing subsystem 1, routing subsystem 2, and routing subsystem 3 each report routing information about IP1 published by HOST1. Considering that the three routing subsystems may report the routing information asynchronously, and the control subsystem may also receive the routing information asynchronously, the control subsystem may receive three routing reports indicating the same information.
[0245] like Figure 7 As shown, it is a schematic diagram of repeated reporting of routing reporting information in an embodiment of the present application. Figure 7This indicates that routing subsystems 2, 1, and 3 have successively reported routing information related to IP1. Specifically, routing subsystem 2 was the first to report, routing subsystem 1 was the second, and routing subsystem 3 was the third. Accordingly, the control subsystem (SDN controller) has received routing information from routing subsystems 2, 1, and 3.
[0246] In this case, in order to avoid the control subsystem from performing three routing calculations, this application adopts a method of merging and calculating the global routing information of the three routing subsystems. Specifically, when the control subsystem receives the routing report information reported by the first routing subsystem (such as routing subsystem 2), it obtains the global routing information union of routing subsystem 1, routing subsystem 2 and routing subsystem 3, determines that IP1 at this time represents the newly added route, and then generates the forwarding plane route related to IP1 through the routing algorithm and sends it to the relevant forwarding subsystem.
[0247] Then, when the control subsystem receives the routing report information reported by the second routing subsystem (such as routing subsystem 1), it obtains the global routing information of routing subsystem 1, routing subsystem 2 and routing subsystem 3 again to obtain the union, and determines that there is no change compared with the routing union determined during the first report. There is no need to repeat the above process, and the routing report information this time can be ignored.
[0248] Similarly, when the control subsystem receives the routing report information reported by the third routing subsystem (such as routing subsystem 3), it obtains the global routing information of routing subsystem 1, routing subsystem 2 and routing subsystem 3 again to obtain the union, and determines that there is no change compared with the routing union determined during the second report. There is no need to repeat the above process, and the routing report information this time can be ignored.
[0249] In the above implementation, multiple routing subsystems are mutually redundant. One forwarding subsystem can correspond to multiple routing subsystems. Multiple sets of fonts serve as disaster recovery and backup for each other, which can effectively improve the availability of the system.
[0250] In some possible situations, route deletion is also required, such as the following some possible situations in which route deletion is required:
[0251] Routing subsystem failure, routing port conflict, routing information error, network structure adjustment, routing policy update, performance optimization, resource release, maintenance management, troubleshooting, redundancy avoidance, security considerations, etc.
[0252] It should be noted that the possible situations listed above are just simple examples. Other situations are also applicable to the embodiments of the present application and will not be described in detail here.
[0253] Similar to the above-mentioned new route, the same principle applies when requesting to delete a route. An optional implementation is as follows:
[0254] If the same business object is associated with at least two routing subsystems, the control subsystem is also used to:
[0255] For route deletion information for the same service network, after receiving the route deletion information reported by the last routing subsystem from at least two routing subsystems, the relevant forwarding subsystem is notified to delete the forwarding plane route generated based on the service network.
[0256] Specifically, when deleting a route related to a business object, each routing subsystem associated with the business object can upload the route deletion information to the control subsystem. The following is still based on the two cases where the business object is associated with only one routing subsystem and the business object is associated with multiple routing subsystems as examples:
[0257] If a business object is associated with only one routing subsystem, when the control subsystem receives routing deletion information reported by the routing subsystem associated with the business object, it can directly delete it.
[0258] If a business object is associated with multiple routing subsystems, when the control subsystem receives routing deletion information reported by a routing subsystem associated with the business object, if this is not the last routing subsystem among these routing subsystems to report, it indicates that other routing subsystems have control plane routing information, and therefore deletion is not required. Until the control subsystem receives routing deletion information reported by the last routing subsystem associated with the business object, it indicates that other routing subsystems also do not have control plane routing information, and then the deletion operation can be performed.
[0259] For example, routing subsystems 1, 2, and 3 each report a route deletion for IP1 published by HOST1. Considering that the three routing subsystems may report the route deletion information asynchronously, and the control subsystem may also receive the route deletion information asynchronously, the control subsystem may receive three identical route deletion messages.
[0260] like Figure 8 As shown, it is a schematic diagram of repeated reporting of routing deletion information in an embodiment of the present application. Figure 8This indicates that routing subsystems 3, 2, and 1 have successively reported route deletion information related to IP1. Specifically, routing subsystem 3 was the first to report, routing subsystem 2 was the second, and routing subsystem 1 was the third. Accordingly, the control subsystem (SDN controller) has received the route deletion information reported by routing subsystems 3, 2, and 1.
[0261] In this case, in order to avoid the control subsystem from performing three route deletion operations, the present application still adopts the method of merging and calculating the global routing information of the three routing subsystems. Specifically, when the control subsystem receives the route deletion information reported by the first routing subsystem (such as routing subsystem 3), the global routing information of routing subsystem 1, routing subsystem 2 and routing subsystem 3 is obtained to calculate the union. Since only IP1 is deleted from the global routing information of routing subsystem 3, and the global routing information of routing subsystem 1 and routing subsystem 2 has not changed, the determined route union still includes IP1. Therefore, the control subsystem (SDN controller) at this time will not iteratively delete routes, and the routes of the forwarding plane will not change.
[0262] Then, when the control subsystem receives the route deletion information reported by the second routing subsystem (such as routing subsystem 2), it obtains the global routing information of routing subsystem 1, routing subsystem 2 and routing subsystem 3 again to obtain the union. Since IP1 has not been deleted from the global routing information of routing subsystem 2 at this time, the determined route union still includes IP1. Therefore, the control subsystem (SDN controller) at this time will not iteratively delete the route, and the route of the forwarding plane will still not change.
[0263] Finally, when the control subsystem receives the route deletion information reported by the third routing subsystem (such as routing subsystem 1), it again obtains the global routing information of routing subsystems 1, routing subsystems 2, and routing subsystems 3 to calculate the union. Since IP1 has been deleted from the global routing information of the three routing subsystems at this time, the determined route union no longer contains IP1. At this time, the control subsystem (SDN controller) needs to iteratively delete the route, and the routing of the forwarding plane changes accordingly.
[0264] In the above implementation, when the route deletion information is repeatedly reported, the control subsystem deletes the route only after receiving the route deletion information for the last time, which can effectively avoid single point failures and achieve cross-region disaster recovery and high availability.
[0265] The following describes the addition and deletion of forwarding plane routes in the above-mentioned duplication scenario with reference to specific embodiments:
[0266] Specifically, in a distributed routing system, users can choose to establish dual neighbors for mutual redundancy and high availability. Figure 9 As shown, it is a schematic diagram of routing convergence of a distributed routing system in an embodiment of the present application, as shown in FIG. Figure 9 In the example, the service gateway's routing plane logical instances are vRouter1 (corresponding to routing subsystem 1) and vRouter2 (corresponding to routing subsystem 2), which establish two BGP peer relationships with user hosts 1 and 2, respectively. The corresponding forwarding plane logical instance is vForwarder, which carries all traffic between hosts 1 and 2. vRouter1, vRouter2, and vForwarder, respectively, perform routing and forwarding functions and together form the user's virtual router.
[0267] On the user side of HOST1, the user publishes IP1 as HOST1's service network segment. At this time, vRouter1 and vRouter2 successively learn BGP messages for IP1 and transmit IP1's routing information to HOST2, and then successively report IP1's routing information to the SDN controller. The SDN controller receives routing information about IP1 from two routing instances. During each reporting process, the SDN controller collects global routing information from all vRouters (i.e., vRouter1 and vRouter2) of the service gateway and performs a union and merge calculation. When IP1 is first reported to the SDN controller, the SDN controller iteratively routes IP1 to the forwarding plane. When IP1 is subsequently reported a second time, since the routing union has not changed, the same IP1 route will not be repeatedly sent to the forwarding plane.
[0268] For example, the routing table of vRouter1 is as follows:
[0269] Prefix1:(prefix1,nexthop1,gateway1)
[0270] Prefix2:(prefix2,nexthop2,gateway2)
[0271] …
[0272] The routing table of vRouter2 is as follows:
[0273] Prefix1:(prefix1,nexthop1,gateway1)
[0274] Prefix2:(prefix2,nexthop2,gateway2)
[0275] …
[0276] When IP1 is first reported to the SDN controller, the SDN controller merges and calculates the routes of vRouter1 and vRouter2, and then iteratively routes IP1 to the forwarding plane. The vForwarder routing table on the forwarding plane is as follows:
[0277] Prefix1:(prefix1,nexthop1,gateway1)
[0278] Prefix2:(prefix2,nexthop2,gateway2)
[0279] …
[0280] IP1:(IP1,HOST1,peerAddress).
[0281] Similarly, when the route deletion information of IP1 is first reported to the SDN controller, the SDN controller will not delete the forwarding plane route. That is, after vRouter1 fails, since vRouter2 has the control plane routing information, the SDN controller will not iteratively delete the route, and the forwarding plane route will not change. This avoids single point of failure and achieves cross-region disaster recovery and high availability.
[0282] Next, the routing linkage and decision-making process of the distributed routing system proposed in the embodiment of the present application is described:
[0283] In this distributed routing system, the routing gateway is responsible for establishing BGP neighbors with surrounding routers and performing validity determination and route optimization on the routes received from the surrounding BGP neighbors.
[0284] The premise for effective routing is that the routing gateway (referring to the routing subsystem) believes that the BGP neighbor status is normal. The routing gateway will optimize the effective routes and report them to the SDN controller (referring to the control subsystem) for routing calculation and finally iteratively send them to the forwarding gateway (referring to the forwarding subsystem).
[0285] If the BGP neighbor status is abnormal, the routing gateway will revoke the preferred route learned from the neighbor and report the revocation notification to the SDN controller. The SDN controller will send a deletion configuration request to the forwarding gateway, and the forwarding gateway will clean up and delete the local forwarding configuration.
[0286] In traditional networks, to quickly monitor BGP neighbor status in real time, BGP neighbors are typically associated with Bidirectional Forwarding Detection (BFD) or Network Quality Analyzer (NQA) protocol probes, with configurable detection cycles and frequencies. If the protocol probe status is abnormal, the associated BGP status will also become abnormal. This allows the routing gateway to quickly remove the service route, preventing data plane traffic from being forwarded to the faulty link.
[0287] like Figure 10 As shown, it is a schematic diagram of a traditional device routing linkage in an embodiment of the present application. Figure 10 For traditional devices, the routing linkage is completed directly inside the device. The routing plane in the device perceives the protocol detection results and directly applies them to the local forwarding plane.
[0288] like Figure 11 As shown, it is a schematic diagram of routing linkage of a distributed routing system in an embodiment of the present application. Figure 11 In a cloud data center network with separated forwarding and control, the routing gateway and forwarding gateway are uniformly managed by a distributed controller. The mapping relationship between the corresponding routing plane resources and forwarding plane resources in the user's virtual network resources is also maintained by the distributed controller. Therefore, after the routing plane perceives the protocol detection results, it needs to report the results to the distributed controller. The controller makes a unified decision whether to notify the routing gateway of the change in the BGP neighbor status.
[0289] In addition, it should be noted that in the embodiment of the present application, the control subsystem is used to process all messages reported by the routing subsystem. When multiple messages are reported at the same time, there will be a certain convergence pressure on the control subsystem side. In order to reduce the convergence pressure of the control subsystem, some routing aggregation functions of the control subsystem can be sunk.
[0290] That is, in embodiments of the present application, the routing optimization function may be provided by at least one of the routing subsystem and the control subsystem. For example, in one case, routing optimization is performed by the control subsystem. In this case, the present application supports business objects customizing routing optimization rules on the control subsystem side, i.e., the first routing optimization rule predefined by the business object herein.
[0291] In another case, the routing subsystem may also directly perform routing optimization. In this case, the routing optimization rule on the routing subsystem side is generally a pre-configured fixed rule, ie, the second routing optimization rule pre-configured in this article.
[0292] In the embodiment of the present application, whether the route optimization is performed by the control subsystem or the routing subsystem can be distinguished by the following methods:
[0293] Specifically, if there are multiple routes to the service network, you need to analyze these routes. Depending on the analysis results, you can divide them into the following two situations:
[0294] Case 1: If there are multiple routes to the business network and they need to be processed by the control subsystem (referring to route optimization or other processing, such as participating in calculation and transmission), the control subsystem is used to:
[0295] After receiving the routing report information reported by the routing subsystem, the routing is optimized for multiple routes in combination with the first routing optimization rule predefined by the business object and the routing report information; then, based on the routing optimization result (for the convenience of description, it will be referred to as "routing optimization result" in the subsequent content), the forwarding plane route is generated and sent to the forwarding subsystem associated with the business object.
[0296] In the embodiments of the present application, BGP route optimization refers to the process of selecting the best route from multiple routes that can reach the same destination. Specifically, BGP selects the best route based on a series of optimization rules. These rules are called BGP route optimization rules, which are compared in a specific order to determine which route will be selected as the best route and sent to its peer.
[0297] Optionally, the business object may select some relatively important routing attributes, and then predefine relevant first routing optimization rules based on these routing attributes.
[0298] For example, some first route preference rules can be set as follows:
[0299] (1) Weight comparison: Weight is a local attribute that applies only to the local router. The route with the highest weight is selected as the best route. The weight value range is 0-65535, with a default value of 32768. If a route has a weight of 0, it will not be used to forward traffic.
[0300] (2) Comparing the Multi-exit Discriminator (MED): MED is an optional, non-transitive attribute used to select between routes with the same AS path length. The route with the lower MED value is selected as the best route. It should be noted that the MED attribute is only compared between routers within the same AS.
[0301] (3) Comparison of neighboring autonomous system (AS) numbers: If there are still multiple routes to choose from after the above comparison, their neighbor AS numbers are compared. The route with the smallest neighbor AS number will be selected as the best route.
[0302] (4) Compare Router Identifiers (IDs): If there are still multiple routes to choose from after the above comparison, their router IDs are compared. The route with the smallest router ID will be selected as the best route.
[0303] It should be noted that the comparison rules and steps listed above ensure that BGP can select the optimal route based on a series of criteria, thereby achieving efficient data transmission and network interconnection. In actual applications, business objects can adjust the values of these attributes as needed to implement specific routing policies.
[0304] Case 2: If there are multiple routes to the service network and no processing is required by the control subsystem (referring to route optimization or other processing), the routing subsystem can be directly used to optimize the route and then generate the forwarding plane route. That is, an optional implementation is that the routing subsystem in this application is also used to:
[0305] After receiving the route reporting information notified by the business object side, the route reporting information will no longer be reported to the control subsystem. Instead, the route optimization will be performed on multiple routes in combination with the second route optimization rule pre-configured in the routing subsystem and the route reporting information; finally, the forwarding plane route is generated according to the route optimization result, and the forwarding plane route is sent down to the forwarding subsystem associated with the business object.
[0306] In an embodiment of the present application, the routing aggregation function of part of the control subsystem can be moved down to the routing subsystem, which reduces the aggregation pressure of the control subsystem and can improve the routing processing performance of the system to a certain extent.
[0307] In this case, the routing subsystem in the embodiment of the present application supports routing optimization. Generally, some conventional second routing optimization rules can be set based on some common routing attributes such as path length, routing source, AS path, etc., and fixedly configured on the routing subsystem side.
[0308] For example, some second route preference rules can be set as follows:
[0309] (1) Shortest AS path: Prioritize the route that passes through the least number of autonomous systems.
[0310] (2) Lowest starting IP address: If there are multiple routes with the same AS path length, the route with the smallest starting IP address will be selected.
[0311] (3) Minimum number of neighbors: If there are multiple routes with the same AS path and starting IP address, the route with the least number of BGP neighbors will be selected.
[0312] (4) Lowest local preference: If all other conditions are the same, the route with the lowest local preference setting will be selected.
[0313] (5) The oldest External Border Gateway Protocol (EBGP) neighbor: If none of the above conditions can determine the winner, the route learned from the oldest EBGP neighbor will be selected.
[0314] The oldest EBGP neighbor refers to the one that established a BGP neighbor relationship with the router the earliest among all eligible EBGP neighbors. Generally, older EBGP neighbors have been running stably for a longer period of time and are therefore considered more reliable. This selection helps improve network stability and reliability.
[0315] It should be noted that the comparison rules and steps listed above are just simple examples. In addition, in actual applications, network administrators can also adjust the values of these attributes as needed to implement specific routing policies.
[0316] In summary, this application has designed and implemented a high-performance, distributed routing system based on forwarding and control separation. This system is comparable to traditional commercial routers and solves the problems of poor scalability, limited specifications, and slow product feature iteration in traditional commercial routers.
[0317] Based on the same inventive concept, an embodiment of the present application further provides a routing processing method implemented based on the above-mentioned distributed routing system, which is applied to a control subsystem in the distributed routing system.
[0318] See Figure 12 As shown, it is an implementation flow chart of a routing processing method provided in an embodiment of the present application, which is applied to a control subsystem in a distributed routing system. The distributed routing system also includes at least one routing subsystem and at least one forwarding subsystem. The specific implementation process of the method is as follows S121 to S123:
[0319] S121: The control subsystem receives the routing report information reported by the routing subsystem; the routing subsystem is used to establish a communication connection with the router on the associated business object side to receive the routing report information notified by the business object side, and report the routing report information to the control subsystem.
[0320] The route reporting information is used to indicate the service network configured for the service object.
[0321] S122: The control subsystem generates a forwarding plane route based on the route reporting information.
[0322] S123: The control subsystem sends the forwarding plane route to the forwarding subsystem associated with the business object, so that the forwarding subsystem updates the first local routing table based on the forwarding plane route, so as to forward the business traffic request based on the first local routing table after receiving the business traffic request.
[0323] The above steps can be executed by the control subsystem of the distributed routing system, so please refer to the introduction of the corresponding parts above and will not be repeated here.
[0324] In an optional implementation, each business object is associated with at least one of the routing subsystems; and generating a forwarding plane route based on the routing reporting information includes:
[0325] For a business object, obtaining global routing information of each routing subsystem associated with the business object;
[0326] Based on the global routing information, the routing report information is merged and processed;
[0327] If it is determined that the service network indicated by the route reporting information represents a newly added route, a forwarding plane route of the service network is generated.
[0328] In an optional implementation, if the same business object is associated with at least two routing subsystems, generating a forwarding plane route based on the routing reporting information includes:
[0329] For routing report information for the same service network, after receiving the routing report information reported by the first routing subsystem in the at least two routing subsystems, generate a forwarding plane route based on the routing report information, and send the forwarding plane route to the forwarding subsystem associated with the service object;
[0330] After receiving the routing report information reported by other routing subsystems in the at least two routing subsystems, the routing report information is ignored.
[0331] In an optional implementation, if the same business object is associated with at least two routing subsystems, the method further includes:
[0332] For route deletion information for the same service network, after receiving the route deletion information reported by the last routing subsystem among the at least two routing subsystems, the related forwarding subsystem is notified to delete the forwarding plane route generated based on the service network.
[0333] In an optional implementation, if there are multiple routes to the service network and they need to be processed by the control subsystem, generating a forwarding plane route based on the route reporting information includes:
[0334] After receiving the route reporting information reported by the routing subsystem, performing route optimization on the plurality of routes in combination with the first route optimization rule predefined by the business object and the route reporting information;
[0335] Generate forwarding plane routes based on the route optimization results.
[0336] In an optional embodiment, the method further includes:
[0337] The forwarding plane route is transmitted to another external system via the Border Gateway Protocol or a related application programming interface, so that at least one of the following operations is performed by the other external system:
[0338] Displaying the forwarding plane routing;
[0339] The second local routing table is updated based on the forwarding plane routing, so that after receiving the service traffic request, the service traffic request is forwarded based on the second local routing table.
[0340] The steps in each of the above embodiments can be executed by the control subsystem of the distributed routing system, so please refer to the introduction of the corresponding parts above and will not be repeated here.
[0341] The following describes the solution of the embodiment of the present application through a specific interactive flow chart. Figure 13 As shown, it is a schematic diagram of the interaction logic inside a distributed routing system in an embodiment of the present application.
[0342] Step S1301: The routing subsystem establishes a communication connection with the router on the associated business object side;
[0343] Step S1302: The business object side reports the routing information notified by the first router;
[0344] Step S1303: The routing subsystem transmits the routing report information to the second router on the business object side through the BGP protocol to update the local routing table on the second router side;
[0345] Step S1304: the routing subsystem reports the routing reporting information to the control subsystem;
[0346] Step S1305: The control subsystem generates a forwarding plane route based on the route reporting information;
[0347] Step S1306: The control subsystem sends the forwarding plane route to the forwarding subsystem associated with the business object;
[0348] Step S1307: The forwarding subsystem updates the local routing table based on the forwarding plane routing.
[0349] It should be noted that the above Figure 13 The interaction logic listed is just a simple example. In addition, other related interaction logics are also applicable to the embodiments of this application and will not be described in detail here.
[0350] Based on the same inventive concept, the embodiment of the present application also provides a routing processing device, which is applied to a control subsystem in a distributed routing system. The distributed routing system also includes at least one routing subsystem and at least one forwarding subsystem. Figure 14 As shown, it is a schematic structural diagram of the routing processing device 1400, which may include:
[0351] Receiving unit 1401 is configured to receive routing report information reported by the routing subsystem; the routing subsystem is configured to establish a communication connection with a router on the associated business object side to receive the routing report information notified by the business object side, and report the routing report information to the control subsystem; the routing report information is used to indicate the business network configured for the business object;
[0352] A generating unit 1402 is configured to generate a forwarding plane route based on the route reporting information;
[0353] The forwarding unit 1403 is used to send the forwarding plane route to the forwarding subsystem associated with the business object, so that the forwarding subsystem updates the first local routing table based on the forwarding plane route, so as to forward the business traffic request based on the first local routing table after receiving the business traffic request.
[0354] Optionally, each business object is associated with at least one of the routing subsystems; the generating unit 1402 is specifically configured to:
[0355] For a business object, obtaining global routing information of each routing subsystem associated with the business object;
[0356] Based on the global routing information, the routing report information is merged and processed;
[0357] If it is determined that the service network indicated by the route reporting information represents a newly added route, a forwarding plane route of the service network is generated.
[0358] Optionally, if the same business object is associated with at least two routing subsystems, the generating unit 1402 is specifically configured to:
[0359] For routing report information for the same service network, after receiving the routing report information reported by the first routing subsystem in the at least two routing subsystems, generate a forwarding plane route based on the routing report information, and send the forwarding plane route to the forwarding subsystem associated with the service object;
[0360] After receiving the routing report information reported by other routing subsystems in the at least two routing subsystems, the routing report information is ignored.
[0361] Optionally, if the same business object is associated with at least two routing subsystems, the apparatus further includes:
[0362] The deleting unit 1404 is used to notify the relevant forwarding subsystem to delete the forwarding plane route generated based on the business network after receiving the route deletion information reported by the last routing subsystem among the at least two routing subsystems.
[0363] Optionally, if there are multiple routes to the service network and they need to be processed by the control subsystem, the generating unit 1402 is specifically configured to:
[0364] After receiving the route reporting information reported by the routing subsystem, performing route optimization on the plurality of routes in combination with the first route optimization rule predefined by the business object and the route reporting information;
[0365] Generate forwarding plane routes based on the route optimization results.
[0366] Optionally, the forwarding unit 1403 is further configured to:
[0367] The forwarding plane route is transmitted to another external system via the Border Gateway Protocol or a related application programming interface, so that at least one of the following operations is performed by the other external system:
[0368] Displaying the forwarding plane routing;
[0369] The second local routing table is updated based on the forwarding plane routing, so that after receiving the service traffic request, the service traffic request is forwarded based on the second local routing table.
[0370] In summary, the routing system in this application is a high-performance distributed routing system in software. Specifically, this system is implemented using SDN, which provides flexible network management and isolation capabilities. Based on this, this application decouples the routing, forwarding, and controller functions in commercial switches, dividing them into a control subsystem, at least one routing subsystem, and at least one forwarding subsystem. Each subsystem can be independently deployed and operated, and supports dynamic expansion and cross-regional disaster recovery.
[0371] The routing subsystem is responsible for establishing communication connections with business objects and receiving dynamic routes from them. The control subsystem is responsible for obtaining business object routes from the routing subsystem, completing route calculation and iteration, and ultimately delivering the forwarding plane routes to the forwarding subsystem. The forwarding subsystem focuses solely on forwarding and no longer carries routing and controller functions, allowing it to fully utilize the device's central processing unit (CPU) and memory.
[0372] The above-mentioned distributed routing system has better overall performance. This distributed routing system fully disassembles and decouples the functions of traditional commercial routers, and uses a distributed software system to complete routing calculation and optimization. It has the characteristics of high performance, flexibility, and strong scalability. It successfully reduces the cost of network elements and solves the problems of poor scalability, limited specifications, and slow iteration of traditional commercial routers.
[0373] For the convenience of description, the above parts are divided into modules (or units) according to their functions and described separately. Of course, when implementing this application, the functions of each module (or unit) can be implemented in the same or multiple software or hardware.
[0374] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.
[0375] After introducing the routing processing method and apparatus according to an exemplary embodiment of the present application, an electronic device according to another exemplary embodiment of the present application is introduced next.
[0376] Those skilled in the art will appreciate that various aspects of the present application can be implemented as systems, methods, or program products. Therefore, various aspects of the present application can be specifically implemented in the following forms: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or an implementation that combines hardware and software aspects, which may be collectively referred to herein as a "circuit," "module," or "system."
[0377] Based on the same inventive concept as the above method embodiment, an electronic device is also provided in the embodiment of the present application. In one embodiment, the structure of the electronic device can be as follows Figure 15 As shown, it includes a memory 1501 , a communication module 1503 and one or more processors 1502 .
[0378] Memory 1501 is used to store computer programs executed by processor 1502. Memory 1501 may primarily include a program storage area and a data storage area. The program storage area may store an operating system and programs required for running instant messaging functions, while the data storage area may store various instant messaging messages and operating instruction sets.
[0379] Memory 1501 may be a volatile memory, such as random-access memory (RAM); a non-volatile memory, such as read-only memory, flash memory, a hard disk drive (HDD), or a solid-state drive (SSD); or any other medium capable of carrying or storing a desired computer program in the form of instructions or data structures and accessible by a computer, but is not limited thereto. Memory 1501 may be a combination of the aforementioned memories.
[0380] The processor 1502 may include one or more central processing units (CPUs) or digital processing units, etc. The processor 1502 is configured to implement the above-mentioned routing processing method when calling the computer program stored in the memory 1501 .
[0381] The communication module 1503 is used to communicate with terminal devices and other servers.
[0382] The specific connection medium between the memory 1501, the communication module 1503 and the processor 1502 is not limited in the embodiment of the present application. Figure 15In the embodiment, the memory 1501 and the processor 1502 are connected via a bus 1504. The bus 1504 is connected to the processor 1502 via a bus 1504. Figure 15 The connections between the other components are shown in bold lines for illustration only and are not intended to be limiting. The bus 1504 can be divided into an address bus, a data bus, a control bus, etc. For ease of description, Figure 15 The diagram shows a single thick line, but this does not indicate that there is only one bus or one type of bus.
[0383] The memory 1501 stores a computer storage medium, which stores computer executable instructions. The computer executable instructions are used to implement the routing processing method of the embodiment of the present application. The processor 1502 is used to execute the above-mentioned routing processing method, such as Figure 12 shown.
[0384] Based on the same inventive concept as the above method embodiment, an electronic device is also provided in the embodiment of the present application. In one embodiment, you can refer to Figure 16 16 to describe a computing device 1600 according to this embodiment of the present application. Figure 16 The computing device 1600 is merely an example and should not limit the functionality and scope of use of the embodiments of the present application.
[0385] like Figure 16 The computing device 1600 is implemented as a general-purpose computing device. Components of the computing device 1600 may include, but are not limited to, the at least one processing unit 1601 described above, the at least one storage unit 1602 described above, and a bus 1603 connecting various system components (including the storage unit 1602 and the processing unit 1601).
[0386] Bus 1603 represents one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a processor or local bus using any of a variety of bus architectures.
[0387] The storage unit 1602 may include a readable medium in the form of a volatile memory, such as a random access memory (RAM) 1621 and / or a cache memory 1622 , and may further include a read-only memory (ROM) 1623 .
[0388] The storage unit 1602 may also include a program / utility 1625 having a set (at least one) of program modules 1624, such program modules 1624 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.
[0389] The computing device 1600 may also communicate with one or more external devices 1604 (e.g., a keyboard, a pointing device, etc.), one or more devices that enable a user to interact with the computing device 1600, and / or any device that enables the computing device 1600 to communicate with one or more other computing devices (e.g., a router, a modem, etc.). Such communication may be performed via an input / output (I / O) interface 1605. Furthermore, the computing device 1600 may also communicate with one or more networks (e.g., a local area network (LAN), a wide area network (WAN), and / or a public network, such as the Internet) via a network adapter 1606. Figure 16 As shown, network adapter 1606 communicates with other modules used in computing device 1600 via bus 1603. It should be understood that, although not shown in the figure, other hardware and / or software modules can be used in conjunction with computing device 1600, including but not limited to microcode, device drivers, redundant processors, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0390] In some possible implementations, various aspects of the routing processing method provided in the present application may also be implemented in the form of a program product, which includes a computer program. When the program product is run on an electronic device, the computer program is used to enable the electronic device to perform the steps of the routing processing method according to various exemplary embodiments of the present application described above in this specification. For example, the electronic device may perform the following steps: Figure 12 Follow the steps shown in .
[0391] The program product may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or component, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof.
[0392] The program product of the embodiment of the present application may be a portable compact disc read-only memory (CD-ROM) and include a computer program, and can be run on an electronic device. However, the program product of the present application is not limited thereto. In this document, a readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with a command execution system, apparatus, or device.
[0393] A readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, which carries a readable computer program. Such a propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium that can transmit, propagate, or transfer a program for use by or in conjunction with a command execution system, apparatus, or device.
[0394] The computer program embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[0395] The computer program for performing the operations of the present application can be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and conventional procedural programming languages such as "C" or similar programming languages. The computer program can be executed entirely on the user electronic device, partially on the user electronic device, as a separate software package, partially on the user electronic device and partially on a remote electronic device, or entirely on a remote electronic device or server. In cases involving remote electronic devices, the remote electronic device can be connected to the user electronic device through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external electronic device (for example, using an Internet service provider to connect through the Internet).
[0396] It should be noted that although several units or subunits of the device are mentioned in the detailed description above, this division is merely exemplary and not mandatory. In fact, depending on the embodiment of the application, the features and functions of two or more units described above can be embodied in a single unit. Conversely, the features and functions of a single unit described above can be further divided and embodied by multiple units.
[0397] Furthermore, although the operations of the method of the present application are described in a particular order in the accompanying drawings, this does not require or imply that the operations must be performed in this particular order, or that all illustrated operations must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps.
[0398] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Furthermore, the present application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) that contain a computer-usable computer program.
[0399] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program commands. These computer program commands can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the commands executed by the processor of the computer or other programmable data processing device generate commands for implementing the processes in the flowchart and / or block diagram. Figure 1 a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0400] These computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture comprising a command device, which implements the process Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.
[0401] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.
[0402] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the present application.
[0403] Obviously, those skilled in the art may make various changes and modifications to this application without departing from the spirit and scope of this application. Thus, if these modifications and variations of this application fall within the scope of the claims of this application and their equivalents, this application is intended to include these modifications and variations.
Claims
1. A distributed routing system, characterized in that: The system includes: a control subsystem, at least one routing subsystem, and at least one forwarding subsystem; Each of the routing subsystems is configured to establish a communication connection with a router on the associated business object side to receive routing report information notified by the business object side, and report the routing report information to the control subsystem; the routing report information is used to indicate the business network configured for the business object; The control subsystem is configured to, after receiving the route reporting information reported by the routing subsystem, generate a forwarding plane route based on the route reporting information, and send the forwarding plane route to the forwarding subsystem associated with the business object; Each of the forwarding subsystems is configured to receive the forwarding plane route issued by the control subsystem and update the first local routing table based on the forwarding plane route, so as to forward the service traffic request based on the first local routing table after receiving the service traffic request.
2. The system according to claim 1, wherein Each business object is associated with at least one of the routing subsystems; the control subsystem is used to: For a business object, obtaining global routing information of each routing subsystem associated with the business object; Based on the global routing information, the routing report information is merged and processed; If it is determined that the service network indicated by the route reporting information represents a newly added route, a forwarding plane route of the service network is generated.
3. The system according to claim 1, wherein: If the same business object is associated with at least two routing subsystems, the control subsystem is used to: For routing report information for the same service network, after receiving the routing report information reported by the first routing subsystem in the at least two routing subsystems, generate a forwarding plane route based on the routing report information, and send the forwarding plane route to the forwarding subsystem associated with the service object; After receiving the routing report information reported by other routing subsystems in the at least two routing subsystems, the routing report information is ignored.
4. The system according to claim 1, wherein If the same business object is associated with at least two routing subsystems, the control subsystem is further configured to: For route deletion information for the same service network, after receiving the route deletion information reported by the last routing subsystem among the at least two routing subsystems, the related forwarding subsystem is notified to delete the forwarding plane route generated based on the service network.
5. The system according to claim 1, wherein: If there are multiple routes to the service network and they need to be processed by the control subsystem, the control subsystem is used to: After receiving the route reporting information reported by the routing subsystem, performing route optimization on the plurality of routes in combination with the first route optimization rule predefined by the business object and the route reporting information; A forwarding plane route is generated according to the result of route optimization, and the forwarding plane route is sent to the forwarding subsystem associated with the business object.
6. The system according to claim 1, wherein: If there are multiple routes to the service network and no processing by the control subsystem is required, the routing subsystem is further configured to: After receiving the route reporting information notified by the business object side, no longer reporting the route reporting information to the control subsystem; Performing route optimization on the plurality of routes in combination with the second route optimization rule preconfigured in the routing subsystem and the route reporting information; A forwarding plane route is generated according to the result of route optimization, and the forwarding plane route is sent to the forwarding subsystem associated with the business object.
7. The system according to claim 1, wherein: The control subsystem is also used for: The forwarding plane route is transmitted to another external system via the Border Gateway Protocol or a related application programming interface, so that at least one of the following operations is performed by the other external system: Displaying the forwarding plane routing; The second local routing table is updated based on the forwarding plane routing, so that after receiving the service traffic request, the service traffic request is forwarded based on the second local routing table.
8. The system according to claim 1, wherein: The forwarding subsystem is used for: After receiving the service traffic request, determining the service object corresponding to the service traffic request by analyzing the traffic characteristics of the service traffic request; The business traffic request is forwarded through the first local routing table corresponding to the business object.
9. The system according to any one of claims 1 to 8, wherein: The routing subsystem is further configured to: The route reporting information notified from the first router on the business object side is transmitted to at least one second router on the business object side through the BGP protocol, so that the at least one second router generates a forwarding plane route based on the route reporting information and updates a third local routing table, so as to forward the business traffic request based on the third local routing table after receiving the business traffic request.
10. The system according to any one of claims 1 to 8, wherein: Each routing subsystem corresponds to a routing plane logical instance cluster, and each routing plane logical instance in the routing plane logical instance cluster has an independent routing space; Each forwarding subsystem corresponds to a forwarding plane logical instance cluster, and each forwarding plane logical instance in the forwarding plane logical instance cluster has an independent routing space.
11. A routing processing method, characterized in that: A control subsystem applied to a distributed routing system, wherein the distributed routing system further includes at least one routing subsystem and at least one forwarding subsystem, wherein the method comprises: Receive routing report information reported by the routing subsystem; the routing subsystem is used to establish a communication connection with the router on the associated business object side to receive the routing report information notified by the business object side, and report the routing report information to the control subsystem; the routing report information is used to indicate the business network configured for the business object; generating a forwarding plane route based on the route reporting information; The forwarding plane route is sent to the forwarding subsystem associated with the business object, so that the forwarding subsystem updates the first local routing table based on the forwarding plane route, so as to forward the business traffic request based on the first local routing table after receiving the business traffic request.
12. The method according to claim 11, wherein Each business object is associated with at least one of the routing subsystems; and generating a forwarding plane route based on the routing report information includes: For a business object, obtaining global routing information of each routing subsystem associated with the business object; Based on the global routing information, the routing report information is merged and processed; If it is determined that the service network indicated by the route reporting information represents a newly added route, a forwarding plane route of the service network is generated.
13. The method according to claim 11, wherein If the same business object is associated with at least two routing subsystems, generating a forwarding plane route based on the routing reporting information includes: For routing report information for the same service network, after receiving the routing report information reported by the first routing subsystem in the at least two routing subsystems, generate a forwarding plane route based on the routing report information, and send the forwarding plane route to the forwarding subsystem associated with the service object; After receiving the routing report information reported by other routing subsystems in the at least two routing subsystems, the routing report information is ignored.
14. The method according to claim 11, wherein If the same business object is associated with at least two routing subsystems, the method further includes: For route deletion information for the same service network, after receiving the route deletion information reported by the last routing subsystem among the at least two routing subsystems, the related forwarding subsystem is notified to delete the forwarding plane route generated based on the service network.
15. The method according to claim 11, wherein If there are multiple routes to the service network and they need to be processed by the control subsystem, generating a forwarding plane route based on the route reporting information includes: After receiving the route reporting information reported by the routing subsystem, performing route optimization on the plurality of routes in combination with the first route optimization rule predefined by the business object and the route reporting information; Generate forwarding plane routes based on the route optimization results.
16. The method according to any one of claims 11 to 15, wherein: The method further comprises: The forwarding plane route is transmitted to another external system via the Border Gateway Protocol or a related application programming interface, so that at least one of the following operations is performed by the other external system: Displaying the forwarding plane routing; The second local routing table is updated based on the forwarding plane routing, so that after receiving the service traffic request, the service traffic request is forwarded based on the second local routing table.
17. A routing processing device, characterized in that: A control subsystem applied to a distributed routing system, wherein the distributed routing system further includes at least one routing subsystem and at least one forwarding subsystem, wherein the device includes: a receiving unit, configured to receive routing report information reported by the routing subsystem; the routing subsystem is configured to establish a communication connection with a router on the associated business object side to receive routing report information notified by the business object side, and report the routing report information to the control subsystem; the routing report information is used to indicate the business network configured for the business object; A generating unit, configured to generate a forwarding plane route based on the route reporting information; A forwarding unit is used to send the forwarding plane route to the forwarding subsystem associated with the business object, so that the forwarding subsystem updates the first local routing table based on the forwarding plane route, so as to forward the business traffic request based on the first local routing table after receiving the business traffic request.
18. An electronic device, characterized in that: The method comprises a processor and a memory, wherein the memory stores a computer program, and when the computer program is executed by the processor, the processor is enabled to perform the steps of the method according to any one of claims 11 to 16.
19. A computer-readable storage medium, characterized in that The method comprises a computer program. When the computer program is run on an electronic device, the computer program is used to enable the electronic device to execute the steps of the method according to any one of claims 11 to 16.
20. A computer program product, characterized in that The method comprises a computer program stored in a computer-readable storage medium; when a processor of an electronic device reads the computer program from the computer-readable storage medium, the processor executes the computer program, so that the electronic device performs the steps of any one of the methods described in claims 11 to 16.