Traffic load balancing method, apparatus and storage medium
By announcing routes carrying priority or packet information between communication devices in the data center, the transmission conflicts and congestion problems of message flows in the Spine-Leaf network are resolved, achieving more efficient traffic load balancing and improving the transmission reliability of the data center.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2024-12-24
- Publication Date
- 2026-06-26
AI Technical Summary
In the Spine-Leaf network architecture of data centers, existing technologies are unable to effectively solve the transmission conflicts and congestion problems between message flows, especially under low traffic conditions. Hash calculation and ECMP load balancing methods have uncertainties and lags, which affect traffic transmission efficiency.
By announcing routes carrying priority or packet information between communication devices, load balancing is achieved using different interfaces and forwarding planes to ensure that traffic in the same group is distributed to different interfaces, avoiding transmission conflicts, and realizing load balancing in Spine-Leaf networking.
It improves the reliability and efficiency of data center traffic transmission, reduces transmission conflicts and congestion, and achieves more efficient load balancing, especially under low traffic conditions.
Smart Images

Figure CN122293592A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to traffic load balancing methods, apparatus and storage media. Background Technology
[0002] With the development of communication technology, more and more application scenarios involve the use of data centers. A data center comprises multiple communication devices and hosts. The hosts are connected to multiple communication devices to achieve indirect connections between hosts. Based on these connections, communication devices can be used to transmit messages between hosts, and load balancing can be achieved during message transmission. Summary of the Invention
[0003] This application provides a traffic load balancing method, apparatus, and storage medium to achieve traffic load balancing. The technical solution is as follows.
[0004] A first aspect provides a traffic load balancing method, comprising: a first communication device announcing a first route to a second communication device, the first route including a first route prefix, a first next hop, and a first route attribute, the first next hop being interface information of a first interface of the first communication device, the first route attribute including at least one of priority information or first packet information of the first route, the priority information of the first route indicating the priority of the first route, the first packet information indicating a first group, a first access (AC) side interface of the first communication device used to access a first host belonging to the first group, and a first Internet Protocol (IP) address of the first host matching the first route prefix; the first communication device generating a second route, the second route including a first route prefix, a second next hop, and a second route attribute, the second next hop being interface information of a second interface of the first communication device, the second route attribute including at least one of priority information or first packet information of the second route, the priority information of the second route indicating the priority of the second route; and the first communication device announcing the second route to the second communication device.
[0005] Since both the first route and the second route announced by the first communication device to the second communication device carry at least one of priority information or first packet information, and the first packet information carried in the first route and the second route indicates the same group, the second communication device can perform load balancing on the traffic of the same group based on the packet information. For traffic matching the same route prefix, since the next hop corresponds to different interfaces, the device can select a route based on the priority information, which can also achieve load balancing. In addition, the second communication device can also select a route from the first route and the second route based on the priority information and the first packet information to forward packets whose destination address is the first IP address of the first host, thereby achieving traffic load balancing.
[0006] In one possible implementation, the first route has a higher priority than the second route. Because the first and second routes have different priorities, the second communication device can differentiate the priorities of the routes advertised by the first communication device, selecting the first route from the two routes for message transmission based on priority, thus improving the efficiency of route selection by the second communication device.
[0007] In one possible implementation, the method further includes: a first communication device generating a third route, the third route including a second route prefix, a third next hop, and third route attributes, wherein the third next hop is the interface information of a third interface of the first communication device, the third route attributes include at least one of priority information of the third route or first group information, the priority information of the third route indicates the priority of the third route, the second AC side interface of the first communication device used to access the second host belongs to the first group, the second IP address of the second host matches the second route prefix, and the third interface is a different interface from the first interface; the first communication device announces the third route to the second communication device.
[0008] For traffic belonging to the same group but matching different routing prefixes, since the next hop corresponds to different first and third interfaces, the second communication device can send traffic matching different routing prefixes to the first communication device through different interfaces, thereby achieving traffic load balancing.
[0009] In one possible implementation, the second interface and the third interface are the same interface. Since the third interface is different from the first interface, even if the second and third interfaces are the same, load balancing of traffic in the same group but matching different route prefixes can be achieved using the first and third routes.
[0010] In one possible implementation, the method further includes: a first communication device generating a fourth route, the fourth route including a third route prefix, a fourth next hop, and fourth route attributes, wherein the fourth next hop is the interface information of the fourth interface of the first communication device, and the fourth route attributes include at least one of priority information of the fourth route or second packet information, the priority information of the fourth route indicating the priority of the fourth route, the second packet information indicating the second group, the third AC-side interface of the first communication device used to access the third host belonging to the second group, and the third IP address of the third host matching the third route prefix; and the first communication device announcing the fourth route to the second communication device.
[0011] Since the first AC-side interface and the third AC-side interface belong to different groups, there is no transmission conflict between them. For traffic belonging to different groups and matching different routing prefixes, since there is no transmission conflict between the AC-side interfaces used for forwarding the traffic, traffic belonging to different groups will not experience transmission conflicts or congestion due to transmission conflicts. Therefore, the second communication device can send traffic matching different routing prefixes and belonging to different groups to the first communication device using the same or different interfaces, achieving traffic load balancing.
[0012] In one possible implementation, the method further includes: the first communication device determining the priority information of the first route based on the mapping relationship between the first AC-side interface and the first interface of the first communication device. Here, both the first AC-side interface and the first interface are interfaces configured locally by the first communication device. The first communication device can determine the priority information of the first route based on the mapping relationship between local interfaces, resulting in high efficiency in determining the priority information.
[0013] In one possible implementation, priority information includes at least one of a multi-exit discrimination (MED) value, a local preference (LocalPref) value, or an autonomous system path (AS-Path) attribute. This application does not limit the method of indicating priority using priority information; priority can be indicated based on one or more of the MED value, LocalPref value, and AS-Path attribute, offering high flexibility.
[0014] In one possible implementation, the AC-side interfaces belonging to different groups in the first communication device are located on different forwarding planes. Since these forwarding planes are isolated from each other—meaning traffic within the forwarding plane corresponding to the first group will not be forwarded to the forwarding plane corresponding to the second group—there will be no transmission conflicts between traffic forwarded using the AC-side interfaces of different groups within different forwarding planes. Subsequently, during traffic transmission using packet information, traffic belonging to the same group but matching different routing prefixes is allocated to different interfaces, thus distributing traffic across different paths and achieving traffic load balancing.
[0015] In one possible implementation, announcing the first route to the second communication device includes sending a first border gateway protocol (BGP) message to the second communication device to announce the first route, wherein the BGP extended community attribute or BGP community attribute of the first BGP message includes first packet information. This application is not limited to the method of carrying the first packet information in the first route; it can be carried through BGP extended community attributes or BGP community attributes, offering high flexibility.
[0016] In one possible implementation, the first communication device is deployed on a leaf node of the data center, and the second communication device is deployed on a spine node of the data center. The traffic load balancing method provided in this application can be applied to data centers with a spine-leaf network structure, achieving load balancing in a spine-leaf network, reducing transmission conflicts, and improving the reliability of traffic transmission in a spine-leaf network.
[0017] Secondly, another traffic load balancing method is provided, comprising: a second communication device receiving a first route advertised by a first communication device, wherein the first route includes a first route prefix, a first next hop, and a first route attribute, the first next hop being interface information of a first interface of the first communication device, the first route attribute including at least one of priority information or first packet information of the first route, the priority information of the first route indicating the priority of the first route, the first packet information indicating a first group, the first AC-side interface of the first communication device used to access the first host belonging to the first group, and the first IP address of the first host matching the first route prefix; the second communication device receiving a second route advertised by the first communication device, wherein the second route includes a first route prefix, a second next hop, and a second route attribute, the second next hop being interface information of a second interface of the first communication device, the second route attribute including at least one of priority information or first packet information of the second route, the priority information of the second route indicating the priority of the second route; and the second communication device selecting the first route for forwarding packets whose destination address is the first IP address of the first host.
[0018] Since both the first route and the second route announced by the first communication device to the second communication device carry at least one of priority information or first packet information, and the first packet information carried in the first route and the second route indicates the same group, the second communication device can perform load balancing based on the packet information for traffic belonging to the same group. For traffic matching the same route prefix, since the next hop corresponds to different interfaces, a route can be selected based on the priority information, which can also achieve load balancing. In addition, the second communication device can also select a route for forwarding packets from the first route and the second route based on the priority information and the first packet information to achieve traffic load balancing.
[0019] In one possible implementation, the first route has a higher priority than the second route. When the priorities of the first and second routes differ, the second communication device can select the higher-priority first route for forwarding packets based on the priority information, resulting in high route selection efficiency.
[0020] In one possible implementation, the method further includes: a second communication device receiving a third route advertised by a first communication device, the third route including a second route prefix, a third next hop, and third route attributes, wherein the third next hop is interface information of a third interface of the first communication device, the third route attributes include at least one of priority information of the third route or first packet information, the priority information of the third route indicating the priority of the third route, the second AC-side interface of the first communication device used to access the second host belongs to the first group, the second IP address of the second host matches the second route prefix, and the third interface is a different interface from the first interface; the second communication device selects the third route for forwarding packets whose destination address is the second IP address of the second host.
[0021] For traffic belonging to the same group but matching different routing prefixes, the next hop in the route selected by the second communication device corresponds to different interfaces. For example, for traffic matching the first routing prefix, the first next hop in the first route selected by the second communication device indicates the first interface, while for traffic matching the second routing prefix, the third next hop in the third route selected by the second communication device indicates the third interface. Subsequently, based on the selected route, traffic matching different routing prefixes can be sent to the first communication device through different interfaces, thereby achieving traffic load balancing.
[0022] In one possible implementation, the second interface and the third interface are the same interface. Since the second and third interfaces are the same interface, the second communication device selects a third route, which is different from the second route, for transmitting traffic that matches the prefix of the second route. This avoids forwarding the same group of traffic with different route prefixes to the same interface, reducing transmission conflicts and minimizing transmission congestion.
[0023] In one possible implementation, the method further includes: a second communication device receiving a fourth route advertised by a first communication device, the fourth route including a third route prefix, a fourth next hop, and fourth route attributes, wherein the fourth next hop is the interface information of the fourth interface of the first communication device, and the fourth route attributes include at least one of priority information of the fourth route or second packet information, the second packet information indicating a second group, the third AC-side interface of the first communication device used to access the third host belonging to the second group, and the third IP address of the third host matching the third route prefix; the second communication device selecting the fourth route for forwarding packets whose destination address is the third IP address of the third host.
[0024] Since the first AC-side interface and the third AC-side interface belong to different groups, there is no transmission conflict between them. For traffic belonging to different groups and matching different routing prefixes, since there is no transmission conflict between the AC-side interfaces used to forward different traffic, traffic belonging to different groups will not experience transmission conflicts or congestion due to transmission conflicts. Therefore, the second communication device can send traffic matching different routing prefixes and belonging to different groups to the first communication device using the same or different interfaces, achieving traffic load balancing.
[0025] In one possible implementation, the method further includes: generating a first entry based on a first route and generating a second entry based on a second route, wherein the second entry is a fast reroute (FRR) entry of the first entry. By generating an FRR entry, in the event of an anomaly in forwarding packets based on the first entry, the method can promptly switch to forwarding packets according to the FRR entry, resulting in high reliability of the packet forwarding process.
[0026] In one possible implementation, priority information includes at least one of the MED value, LocalPref value, or AS-Path attribute. This application does not limit the method of indicating priority using priority information; priority can be indicated based on one or more of the MED value, LocalPref value, and AS-Path attribute, offering high flexibility.
[0027] In one possible implementation, the AC-side interfaces belonging to different groups in the first communication device are located on different forwarding planes. Since the different forwarding planes are isolated from each other, traffic within the forwarding plane corresponding to the first group will not be forwarded to the forwarding plane corresponding to the second group. Therefore, there will be no transmission conflicts between traffic forwarded using the AC-side interfaces of different groups within different forwarding planes. Subsequently, during the transmission of traffic using packet information, traffic belonging to the same group but matching different routing prefixes is allocated to different interfaces, distributing traffic across different paths and achieving traffic load balancing.
[0028] In one possible implementation, the second communication device receives a first route advertised by the first communication device, comprising: the second communication device receiving a first BGP message sent by the first communication device, the first BGP message being used to advertise the first route, and the first BGP message including first packet information in its BGP extended community attribute or BGP community attribute. This application is not limited to the method of carrying the first packet information in the first route; it can be carried through BGP extended community attributes or BGP community attributes, offering high flexibility.
[0029] In one possible implementation, the first communication device is deployed on a leaf node of the data center, and the second communication device is deployed on a spine node of the data center. The traffic load balancing method provided in this application can be applied to data centers with a Spine-Leaf network structure, achieving load balancing in the Spine-Leaf network, reducing transmission conflicts, and improving the reliability of traffic transmission in the Spine-Leaf network.
[0030] Thirdly, a traffic load balancing device is provided, which is applied to a first communication device. The device includes: a transceiver module for performing receiving and / or sending related operations in the first aspect or any possible implementation of the first aspect; and a processing module for performing other operations besides receiving and / or sending related operations in the first aspect or any possible implementation of the first aspect.
[0031] In one possible implementation, the transceiver module is used to advertise a first route to the second communication device. The first route includes a first route prefix, a first next hop, and a first route attribute. The first next hop is the interface information of a first interface of the first communication device. The first route attribute includes at least one of priority information or first packet information of the first route. The priority information of the first route indicates the priority of the first route. The first packet information indicates a first group. The first AC-side interface of the first communication device used to access the first host belongs to the first group. The first IP address of the first host matches the first route prefix. The processing module is used to generate a second route. The second route includes a first route prefix, a second next hop, and a second route attribute. The second next hop is the interface information of a second interface of the first communication device. The second route attribute includes at least one of priority information or first packet information of the second route. The priority information of the second route indicates the priority of the second route. The transceiver module is also used to advertise the second route to the second communication device.
[0032] In one possible implementation, the first route has a higher priority than the second route.
[0033] In one possible implementation, the processing module is further configured to generate a third route, which includes a second route prefix, a third next hop, and third route attributes. The third next hop is the interface information of the third interface of the first communication device. The third route attributes include at least one of the priority information of the third route or the first group information. The priority information of the third route indicates the priority of the third route. The second AC-side interface of the first communication device used to access the second host belongs to the first group. The second IP address of the second host matches the second route prefix. The third interface is a different interface from the first interface. The transceiver module is further configured to announce the third route to the second communication device.
[0034] In one possible implementation, the second interface and the third interface are the same interface.
[0035] In one possible implementation, the processing module is further configured to generate a fourth route, which includes a third route prefix, a fourth next hop, and fourth route attributes. The fourth next hop is the interface information of the fourth interface of the first communication device. The fourth route attributes include at least one of priority information or second packet information of the fourth route. The priority information of the fourth route indicates the priority of the fourth route, and the second packet information indicates the second group. The third AC-side interface of the first communication device used to access the third host belongs to the second group, and the third IP address of the third host matches the third route prefix. The transceiver module is further configured to announce the fourth route to the second communication device.
[0036] In one possible implementation, the processing module is further configured to determine the priority information of the first route based on the mapping relationship between the first AC side interface and the first interface of the first communication device.
[0037] In one possible implementation, priority information includes at least one of the MED value, LocalPref value, or AS-Path attribute.
[0038] In one possible implementation, the AC-side interfaces belonging to different groups in the first communication device are located in different forwarding planes.
[0039] In one possible implementation, the transceiver module is configured to send a first BGP message to a second communication device to advertise a first route, wherein the BGP extended community attribute or BGP community attribute of the first BGP message includes first packet information.
[0040] In one possible implementation, the first communication device is deployed on the leaf node of the data center, and the second communication device is deployed on the spine node of the data center.
[0041] Fourthly, another traffic load balancing device is provided, which is applied to a second communication device. The device includes: a transceiver module for performing receiving and / or sending related operations in the second aspect or any possible implementation of the second aspect; and a processing module for performing other operations besides receiving and / or sending related operations in the second aspect or any possible implementation of the second aspect.
[0042] In one possible implementation, the transceiver module is configured to receive a first route advertised by a first communication device, wherein the first route includes a first route prefix, a first next hop, and a first route attribute, the first next hop being interface information of a first interface of the first communication device, and the first route attribute including at least one of priority information or first packet information of the first route, the priority information of the first route indicating the priority of the first route, the first packet information indicating a first group, the first AC-side interface of the first communication device used to access the first host belonging to the first group, and the first IP address of the first host matching the first route prefix; the transceiver module is further configured to receive a second route advertised by the first communication device, wherein the second route includes a first route prefix, a second next hop, and a second route attribute, the second next hop being interface information of a second interface of the first communication device, and the second route attribute including at least one of priority information or first packet information of the second route, the priority information of the second route indicating the priority of the second route; and the processing module is configured to select the first route and forward packets whose destination address is the first IP address of the first host.
[0043] In one possible implementation, the first route has a higher priority than the second route.
[0044] In one possible implementation, the transceiver module is further configured to receive a third route advertised by the first communication device. The third route includes a second route prefix, a third next hop, and third route attributes. The third next hop is the interface information of the third interface of the first communication device. The third route attributes include at least one of priority information of the third route or first packet information. The priority information of the third route indicates the priority of the third route. The second AC-side interface of the first communication device used to access the second host belongs to the first group. The second IP address of the second host matches the second route prefix. The third interface and the first interface are different interfaces. The processing module is further configured to select the third route for forwarding packets whose destination address is the second IP address of the second host.
[0045] In one possible implementation, the third interface and the second interface are the same interface.
[0046] In one possible implementation, the transceiver module is further configured to receive a fourth route announced by the first communication device. The fourth route includes a third route prefix, a fourth next hop, and fourth route attributes. The fourth next hop is the interface information of the fourth interface of the first communication device. The fourth route attributes include at least one of priority information or second packet information of the fourth route. The second packet information indicates a second group. The third AC-side interface of the first communication device used to access the third host belongs to the second group. The third IP address of the third host matches the third route prefix. The processing module is further configured to select the fourth route for forwarding packets whose destination address is the third IP address of the third host.
[0047] In one possible implementation, the processing module is further configured to generate a first entry based on a first route and a second entry based on a second route, wherein the second entry is an FRR entry of the first entry.
[0048] In one possible implementation, priority information includes at least one of the MED value, LocalPref value, or AS-Path attribute.
[0049] In one possible implementation, the AC-side interfaces belonging to different groups in the first communication device are located in different forwarding planes.
[0050] In one possible implementation, the transceiver module is configured to receive a first BGP message sent by a first communication device. The first BGP message is used to advertise a first route, and the BGP extended community attribute or BGP community attribute of the first BGP message includes first packet information.
[0051] In one possible implementation, the first communication device is deployed on the leaf node of the data center, and the second communication device is deployed on the spine node of the data center.
[0052] Fifthly, a traffic load balancing system is provided, the system including a first communication device and a second communication device, the first communication device being used to perform the method of the first aspect or any possible implementation of the first aspect, and the second communication device being used to perform the method of the second aspect or any possible implementation of the second aspect.
[0053] In a sixth aspect, a traffic load balancing device is provided, the device including a processor and a memory coupled together, the memory for storing at least one instruction, and the processor for loading and executing at least one instruction to cause the traffic load balancing device to perform the methods in the above aspects.
[0054] In one possible implementation, the device includes a memory.
[0055] In a seventh aspect, a computer-readable storage medium is provided, wherein at least one instruction is stored in the computer-readable storage medium, the instruction being loaded and executed by a processor to implement the methods in the above aspects.
[0056] Eighthly, a computer program (product) is provided, comprising computer programs / instructions, which are executed by a processor to enable a computer to implement the methods in the foregoing aspects.
[0057] A ninth aspect provides a communication device comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other via an internal connection path. The memory stores instructions, and the processor executes the instructions stored in the memory to control the transceiver to receive and transmit signals. When the processor executes the instructions stored in the memory, it causes the processor to perform the methods described in the preceding aspects. Optionally, the communication device may be a chip.
[0058] Optionally, there may be one or more processors and one or more memories.
[0059] Alternatively, the memory can be integrated with the processor, or the memory can be set separately from the processor.
[0060] In the specific implementation process, the memory can be a non-transitory memory, such as read-only memory (ROM), which can be integrated with the processor on the same chip or set on different chips. This application does not limit the type of memory or the way the memory and processor are set.
[0061] It should be understood that the traffic load balancing devices mentioned in the third, fourth, and sixth aspects, as well as the communication device provided in the ninth aspect, can all be chips. The beneficial effects achieved by the technical solutions and corresponding possible implementations of the third to ninth aspects of this application can be found in the above descriptions of the technical effects of the first aspect and its corresponding possible implementations, or the second aspect and its corresponding possible implementations, and will not be repeated here. Attached Figure Description
[0062] Figure 1 A schematic diagram of a data center structure is provided for an embodiment of this application;
[0063] Figure 2 This is a schematic diagram of another data center structure provided in an embodiment of this application;
[0064] Figure 3 A schematic diagram illustrating a transmission conflict provided in an embodiment of this application;
[0065] Figure 4 A schematic diagram of an interface mapping provided in an embodiment of this application;
[0066] Figure 5 A schematic diagram illustrating a message transmission method provided in an embodiment of this application;
[0067] Figure 6 A schematic diagram illustrating another transmission conflict provided for an embodiment of this application;
[0068] Figure 7 A schematic diagram of an implementation environment provided for an embodiment of this application;
[0069] Figure 8 A flowchart of a traffic load balancing method provided in an embodiment of this application;
[0070] Figure 9 A schematic diagram illustrating another message transmission method provided in an embodiment of this application;
[0071] Figure 10 A flowchart illustrating another traffic load balancing method provided in this application embodiment;
[0072] Figure 11 A flowchart illustrating another traffic load balancing method provided in this application embodiment;
[0073] Figure 12 A flowchart illustrating another traffic load balancing method provided in this application embodiment;
[0074] Figure 13 This is a schematic diagram of the structure of a traffic load balancing device provided in an embodiment of this application;
[0075] Figure 14 This is a schematic diagram of another traffic load balancing device provided in an embodiment of this application;
[0076] Figure 15 This application provides a schematic diagram of the structure of a network device according to an embodiment of the present application.
[0077] Figure 16 This is a schematic diagram of another network device provided in an embodiment of this application. Detailed Implementation
[0078] The terminology used in the embodiments section of this application is only for explaining specific embodiments of this application and is not intended to limit this application. To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be further described in detail below with reference to the accompanying drawings.
[0079] In the field of communication technology, a data center includes communication devices and hosts. Hosts are used to store, process, and distribute data. A host can have one or more IP addresses; for example, a host may be configured with one or more network interface cards (NICs), each NIC corresponding to one IP address. Communication devices are used to connect to the hosts and are responsible for data transmission. In practical applications, the host can be a server, and the communication device can be a switch.
[0080] In some cases, data centers utilize Spine-Leaf networking. For example, in processing training data for artificial intelligence (AI) models using data centers, as the scale of AI models grows, the computational demands for training these models increase, making large-scale computing power essential for high-capacity data centers. Spine-Leaf networking is used in the construction of large-capacity data centers. Communication devices in a Spine-Leaf network include Leaf switches and Spine switches, and there can be one or more Leaf switches and Spine switches. Each Leaf switch is connected to a Spine switch via multiple links, and packets are load-balanced on the Spine switches before being sent to the destination host. Each Leaf switch includes an uplink interface and a downlink interface. The uplink interface connects to the Spine switch, and the downlink interface connects to the corresponding host; the downlink interface is also called the AC-side interface. The number of uplink interfaces configured on a Leaf switch can be the same as or different from the number of AC-side interfaces. Furthermore, the AC-side interfaces of the Leaf switches can be located on the same forwarding plane or on different forwarding planes, with packet transmission between different forwarding planes being isolated.
[0081] Figure 1 This is a schematic diagram of a Spine-Leaf network provided in an embodiment of this application. The Spine-Leaf network includes a Spine1 switch, a Leaf1 switch, a Leaf2 switch, a Leaf3 switch, a Leaf4 switch, and eight hosts. The two hosts connected to Leaf3 each have one network interface card (NIC), thus each host has one IP address. The other hosts each have two NICs, thus each host has two IP addresses. Figure 1 The Leaf2 and Leaf3 switches have the same number of uplink interfaces as the AC-side interfaces, the Leaf1 switch has more uplink interfaces than the AC-side interfaces, and the Leaf4 switch has fewer uplink interfaces than the AC-side interfaces. Furthermore, Figure 1 The solid and dashed lines in the diagram are used to distinguish different forwarding planes, such as... Figure 1As shown, AC-side interface 1 of Leaf1 switch is located in one forwarding plane, and AC-side interface 2 of Leaf1 switch is located in another forwarding plane. Packets forwarded by AC-side interface 1 will not be forwarded to the forwarding plane where AC-side interface 2 is located.
[0082] Figure 2 This is a schematic diagram of another Spine-Leaf networking structure provided in an embodiment of this application. Figure 2 It includes two Spine switches, four Leaf switches, and eight hosts, each with two network interface cards (NICs). For example... Figure 2 As shown, Spine1 and Spine2 switches each have 8 ports, while Leaf1, Leaf2, Leaf3, and Leaf4 switches each have 4 uplink ports and 4 AC-side ports. Two of the four uplink ports on each Leaf switch are connected to ports on the Spine1 switch, and the other two are connected to ports on the Spine2 switch. Furthermore, Figure 2 The solid and dashed lines in the diagram are used to distinguish different forwarding planes, the IP addresses of each host, and the interface numbers of each Spine and Leaf switch, as shown below. Figure 2 As shown, I will not go into detail here.
[0083] This application is based solely on the above. Figure 1 and Figure 2 The following two examples of Spine-Leaf networking are used for illustration, but the implementation is not limited to these two structures. Regardless of the Spine-Leaf networking configuration, hosts can form multi-link connections based on Leaf switches and Spine switches to achieve load-balanced message transmission across multiple links.
[0084] In some cases, after receiving a packet stream, the Leaf switch will perform a hash calculation based on the five-tuple information of the packet stream to obtain the hash result. Based on the mapping relationship between the hash result and the output port, it will select the output port corresponding to the packet stream one by one and use the selected output port to transmit the packet stream to the Spine switch to form multi-path load balancing.
[0085] However, the above method can only achieve load balancing when there are a large number of packet streams. If the number of packet streams does not exceed one thousand, hash calculation based on the five-tuple information of each packet stream may result in uneven hash distribution, leading to an imbalance in the number of packet streams allocated to different outgoing ports and causing network collisions. Taking the packet streams transmitted in the data center as the packet streams generated for training AI models as an example, the number of packet streams generated by AI model training is small, and the data volume of each stream is large. Using the above hash calculation method to transmit packet streams may lead to uneven hash distribution.
[0086] To pass Figure 2 Taking the transmission of two message streams in a Spine-Leaf network as an example, the message stream transmission diagram can be shown as follows: Figure 3 As shown, the two packet flows are packet flow 1 (solid line) where IP1 accesses IP5 and packet flow 2 (dashed line) where IP3 accesses IP7. The source address of packet flow 1 is IP1, and the destination address is IP5. The source address of packet flow 2 is IP3, and the destination address is IP7. After the two packet flows arrive at the Leaf1 switch, although there are four links connecting the Spine1 and Spine2 switches on the Leaf1 switch, when the Leaf1 switch hashes packet flow 1 and packet flow 2, it is possible that both will hash to the uplink interface 1 connecting the Leaf1 switch. In this case, if both packet flows are simultaneously sent to link 1 connecting the uplink interface 1 of the Leaf1 switch and the interface 1 of the Spine1 switch, it will cause congestion on link 1, resulting in backpressure, affecting the traffic rate, and impacting the efficiency of computations performed based on packet flows.
[0087] To address the congestion issue caused by the aforementioned hash calculations, if load balancing is based on equal-cost multi-path routing (ECMP), congestion is entirely possible due to the uncertainty of the hash algorithm. To resolve this issue, the NSLB-S algorithm can be used to distribute packets sent from Leaf switches to Spine switches. In NSLB-S, the 'S' identifies a network-scale load balancing (NSLB) algorithm. Assuming the access-side bandwidth and uplink bandwidth of the Leaf switch are equal, a hash mapping calculation is performed on the AC-side interfaces and uplink interfaces to ensure that packets received by different AC-side interfaces are sent to different uplink interfaces, effectively distributing them evenly. The mapping result is shown below. Figure 4 As shown, Figure 4 Different AC-side interfaces are mapped to different uplink interfaces. When using the NSLB-S algorithm to allocate packet flow 1 and packet flow 2, the Leaf1 switch can distribute packet flow 1 and packet flow 2 received via different AC-side interfaces to different uplink interfaces, thus using the different links connected to these uplink interfaces to send packet flow 1 and packet flow 2 to the Spine1 switch respectively. For example... Figure 5 As shown. Figure 5 The solid line in the diagram indicates the transmission process of message stream 1, and the dashed line indicates the transmission process of message stream 2.
[0088] However, even if load balancing can be achieved for packet flows accessed from Leaf switches to Spine switches, transmission conflicts may still occur between packet flows. For example, a Spine switch may experience a transmission conflict while sending packets to the same Leaf switch. See also Figure 6 , Figure 6 Flow 3 (the flow corresponding to the solid line) is the flow of IP1 accessing IP5, and flow 4 (the flow corresponding to the dashed line) is the flow of IP9 accessing IP7. Figure 6 In this context, IP5 and IP7 are IP addresses of different hosts, packet flow 3 and packet flow 4 are destined for different hosts, and the host indicated by IP1 and the host indicated by IP9 are connected to different leaf switches. Figure 6 It means that message streams from two different leaf switches are sent to different hosts under the same leaf switch.
[0089] However Figure 6 The leaf1 and leaf3 switches in the middle are in accordance with Figure 3 or Figure 5 The load balancing algorithm shown can control the packet flow to be collision-free during transmission from the host to the Spine switch, but collisions may occur during transmission from the Spine switch to the host. For example... Figure 6 As shown, after routing both packet flow 3 and packet flow 4 to the Spine1 switch, since both the host indicated by IP5 and the host indicated by IP7 are connected to the Leaf2 switch, both packet flow 3 and packet flow 4 need to be sent from the Spine1 switch to the Leaf2 switch. Although there are two links connecting the Spine1 switch and the Leaf2 switch, if hash load balancing is still performed based on the five-tuple of the packet flows, it is possible that both packet flows will be sent to the same interface on the Leaf2 switch, for example... Figure 6 Both packet flow 3 and packet flow 4 are sent from interface 3 of the Spine1 switch to uplink interface 1 of the Leaf2 switch, thus generating the following: Figure 6 The transmission conflicts shown here affect transmission performance. Therefore, a traffic load balancing method is urgently needed to reduce transmission conflicts when sending packets to hosts using a Spine switch.
[0090] In one related technique, a path can be selected based on the congestion status of the link between the Spine switch and the Leaf switch to transmit different packets using different paths, thus achieving load balancing. However, this method can only achieve load balancing when the link is congested, and it has a lag.
[0091] In related technology two, the scheduling system on the computing side will be used to pre-collect flow information of packet streams in the data center, and combine this with the network topology of the data center to orchestrate paths for each packet stream. Figure 6 Taking the two packet flows shown as an example, based on the source and destination information of the packet flows, the path of packet flow 1 can be allocated as IP1-Leaf1-Spine1-Leaf2(1)-IP5, and the path of packet flow 2 can be IP9-Leaf3-Spine1-Leaf2(2)-IP9. The numbers in parentheses indicate the uplink interfaces on the Leaf switches. For example, Leaf2(1) refers to uplink interface 1 of the Leaf2 switch. After allocating the paths, the transmission paths of the packet flows can be precisely controlled by adjusting the source ports of the packet flows, thereby achieving the effect of load balancing. However, this method is highly dependent on flow information and requires coordination with the scheduling system.
[0092] This application provides a traffic load balancing method. Figure 7 A schematic diagram of an implementation environment provided for an embodiment of this application is shown below. Figure 7 The implementation environment includes a first communication device 01, a second communication device 02, and a first host 03. The second communication device 02 is connected to the first communication device 01 and the first host 03. Figure 7 The connection in the text indicates a communication connection established via a wired or wireless network.
[0093] Optionally, the first communication device 01 and the second communication device 02 can be any device with data transmission capabilities, such as a switch or router. For example, the first communication device 01 and the second communication device 02 can be a metropolitan area router or an edge switch. The first host 03 can be any device with data processing capabilities, such as a server, a central server, an edge server, or a local server in a local data center. The server can be a physical server or a cloud server providing cloud computing services. In some embodiments, the first host 03 can be a desktop computer, a laptop computer, or a smartphone. The first communication device 01, the second communication device 02, and the first host 03 can be independent devices or components within devices, such as transceivers, processors, or chips.
[0094] When the first communication device 01, the second communication device 02, and the first host 03 are located in a Spine-Leaf network structure, the first communication device 01 can be configured on a Leaf node, and the second communication device 02 can be configured on a Spine node. (Using a Spine-Leaf network as an example...) Figure 1As shown in the example, the first communication device 01 can be any Leaf switch from Leaf1 to Leaf4, the second communication device 02 can be a Spine1 switch, and the first host 03 can be any host indicated by an IP address connected to the Leaf switch corresponding to the first communication device 01. Taking Leaf-Spine networking as an example... Figure 2 As shown in the example, the first communication device 01 can be any Leaf switch from Leaf1 to Leaf4, the second communication device 02 can be a Spine1 switch or a Spine2 switch, and the first host 03 can be any host indicated by an IP address connected to the Leaf switch corresponding to the first communication device 01.
[0095] Next, taking the first communication device 01 as an example... Figure 2 The Leaf2 switch shown has a second communication device 02. Figure 2 Taking the Spine1 switch shown as an example, this paper illustrates the process of the first communication device 01 and the second communication device 02 interacting to perform the traffic load balancing provided in the embodiments of this application, including but not limited to the following three methods.
[0096] Method 1: The Leaf2 switch controls the priority of published routes based on local load balancing to guide the Spine1 switch in calculating differentiated paths. The traffic load balancing methods under this method are as follows... Figure 8 As shown, it includes the following steps 801-803.
[0097] In step 801, the Leaf2 switch advertises routes including priority information to the Spine1 switch.
[0098] In one possible implementation, the Leaf2 switch performs interface mapping between its local AC-side interfaces and uplink interfaces to obtain interface mapping relationships. Routing priorities are then determined based on these interface mapping relationships.
[0099] For example, the Leaf2 switch can adopt the above... Figure 3 The enhanced load balancing algorithm shown performs a hash calculation on the IP addresses of hosts connected via the AC-side interface. Based on the hash result, it determines the corresponding uplink interface from multiple uplink interfaces of the Leaf2 switch, thus obtaining the interface mapping relationship. Alternatively, it can use... Figure 5 The enhanced load balancing algorithm shown performs a hash calculation on the interface information of the AC side interface, and selects the corresponding uplink interface from multiple uplink interfaces based on the hash result.
[0100] The method for determining the uplink interface corresponding to the AC side interface from multiple uplink interfaces of the Leaf2 switch and obtaining the interface mapping relationship can include the following two cases.
[0101] Scenario 1: The multiple uplink interfaces of the Leaf2 switch mentioned above are uplink interfaces on the Leaf2 switch that connect to the Spine1 switch. In this embodiment, the process of selecting the uplink interface corresponding to the AC-side interface from the uplink interfaces connected to a Spine switch can be referred to as interface mapping using the single Spine algorithm.
[0102] For example, Figure 2 The Leaf2 switch in the middle uses an enhanced load balancing algorithm to determine the uplink interface corresponding to the AC side interface from uplink interface 1 and uplink interface 2 connected to the Spine1 switch, thus obtaining interface mapping relationship 1. This interface mapping relationship 1 is: AC side interface 1 -> uplink interface 1, AC side interface 2 -> uplink interface 2, AC side interface 3 -> uplink interface 1, and AC side interface 4 -> uplink interface 2. Because Figure 2 One AC-side interface connects to one host. Therefore, the above interface mapping relationship 1 can also be identified by the host's IP address, such as IP5->uplink interface 1, IP6->uplink interface 2, IP7->uplink interface 1 and IP8->uplink interface 2.
[0103] Scenario 2: The multiple uplink interfaces of the Leaf2 switch mentioned above are all the interfaces of the Leaf2 switch, including both the uplink interfaces connected to the Spine1 switch and the uplink interfaces connected to the Spine2 switch. In this embodiment, the process of selecting the uplink interface corresponding to the AC-side interface from the uplink interfaces connected to multiple Spine switches can be referred to as using a multi-Spine algorithm for interface mapping.
[0104] For example, Figure 2 The Leaf2 switch uses a load balancing algorithm to select the corresponding uplink interface from uplink interfaces 1 and 2 connected to the Spine1 switch, and uplink interfaces 3 and 4 connected to the Spine2 switch. This results in interface mapping relationship 2, which is: AC-side interface 1 -> Uplink interface 1, AC-side interface 2 -> Uplink interface 3, AC-side interface 3 -> Uplink interface 2, and AC-side interface 4 -> Uplink interface 4. This interface mapping relationship 2 is identified using the host's IP address, and can also be represented as IP5 -> Uplink interface 1, IP6 -> Uplink interface 3, IP7 -> Uplink interface 2, and IP8 -> Uplink interface 4.
[0105] After determining the interface mapping relationship, the Leaf2 switch can determine the priority of routes based on the interface mapping relationship and control the priority of locally advertised routes. For example, it can advertise high-priority routes for uplink interfaces that have an interface mapping relationship with the AC side interface, and low-priority routes for uplink interfaces that do not have an interface mapping relationship with the AC side interface. In this embodiment, the advertised routes include not only the route prefix and next hop, but also route attributes, which include priority information indicating the priority of the route. This embodiment does not limit the form of the priority information; the priority information can include at least one of the MED value, LocalPrefer value, or AS-Path attribute. The Leaf2 switch can indicate the priority of the route using at least one of the MED value, LocalPrefer value, or AS-Path attribute. In practical applications, the appropriate attribute can be selected as the priority information based on the actual network deployment. For example, when an external border gateway protocol (EBGP) is deployed between the Leaf2 switch and the Spine1 switch, since EBGP does not use the LocalPrefer value, the Leaf2 switch can select the MED value from the MED value and the AS-Path attribute to indicate the priority of the route.
[0106] Taking the host's IP address as the routing prefix and the MED value as the priority information (where MED value 100 indicates high priority and MED value 200 indicates low priority) as an example, the routing prefix, next hop, and MED value can be shown in Table 1 below.
[0107] Table 1
[0108]
[0109]
[0110] Referring to Table 1, taking the process of Leaf2 switch controlling four routes based on the interface mapping relationship of AC-side interface 1 as an example, the IP address of the host connected to AC-side interface 1 is IP5. Leaf2 switch advertises routes 1, 2, 3, and 4 based on the interface mapping relationship of AC-side interface 1. The routing prefixes of these four routes all match IP5, for example, all are IP5. The next hops of the four routes are different. The next hop of route 1 indicates uplink interface 1 (corresponding to Leaf2-1 in Table 1), the next hop of route 2 indicates uplink interface 2 (corresponding to Leaf2-2 in Table 1), the next hop of route 3 indicates uplink interface 3 (corresponding to Leaf2-3 in Table 1), and the next hop of route 4 indicates uplink interface 4 (corresponding to Leaf2-4 in Table 1).
[0111] Since the uplink interface with an interface mapping relationship to interface 1 on the AC side is uplink interface 1, the Leaf2 switch carries a MED value of 100 in route 1 indicating high priority, and carries a MED value of 200 in routes 2, 3, and 4 indicating low priority. The MED values in Table 1 distinguish the priorities of different routes with the same route prefix. However, in the actual process of setting priority information based on interface mapping relationships, besides setting routes with no matching interface mapping relationship to the same low priority as shown in Table 1, routes with no matching interface mapping relationship can also be set to different low priorities. For example, since the uplink interface indicated by the next hop in routes 3 and 4 is the interface connecting to the Spine2 switch, the Leaf2 switch can therefore set the priority of route 2 to be higher than that of routes 3 and 4. The priorities among routes 2, 3, and 4 can continue to be distinguished using MED values; for example, the MED value of route 2 is 200, and the MED values of routes 3 and 4 are both 300. For information on other routes advertised by the Leaf2 switch, please refer to Table 1; they will not be explained in detail here.
[0112] This application does not limit the method by which the Leaf2 switch advertises routes to the Spine1 switch. The routes advertised by the Leaf2 switch can be BGP routes. In one possible implementation, the Leaf2 switch can send BGP messages to the Spine1 switch to advertise routes via BGP messages. For example, the Leaf2 switch can advertise route 1 to the Spine1 switch through uplink interface 1, and advertise route 2 to the Spine1 switch through uplink interface 2. Optionally, the Leaf2 switch can also use any interface to send multiple BGP messages to the Spine1 switch, with different BGP messages used to advertise different routes.
[0113] In step 802, the Spine1 switch receives the route advertised by the Leaf2 switch and performs route calculation based on the priority information in the route.
[0114] For example, Spine1 switch receives a BGP message from Leaf2 switch and obtains the route advertised by Leaf2 switch based on the BGP message. Then, Spine1 switch can perform route calculation according to the BGP routing rules and the priority information in the route to obtain forwarding table entries. For BGP routes, route calculation refers to route selection. In this embodiment, performing route calculation according to the BGP routing rules and the priority information in the route means selecting the route based on the priority information in the route. In some cases, Spine1 switch can also determine the primary / backup protection path or the ECMP path based on the priority information in the route advertised by Leaf2. In this case, the forwarding table entry for the backup path is the FRR entry for the primary path's forwarding table entry. For example, taking the route content advertised by Leaf2 switch as shown in Table 1 above, the calculation results obtained by Spine1 switch using the multi-Spine global load balancing algorithm are shown in Table 2 below.
[0115] Table 2
[0116] prefix Nexthop MED value Calculation results IP5 Leaf2-1 100 Select IP5 Leaf2-2 200 FRR IP7 Leaf2-1 200 FRR IP7 Leaf2-2 100 Select IP6 Leaf2-1 200 Select IP6 Leaf2-2 200 Select IP8 Leaf2-1 200 Select IP8 Leaf2-2 200 Select
[0117] In Table 2, the Select path is marked as chosen, and the FRR path is marked as a backup path. As shown in Table 2, for IP5 and IP7, there is one preferred path and one protection path. For IP6 and IP8, the calculation result is Select for both, so the two paths can form an ECMP.
[0118] If the Spine1 switch uses the single Spine global load balancing algorithm for routing calculation, the calculation results are shown in Table 3 below.
[0119] Table 3
[0120]
[0121]
[0122] The meanings of the prefix, Nexthop, MED values, and calculation results in Table 3 are similar to those in Table 2, and can be found in the relevant descriptions, which will not be repeated here. Regardless of whether the calculation result determined by the Spine1 switch is one of those in Table 2 or Table 3, the Spine1 switch can forward the packet to the Leaf2 switch based on the calculation result upon receiving the packet.
[0123] In step 803, the Spine1 switch forwards the packet based on the routing calculation result.
[0124] In this embodiment, for BGP routing, the route calculation result refers to the route selection result based on priority information, and forwarding packets according to the route calculation result means forwarding packets according to the selected route. The method provided in this embodiment is applicable not only to BGP routing but also to other types of routing. BGP routing is used as an example and is not intended to limit the application scenarios of this application. Regardless of the type of routing, after the Spine1 switch completes the route calculation, when traffic from multiple Leaf switches reaches the Spine1 switch, the Spine1 switch can forward packets according to the path corresponding to the calculated route forwarding table entry, instead of performing ECMP calculation, thereby reducing the likelihood of congestion.
[0125] by Figure 2 Taking the example of the Spine1 switch forwarding packets from different Leaf switches to the Leaf2 switch in the network topology shown, the packet transmission path can be as follows: Figure 9 As shown. Figure 9 The two packets transmitted within the data center are packet 1 sent by the host indicated by IP1 and packet 2 sent by the host indicated by IP9. After the host indicated by IP1 sends packet 1 to the Leaf1 switch, the Leaf1 switch, based on a load balancing algorithm, selects uplink interface 1 from its four uplink interfaces to send packet 1 to the Spine1 switch. This ensures that different packets are distributed across different uplink interfaces, utilizing different links for transmission and preventing congestion during transmission to the Spine1 switch. Upon receiving packet 2, the Leaf3 switch performs a similar operation, selecting uplink interface 1 from its four uplink interfaces using a load balancing algorithm to send packet 2 to the Spine1 switch.
[0126] Since the destination address of message 1 is IP5, after receiving message 1, the Spine1 switch selects the uplink interface 1 of the Leaf2 switch as the next hop based on the calculation results shown in Table 3. Since the interface 3 of the Spine1 switch is connected to the uplink interface 1 of the Leaf2 switch, message 1 is sent from the interface 3 of the Spine1 switch to the uplink interface 1 of the Leaf2 switch.
[0127] Since the destination address of message 2 is IP7, after receiving message 2, the Spine1 switch selects the uplink interface 2 of the Leaf2 switch as the next hop based on the calculation results shown in Table 3. Since the interface 4 of the Spine1 switch is connected to the uplink interface 2 of the Leaf2 switch, the Spine1 switch uses the interface 4 of the Spine1 switch to send message 2 to the uplink interface 2 of the Leaf2 switch, thereby realizing the use of different links to send different messages to different uplink interfaces of the Leaf2 switch, and achieving load balancing of traffic.
[0128] It should be understood that the embodiments of this application use Leaf2 switch to advertise routes as an example. The way Leaf1, Leaf3 and Leaf4 switches advertise routes is the same as that of Leaf2 switch. The way Spine1 switch receives routes advertised by Leaf1, Leaf3 and Leaf4 switches and calculates forwarding table entries is the same as that of Leaf2 switch. The interaction process between Leaf2 switch and Spine1 switch can be referred to, and will not be repeated here.
[0129] Method 2: The routes advertised by the Leaf2 switch include packet information, and the Spine1 switch performs load balancing calculations based on these packets. The traffic load balancing method under this method is as follows: Figure 10 As shown, it includes steps 1001-1003.
[0130] In step 1001, the Leaf2 switch advertises routes including packet information to the Spine1 switch.
[0131] In one possible implementation, before announcing routes including packet information, the Leaf2 switch obtains the packet information of the packets belonging to its local AC-side interfaces. For example, the packet to which an AC-side interface belongs can be determined based on the attributes of the AC-side interface. The attribute of the AC-side interface can be the AI model corresponding to the AC-side interface. For instance, in a scenario of training an AI model, packet flows corresponding to the same AI model are transmitted in the same forwarding plane, therefore the AC-side interfaces transmitting this packet flow belong to the same group. Optionally, the attribute of the AC-side interface can also be the forwarding plane where the AC-side interface is located; AC-side interfaces located in the same forwarding plane belong to the same group.
[0132] like Figure 2As shown, solid and dashed lines are used to distinguish different forwarding planes. AC-side interface 1 and AC-side interface 3 in the Leaf2 switch are located in the same forwarding plane, therefore AC-side interface 1 and AC-side interface 3 belong to the first group, and their corresponding packet information can all be first packet information. AC-side interface 2 and AC-side interface 4 are located in another forwarding plane, therefore AC-side interface 2 and AC-side interface 4 belong to the second group, and their corresponding packet information can all be second packet information. In this embodiment, packet information can be used as packet attributes, which can also be called plane attributes or rails.
[0133] When the Leaf2 switch advertises routes to the Spine1 switch, the routes include not only the route prefix and next hop, but also packet information added for the packets belonging to the AC-side interfaces. Taking the packet information obtained in step 1001 above as an example, the content of the routes advertised by the Leaf2 switch to the Spine1 switch can be shown in Table 4 below.
[0134] Table 4
[0135] prefix Nexthop Grouping information IP5 Leaf2-1 Group 1 IP5 Leaf2-2 Group 1 IP5 Leaf2-3 Group 1 IP5 Leaf2-4 Group 1 IP7 Leaf2-1 Group 1 IP7 Leaf2-2 Group 1 IP7 Leaf2-3 Group 1 IP7 Leaf2-4 Group 1 IP6 Leaf2-1 Group 2 IP6 Leaf2-2 Group 2 IP6 Leaf2-3 Group 2 IP6 Leaf2-4 Group 2 IP8 Leaf2-1 Group 2 IP8 Leaf2-2 Group 2 IP8 Leaf2-3 Group 2 IP8 Leaf2-4 Group 2
[0136] Furthermore, the routes advertised by the Leaf2 switch can be BGP routes. Taking the Leaf2 switch advertising routes by sending BGP messages to the Spine1 switch as an example, the BGP extended community attribute or BGP community attribute of the BGP message includes packet information. For instance, referring to Table 4 above, the routes advertised by the Leaf2 switch to the Spine1 switch are Route 1, Route 2, Route 3, and Route 4. The route prefix of Route 1 matches IP5, and the next hop indicates uplink interface 1 of the Leaf2 switch. The route prefix of Route 2 matches IP6, and the next hop indicates uplink interface 3 of the Leaf2 switch. The route prefix of Route 3 matches IP7, and the next hop indicates uplink interface 2 of the Leaf2 switch. The route prefix of Route 4 matches IP8, and the next hop indicates uplink interface 4 of the Leaf2 switch. Routes 1 and 3 both include first packet information indicating the first group, and routes 2 and 4 both include second packet information indicating the second group. If the BGP message used to advertise route 1 is a first BGP message, the BGP message used to advertise route 2 is a second BGP message, the BGP message used to advertise route 3 is a third BGP message, and the BGP message used to advertise route 4 is a fourth BGP message, and since AC-side interface 1 is used to access hosts identified by IP5 and AC-side interface 3 is used to access hosts identified by IP7, AC-side interfaces 1 and 3 belong to the first group, then the first and third BGP messages can carry the same BGP extended community attributes to indicate the first group. Furthermore, since AC-side interface 2 is used to access hosts identified by IP6 and AC-side interface 4 is used to access hosts identified by IP8, AC-side interfaces 2 and 4 belong to the second group, then the second and fourth BGP messages can carry the same BGP extended community attributes to indicate the second group. The BGP extended community attributes carried by the first and third BGP messages are different from those carried by the second and fourth BGP messages.
[0137] The above explanation uses BGP extended community attributes to carry packet information as an example. If BGP community attributes are used to carry packet information, the principle is the same, and you can refer to the above content. It will not be repeated here.
[0138] In step 1002, the Spine1 switch receives the route advertised by the Leaf2 switch and performs route calculation based on the packet information in the route.
[0139] For example, the Spine1 switch receives a BGP message from the Leaf2 switch and obtains the route advertised by the Leaf2 switch based on the BGP message. Then, the Spine1 switch can perform route calculation according to the BGP routing rules and the packet information in the route. For BGP routes, route calculation refers to route selection. In this embodiment, performing route calculation according to the BGP routing rules and the packet information in the route means selecting the route based on the packet information in the route. For example, the Spine1 switch uses a load balancing algorithm to distribute the route for the same packet among multiple neighbors. Here, the route prefix advertised by the Leaf2 switch that matches the addresses IP5 and IP7 is routed through two links (e.g., ...). Figure 9 Links 3 and 4 in the route are advertised to the Spine1 switch. The Spine1 switch distributes the route evenly between these two links, meaning IP5 can choose link 3 and IP7 can choose link 4. The Spine1 switch performs the same path calculation for routes with IP6 and IP8 prefixes. Using Table 4 as an example, the Spine1 switch performs route calculations based on the packet information in the route, and the results are shown in Table 5 below.
[0140] Table 5
[0141]
[0142]
[0143] In step 1003, the Spine1 switch forwards packets based on the routing calculation results.
[0144] In this embodiment, for BGP routing, the route calculation result refers to the route selection result based on packet information, and forwarding packets based on the route calculation result refers to forwarding packets according to the selected route. The method provided in this embodiment is applicable not only to BGP routing but also to other types of routing. BGP routing is used as an example and is not intended to limit the application scenarios of this application. Regardless of the type of routing, after the Spine1 switch completes the route calculation, when traffic from multiple Leaf switches arrives at the Spine1 switch, the Spine1 switch can forward packets according to the path corresponding to the calculated route forwarding table entry, instead of performing ECMP calculation, thereby reducing congestion.
[0145] For example, based on the calculation results shown in Table 5 above, the Spine1 switch can distribute packets across different links during packet reception, avoiding congestion. Continuing with... Figure 9Taking packets 1 and 2 as an example, after receiving packets 1 and 2, the Spine1 switch selects interface 3 of the Spine1 switch to send packet 1 to the uplink interface 1 of the Leaf2 switch, and selects interface 4 of the Spine1 switch to send packet 2 to the uplink interface 2 of the Leaf2 switch. By balancing the routing between uplink interface 1 and uplink interface 2, it ensures that packets with different IP addresses will be sent to different uplink interfaces, thereby achieving load balancing within the group.
[0146] In method three, the routes advertised by the Leaf2 switch to the Spine1 switch include both priority and packet information. The Spine1 switch can then perform route calculations based on these priority and packet information. The traffic load balancing method under this approach is as follows: Figure 11 As shown, it includes steps 1101-1103.
[0147] In step 1101, the Leaf2 switch advertises routes, including priority information and packet information, to the Spine1 switch.
[0148] In step 1101, when Leaf2 switch advertises routes to Spine1 switch, the routes include not only the route prefix and next hop, but also packet information added for packets belonging to the AC-side interfaces, as well as other packet information. This embodiment does not limit the priority of Leaf2 switch in determining routes or the execution order of obtaining packet information. Furthermore, Leaf2 switch can send BGP messages to Spine1 switch to advertise routes via BGP messages. The implementation of step 1101 can be found in steps 801 and 1001 above, and will not be repeated here.
[0149] In step 1102, the Spine1 switch receives the route advertised by the Leaf2 switch and performs route calculation based on the priority information and packet information in the route.
[0150] The implementation of step 1102 can be referenced from the relevant content of steps 802 and 1002 above, and will not be repeated here. For example, the Spine1 switch selects the route with the higher route priority for route calculation based on the route priority, and distributes the traffic of the same packet evenly to different interfaces.
[0151] In step 1103, the Spine1 switch forwards packets based on the routing calculation results.
[0152] The implementation method of step 1103 can be referred to the relevant content of steps 803 and 1003 above, and will not be repeated here.
[0153] Based on methods one to three described above, this application provides a traffic load balancing method. Taking the method being interactively executed by a first communication device and a second communication device in a data center as an example, the flowchart of the method is as follows. Figure 12 As shown, it includes steps 1201-1206.
[0154] In step 1201, the first communication device notifies the second communication device of the first route.
[0155] For example, the first communication device is deployed on a leaf node in the data center, and the second communication device is deployed on a spine node in the data center. The first route advertised by the first communication device includes a first route prefix, a first next hop, and first route attributes. The first next hop is the interface information of the first interface of the first communication device. The first route attributes include at least one of priority information or first packet information of the first route. The priority information of the first route indicates the priority of the first route, and the first packet information indicates the first group. The first AC-side interface of the first communication device used to access the first host belongs to the first group, and the first IP address of the first host matches the first route prefix.
[0156] In one possible scenario, the first communication device determines the priority of the first route based on the mapping relationship between the first AC-side interface and the first interface of the first communication device. Priority information includes at least one of the following: MED value, LocalPref value, or AS-Path attribute.
[0157] Optionally, the process of the first communication device announcing the first route includes: sending a first BGP message to the second communication device to announce the first route, wherein the BGP extended community attribute or BGP community attribute of the first BGP message includes first packet information. Optionally, the first BGP message contains defined packet attributes for carrying packet information. These packet attributes may, for example, be newly defined BGP community attributes or BGP extended community attributes.
[0158] In step 1202, the first communication device generates a second route.
[0159] Optionally, the second route includes a first route prefix, a second next hop, and second route attributes. The second next hop is the interface information of the second interface of the first communication device. The second route attributes include at least one of the priority information of the second route or the first packet information. The second priority information indicates the priority of the second route.
[0160] In one possible implementation, the first route has a higher priority than the second route.
[0161] In step 1203, the first communication device notifies the second communication device of the second route.
[0162] Optionally, the process of the first communication device announcing the second route is similar to the process of announcing the first route, as described in the relevant description, and will not be repeated here. In one possible case, the first communication device may also generate a third route, which includes a second route prefix, a third next hop, and third route attributes. The third next hop is the interface information of the third interface of the first communication device, and the third route attributes include the priority of the third route. The second AC-side interface of the first communication device used to access the second host belongs to the first group, the second IP address of the second host matches the second route prefix, and the third interface is a different interface from the first interface. The first communication device announces the third route to the second communication device. For example, the second interface and the third interface are the same interface.
[0163] In one possible implementation, the first communication device can also generate a fourth route. The fourth route includes a third route prefix, a fourth next hop, and fourth route attributes. The fourth next hop is the interface information of the fourth interface of the first communication device. The fourth route attributes include at least one of priority information or second packet information. The priority information indicates the priority of the fourth route, and the second packet information indicates the second group. The third AC-side interface of the first communication device used to access the third host belongs to the second group, and the third IP address of the third host matches the third route prefix. The first communication device announces the fourth route to the second communication device. The AC-side interfaces of the first communication device belonging to different groups are located in different forwarding planes.
[0164] In step 1204, the second communication device receives the first route announced by the first communication device.
[0165] For example, the second communication device receives a first BGP message sent by the first communication device. The first BGP message is used to announce a first route, and the BGP extended community attribute or BGP community attribute of the first BGP message includes first packet information.
[0166] In step 1205, the second communication device receives the second route announced by the first communication device.
[0167] Optionally, the first route has a higher priority than the second route.
[0168] In step 1206, the second communication device selects a first route to forward packets whose destination address is the first IP address of the first host.
[0169] For example, after selecting a first route, the second communication device can generate a first entry based on the first route and generate a second entry based on the second route. The second entry is an FRR entry of the first entry.
[0170] In one possible implementation, if the first communication device also advertises a third route, the second communication device will also receive the third route advertised by the first communication device; and select the third route to forward packets whose destination address is the second IP address of the second host.
[0171] Optionally, if the first communication device also advertises a fourth route, the second communication device will also receive the fourth route advertised by the first communication device; select the fourth route to forward packets whose destination address is the third IP address of the third host.
[0172] For example, the process of the first communication device and the second communication device interactively performing traffic load balancing and the above-mentioned Figure 8 or Figure 10 or Figure 11 The traffic load balancing process shown is similar, and the first communication device corresponds to the above. Figure 8 or Figure 10 or Figure 11 The Leaf2 switch shown corresponds to the second communication device described above. Figure 8 or Figure 10 or Figure 11 The Spine1 switch shown. The first IP address corresponds to the one mentioned above. Figure 8 or Figure 10 The IP5 shown corresponds to the second IP address mentioned above. Figure 8 or Figure 10 IP7, the third IP address corresponds to the above Figure 8 or Figure 10 IP6, the first interface corresponds to uplink interface 1 of the Leaf2 switch, the first AC-side interface corresponds to AC-side interface 1 of the Leaf2 switch, the second interface corresponds to uplink interface 2 of the Leaf2 switch, the second AC-side interface corresponds to AC-side interface 2 of the Leaf2 switch, the third interface corresponds to uplink interface 2 of the Leaf2 switch, and the fourth interface corresponds to either uplink interface 1 or uplink interface 2 of the Leaf2 switch. Figure 12 The traffic load balancing method shown above can be referenced. Figure 8 or Figure 10 or Figure 11 The traffic load balancing methods shown will not be elaborated on here.
[0173] Furthermore, the above embodiments use the two uplink interfaces of the Leaf2 switch as an example to illustrate the process of traffic load balancing achieved by the Leaf2 switch (as the first communication device) and the Spine1 switch (as the second communication device), rather than limiting the structure of the Leaf2 and Spine1 switches. The number of uplink interfaces of the Leaf2 switch can be... Figure 9The four shown could also be other numbers. Similarly, the link between the Leaf2 switch and the Spine1 switch via the uplink interface could be... Figure 9 The two links shown can also be any number of links. For example, all four uplink interfaces of the Leaf2 switch are connected to the Spine1 switch, and there are four links connecting the Leaf2 switch and the Spine1 switch. In this case, an IP address on a host can be advertised to the Spine1 switch through the neighbors of the four links. That is, the Leaf2 switch advertises four routes to the Spine1 switch with the same routing prefix. Taking the first routing prefix as an example, the routes advertised by the Leaf2 switch to the Spine1 switch carrying the first routing prefix, in addition to the first and second routes in the above embodiment, also include the fifth and sixth routes. The first, second, fifth, and sixth routes carry different next hops. The priority information carried by the first, second, fifth, and sixth routes can be different or partially the same.
[0174] The above describes the traffic load balancing method of the present application embodiments. Corresponding to the above method, the present application embodiments also provide a traffic load balancing device. Figure 13 This is a schematic diagram of the structure of a traffic load balancing device provided in an embodiment of this application. Based on Figure 13 The following modules are shown. Figure 13 The flow load balancing device shown can perform the above. Figure 12 The first communication device shown may operate in whole or in part. It should be understood that the device may include more additional modules than those shown, or may omit some of the modules shown; this application does not limit this. Figure 13 As shown, the device includes:
[0175] Transceiver module 1301 is used to perform Figure 12 The receiving and / or transmitting operations of the first communication device in the traffic equalization method shown;
[0176] Processing module 1302 is used to execute Figure 12 Other operations of the traffic equalization method shown, besides the receiving and / or transmitting operations of the first communication device.
[0177] In one possible implementation, transceiver module 1301 is used to announce a first route to the second communication device. The first route includes a first route prefix, a first next hop, and a first route attribute. The first next hop is the interface information of the first interface of the first communication device. The first route attribute includes at least one of priority information or first packet information of the first route. The priority information of the first route indicates the priority of the first route. The first packet information indicates the first group. The first AC-side interface of the first communication device used to access the first host belongs to the first group. The first IP address of the first host matches the first route prefix. Processing module 1302 is used to generate a second route. The second route includes a first route prefix, a second next hop, and a second route attribute. The second next hop is the interface information of the second interface of the first communication device. The second route attribute includes at least one of priority information or first packet information of the second route. The priority information of the second route indicates the priority of the second route. Transceiver module 1301 is also used to announce the second route to the second communication device.
[0178] In one possible implementation, the first route has a higher priority than the second route.
[0179] In one possible implementation, the processing module 1302 is further configured to generate a third route, which includes a second route prefix, a third next hop, and third route attributes. The third next hop is the interface information of the third interface of the first communication device. The third route attributes include at least one of the priority information of the third route or the first group information. The priority information of the third route indicates the priority of the third route. The second AC side interface of the first communication device used to access the second host belongs to the first group. The second IP address of the second host matches the second route prefix. The third interface is a different interface from the first interface. The transceiver module 1301 is further configured to announce the third route to the second communication device.
[0180] In one possible implementation, the second interface and the third interface are the same interface.
[0181] In one possible implementation, the processing module 1302 is further configured to generate a fourth route, which includes a third route prefix, a fourth next hop, and fourth route attributes. The fourth next hop is the interface information of the fourth interface of the first communication device. The fourth route attributes include at least one of priority information or second packet information of the fourth route. The priority information of the fourth route indicates the priority of the fourth route, and the second packet information indicates the second group. The third AC-side interface of the first communication device used to access the third host belongs to the second group, and the third IP address of the third host matches the third route prefix. The transceiver module 1301 is further configured to announce the fourth route to the second communication device.
[0182] In one possible implementation, the processing module 1302 is further configured to determine the priority information of the first route based on the mapping relationship between the first AC side interface and the first interface of the first communication device.
[0183] In one possible implementation, priority information includes at least one of the MED value, LocalPref value, or AS-Path attribute.
[0184] In one possible implementation, the AC-side interfaces belonging to different groups in the first communication device are located in different forwarding planes.
[0185] In one possible implementation, the transceiver module 1301 is used to send a first BGP message to the second communication device to announce a first route, wherein the BGP extended community attribute or BGP community attribute of the first BGP message includes first packet information.
[0186] In one possible implementation, the first communication device is deployed on the leaf node of the data center, and the second communication device is deployed on the spine node of the data center.
[0187] Since both the first route and the second route announced by the first communication device to the second communication device carry at least one of priority information or first packet information, and the first packet information carried in the first route and the second route indicates the same group, the second communication device can perform load balancing based on the packet information for traffic in the same group. For traffic matching the same route prefix, since the next hop corresponds to different interfaces, the route can be selected based on the priority information, which can also achieve load balancing. In addition, the second communication device can also select the route for forwarding traffic, i.e., packets, from the first route and the second route based on the priority information and the first packet information to achieve traffic load balancing.
[0188] The above describes the traffic load balancing method of the present application embodiments. Corresponding to the above method, the present application embodiments also provide a traffic load balancing device. Figure 14 This is a schematic diagram of the structure of a traffic load balancing device provided in an embodiment of this application. Based on Figure 14 The following modules are shown. Figure 14 The flow load balancing device shown can perform the above. Figure 12 The second communication device shown may operate in whole or in part. It should be understood that the device may include more additional modules than those shown, or may omit some of the modules shown; this application embodiment does not impose limitations in this regard. Figure 14 As shown, the device includes:
[0189] Transceiver module 1401 is used to perform Figure 12The receiving and / or transmitting operations of the second communication device in the traffic equalization method shown;
[0190] Processing module 1402 is used to execute Figure 12 Other operations of the second communication device in the traffic equalization method shown, besides the receiving and / or transmitting related operations.
[0191] In one possible implementation, transceiver module 1401 is used to receive a first route advertised by a first communication device, wherein the first route includes a first route prefix, a first next hop, and a first route attribute. The first next hop is the interface information of a first interface of the first communication device. The first route attribute includes at least one of priority information or first packet information of the first route. The priority information of the first route indicates the priority of the first route. The first packet information indicates a first group. The first AC-side interface of the first communication device used to access the first host belongs to the first group. The first IP address of the first host matches the first route prefix. Transceiver module 1401 is also used to receive a second route advertised by the first communication device, wherein the second route includes a first route prefix, a second next hop, and a second route attribute. The second next hop is the interface information of a second interface of the first communication device. The second route attribute includes at least one of priority information or first packet information of the second route. The priority information of the second route indicates the priority of the second route. Processing module 1402 is used to select the first route and to forward packets whose destination address is the first IP address of the first host.
[0192] In one possible implementation, the first route has a higher priority than the second route.
[0193] In one possible implementation, the transceiver module 1401 is further configured to receive a third route announced by the first communication device. The third route includes a second route prefix, a third next hop, and third route attributes. The third next hop is the interface information of the third interface of the first communication device. The third route attributes include at least one of the priority information of the third route or the first packet information. The priority information of the third route indicates the priority of the third route. The second AC side interface of the first communication device used to access the second host belongs to the first group. The second IP address of the second host matches the second route prefix. The third interface is a different interface from the first interface. The processing module 1402 is further configured to select the third route for forwarding packets whose destination address is the second IP address of the second host.
[0194] In one possible implementation, the third interface and the second interface are the same interface.
[0195] In one possible implementation, the transceiver module 1401 is further configured to receive a fourth route announced by the first communication device. The fourth route includes a third route prefix, a fourth next hop, and fourth route attributes. The fourth next hop is the interface information of the fourth interface of the first communication device. The fourth route attributes include at least one of priority information or second packet information of the fourth route. The second packet information indicates a second group. The third AC-side interface of the first communication device used to access the third host belongs to the second group. The third IP address of the third host matches the third route prefix. The processing module 1402 is further configured to select the fourth route and forward packets whose destination address is the third IP address of the third host.
[0196] In one possible implementation, the processing module 1402 is further configured to generate a first entry based on the first route and a second entry based on the second route, wherein the second entry is an FRR entry of the first entry.
[0197] In one possible implementation, priority information includes at least one of the MED value, LocalPref value, or AS-Path attribute.
[0198] In one possible implementation, the AC-side interfaces belonging to different groups in the first communication device are located in different forwarding planes.
[0199] In one possible implementation, the transceiver module 1401 is used to receive a first BGP message sent by the first communication device. The first BGP message is used to announce a first route, and the BGP extended community attribute or BGP community attribute of the first BGP message includes first packet information.
[0200] In one possible implementation, the first communication device is deployed on the leaf node of the data center, and the second communication device is deployed on the spine node of the data center.
[0201] Since both the first route and the second route used by the first communication device to reach the second communication device carry at least one of priority information or first packet information, and the first packet information carried in the first route and the second route indicates the same group, the device can perform load balancing based on the packet information for traffic belonging to the same group. For traffic matching the same route prefix, since the next hop corresponds to different interfaces, the device can select a route based on the priority information, which can also achieve load balancing. In addition, the device can also select a route for forwarding traffic, i.e., packets, from the first route and the second route based on the priority information and the first packet information to achieve traffic load balancing.
[0202] It should be understood that the above Figure 13 or Figure 14The provided device, in implementing its functions, is only illustrated by the division of the aforementioned functional modules. In practical applications, the functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process is detailed in the method embodiments, which will not be repeated here. Figure 13 or Figure 14 The provided traffic load balancing device can be a chip or a communication device. For example, the traffic load balancing device can be the following network devices.
[0203] See Figure 15 , Figure 15 A schematic diagram of the structure of a network device 1600 provided in an exemplary embodiment of this application is shown. Figure 15 The network device 1600 shown is used to perform the above. Figure 12 The operation involved in the traffic load balancing method shown is illustrated. The network device 1600 is, for example, a switch, a router, etc., and can be implemented using a general bus architecture.
[0204] like Figure 15 As shown, the network device 1600 includes at least one processor 1601, a memory 1603, and at least one communication interface 1604.
[0205] Processor 1601 may be, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the embodiments of this application. For example, processor 1601 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A PLD may be, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in connection with the embodiments of this application. A processor may also be a combination that implements computational functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.
[0206] Optionally, network device 1600 also includes a bus. The bus is used to transfer information between the components of network device 1600. The bus can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 15 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0207] Memory 1603 may be, for example, read-only memory (ROM) or other types of static storage devices capable of storing static information and instructions; random access memory (RAM) or other types of dynamic storage devices capable of storing information and instructions; electrically erasable programmable read-only memory (EEPROM); compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.); magnetic disk storage media or other magnetic storage devices; or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. Memory 1603 may exist independently and be connected to processor 1601 via a bus. Memory 1603 may also be integrated with processor 1601.
[0208] Communication interface 1604 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, Radio Access Network (RAN), or Wireless Local Area Network (WLAN). Communication interface 1604 can include wired and wireless communication interfaces. Specifically, communication interface 1604 can be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an Asynchronous Transfer Mode (ATM) interface, a WLAN interface, a cellular network communication interface, or a combination thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In this embodiment, communication interface 1604 can be used by network device 1600 to communicate with other devices.
[0209] In a specific implementation, as one example, the processor 1601 may include one or more CPUs, such as Figure 15 The CPU0 and CPU1 shown are examples of processors. Each of these processors can be a single-core processor or a multi-core processor. A processor here can refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).
[0210] In a specific implementation, as one example, the network device 1600 may include multiple processors, such as... Figure 15 The processors 1601 and 1605 shown are illustrated. Each of these processors can be a single-core processor or a multi-core processor. Here, "processor" can refer to one or more devices, circuits, and / or processing cores used to process data (such as computer program instructions).
[0211] In a specific implementation, as one example, network device 1600 may further include output devices and input devices. The output device communicates with processor 1601 and can display information in various ways. For example, the output device may be a liquid crystal display (LCD), a light-emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device communicates with processor 1601 and can receive user input in various ways. For example, the input device may be a mouse, keyboard, touchscreen device, or sensor device, etc.
[0212] In some embodiments, memory 1603 is used to store program code 1610 for executing the solution of this application, and processor 1601 can execute the program code 1610 stored in memory 1603. That is, network device 1600 can implement the traffic load balancing method provided in the method embodiment through processor 1601 and program code 1610 in memory 1603. Program code 1610 may include one or more software modules. Optionally, processor 1601 itself may also store program code or instructions for executing the solution of this application.
[0213] In specific embodiments, the network device 1600 of this application embodiment may correspond to the first communication device or the second communication device in the above method embodiments.
[0214] in, Figure 12Each step of the traffic load balancing method shown is completed through integrated logic circuits in the hardware or software instructions in the processor of the network device 1600. The steps of the method disclosed in the embodiments of this application can be directly implemented by the hardware processor, or by a combination of hardware and software modules in the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. Since the storage medium is located in memory, the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method; to avoid repetition, these will not be described in detail here.
[0215] See Figure 16 , Figure 16 This invention provides a schematic diagram of the structure of a network device 1700 according to another exemplary embodiment of the present application. Figure 16 The network device 1700 shown is used to perform the above. Figure 12 The illustrated traffic load balancing method involves all or part of the operations. The network device 1700 is, for example, a switch, a router, etc., and can be implemented using a general bus architecture.
[0216] like Figure 16 As shown, network device 1700 includes: main control board 1710 and interface board 1730.
[0217] The main control board, also known as the main processing unit (MPU) or route processor card, is used to control and manage the various components in the network device 1700, including route calculation, device management, device maintenance, and protocol processing functions. The main control board 1710 includes a central processing unit 1711 and a memory 1712.
[0218] Interface board 1730 is also known as a line processing unit (LPU), linecard, or service board. Interface board 1730 provides various service interfaces and implements packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces, POS (Packet over SONET / SDH) interfaces, etc., with Ethernet interfaces including, for example, Flexible Ethernet Clients (FlexE Clients). Interface board 1730 includes: a central processing unit 1731, a network processor 1732, a forwarding table entry memory 1734, and a physical interface card (PIC) 1733.
[0219] The central processing unit 1731 on the interface board 1730 is used to control and manage the interface board 1730 and communicate with the central processing unit 1711 on the main control board 1710.
[0220] Network processor 1732 is used to implement packet forwarding processing. Network processor 1732 can be in the form of a forwarding chip. The forwarding chip can be a network processor (NP). In some embodiments, the forwarding chip can be implemented using an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA). Specifically, network processor 1732 forwards received packets based on the forwarding table stored in forwarding table entry memory 1734. If the destination address of the packet is the address of network device 1700, the packet is sent to the CPU (such as central processing unit 1731) for processing; if the destination address of the packet is not the address of network device 1700, the next hop and outgoing interface corresponding to the destination address are looked up in the forwarding table according to the destination address, and the packet is forwarded to the outgoing interface corresponding to the destination address. Uplink packet processing may include: packet ingress interface processing, forwarding table lookup; downlink packet processing may include: forwarding table lookup, etc. In some embodiments, the central processing unit can also perform the functions of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for a forwarding chip on the interface board.
[0221] The physical interface card 1733 is used to implement physical layer interfacing functions. Raw traffic enters the interface board 1730 through this card, and processed packets are sent out from the physical interface card 1733. The physical interface card 1733, also called a daughter card, can be installed on the interface board 1730. It is responsible for converting photoelectric signals into packets, performing validity checks on the packets, and forwarding them to the network processor 1732 for processing. In some embodiments, the central processing unit 1731 can also perform the functions of the network processor 1732, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for the network processor 1732 in the physical interface card 1733.
[0222] Optionally, network device 1700 includes multiple interface boards. For example, network device 1700 also includes interface board 1740, which includes: a central processing unit 1741, a network processor 1742, a forwarding table entry memory 1744, and a physical interface card 1743. The functions and implementation methods of each component in interface board 1740 are the same as or similar to those in interface board 1730, and will not be described in detail here.
[0223] Optionally, network device 1700 also includes a switching fabric board 1720. The switching fabric board 1720 can also be referred to as a switch fabric unit (SFU). When network device 1700 has multiple interface boards, the switching fabric board 1720 is used to complete data exchange between the interface boards. For example, interface boards 1730 and 1740 can communicate via the switching fabric board 1720.
[0224] The main control board 1710 and the interface boards are coupled. For example, the main control board 1710, interface boards 1730 and 1740, and the switching network board 1720 communicate with each other via a system bus connected to the system backplane. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 1710 and interface boards 1730 and 1740, and communication between the main control board 1710 and interface boards 1730 and 1740 is achieved through the IPC channel.
[0225] Logically, network device 1700 includes a control plane and a forwarding plane. The control plane includes a main control board 1710 and a central processing unit 1711, while the forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 1734, a physical interface card 1733, and a network processor 1732. The control plane performs functions such as router operation, generating forwarding tables, processing signaling and protocol messages, and configuring and maintaining the status of network devices. The control plane distributes the generated forwarding tables to the forwarding plane. In the forwarding plane, the network processor 1732 looks up and forwards messages received by the physical interface card 1733 based on the forwarding tables distributed by the control plane. The forwarding tables distributed by the control plane can be stored in the forwarding table entry memory 1734. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same network device.
[0226] It's worth noting that a network device may have one or more main control boards, including a primary and a backup main control board. It may also have one or more interface boards; the more powerful the network device's data processing capabilities, the more interface boards it provides. Each interface board may also have one or more physical interface cards. A switching board may or may not exist; multiple boards can share the load and provide redundancy. In a centralized forwarding architecture, the network device may not need a switching board, as the interface boards handle the entire system's business data processing. In a distributed forwarding architecture, the network device can have at least one switching board, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of a distributed architecture network device are greater than those of a centralized architecture network device. Alternatively, the network device can also be a single board, without a switching board. The functions of the interface board and the main control board are integrated on this one board. In this case, the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU to perform the combined functions. This type of network device has lower data exchange and processing capabilities (e.g., low-end switches or routers). The specific architecture adopted depends on the specific network deployment scenario, and no restrictions are imposed here.
[0227] In a specific embodiment, network device 1700 corresponds to the above. Figure 13 or Figure 14 The traffic load balancing device shown. In some embodiments, Figure 13 The processing module 1302 in the traffic load balancing device shown is equivalent to the central processing unit 1711 or network processor 1732 in the network device 1700.
[0228] This application embodiment also provides a communication device, which includes a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other via an internal connection path. The memory stores instructions, and the processor executes the instructions stored in the memory to control the transceiver to receive and transmit signals. When the processor executes the instructions stored in the memory, it causes the processor to perform... Figure 12 The traffic load balancing method shown.
[0229] It should be understood that the aforementioned processor can be a CPU, or other general-purpose processors, DSPs, ASICs, FPGAs, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. General-purpose processors can be microprocessors or any conventional processor. It is worth noting that the processor can be a processor supporting the Advanced Reduced Instruction Set Computing (RISC) machine (ARM) architecture.
[0230] Furthermore, in an alternative embodiment, the memory described above may include read-only memory and random access memory, and provide instructions and data to the processor. The memory may also include non-volatile random access memory. For example, the memory may also store device type information.
[0231] The memory can be volatile or non-volatile, or may include both. Non-volatile memory can be ROM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), EEPROM, or flash memory. Volatile memory can be RAM, used as an external cache. Many forms of RAM are available by way of example, but not limitation. Examples include static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0232] This application embodiment also provides a traffic load balancing device, which includes a processor coupled to a memory. The memory stores at least one instruction, and the processor loads and executes the at least one instruction to enable the traffic load balancing device to perform the following functions: Figure 12 The illustrated traffic load balancing method. Optionally, the device may also include a memory.
[0233] This application embodiment also provides a traffic load balancing system, the system including a first communication device and a second communication device, the first communication device and the second communication device being used to perform, for example... Figure 12 The traffic load balancing method shown.
[0234] This application also provides a computer-readable storage medium storing at least one instruction, which is loaded and executed by a processor to enable the computer to perform the following: Figure 12 The traffic load balancing method shown.
[0235] This application also provides a computer program (product) that, when executed by a computer, causes the processor or computer to perform the corresponding steps and / or processes in the above method embodiments.
[0236] In some cases, the aforementioned communication devices and traffic load balancers can be chips.
[0237] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive).
[0238] It should be noted that all information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application have been authorized by the user or fully authorized by all parties, and the collection, use, and processing of related data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the first route involved in this application was obtained with full authorization.
[0239] Those skilled in the art will recognize that the method steps and modules described in conjunction with the embodiments disclosed herein can be implemented in software, hardware, firmware, or any combination thereof. To clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0240] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.
[0241] When implemented using software, it can be implemented wholly or partially as a computer program product. This computer program product includes one or more computer program instructions. As an example, the methods of this application embodiment can be described in the context of machine-executable instructions, such as program modules that execute on a device on a real or virtual processor of the target. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc., which perform specific tasks or implement specific abstract data structures. In various embodiments, the functionality of program modules can be combined or divided among the described program modules. The machine-executable instructions for the program modules can execute within a local or distributed device. In a distributed device, the program modules can reside on both local and remote storage media.
[0242] Computer program code used to implement the methods of the embodiments of this application may be written in one or more programming languages. This computer program code may be provided to the processor of a general-purpose computer, a special-purpose computer, or other programmable traffic load balancing device, such that when executed by the computer or other programmable traffic load balancing device, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a computer, partially on a computer, as a standalone software package, partially on a computer and partially on a remote computer, or entirely on a remote computer or server.
[0243] In the context of the embodiments of this application, computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, etc.
[0244] Examples of signals may include electrical, optical, radio, sound, or other forms of propagation signals, such as carrier waves, infrared signals, etc.
[0245] A machine-readable medium can be any tangible medium that contains or stores programs for or relating to an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can include, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. More detailed examples of machine-readable storage media include electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0246] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and modules described above can be found in the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0247] In the embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the couplings or direct couplings or communication connections shown or discussed may be indirect couplings or communication connections through some interfaces, devices, or modules, or they may be electrical, mechanical, or other forms of connection.
[0248] The modules described as separate components may or may not be physically separate. Similarly, the components shown as modules may or may not be physical modules; they may be located in one place or distributed across multiple network modules. Some or all of the modules can be selected to achieve the purpose of the embodiments of this application, depending on actual needs.
[0249] Furthermore, the functional modules in the various embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The integrated modules described above can be implemented in hardware or as software functional modules.
[0250] If the integrated module is implemented as a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0251] In this application, the terms "first," "second," etc., are used to distinguish identical or similar items that have substantially the same function and purpose. It should be understood that there is no logical or temporal dependency between "first," "second," and "nth," nor does it limit the quantity or order of execution. It should also be understood that although the following description uses the terms "first," "second," etc., to describe various elements, these elements should not be limited by the terms. These terms are merely used to distinguish one element from another. For example, without departing from the various examples described, a first image can be referred to as a second image, and similarly, a second image can be referred to as a first image. Both the first image and the second image can be images, and in some cases, they can be separate and distinct images.
[0252] It should also be understood that, in the various embodiments of this application, the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0253] In this application, the term "at least one" means one or more, and the term "multiple" means two or more. For example, multiple second messages refer to two or more second messages. The terms "system" and "network" are often used interchangeably in this document.
[0254] It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0255] It should also be understood that the term "and / or" as used herein refers to and covers any and all possible combinations of one or more of the associated listed items. The term "and / or" describes an association between related objects, indicating that three relationships can exist; for example, A and / or B can represent: A alone, A and B simultaneously, or B alone. Additionally, the character " / " in this application generally indicates that the preceding and following related objects are in an "or" relationship.
[0256] It should also be understood that the term “comprising” (also referred to as “includes”, “including”, “comprises” and / or “comprising”) as used in this specification specifies the presence of the stated features, integers, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0257] It should also be understood that the terms “if” and “if” can be interpreted as meaning “when” or “upon”, or “in response to determination” or “in response to detection”. Similarly, depending on the context, the phrases “if determination…” or “if detection [the stated condition or event]” can be interpreted as meaning “when determination…”, or “in response to determination…”, or “when detection [the stated condition or event]” or “in response to detection [the stated condition or event]”.
[0258] It should be understood that determining B based on A does not mean determining B solely based on A; B can also be determined based on A and / or other information.
[0259] It should also be understood that the phrases "an embodiment," "an embodiment," and "a possible implementation" used throughout the specification mean that a specific feature, structure, or characteristic related to an embodiment or implementation is included in at least one embodiment of this application. Therefore, the phrases "in an embodiment," "an embodiment," or "a possible implementation" appearing throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments.
Claims
1. A traffic load balancing method, characterized in that, The method includes: The first communication device announces a first route to the second communication device. The first route includes a first route prefix, a first next hop, and a first route attribute. The first next hop is the interface information of the first interface of the first communication device. The first route attribute includes at least one of the priority information or the first group information of the first route. The priority information of the first route indicates the priority of the first route. The first group information indicates a first group. The first access AC side interface of the first communication device used to access the first host belongs to the first group. The first Internet Protocol IP address of the first host matches the first route prefix. The first communication device generates a second route, which includes a first route prefix, a second next hop, and a second route attribute. The second next hop is the interface information of the second interface of the first communication device. The second route attribute includes at least one of the priority information of the second route or the first packet information. The priority information of the second route indicates the priority of the second route. The first communication device notifies the second communication device of the second route.
2. The method according to claim 1, characterized in that, The first route has a higher priority than the second route.
3. The method according to claim 1 or 2, characterized in that, The method further includes: The first communication device generates a third route, which includes a second route prefix, a third next hop, and third route attributes. The third next hop is the interface information of the third interface of the first communication device. The third route attributes include at least one of the priority information of the third route or the first group information. The priority information of the third route indicates the priority of the third route. The second AC side interface of the first communication device used to access the second host belongs to the first group. The second IP address of the second host matches the second route prefix. The third interface is a different interface from the first interface. The first communication device notifies the second communication device of the third route.
4. The method according to claim 3, characterized in that, The second interface and the third interface are the same interface.
5. The method according to any one of claims 1-4, characterized in that, The method further includes: The first communication device generates a fourth route, which includes a third route prefix, a fourth next hop, and fourth route attributes. The fourth next hop is the interface information of the fourth interface of the first communication device. The fourth route attributes include at least one of the priority information of the fourth route or the second group information. The priority information of the fourth route indicates the priority of the fourth route, and the second group information indicates a second group. The third AC side interface of the first communication device used to access the third host belongs to the second group, and the third IP address of the third host matches the third route prefix. The first communication device notifies the second communication device of the fourth route.
6. The method according to any one of claims 1-5, characterized in that, The method further includes: The first communication device determines the priority information of the first route based on the mapping relationship between the first AC side interface and the first interface of the first communication device.
7. The method according to any one of claims 1-6, characterized in that, The priority information includes at least one of the following: Multi-Exit Discriminator (MED) value, Local Priority (LocalPref) value, or Autonomous System Path (AS-Path) attribute.
8. The method according to any one of claims 1-7, characterized in that, In the first communication device, the AC side interfaces belonging to different groups are located in different forwarding planes.
9. The method according to any one of claims 1-8, characterized in that, The notification of the first route to the second communication device includes: Send a first Border Gateway Protocol (BGP) message to the second communication device to announce the first route, wherein the BGP extended community attribute or BGP community attribute of the first BGP message includes the first packet information.
10. The method according to any one of claims 1-9, characterized in that, The first communication device is deployed on the leaf node of the data center, and the second communication device is deployed on the spine node of the data center.
11. A traffic load balancing method, characterized in that, The method includes: The second communication device receives a first route announced by the first communication device, wherein the first route includes a first route prefix, a first next hop, and a first route attribute. The first next hop is the interface information of the first interface of the first communication device. The first route attribute includes at least one of the priority information or the first group information of the first route. The priority information of the first route indicates the priority of the first route. The first group information indicates a first group. The first access AC side interface of the first communication device used to access the first host belongs to the first group. The first Internet Protocol IP address of the first host matches the first route prefix. The second communication device receives a second route announced by the first communication device, wherein the second route includes the first route prefix, the second next hop, and the second route attributes, the second next hop is the interface information of the second interface of the first communication device, and the second route attributes include at least one of the priority information of the second route or the first packet information, and the priority information of the second route indicates the priority of the second route. The second communication device selects the first route to forward packets whose destination address is the first IP address of the first host.
12. The method according to claim 11, characterized in that, The first route has a higher priority than the second route.
13. The method according to claim 11 or 12, characterized in that, The method further includes: The second communication device receives a third route announced by the first communication device. The third route includes a second route prefix, a third next hop, and third route attributes. The third next hop is the interface information of the third interface of the first communication device. The third route attributes include at least one of the priority information of the third route or the first group information. The priority information of the third route indicates the priority of the third route. The second AC side interface of the first communication device used to access the second host belongs to the first group. The second IP address of the second host matches the second route prefix. The third interface is a different interface from the first interface. The second communication device selects the third route to forward packets whose destination address is the second IP address of the second host.
14. The method according to claim 13, characterized in that, The third interface and the second interface are the same interface.
15. The method according to any one of claims 11-14, characterized in that, The method further includes: The second communication device receives a fourth route announced by the first communication device. The fourth route includes a third route prefix, a fourth next hop, and a fourth route attribute. The fourth next hop is the interface information of the fourth interface of the first communication device. The fourth route attribute includes at least one of the priority information of the fourth route or second group information. The second group information indicates a second group. The third AC side interface of the first communication device used to access the third host belongs to the second group. The third IP address of the third host matches the third route prefix. The second communication device selects the fourth route to forward packets whose destination address is the third IP address of the third host.
16. The method according to any one of claims 11-15, characterized in that, The method further includes: A first entry is generated based on the first route, and a second entry is generated based on the second route. The second entry is a Fast Rerouting (FRR) entry for the first entry.
17. The method according to any one of claims 11-16, characterized in that, The priority information includes at least one of the following: Multi-Exit Discriminator (MED) value, Local Priority (LocalPref) value, or Autonomous System Path (AS-Path) attribute.
18. The method according to any one of claims 11-17, characterized in that, In the first communication device, the AC side interfaces belonging to different groups are located in different forwarding planes.
19. The method according to any one of claims 11-18, characterized in that, The second communication device receives the first route announced by the first communication device, including: The second communication device receives a first Border Gateway Protocol (BGP) message sent by the first communication device. The first BGP message is used to announce the first route, and the BGP extended community attribute or BGP community attribute of the first BGP message includes the first packet information.
20. The method according to any one of claims 11-19, characterized in that, The first communication device is deployed on the leaf node of the data center, and the second communication device is deployed on the spine node of the data center.
21. A flow load balancing device, characterized in that, The device is used in a first communication device, the device comprising: The transceiver module is used to perform the receiving and / or sending related operations in the method according to any one of claims 1-10; The processing module is used to perform operations other than the receiving and / or sending related operations in the method according to any one of claims 1-10.
22. A flow load balancing device, characterized in that, The device is used in a second communication device, and the device includes: The transceiver module is used to perform the receiving and / or sending related operations in the method according to any one of claims 11-20; A processing module is configured to perform operations other than the receiving and / or sending related operations in the method described in any one of claims 11-20.
23. A traffic load balancing system, characterized in that, The system includes a first communication device and a second communication device, wherein the first communication device is used to execute the traffic load balancing method according to any one of claims 1-10, and the second communication device is used to execute the traffic load balancing method according to any one of claims 11-20.
24. A flow load balancing device, characterized in that, The device includes a processor coupled to a memory for storing at least one program instruction or code, and the processor for loading and executing the at least one program instruction or code to enable the traffic load balancing device to implement the traffic load balancing method as described in any one of claims 1-20.
25. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores at least one instruction, which is loaded and executed by a processor to implement the traffic load balancing method as described in any one of claims 1-20.
26. A computer program product, characterized in that, The computer program product includes a computer program / instruction that is executed by a processor to cause a computer to perform the traffic load balancing method as described in any one of claims 1-20.