A traffic forwarding method, apparatus and related device

By coordinating the work of the controller and Leaf switches in the Spine-Leaf network, the target path and source port value are determined, solving the problem of load imbalance in the intelligent computing data center network and achieving efficient forwarding of network traffic and resource conservation.

CN119835219BActive Publication Date: 2026-05-05NEW H3C TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
NEW H3C TECH CO LTD
Filing Date
2024-12-19
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

In intelligent computing data center networks, uneven load on switching devices leads to network traffic congestion, which existing technologies cannot effectively solve.

Method used

In a Spine-Leaf network, the controller determines the target path based on the source and destination addresses of the task to be trained, and sends a request for the target source port value to the target Leaf. The target Leaf calculates and returns the target source port value, and the source server sets the packet source port to the target source port value, thus achieving hash forwarding.

Benefits of technology

This reduces the resource consumption of Leaf switches, lowers the resource costs of network device optimization, and achieves more balanced load balancing and efficient forwarding of network traffic.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119835219B_ABST
    Figure CN119835219B_ABST
Patent Text Reader

Abstract

This application relates to the field of intelligent computing center technology, and in particular to a traffic forwarding method, apparatus, and related equipment. The method includes: determining a target path for transmitting traffic of a task to be trained based on the source and destination addresses of the task to be trained, and determining a target outgoing interface on a target leaf connected to the source server for forwarding the traffic of the task to be trained; sending a request for a target source port value to the target leaf, wherein the target leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target outgoing interface, and feeds back the target source port value to the controller; receiving the target source port value fed back by the target leaf, and instructing the source server to set the source port of the traffic of the task to be trained to the target source port value when executing the task to be trained, wherein the target leaf hashes the traffic of the task to be trained to the target outgoing interface for forwarding based on the source and destination addresses of the traffic of the task to be trained and the target source port value.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of intelligent computing center technology, and in particular to a traffic forwarding method, apparatus and related equipment. Background Technology

[0002] In intelligent computing data center networks, the uplink / downlink bandwidth ratio is 1:1. The network topology contains numerous equal-cost multi-path routing (ECMP) links. During flow-by-flow forwarding, switches perform hash routing based on traffic tuples and other computational factors to achieve load balancing. Traffic from multiple inlets is hashed via ECMP to the same egress point. When other egress points have no traffic, it leads to uneven load distribution and network congestion. In other words, in intelligent computing data center networks, uneven hashing or load distribution on switch devices can cause unresolved network congestion. Summary of the Invention

[0003] This application provides a traffic forwarding method, apparatus, and related equipment.

[0004] In a first aspect, this application provides a traffic forwarding method applied to a controller in a Spine-Leaf network, the method comprising:

[0005] Based on the source and destination addresses of the task to be trained, determine the target path for transmitting the traffic of the task to be trained, and based on the target path, determine the target outgoing interface on the target Leaf that the source server accesses for forwarding the traffic of the task to be trained.

[0006] The target Leaf sends a request for the target source port value. After receiving the information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target output interface, and feeds back the target source port value to the controller.

[0007] The system receives the target source port value fed back by the target Leaf and instructs the source server to set the packet source port of the task to be trained traffic to the target source port value when executing the task to be trained. The target Leaf hashes the task to be trained traffic to the target outgoing interface for forwarding based on the source and destination addresses of the task to be trained traffic and the target source port value.

[0008] Optionally, the step of determining the target path for transmitting the traffic of the task to be trained, based on the source and destination addresses of the task to be trained, includes:

[0009] Obtain the network topology information of the entire network, host ARP information, and the mapping relationship between each ingress port of each port group built on the Spine device and each equivalent route of each equivalent route group. The network topology information of the entire network includes the relationship between each link and the ingress and egress interface information of each link.

[0010] Define the initial cost value of each link included in the network topology information of the entire network, wherein the initial cost value of a link is inversely proportional to the maximum bandwidth value of that link;

[0011] Based on the source and destination information of the task to be trained, the host ARP information, the mapping relationship between each ingress port in each port group built on each Spine device and each equivalent route in each equivalent route group, and the cost value of each link in the network topology information of the whole network, a target path for transmitting the traffic of the task to be trained is determined, wherein the cost value of each target link included in the target path is less than or equal to a preset value.

[0012] Secondly, this application provides a traffic forwarding method applied to a source server, the method comprising:

[0013] The system receives an instruction from the controller to set the source port of the message of the task to be trained to the target source port value. The controller determines the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, and determines the target outgoing interface on the target Leaf connected to the source server for forwarding the traffic of the task to be trained based on the target path. The controller then sends a request for the target source port value to the target Leaf. After receiving the request, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target outgoing interface, and feeds back the target source port value to the controller.

[0014] The training task traffic with the source port of the message being the target source port value is sent to the target Leaf, so that the target Leaf hashes the training task traffic to the target outgoing interface for forwarding based on the source and destination addresses of the training task traffic and the target source port value.

[0015] Optionally, the source server is equipped with a proxy program. The proxy program receives an instruction from the controller to set the source port of the message of the task to be trained to the target source port value. When it is determined to start the task to be trained, the proxy program sets the source port of the traffic of the task to be trained to the target source port value and sends the traffic of the task to be trained with the source port of the message to the target source port value to the target Leaf.

[0016] Thirdly, this application provides a traffic forwarding device applied to a controller in a Spine-Leaf network, the device comprising:

[0017] The determining unit is used to determine the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, and to determine the target outgoing interface on the target Leaf accessed by the source server for forwarding the traffic of the task to be trained based on the target path.

[0018] The sending unit is used to send information requesting the target source port value to the target Leaf. After receiving the information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target output interface, and feeds back the target source port value to the controller.

[0019] The receiving unit is configured to receive the target source port value fed back by the target Leaf, and instruct the source server to set the packet source port of the task to be trained traffic to the target source port value when executing the task to be trained. The target Leaf hashes the task to be trained traffic to the target outgoing interface for forwarding based on the source and destination addresses of the task to be trained traffic and the target source port value.

[0020] Optionally, when determining the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, the determining unit is specifically used for:

[0021] Obtain the network topology information of the entire network, host ARP information, and the mapping relationship between each ingress port of each port group built on the Spine device and each equivalent route of each equivalent route group. The network topology information of the entire network includes the relationship between each link and the ingress and egress interface information of each link.

[0022] Define the initial cost value of each link included in the network topology information of the entire network, wherein the initial cost value of a link is inversely proportional to the maximum bandwidth value of that link;

[0023] Based on the source and destination information of the task to be trained, the host ARP information, the mapping relationship between each ingress port in each port group built on each Spine device and each equivalent route in each equivalent route group, and the cost value of each link in the network topology information of the whole network, a target path for transmitting the traffic of the task to be trained is determined, wherein the cost value of each target link included in the target path is less than or equal to a preset value.

[0024] Fourthly, this application provides a traffic forwarding device applied to a source server, the device comprising:

[0025] A receiving unit is configured to receive an instruction from the controller to set the source port of the message of the task to be trained to a target source port value. The controller determines the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, and determines the target outgoing interface on the target Leaf connected to the source server for forwarding the traffic of the task to be trained based on the target path. The controller then sends a request for a target source port value to the target Leaf. After receiving the request, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target outgoing interface, and feeds back the target source port value to the controller.

[0026] The sending unit is used to send the training task traffic with the source port of the message being the target source port value to the target Leaf, so that the target Leaf hashes the training task traffic to the target outgoing interface for forwarding based on the source and destination addresses of the training task traffic and the target source port value.

[0027] Optionally, the source server is equipped with a proxy program. The proxy program receives an instruction from the controller to set the source port of the message of the task to be trained to the target source port value. When it is determined to start the task to be trained, the proxy program sets the source port of the traffic of the task to be trained to the target source port value and sends the traffic of the task to be trained with the source port of the message to the target source port value to the target Leaf.

[0028] Fifthly, embodiments of this application provide a traffic forwarding device, which includes:

[0029] Memory, used to store program instructions;

[0030] A processor is configured to invoke program instructions stored in the memory and execute the steps of the method as described in any one of the first aspects above, according to the obtained program instructions.

[0031] In a sixth aspect, embodiments of this application also provide a computer-readable storage medium storing computer-executable instructions for causing the computer to perform the steps of the method as described in any of the first aspects above.

[0032] Seventhly, embodiments of this application provide a traffic forwarding device, the traffic forwarding device comprising:

[0033] Memory, used to store program instructions;

[0034] A processor is configured to invoke program instructions stored in the memory and execute the steps of the method as described in any one of the second aspects above, according to the obtained program instructions.

[0035] Eighthly, embodiments of this application also provide a computer-readable storage medium storing computer-executable instructions for causing the computer to perform the steps of the method as described in any of the second aspects above.

[0036] In summary, the traffic forwarding method provided in this application is applied to a controller in a Spine-Leaf network. The method includes: determining a target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained; determining a target outgoing interface on the target Leaf accessed by the source server for forwarding the traffic of the task to be trained based on the target path; sending information requesting a target source port value to the target Leaf, wherein, after receiving the information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target outgoing interface, and feeds back the target source port value to the controller; receiving the target source port value fed back by the target Leaf, and instructing the source server to set the packet source port of the traffic of the task to be trained to the target source port value when executing the task to be trained, wherein the target Leaf hashes the traffic of the task to be trained to the target outgoing interface for forwarding based on the source and destination addresses of the traffic of the task to be trained and the target source port value.

[0037] Using the traffic forwarding method provided in this application embodiment, the controller calculates the source and destination services and outgoing port information, requests the Leaf switch for a source port that meets the forwarding requirements, and completes the adjustment of the end-side service source port through the source server, thereby completing end-side optimization. This reduces the problem of existing solutions requiring the issuance of traffic matrix to the Leaf switch for network device optimization, which consumes a large amount of ACL resources and leads to high Leaf switch resource consumption. Attached Figure Description

[0038] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments of this application or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For those skilled in the art, other drawings can be obtained based on these drawings of the embodiments of this application.

[0039] Figure 1 A schematic diagram of a traffic forwarding process provided for related technologies;

[0040] Figure 2 A detailed flowchart of a traffic forwarding method provided in an embodiment of this application;

[0041] Figure 3 A detailed flowchart of another traffic forwarding method provided in the embodiments of this application;

[0042] Figure 4 This is a schematic diagram of the structure of a traffic forwarding device provided in an embodiment of this application;

[0043] Figure 5 This is a schematic diagram of another traffic forwarding device provided in an embodiment of this application;

[0044] Figure 6 A schematic diagram of the hardware architecture of a traffic forwarding device provided in an embodiment of this application;

[0045] Figure 7 This is a schematic diagram of the hardware architecture of another traffic forwarding device provided in an embodiment of this application. Detailed Implementation

[0046] The terminology used in the embodiments of this application is for the purpose of describing particular embodiments only and is not intended to limit the application. The singular forms “a,” “the,” and “the” as used in this application and claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to any and all possible combinations comprising one or more of the associated listed items.

[0047] It should be understood that although the terms first, second, third, etc., may be used to describe various information in embodiments of this application, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, without departing from the scope of this application, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if" may also be interpreted as "when," "when," or "in response to a determination."

[0048] In the relevant solution, the mapping relationship between inbound ports and outbound ports of the equal-cost routing group is completed by issuing inbound port LBN rail group configurations to the spine device. The controller can clearly know the mapping relationship between each inbound port and outbound port through the implementation principle of LBN. Then, the controller selects the shortest path by combining this mapping relationship with the cost value, and at the same time issues traffic matrix configurations to the leaf side.

[0049] For example, see Figure 1The diagram illustrates a traffic forwarding process provided by related technologies. When selecting a route, the controller, based on cost-based routing rules, chooses the forwarding path with the lowest total cost, stores this path in the controller's memory, and simultaneously modifies the link cost information, triggering the distribution of leaf device configurations. For example, Figure 1 The green or blue paths in the diagram are routed via traffic matrix configuration on the leaf device, and then naturally forwarded on the spine device based on the LBN mapping. This allows the controller to perform path navigation and routing based on the service source and destination. The spine device does not need to send traffic matrix configurations to itself, saving ACL resources on the spine device. It also reduces configuration interaction between the controller and the spine device during routing. However, a large number of traffic matrix configurations still need to be sent to the leaf device, and related solutions consume significant ACL resources on the leaf device, resulting in substantial switch resource consumption.

[0050] For example, see Figure 2 The diagram shown is a detailed flowchart of a traffic forwarding method provided in an embodiment of this application. This method is applied to a controller and includes the following steps:

[0051] Step 200: Based on the source and destination addresses of the task to be trained, determine the target path for transmitting the traffic of the task to be trained, and based on the target path, determine the target outgoing interface on the target Leaf accessed by the source server for forwarding the traffic of the task to be trained.

[0052] When determining the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, a preferred implementation is as follows:

[0053] Obtain the network topology information of the entire network, host ARP information, and the mapping relationship between each ingress port of each port group built on the Spine device and each equivalent route of each equivalent route group. The network topology information of the entire network includes the relationship between each link and the ingress and egress interface information of each link.

[0054] Define the initial cost value of each link included in the network topology information of the entire network, wherein the initial cost value of a link is inversely proportional to the maximum bandwidth value of that link;

[0055] Based on the source and destination information of the task to be trained, the host ARP information, the mapping relationship between each ingress port in each port group built on each Spine device and each equivalent route in each equivalent route group, and the cost value of each link in the network topology information of the whole network, a target path for transmitting the traffic of the task to be trained is determined, wherein the cost value of each target link included in the target path is less than or equal to a preset value.

[0056] In other words, the optimal path for forwarding the training task is determined, specifically the target path with the lowest cost. Further, based on the determined target path, the target outgoing interface on the Leaf server connected to the source server for forwarding the traffic from the training task is identified. This target outgoing interface is the one connecting to the Spine device. In practical applications, when forwarding traffic, the Leaf device performs hash processing based on the source and destination address information and the packet source port information, hashing the data to a specific outgoing interface for forwarding. The hash result is associated with the value of the packet source port.

[0057] Step 210: Send a message to the target Leaf requesting the target source port value.

[0058] Upon receiving this information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target output interface, and feeds back the target source port value to the controller.

[0059] In this embodiment of the application, after the controller determines the target outgoing interface on the target Leaf that the source server is connected to for forwarding the traffic of the task to be trained, it requests one or more source port values ​​from the target Leaf. That is, it sends an instruction carrying the target outgoing interface information to the target Leaf, instructing the target Leaf to calculate the corresponding source port value (target source port value) according to the source and destination addresses and the target outgoing interface of the task to be trained, and feeds back the target source port value to the controller.

[0060] Step 220: Receive the target source port value fed back by the target Leaf, and instruct the source server to set the packet source port of the traffic of the task to be trained to the target source port value when executing the task to be trained.

[0061] Specifically, the target Leaf hashes the traffic of the task to be trained to the target outgoing interface for forwarding based on the source and destination addresses of the traffic to be trained and the target source port value.

[0062] In this embodiment of the application, the target source port value is associated with a hash rule and corresponds to the target outgoing interface. That is, when the target Leaf performs hash forwarding on traffic whose source and destination addresses are the source and destination addresses of the task to be trained, if the source port value of the traffic packet is the target source port value, then the stray packet is hashed to the target outgoing interface for forwarding.

[0063] In other words, there is no need to issue forwarding flow tables to the Leaf device. The forwarding of the traffic to be trained can be directly based on the original forwarding mechanism of the Leaf device. The source port value of the traffic to be trained is fixed on the source server so that when the Leaf device forwards the traffic to be trained, it determines a fixed outgoing interface based on the traffic to be trained. The source port value of the traffic to be trained is calculated based on the determined Leaf forwarding outgoing interface. In this way, each training task traffic can be specified to go through a fixed outgoing interface for forwarding.

[0064] For example, see Figure 3 The diagram shown is a detailed flowchart of a traffic forwarding method provided in an embodiment of this application. This method is applied to a source server and includes the following steps:

[0065] Step 300: Receive an instruction from the controller to set the source port of the message for the task to be trained to the target source port value.

[0066] Specifically, the controller determines the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, and determines the target outgoing interface on the target Leaf connected to the source server for forwarding the traffic of the task to be trained based on the target path. Then, the controller sends a request for the target source port value to the target Leaf. After receiving the information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target outgoing interface, and feeds back the target source port value to the controller.

[0067] In one preferred embodiment of this application, a proxy program is installed on the source server, and the proxy program receives an instruction from the controller to set the source port of the message of the task to be trained to the target source port value.

[0068] Step 310: Send the training task traffic with the source port of the message being the target source port value to the target Leaf, so that the target Leaf hashes the training task traffic to the target outgoing interface for forwarding based on the source and destination addresses of the training task traffic and the target source port value.

[0069] Specifically, before the training task begins, based on the source and destination information of the training task, the optimal path (i.e., the target path) for transmitting the training task in the network is determined. Then, the controller determines the target outgoing interface on the Leaf device connected to the source end on the target path for forwarding the traffic of the training task, and instructs the Leaf device to generate corresponding target source port information based on the target outgoing interface. The controller synchronizes the target source port information to the source end. When the training task is executed, the source end sets the packet source port information of the training task traffic as the target source port and sends it to the Leaf device. The Leaf device performs hash forwarding based on the target source port value, and finally hashes it to the target outgoing interface of the Leaf device for forwarding.

[0070] The traffic forwarding process provided in the embodiments of this application will be described in detail below with reference to specific application scenarios.

[0071] 1) The controller calculates the shortest path cost value based on the source IP and destination IP of the task to be trained reported by the source server (e.g., the agent program installed on the source node) and writes it into memory.

[0072] 2) The controller determines the source IP, destination IP, and the source Leaf outgoing interface of the calculated shortest path, and requests a source port (value) from the source Leaf switch (the source Leaf switch server is connected to).

[0073] 3) The source Leaf switch calculates the corresponding source port (UDP source port value) using the source IP, destination IP, and outgoing interface information, and returns the result (source port value) to the controller.

[0074] 4) Based on the received information (source port value), the controller instructs the source server to modify the source port value of the packets of the task to be trained.

[0075] 4) Once the communication library initialization is complete, the training task begins. The training task traffic packets carry the source port information to ensure that the forwarding path of the source Leaf switch meets expectations (forwarding from the source Leaf outgoing interface).

[0076] 5) Once the task training is complete, the source server notifies the controller to delete the routing information and waits for the next task to start. This process is repeated to complete the dynamic scheduling of each job task.

[0077] For example, see Figure 4 The diagram shown is a schematic representation of a traffic forwarding device provided in an embodiment of this application. This device is applied to a controller in a Spine-Leaf network and includes:

[0078] The determining unit 40 is used to determine the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, and to determine the target outgoing interface on the target Leaf accessed by the source server for forwarding the traffic of the task to be trained based on the target path.

[0079] Sending unit 41 is used to send information requesting target source port value to the target Leaf, wherein, after receiving the information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target output interface, and feeds back the target source port value to the controller;

[0080] The receiving unit 41 is used to receive the target source port value fed back by the target Leaf, and instruct the source server to set the packet source port of the task to be trained traffic to the target source port value when executing the task to be trained. The target Leaf hashes the task to be trained traffic to the target outgoing interface for forwarding based on the source and destination addresses of the task to be trained traffic and the target source port value.

[0081] Optionally, when determining the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, the determining unit 40 is specifically used for:

[0082] Obtain the network topology information of the entire network, host ARP information, and the mapping relationship between each ingress port of each port group built on the Spine device and each equivalent route of each equivalent route group. The network topology information of the entire network includes the relationship between each link and the ingress and egress interface information of each link.

[0083] Define the initial cost value of each link included in the network topology information of the entire network, wherein the initial cost value of a link is inversely proportional to the maximum bandwidth value of that link;

[0084] Based on the source and destination information of the task to be trained, the host ARP information, the mapping relationship between each ingress port in each port group built on each Spine device and each equivalent route in each equivalent route group, and the cost value of each link in the network topology information of the whole network, a target path for transmitting the traffic of the task to be trained is determined, wherein the cost value of each target link included in the target path is less than or equal to a preset value.

[0085] For example, see Figure 5 The diagram shown is a structural schematic of a traffic forwarding device provided in an embodiment of this application. This device is applied to a source server and includes:

[0086] The receiving unit 50 is used to receive an instruction from the controller to set the message source port of the task to be trained to a target source port value. The controller determines the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, and determines the target outgoing interface on the target Leaf connected to the source server for forwarding the traffic of the task to be trained based on the target path. Then, the controller sends a request for a target source port value to the target Leaf. After receiving the information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target outgoing interface, and feeds back the target source port value to the controller.

[0087] The sending unit 51 is used to send the training task traffic with the source port of the message being the target source port value to the target Leaf, so that the target Leaf hashes the training task traffic to the target outgoing interface for forwarding based on the source and destination addresses of the training task traffic and the target source port value.

[0088] Optionally, the source server is equipped with a proxy program. The proxy program receives an instruction from the controller to set the source port of the message of the task to be trained to the target source port value. When it is determined to start the task to be trained, the proxy program sets the source port of the traffic of the task to be trained to the target source port value and sends the traffic of the task to be trained with the source port of the message to the target source port value to the target Leaf.

[0089] These units can be one or more integrated circuits configured to implement the above methods, such as one or more Application Specific Integrated Circuits (ASICs), one or more digital signal processors (DSPs), or one or more Field Programmable Gate Arrays (FPGAs). Alternatively, when one of these units is implemented using processing element scheduler code, the processing element can be a general-purpose processor, such as a Central Processing Unit (CPU) or other processor capable of calling program code. Furthermore, these units can be integrated together to form a system-on-a-chip (SOC).

[0090] Furthermore, regarding the traffic forwarding device provided in this application embodiment, from a hardware perspective, the hardware architecture diagram of the traffic forwarding device can be found in [reference needed]. Figure 6As shown, the traffic forwarding device may include: a memory 60 and a processor 61.

[0091] The memory 60 is used to store program instructions; the processor 61 calls the program instructions stored in the memory 60 and executes the method embodiment applied to the controller according to the obtained program instructions. The specific implementation and technical effects are similar, and will not be described again here.

[0092] Optionally, this application also provides a controller, including at least one processing element (or chip) for performing the above-described method embodiments applied to the controller.

[0093] Optionally, this application also provides a program product, such as a computer-readable storage medium storing computer-executable instructions for causing the computer to perform the above-described method embodiments applied to the controller.

[0094] Furthermore, regarding the traffic forwarding device provided in this application embodiment, from a hardware perspective, the hardware architecture diagram of the traffic forwarding device can be found in [reference needed]. Figure 7 As shown, the traffic forwarding device may include: a memory 70 and a processor 71.

[0095] The memory 70 is used to store program instructions; the processor 71 calls the program instructions stored in the memory 70 and executes the method embodiment applied to the controller according to the obtained program instructions. The specific implementation and technical effects are similar, and will not be described again here.

[0096] Optionally, this application also provides a server, including at least one processing element (or chip) for performing the above-described method embodiments applied to a server.

[0097] Optionally, this application also provides a program product, such as a computer-readable storage medium storing computer-executable instructions for causing the computer to perform the above-described method embodiments applied to a server.

[0098] Here, a machine-readable storage medium can be any electronic, magnetic, optical, or other physical storage device that can contain or store information, such as executable instructions, data, etc. For example, a machine-readable storage medium can be: RAM (Random Access Memory), volatile memory, non-volatile memory, flash memory, storage drives (such as hard disk drives), solid-state drives, any type of storage disk (such as optical discs, DVDs, etc.), or similar storage media, or combinations thereof.

[0099] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer, which can take the form of a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email sending and receiving device, game console, tablet computer, wearable device, or any combination of these devices.

[0100] For ease of description, the above devices are described separately by function as various units. Of course, in implementing this application, the functions of each unit can be implemented in one or more software and / or hardware.

[0101] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, embodiments of this application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0102] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0103] Furthermore, these computer program instructions can also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in the process. Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0104] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0105] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.

Claims

1. A traffic forwarding method, characterized in that, A controller applied in a Spine-Leaf network, the method comprising: Based on the source and destination addresses of the task to be trained, determine the target path for transmitting the traffic of the task to be trained, and based on the target path, determine the target outgoing interface on the target Leaf that the source server accesses for forwarding the traffic of the task to be trained. The target Leaf sends a request for the target source port value. After receiving the information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target output interface, and feeds back the target source port value to the controller. The system receives the target source port value fed back by the target Leaf and instructs the source server to set the packet source port of the task to be trained traffic to the target source port value when executing the task to be trained. The target Leaf hashes the task to be trained traffic to the target outgoing interface for forwarding based on the source and destination addresses of the task to be trained traffic and the target source port value. The step of determining the target path for transmitting the traffic of the task to be trained, based on the source and destination addresses of the task to be trained, includes: Obtain the network topology information of the entire network, host ARP information, and the mapping relationship between each ingress port of each port group built on the Spine device and each equivalent route of each equivalent route group. The network topology information of the entire network includes the relationship between each link and the ingress and egress interface information of each link. Define the initial cost value of each link included in the network topology information of the entire network, wherein the initial cost value of a link is inversely proportional to the maximum bandwidth value of that link; Based on the source and destination information of the task to be trained, the host ARP information, the mapping relationship between each ingress port in each port group built on each Spine device and each equivalent route in each equivalent route group, and the cost value of each link in the network topology information of the whole network, a target path for transmitting the traffic of the task to be trained is determined, wherein the cost value of each target link included in the target path is less than or equal to a preset value.

2. A traffic forwarding method, characterized in that, Applied to a source server, the method includes: The receiver receives an instruction from the controller to set the source port of the message of the task to be trained to the target source port value. The controller, based on the source and destination addresses of the task to be trained, determines the target path for transmitting the traffic of the task to be trained, and based on the target path, determines the target outgoing interface on the target Leaf connected to the source server for forwarding the traffic of the task to be trained. Then, the controller sends a request for the target source port value to the target Leaf. Upon receiving this information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target outgoing interface, and feeds back the target source port value to the controller. The step of determining the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained includes: obtaining the network topology information of the entire network, host A... The mapping relationship between RP information and the ingress ports of each port group built on each Spine device and the equivalent routes of each equal-cost route group is defined. The network topology information includes the relationships between links and the ingress and egress interface information of each link. The initial cost value of each link in the network topology information is defined, wherein the initial cost value of a link is inversely proportional to its maximum bandwidth. Based on the source and destination information of the task to be trained, host ARP information, the mapping relationship between the ingress ports of each port group built on each Spine device and the equivalent routes of each equal-cost route group, and the cost value of each link in the network topology information, a target path for transmitting the traffic of the task to be trained is determined. The sum of the cost values ​​of each target link in the target path is less than or equal to a preset value. The training task traffic with the source port of the message being the target source port value is sent to the target Leaf, so that the target Leaf hashes the training task traffic to the target outgoing interface for forwarding based on the source and destination addresses of the training task traffic and the target source port value.

3. The method as described in claim 2, characterized in that, The source server is equipped with a proxy program. The proxy program receives an instruction from the controller to set the source port of the message of the task to be trained to the target source port value. When it is determined to start the task to be trained, the proxy program sets the source port of the traffic of the task to be trained to the target source port value and sends the traffic of the task to be trained with the source port of the message to the target source port value to the target Leaf.

4. A traffic forwarding device, characterized in that, A controller for use in a Spine-Leaf network, the device comprising: The determining unit is used to determine the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, and to determine the target outgoing interface on the target Leaf accessed by the source server for forwarding the traffic of the task to be trained based on the target path. The sending unit is used to send information requesting the target source port value to the target Leaf. After receiving the information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target output interface, and feeds back the target source port value to the controller. The receiving unit is configured to receive the target source port value fed back by the target Leaf, and instruct the source server to set the packet source port of the task to be trained traffic to the target source port value when executing the task to be trained, wherein the target Leaf hashes the task to be trained traffic to the target outgoing interface for forwarding based on the source and destination addresses of the task to be trained traffic and the target source port value; When determining the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained, the determining unit is specifically used for: Obtain the network topology information of the entire network, host ARP information, and the mapping relationship between each ingress port of each port group built on the Spine device and each equivalent route of each equivalent route group. The network topology information of the entire network includes the relationship between each link and the ingress and egress interface information of each link. Define the initial cost value of each link included in the network topology information of the entire network, wherein the initial cost value of a link is inversely proportional to the maximum bandwidth value of that link; Based on the source and destination information of the task to be trained, the host ARP information, the mapping relationship between each ingress port in each port group built on each Spine device and each equivalent route in each equivalent route group, and the cost value of each link in the network topology information of the whole network, a target path for transmitting the traffic of the task to be trained is determined, wherein the cost value of each target link included in the target path is less than or equal to a preset value.

5. A traffic forwarding device, characterized in that, Applied to a source server, the device includes: A receiving unit is configured to receive an instruction from the controller to set the source port of the message of the task to be trained to a target source port value. The controller, based on the source and destination addresses of the task to be trained, determines the target path for transmitting the traffic of the task to be trained, and based on the target path, determines the target outgoing interface on the target Leaf accessed by the source server for forwarding the traffic of the task to be trained. The controller then sends a request for the target source port value to the target Leaf. Upon receiving this information, the target Leaf calculates the corresponding target source port value based on the source and destination addresses of the task to be trained and the target outgoing interface, and feeds back the target source port value to the controller. The step of determining the target path for transmitting the traffic of the task to be trained based on the source and destination addresses of the task to be trained includes: obtaining the entire network topology information. The system defines the mapping relationship between host ARP information and the ingress ports of each port group built on the Spine device and the equivalent routes of each equivalent route group. The overall network topology information includes the relationships between links and the ingress and egress interface information of each link. It defines the initial cost value of each link included in the overall network topology information, wherein the initial cost value of a link is inversely proportional to its maximum bandwidth. Based on the source and destination information of the task to be trained, host ARP information, the mapping relationship between the ingress ports of each port group built on each Spine device and the equivalent routes of each equivalent route group, and the cost value of each link included in the overall network topology information, it determines the target path for transmitting the traffic of the task to be trained, wherein the sum of the cost values ​​of each target link included in the target path is less than or equal to a preset value. The sending unit is used to send the training task traffic with the source port of the message being the target source port value to the target Leaf, so that the target Leaf hashes the training task traffic to the target outgoing interface for forwarding based on the source and destination addresses of the training task traffic and the target source port value.

6. The apparatus as claimed in claim 5, characterized in that, The source server is equipped with a proxy program. The proxy program receives an instruction from the controller to set the source port of the message of the task to be trained to the target source port value. When it is determined to start the task to be trained, the proxy program sets the source port of the traffic of the task to be trained to the target source port value and sends the traffic of the task to be trained with the source port of the message to the target source port value to the target Leaf.

7. A traffic forwarding device, characterized in that, The traffic forwarding device includes: Memory, used to store program instructions; A processor is configured to invoke program instructions stored in the memory and execute the steps of the method as described in any one of claims 1-3 according to the obtained program instructions.

8. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions for causing the computer to perform the steps of the method as described in any one of claims 1-3.

Citation Information

Patent Citations

  • Cluster load balancing method and device

    CN117278567A

  • Branch node-initiated point to multi-point label switched path signaling with centralized path computation

    US8953500B1