CN109802879B - Data stream routing method and device - Google Patents

Data stream routing method and device Download PDF

Info

Publication number
CN109802879B
CN109802879B CN201910099050.2A CN201910099050A CN109802879B CN 109802879 B CN109802879 B CN 109802879B CN 201910099050 A CN201910099050 A CN 201910099050A CN 109802879 B CN109802879 B CN 109802879B
Authority
CN
China
Prior art keywords
spine
congestion
leaf
target data
flow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910099050.2A
Other languages
Chinese (zh)
Other versions
CN109802879A (en
Inventor
蒋茂勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201910099050.2A priority Critical patent/CN109802879B/en
Publication of CN109802879A publication Critical patent/CN109802879A/en
Application granted granted Critical
Publication of CN109802879B publication Critical patent/CN109802879B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The embodiment of the invention provides a data stream routing method and device. Wherein the method comprises the following steps: receiving a congestion notification message sent by a first Spine device, wherein the congestion notification message is sent by the first Spine device when congestion occurs at an output port for forwarding a target data stream, and the congestion notification message carries a stream identifier, an outer layer destination IP address and a rate of the target data stream; sending a bandwidth query message carrying an outer layer destination IP address to each second Spine device, so that each second Spine device determines the residual bandwidth of an output port corresponding to the outer layer destination IP address, and sends the residual bandwidth carried in a bandwidth notification message to the first Leaf device; and receiving the bandwidth notification messages sent by the second Spine devices, and determining one second Spine device with the residual bandwidth larger than the rate of the target data stream as the next hop device for sending the target data stream. The possibility of data flow packet loss caused by congestion of the data flow can be reduced.

Description

Data stream routing method and device
Technical Field
The present invention relates to the technical field of congestion notification and load balancing, and in particular, to a data flow routing method and apparatus.
Background
VXLAN (Virtual eXtensible Local Area Network) can provide two-layer interconnection for a distributed physical server based on an existing service provider or an enterprise IP (Internet Protocol) Network, and can provide service isolation for different tenants. The VXLAN technology takes the existing three-layer physical network as an Underlay network, and a virtual two-layer network, namely an Overlay network, is constructed on the three-layer physical network. The Overlay establishes VXLAN tunnel between tenant servers through encapsulation technology. And the second-layer message of the tenant is transmitted among different servers across a three-layer network by utilizing a three-layer forwarding path provided by the Underlay network.
A Spine-Leaf (Spine) networking is a common networking scheme applying VXLAN technology, and the networking structure may be as shown in fig. 1, and includes a plurality of Leaf nodes (e.g., Leaf 1, Leaf 2, and Leaf 3) and a plurality of upper Spine nodes (e.g., Spine 1 and Spine 2), each Leaf device has one or more servers hung below it, the Leaf device is a VTEP (VXLAN Tunnel End Point, VXLAN Tunnel termination) device in VXLAN networking, and the Spine device is a next hop device when one Leaf device sends a data stream to another Leaf device. Assuming that the next-hop device when Leaf 1 sends a data stream to Leaf 2 is Spine 1, in the related art, if a link between Spine 1 and Leaf 2 fails, Leaf 1 may use any Spine device (for example, Spine 2) other than Spine 1 as the next-hop device when sending a data stream to Leaf 2.
However, if the link between Spine 1 and Leaf 2 is only congested and does not fail, Leaf 1 still uses Spine 1 as the next hop device when sending a data flow to Leaf 2, which may cause packet loss of the data flow due to link congestion in the process of forwarding from Spine 1 to Leaf 2.
Disclosure of Invention
An object of the embodiments of the present invention is to provide a data flow routing method, so as to implement that, after a transmission path of a data flow is congested, the transmission path can be automatically re-planned for the data flow, so as to avoid using the congested path to transmit the data flow, and reduce the possibility of packet loss of the data flow due to congestion. The specific technical scheme is as follows:
in a first aspect of the embodiments of the present invention, a data stream routing method is provided, where the method is applied to a first Leaf device in a Spine-Leaf networking, where the Spine-Leaf networking further includes at least one second Leaf device, a first Spine, and at least one second Spine device, where each Spine device establishes a neighbor relationship with each Leaf device, and the first Spine device is a next-hop device for sending a target data stream from the first Leaf device to one second Leaf device, and the method includes:
receiving a congestion notification message sent by the first Spine device, wherein the congestion notification message is sent by the first Spine device when congestion occurs at an output port for forwarding the target data stream, and the congestion notification message carries a stream identifier, an outer layer destination IP address and a rate of the target data stream;
sending a bandwidth query message carrying the outer layer destination IP address to each second Spine device, so that each second Spine device determines the residual bandwidth of the output port corresponding to the outer layer destination IP address, carries the residual bandwidth in a bandwidth notification message, and sends the bandwidth notification message to the first Leaf device;
and receiving bandwidth notification messages sent by each second Spine device, and determining one second Spine device with the residual bandwidth larger than the rate of the target data stream as a next hop device for sending the target data stream.
With reference to the first aspect, in a first possible implementation manner, after receiving the congestion notification packet sent by the first Spine device, before sending a bandwidth query packet carrying the outer layer destination IP address to each second Spine device, the method further includes:
based on the congestion notification message, establishing a congestion flow entry corresponding to the target data flow in a congestion flow list, where the congestion flow entry includes an IP address of a port where the first Spine device is connected to the first Leaf device, the flow identifier, and the outer layer destination IP address;
after determining that the second Spine device with the remaining bandwidth greater than the rate of the target data stream is the next hop device for sending the target data stream, the method further includes:
and deleting the congestion flow table entry established aiming at the target data flow in the congestion flow list.
With reference to the first possible implementation manner of the first aspect, the sending a bandwidth query packet carrying the outer layer destination IP address to each second Spine device includes:
inquiring the congestion flow list, acquiring a congestion flow list item containing the outer-layer destination IP address, and taking a Spine device corresponding to the IP address of a port where the Spine device contained in the congestion flow list item is connected with the first Leaf device as a congestion Spine device;
and sending a bandwidth query message to other second Spine equipment except the congested Spine equipment.
With reference to the first possible implementation manner of the first aspect, in a third possible implementation manner, the method further includes:
if no second Spine device with the residual bandwidth larger than the rate of the target data stream exists, determining the first Spine device as a next hop device for sending the target data stream;
and deleting a congestion flow table entry established for the target data flow in the congestion flow list when a congestion removal notification message sent by the first Spine device is received, wherein the congestion removal notification message carries a flow identifier of the target data flow.
With reference to the first aspect, in a fourth possible implementation manner, before the receiving the congestion notification packet sent by the first Spine device, the method further includes:
receiving first messages which are sent by each Spine device and carry the IP addresses of the ports connected with each Leaf device, and establishing a local Spine list according to the received first messages;
and aiming at each received first message, respectively sending a second message carrying the MAC address of the port connected with each Spine device to each Spine device, so that each Spine device establishes a local Leaf list according to each received second message.
In a second aspect of the embodiments of the present invention, a data stream routing method is provided, where the method is applied to a first Spine device in a Spine-Leaf networking, where the Spine-Leaf networking further includes the first Leaf device, at least one second Leaf device, and at least one second Spine device, each Spine device establishes a neighbor relationship with each Leaf device, and the first Spine device is a next-hop device for sending a target data stream to one second Leaf device by the first Leaf device, where the method includes:
if the congestion of an outlet port for forwarding the target data stream is detected, acquiring a stream identifier, an outer layer destination IP address and a rate of the target data stream;
generating a congestion notification message carrying a flow identifier, an outer layer destination IP address and a rate of the target data flow by taking an outer layer source IP address of the target data flow as a destination IP address;
and sending the congestion notification message to the first Leaf device.
With reference to the second aspect, in a first possible implementation manner, before the generating a congestion notification packet carrying a flow identifier of the target data flow, an outer layer destination IP address, and a rate, the method further includes:
establishing a congestion flow entry corresponding to the target data flow in a congestion flow list corresponding to the egress port, wherein the congestion flow entry comprises a flow identifier and a rate of the target data flow;
the method further comprises the following steps:
and after detecting that the congestion of the output port is relieved, sending a congestion relief notification message carrying a congestion flow entry corresponding to the target data flow to the first Leaf device, and deleting a congestion flow list corresponding to the output port.
In a third aspect of the embodiments of the present invention, a data stream routing apparatus is provided, where the apparatus and the method are applied to a first Leaf device in a Spine-Leaf networking, where the Spine-Leaf networking further includes at least one second Leaf device, a first Spine device, and at least one second Spine device, each Spine device establishes a neighbor relationship with each Leaf device, and the first Spine device is a next-hop device for sending a target data stream to one second Leaf by the first Leaf device, and the apparatus includes:
a message receiving module, configured to receive a congestion notification message sent by the first Spine device, where the congestion notification message is sent by the first Spine device when congestion occurs at an output port that forwards the target data flow, and the congestion notification message carries a flow identifier, an outer-layer destination IP address, and a rate of the target data flow;
a bandwidth query module, configured to send a bandwidth query packet carrying the outer layer destination IP address to each second Spine device, so that each second Spine device determines a remaining bandwidth of an egress port corresponding to the outer layer destination IP address, and carries the remaining bandwidth in a bandwidth notification packet and sends the bandwidth notification packet to the first Leaf device;
and the route determining module is used for receiving the bandwidth notification message sent by each second Spine device, and determining one second Spine device with the residual bandwidth greater than the rate of the target data stream as the next hop device for sending the target data stream.
With reference to the third aspect, in a first possible implementation manner, the apparatus further includes a first congestion flow management module, configured to, after the congestion notification packet sent by the first Spine device is received, before a bandwidth query packet carrying the outer layer destination IP address is sent to each second Spine device, establish, based on the congestion notification packet, a congestion flow entry corresponding to the target data flow in a congestion flow list, where the congestion flow entry includes an IP address of a port where the first Spine device is connected to the first Leaf device, the flow identifier, and the outer layer destination IP address;
the first congestion flow management module is further configured to delete a congestion flow entry established for the target data flow in the congestion flow list after the second Spine device with the remaining bandwidth greater than the rate of the target data flow is determined as a next hop device for sending the target data flow.
With reference to the first possible implementation manner of the third aspect, in a second possible implementation manner, the bandwidth query module is specifically configured to query the congestion flow list, obtain a congestion flow table entry including the outer layer destination IP address, and use, as a congestion Spine device, a Spine device corresponding to an IP address of a port where a Spine device included in the congestion flow table entry is connected to the first Leaf device;
and sending bandwidth query messages to other second Spine equipment except the congested Spine equipment.
With reference to the first possible implementation manner of the third aspect, in a third possible implementation manner, the route determining module is further configured to determine, if there is no second Spine device with a remaining bandwidth greater than the rate of the target data stream, the first Spine device as a next hop device for sending the target data stream;
the first congestion flow management module is further configured to delete a congestion flow table entry established for the target data flow in the congestion flow list when receiving a congestion relief notification message sent by the first Spine device, where the congestion relief notification message carries a flow identifier of the target data flow.
With reference to the third aspect, in a fourth possible implementation manner, the apparatus further includes a Spine list module, configured to receive, before the congestion notification packet sent by the first Spine device is received, a first packet sent by each Spine device and carrying an IP address of a port where the Spine device is connected to each Leaf device, and establish a local Spine list according to each received first packet;
and aiming at each received first message, respectively sending a second message carrying the MAC address of the port connected with each Spine device to each Spine device, so that each Spine device establishes a local Leaf list according to each received second message.
In a fourth aspect of the embodiments of the present invention, a data stream routing apparatus is provided, where the apparatus is applied to a first Spine device in a Spine-Leaf networking, where the Spine-Leaf networking further includes the first Leaf device, at least one second Leaf device, and at least one second Spine device, each Spine device respectively establishes a neighbor relationship with each Leaf device, and the first Spine device is a next-hop device for sending a target data stream to one second Leaf device by the first Leaf device, and the apparatus includes:
a congestion detection module, configured to, if it is detected that an output port that forwards the target data stream is congested, obtain a stream identifier, an outer-layer destination IP address, and a rate of the target data stream;
a congestion notification module, configured to generate a congestion notification packet carrying a stream identifier, an outer layer destination IP address, and a rate of the target data stream by using an outer layer source IP address of the target data stream as a destination IP address; and sending the congestion notification message to the first Leaf device.
With reference to the fourth aspect, in a first possible implementation manner, the apparatus further includes a second congestion flow management module, configured to establish a congestion flow entry corresponding to the target data flow in a congestion flow list corresponding to the egress port before generating the congestion notification packet carrying the flow identifier of the target data flow, the outer layer destination IP address, and the rate, where the congestion flow entry includes the flow identifier and the rate of the target data flow;
the congestion relief notification module is further configured to send a congestion relief notification message carrying a congestion flow entry corresponding to the target data flow to the first Leaf device after detecting that the congestion at the output port is relieved;
the second congestion flow management module is further configured to delete the congestion flow list corresponding to the egress port.
In a fifth aspect of the embodiments of the present invention, a first Leaf device is provided, which is applied to a Leaf-Leaf networking, where the Leaf-Leaf networking further includes at least one second Leaf device, a first Leaf, and at least one second Leaf device, each Leaf device establishes a neighbor relationship with each Leaf device, and the first Leaf device is a next-hop device that sends a target data stream to one second Leaf device, where the first Leaf device includes:
a first memory for storing a computer program;
a first processor for implementing the data flow routing method according to any one of the first aspect described above when executing a program stored in a memory.
In a sixth aspect of the embodiments of the present invention, a first Spine device is provided, where the first Spine device is applied to a Spine-Leaf networking, where the Spine-Leaf networking further includes a first Leaf device, at least one second Leaf device, and at least one second Spine device, where each Spine device establishes a neighbor relationship with each Leaf device, the first Spine device is a next hop device that sends a target data stream to one second Leaf device, and the first Spine device includes:
a second memory for storing a computer program;
a second processor for implementing the data flow routing method according to any one of the second aspect when executing the program stored in the memory.
In a seventh aspect of the embodiments of the present invention, there is provided a computer-readable storage medium having stored therein a computer program which, when executed by a processor, implements the data stream routing method according to any one of the first aspect described above.
In an eighth aspect of the embodiments of the present invention, there is provided a computer-readable storage medium having stored therein a computer program which, when executed by a processor, implements the data stream routing method according to any one of the second aspects.
The data flow routing method and apparatus provided in the embodiments of the present invention may, when receiving a congestion notification message sent by a first Spine device and used to notify that a transmission path of a first data flow is congested, and when a remaining bandwidth of an output port of a second Spine device connected to the second Spine device is sufficient, use the second Spine device as a next hop device when sending a target data flow to the second Spine device, because the remaining bandwidth of the output port of the second Spine device connected to the second Spine device by the second Spine device is greater than a rate of the target data flow, even if the second Spine device is responsible for forwarding the target data flow, congestion does not occur at the output port of the second Spine device connected to the second Spine device, so that a new uncongested transmission path is re-planned for the target data flow, and a possibility of packet loss due to congestion can be effectively reduced. Of course, not all of the advantages described above need to be achieved at the same time in the practice of any one product or method of the invention.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
Fig. 1 is a schematic diagram of a network architecture of Spine-Leaf networking according to an embodiment of the present invention;
fig. 2 is a schematic flow chart of a data flow routing method according to an embodiment of the present invention;
FIG. 3 is a schematic flow chart of a data flow routing method according to an embodiment of the present invention;
fig. 4 is a schematic diagram of another networking structure of Spine-Leaf networking according to the embodiment of the present invention;
fig. 5 is a schematic structural diagram of a data flow routing apparatus applied to a Leaf device according to an embodiment of the present invention;
fig. 6 is a schematic structural diagram of a data stream routing apparatus applied to Spine equipment according to an embodiment of the present invention;
fig. 7 is a schematic structural diagram of a first Leaf device according to an embodiment of the present invention;
fig. 8 is a schematic structural diagram of a first Spine device according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
In a spin-Leaf networking based on a VXLAN technology, a Leaf device may serve as a VTEP device in the VXLAN networking, and any Leaf device in the spin-Leaf networking may receive data streams sent by servers hung below the Leaf device, and forward the data streams to other Leaf devices through corresponding spin devices in the spin-Leaf networking according to actual requirements (that is, forward to servers hung below corresponding Leaf devices). In some application scenarios. For example, forwarding a data stream to another Leaf device by one Leaf device through one Spine device may be understood as follows: and a certain server hung down by one Leaf device forwards the target data stream to a certain server hung down by another Leaf device through one Spine device.
Taking the spin-Leaf networking shown in fig. 1 as an example, in the spin-Leaf networking, assuming that a server 1 hung under a Leaf 1 (hereinafter, referred to as a first Leaf device) needs to send a target data stream to a server 2 hung under a Leaf 2 (hereinafter, referred to as a second Leaf device), the target data stream needs to be forwarded to the second Leaf device through the spin 1 or the spin 2 (hereinafter, referred to as the first spin device), and then forwarded to the server 2 by the second Leaf device. If a link between the first Spine device and the second Leaf device is congested, the first Leaf device still uses the first Spine device as a next hop device when sending the target data stream to the second Leaf device, and during the process that the first Spine device forwards the target data stream to the second Leaf device, packet loss of the target data stream may occur due to link congestion.
Of course, a Spine-Leaf networking may include multiple Leaf devices and multiple Spine devices, and one or more servers may be hung on any Leaf device. The embodiment of the present application is only illustrated by a Spine-Leaf networking shown in fig. 1, and is not intended to limit the present invention.
In view of this, embodiments of the present invention provide a data flow routing method to solve the problem of packet loss due to link congestion. Specifically, referring to fig. 2, a flow diagram of a data stream routing method provided in an embodiment of the present invention is applied to a first Leaf device in a Spine-Leaf networking, where the Spine-Leaf networking further includes at least one second Leaf device, a first Spine, and at least one second Spine device, each Spine device respectively establishes a neighbor relationship with each Leaf device, and the first Spine device is a next-hop device for sending a target data stream from the first Leaf device to the second Leaf device, where the method may include the following steps:
s201, receiving a congestion notification message sent by a first Spine device, where the congestion notification message is sent by the first Spine device when congestion occurs at an egress port that forwards the target data flow is detected, and the congestion notification message carries a flow identifier, an outer-layer destination IP address, and a rate of the target data flow.
Specifically, each Spine device in the Spine-Leaf networking may monitor the bandwidth utilization rate of each egress port of the Spine-Leaf networking based on a preset monitoring rule, and when the bandwidth utilization rate of any egress port monitored by one Spine device is greater than a set threshold, it may be determined that the egress port is congested, and the Spine device may generate a corresponding congestion notification message and send the congestion notification message to the corresponding Leaf device.
For example, when a server 1 hooked down by a first Leaf device transmits a target data packet (the target data packet belongs to a target data stream, and the target data stream is composed of target data packets) to a server 2 hooked down by a second Leaf device, first, the server 1 generates an original target data packet and transmits the original target data packet to the first Leaf device, where a source IP address of the original target data packet is an IP address of the server 1, and a destination IP address of the original target data packet is an IP address of the server 2; then, carrying out VXLAN encapsulation processing on the original target data message by the first Leaf device to obtain an encapsulated target data message, forwarding the encapsulated target data message to the second Leaf device through a VXLAN tunnel between the first Leaf device and the second Leaf device by the first Spine device, and then carrying out decapsulation processing on the encapsulated target data message by the second Leaf device to obtain the original target data message; finally, the second Leaf device forwards the original target data packet to the server 2. Then, when detecting that the output port connected to the second Leaf device (i.e., the output port for forwarding the target data flow) is congested, the first Leaf device generates a congestion notification message and sends the congestion notification message to the first Leaf device.
In this embodiment of the present invention, the congestion notification packet may carry a flow identifier of the target data flow, a VNI (for example, VNI is 100) of a VXLAN tunnel that transmits the target data flow, an outer layer destination IP address of the target data flow (that is, a destination IP address of the VXLAN tunnel between the first Leaf device and the second Leaf device, that is, a public network IP address of the second Leaf device), and a rate of the target data flow.
Optionally, the stream identifier refers to an identifier that uniquely identifies one data stream, and in the embodiment of the present invention, one data stream may be uniquely identified according to the source IP address and the destination IP address of the original target data packet, that is, the stream identifier of the target data stream may be the source IP address (i.e., the IP address of the server 1) and the destination IP address (i.e., the IP address of the server 2) of the original target data packet belonging to the target data stream, that is, the inner layer source IP address and the destination IP address encapsulated by VXLAN.
Optionally, in this embodiment of the present invention, before performing step S201, the method may further include: receiving first messages which are sent by each Spine device and carry the IP addresses of the ports connected with each Leaf device, and establishing a local Spine list according to the received first messages; and aiming at each received first message, respectively sending a second message carrying the MAC address of the port connected with each Spine device to each Spine device, so that each Spine device establishes a local Leaf list according to each received second message.
For example, assuming that Leaf devices in a Leaf-Leaf networking include Leaf 1, Leaf 2, and Leaf 3, and a Leaf device includes Leaf 1 and Leaf 2, ports to which Leaf 1, Leaf 2, and Leaf 3 are connected are respectively port 1(IP address is IP a), port 2(IP address is IP b), and port 3(IP address is IP c), then, Leaf 1 will periodically send first messages carrying IP a, IP b, and IP c to Leaf 1, Leaf 2, and Leaf 3, and similarly, Leaf 2 will periodically send first messages to Leaf 1, Leaf 2, and Leaf 3, and then Leaf 1, Leaf 2, and Leaf 3 can establish a Leaf device list including the IP addresses of the ports of each Leaf device according to the first messages sent by the Leaf device; of course, after receiving any first message, Leaf 1, Leaf 2, and Leaf 3 may send a second message carrying the MAC address of its own port to a sending end (i.e., each Spine device) that sends the any first message, so that each Leaf device may establish, according to the received each second message, a Leaf device list including the MAC address of the port of each Leaf device.
S202, sending a bandwidth query message carrying the outer layer destination IP address to each second Spine device, so that each second Spine device determines the remaining bandwidth of the egress port corresponding to the outer layer destination IP address, and sends the first Leaf device by carrying the remaining bandwidth in a bandwidth notification message.
In the embodiment of the present invention, after receiving a congestion message notification sent by a first Leaf device, a first Leaf device may send a bandwidth query message carrying a public network IP address of a second Leaf device to each second Leaf device, so that each second Leaf device searches a local ARP entry according to the public network IP address of the second Leaf device, determines an output port corresponding to the public network IP address of the second Leaf device, determines a remaining bandwidth of the output port, and sends the determined remaining bandwidth carried in the bandwidth notification message to the first Leaf device.
Further, in an embodiment of the present invention, an optional implementation manner is that after receiving a congestion notification message sent by a first Spine, before sending a bandwidth query message carrying the outer layer destination IP address to each second Spine, a first Leaf device may establish, based on the received congestion notification message, a congestion flow table entry corresponding to the target data flow in a congestion flow list, where the congestion flow table entry includes an IP address of a port to which the first Spine device is connected, the flow identifier, and the outer layer destination IP address. A VNI (100) of a VXLAN tunnel that transports the target data stream may also be included.
Based on this, in the embodiment of the present invention, because the first Leaf device maintains a local congestion flow list, where the congestion flow list is sent based on the congestion notification packet sent by each Spine device, one way for the first Leaf device to send the bandwidth query packet carrying the outer layer destination IP address to each second Spine may be: inquiring the congestion flow list, acquiring a congestion flow list item containing the outer-layer destination IP address, and taking a Spine device corresponding to the Spine device contained in the congestion flow list item and the IP address of a port connected with the Spine device as a congestion Spine device; and sending a bandwidth query message to a second Spine except the congested Spine device.
For example, suppose that a Spine-Leaf networking includes Spine 1, Spine 2, and Spine 3, and a link between Spine 2 and a second Leaf device in a congestion flow list locally maintained by a first Leaf device is congested, then, when the first Leaf device receives a congestion notification message sent by Spine 1 and determines that a link between Spine 1 and the second Leaf device is congested, it may be determined according to the congestion flow list locally maintained, and links between Spine 1 and Spine 2 and the second Leaf device are all congested, and at this time, it only needs to send a bandwidth query message to Spine 3. And no bandwidth query message needs to be sent to Spine 2.
And S203, receiving the bandwidth notification messages sent by each second Spine device, and determining one second Spine device with the residual bandwidth greater than the rate of the target data stream as a next hop device for sending the target data stream.
In this embodiment of the present invention, after receiving the bandwidth notification messages sent by the second Spine devices, the first Leaf device may respectively determine whether the remaining bandwidth corresponding to each second Spine device is greater than the rate of the target data stream based on comparing the remaining bandwidth carried by each bandwidth notification message with the rate of the target data stream.
If there is a second Spine device with a remaining bandwidth greater than the rate of the target data stream, a second Spine device (e.g., Spine 2) with a remaining bandwidth greater than the rate of the target data stream may be used as a next hop device for subsequently sending the target data stream.
Specifically, a corresponding routing policy may be issued, for example, the routing policy is: the VNI is 100, the source IP address of the original data packet is the IP address of the server 1, and the next-hop device corresponding to the data stream (i.e., the target data stream) whose destination IP address is the IP address of the server 2 is designated as the second Spine device (e.g., Spine 2).
Further, in this embodiment of the present invention, after determining, by the first Leaf device, that one second Spine device whose remaining bandwidth is greater than the rate of the target data flow is the next hop device that sends the data flow corresponding to the flow identifier, the first Leaf device deletes the congestion flow entry established for the target data flow in the local congestion flow list.
If the first Leaf device determines that no second Spine device with the residual bandwidth larger than the rate of the target data stream exists according to the bandwidth notification messages sent by the second Spine devices, determining the first Spine device as a next hop device for sending the target data stream; and deleting a congestion flow table entry established for the target data flow in a local congestion flow list when receiving the congestion relief notification message sent by the first Spine, wherein the congestion relief notification message includes a flow identifier of the target data flow.
Referring to fig. 3, another flow diagram of the data flow routing method provided in the embodiment of the present invention is applied to a first Spine device in a Spine-Leaf networking, where the Spine-Leaf networking further includes the first Leaf device, at least one second Leaf device, and at least one second Spine device, each Spine device respectively establishes a neighbor relationship with each Leaf device, and the first Spine device is a next-hop device for sending a target data flow from the first Leaf device to one second Leaf device, where the method may include the following steps:
s301: and if the congestion of an outlet port for forwarding the target data stream is detected, acquiring the stream identifier, the outer layer destination IP address and the rate of the target data stream.
S302: and generating a congestion notification message carrying the flow identifier, the outer layer destination IP address and the rate of the target data flow by taking the outer layer source IP address of the target data flow as a target IP address.
In the embodiment of the present invention, an optional implementation manner is: and establishing a congestion flow entry corresponding to the target data flow in a congestion flow list corresponding to the egress port, wherein the congestion flow entry comprises a flow identifier and a rate of the target data flow.
S303: and sending the congestion notification message to the first Leaf device.
Further, after detecting that the congestion at the egress port is relieved, sending a congestion relief notification message carrying a congestion flow entry corresponding to the target data flow to the first Leaf device, and deleting the congestion flow list corresponding to the egress port.
In the following, the data stream routing method provided in the embodiment of the present invention is described in combination with a possible application scenario, where the networking structure of Spine-Leaf networking shown in fig. 4 may include: leaf 1, Leaf 2 and Leaf 3; spine A and Spine B; and a server 1 and a server 2 under Leaf 1, a server 3 under Leaf 2 and a server 4 under Leaf 3.
The IP addresses of the ports connected with the Leaf 1, the Leaf 2 and the Leaf 3 by the Spine A are respectively IP A1, IP A2 and IP A3, and the IP addresses of the ports connected with the Leaf 1, the Leaf 2 and the Leaf 3 by the Spine B are respectively IP B1, IP B2 and IP B3.
The MAC addresses of the ports where Leaf 1 is connected to Spine a and Spine B are MAC 11 and MAC 12, respectively, the MAC addresses of the ports where Leaf 2 is connected to Spine a and Spine B are MAC 21 and MAC 22, respectively, and the MAC addresses of the ports where Leaf 3 is connected to Spine a and Spine B are MAC 31 and MAC 32, respectively. The IP address of the Leaf 1 down-hanging server 1 is IP 1, the IP address of the server 2 is IP 2, the IP address of the Leaf 2 down-hanging server 3 is IP 3, and the IP address of the Leaf 3 down-hanging server is IP 4.
First, define device roles and message types:
CD (Congestion device) device: and the congestion checking device periodically checks the output port queue of the device, and if the congestion is checked, informs the RD device through a CN message, and the CD is deployed in a Spine-Leaf networking Spine device or a next hop device of the VTEP device.
Rd (reaction device) device: and the congestion response equipment receives the CN message and carries out load sharing on the data flow according to the content of the message.
Cn (connectivity notify) message: a congestion notification message, the CD device notifies the RD device of the congested message.
Br (bandwidth request) message: and D, the RD device sends a message to the CD device to inquire the residual bandwidth of the CD device.
Bn (bandwidth notify) message: and the CD device sends a message to the RD device to inform the residual available bandwidth of the device to a certain destination.
Ce (conversation update) message: a congestion release notification message, the CD device notifies the RD device of a message that congestion has been removed.
RD-request message: and D inquiry information, wherein the CD equipment sends the message to inquire all the current existing RD equipment.
RD-response message: and the RD device sends the message to register to the CD device.
In practical application, Spine A will send RD-request message (RD query) to Leaf 1, Leaf 2 and Leaf 3
In the networking shown in fig. 4, the RD device may be deployed on a Leaf device, for example, RD 1 is deployed on Leaf 1, RD 2 is deployed on Leaf 2, and RD 3 is deployed on Leaf 3; the CD devices may be deployed on Spine devices, e.g., Spine a with CD 1 deployed thereon and Spine B with CD 2 deployed thereon.
Then, Spine a and Spine B respectively send RD-request messages to Leaf 1, Leaf 2 and Leaf 3, where the messages carry their own IP addresses of ports connected to Leaf 1, Leaf 2 and Leaf 3, for example, RD-request messages sent by Spine a carry IP a1, IP a2 and IP A3, and RD-request messages sent by Spine B carry IP B1, IP B2 and IP B3; leaf 1, Leaf 2 and Leaf 3 will establish the same Spine table entry according to the received RD-request message as follows:
{Spine A;{IP A1;IP A2;IP A3}}
{Spine B;{IP B1;IP B2;IP B3}}
after receiving RD-request messages sent by Spine a and Spine B, Leaf 1, Leaf 2 and Leaf 3 respectively send RD-response messages to Spine a and Spine B, where the messages carry MAC addresses of ports connected to Spine a and Spine B, for example, RD-request messages sent by Leaf 1 carry MAC 11 and MAC 12, RD-request messages sent by Leaf 2 carry MAC 21 and MAC 22, RD-request messages sent by Leaf 3 carry MAC 31 and MAC 32, and Spine a and Spine B establish the same Leaf table entries as follows according to the received RD-request messages:
{Leaf 1;{MAC 11;MAC 12}}
{Leaf 2;{MAC 21;MAC 22}}
{Leaf 3;{MAC 31;MAC 32}}
assuming that a server 1 under Leaf 1 needs to send a data stream (e.g., an original data stream) to a server 3 under Leaf 2, after receiving a first data packet (i.e., an original target data packet) of the original data stream, Leaf 1 encapsulates the original target data packet to obtain a second data packet (i.e., an encapsulated target data packet), and sends the second data packet to Leaf 2 through Spine a, Leaf 2 decapsulates the received second data packet to obtain a first data packet, and sends the first data packet to the server 3 according to a destination IP address of the first data packet. Obviously, Spine a is the next hop device for Leaf 1 to send the target data stream to Leaf 2.
Spine 1 may monitor a bandwidth utilization rate of an egress port forwarding the target data stream based on a preset monitoring rule, when it is determined that the egress port is congested according to the bandwidth utilization rate of the egress port, it is determined that the target data stream is from a locally connected Leaf 1 according to a source MAC address of the target data stream (i.e., a MAC address of a port to which the Leaf 1 is connected with Spine 1), and record a flow identifier of the target data stream (an IP address of the server 1 and an IP address of the server 3) and a rate of a current target data stream into a local congestion stream list, for example;
{100;IP 1;IP 3;M bps}
spine 1 and sends a CN message to Leaf 1, where the destination IP address of the CN message is the outer layer source IP address of the target data flow (i.e. the public network IP address of Leaf 1), for example, the CN message may include the following:
{100;IP 1;IP 3;IP 11,;M bps}
after receiving the CN message, Leaf 1 determines that the CN message is the CN message sent by Spine 1 according to the source IP address of the CN message, and adds a local congestion flow list according to the content of the CN message:
{IP A1;100;IP 1;IP 3;IP 11,;M bps}
at this time, Leaf 1 may send an RB message to Spine 2, where the RB message includes the public network IP address of Leaf 2, and may include the following, for example:
{IP 11}
after receiving the RB message sent by Leaf 1, Spine 2 searches for a local ARP entry according to the public network IP address of Leaf 2 carried in the RB message, determines the remaining bandwidth of the egress port connected to Leaf 2, and sends an RN message to Leaf 1, where the RN message includes the determined remaining bandwidth, and may include the following contents, for example:
{IP 11,N bps}
after receiving the RN message sent by Spine 2, Leaf 1 compares the size relationship between the residual bandwidth and the current rate of the target data stream, and if N is less than or equal to M, Spine 1 is continuously used as the next hop equipment for sending the target data stream; if N is greater than M, then spin 2 may be subsequently used as the next hop device for sending the target data stream. Specifically, the next hop device corresponding to the target data stream may be designated as Spine 2 by changing the routing policy.
Then, Leaf 1 deletes the congestion table entry established for the target data flow in the local congestion flow list. For example, the following entries may be deleted:
{IP A1;100;IP 1;IP 3;IP 11,;M bps}
optionally, before determining a new next hop device for the target data flow, if Spine 1 monitors that congestion of an egress port forwarding the target data packet is removed, that is, the bandwidth utilization rate of the egress port does not exceed a set threshold, Spine 1 may send a congestion removal notification message to each Leaf device, and when receiving the congestion removal notification message, Leaf 1 may delete a congestion entry established for the target data flow in a local congestion flow list.
Of course, if the local congestion flow list of the Leaf 1 includes multiple congestion entries corresponding to the data flows that need to be forwarded by the egress port, the multiple congestion entries may be deleted.
Referring to fig. 5, fig. 5 is a schematic structural diagram of a data stream routing apparatus applied to Leaf devices according to an embodiment of the present invention, where the apparatus and method are applied to a first Leaf device in a Spine-Leaf networking, the Spine-Leaf networking further includes at least one second Leaf device, a first Spine device, and at least one second Spine device, each Spine device respectively establishes a neighbor relationship with each Leaf device, and the first Spine device is a next hop device for sending a target data stream from the first Leaf device to the second Leaf, and the apparatus includes:
a message receiving module 501, configured to receive a congestion notification message sent by a first Spine, where the congestion notification message is sent by a first Spine device when congestion occurs at an output port that forwards a target data stream, and the congestion notification message includes a stream identifier, an outer layer destination IP address, and a rate of the first data stream;
a bandwidth query module 502, configured to send a bandwidth query message carrying an outer layer destination IP address to each second Spine device, so that each second Spine device determines a remaining bandwidth of an egress port corresponding to the outer layer destination IP address, and sends the remaining bandwidth carried in a bandwidth notification message to the first Leaf device;
the route determining module 503 is configured to receive the bandwidth notification packet sent by each second Spine device, and determine one second Spine device with a remaining bandwidth greater than the rate of the target data stream as a next hop device that sends the target data stream.
In an optional embodiment, the apparatus further includes a first congestion flow management module, configured to, after receiving a congestion notification message sent by the first Spine device, before sending a bandwidth query message carrying an outer layer destination IP address to each second Spine device, establish, based on the congestion notification message, a congestion flow entry corresponding to a target data flow in a congestion flow list, where the congestion flow entry includes an IP address, a flow identifier, and an outer layer destination IP address of a port to which the first Spine device is connected;
the first congestion flow management module is further configured to delete a congestion flow entry established for the target data flow in the congestion flow list after determining that one second Spine device with a remaining bandwidth greater than the rate of the target data flow is a next hop device that sends the data flow corresponding to the flow identifier.
In an optional embodiment, the bandwidth querying module 502 is specifically configured to query a congestion flow list, obtain a congestion flow table entry including an outer layer destination IP address, and use a Spine device included in the congestion flow table entry and a Spine device corresponding to an IP address of a port connected to the Spine device as a congestion Spine device;
and sending the bandwidth query message to other second Spine equipment except the congested Spine equipment.
In an optional embodiment, the route determining module 503 is further configured to determine, if there is no second Spine device with a remaining bandwidth greater than the rate of the target data stream, the first Spine device as a next hop device that sends the target data stream;
the first congestion flow management module is further configured to delete a congestion flow table entry established for the target data flow in the congestion flow list when receiving a congestion relief notification message sent by the first Spine device, where the congestion relief notification message carries a flow identifier of the target data flow.
In an optional embodiment, the apparatus may further include a Spine list module, configured to receive, before receiving the congestion notification packet sent by the first Spine device, a first packet sent by each Spine device and carrying the IP address of the port where the Spine device is connected to each Leaf device, and establish a local Spine list according to each received first packet;
and aiming at each received first message, respectively sending a second message carrying the MAC address of the port connected with each Spine device to each Spine device, so that each Spine device establishes a local Leaf list according to each received second message.
Referring to fig. 6, fig. 6 is a schematic structural diagram of a data stream routing apparatus applied to a Spine device according to an embodiment of the present invention, where the apparatus is applied to a first Spine device in a Spine-Leaf networking, the Spine-Leaf networking further includes the first Leaf device, at least one second Leaf device, and at least one second Spine device, each Spine device respectively establishes a neighbor relationship with each Leaf device, and the first Spine device is a next-hop device for sending a target data stream from the first Leaf device to the second Leaf device, and the apparatus includes:
a congestion detection module 601, configured to obtain a flow identifier, an outer layer destination IP address, and a rate of a target data flow if congestion is detected at an output port that forwards the target data flow;
a congestion notification module 602, configured to generate a congestion notification packet carrying a flow identifier, an outer layer destination IP address, and a rate of a target data flow by using an outer layer source IP address of the target data flow as a destination IP address; and sending the congestion notification message to the first Leaf device.
In an optional embodiment, the apparatus further includes a second congestion flow management module, configured to establish a congestion flow entry corresponding to the target data flow in a congestion flow list corresponding to the egress port before generating a congestion notification packet carrying the flow identifier, the outer layer destination IP address, and the rate of the target data flow, where the congestion flow entry includes the flow identifier and the rate of the target data flow;
the congestion relief notification module is used for sending a congestion relief notification message carrying a congestion flow entry corresponding to the target data flow to the first Leaf device after detecting that the congestion at the output port is relieved;
and the second congestion flow management module is also used for deleting the congestion flow list corresponding to the output port.
The embodiment of the present invention further provides a first Leaf device, which is applied to a Leaf-Leaf networking, where the Leaf-Leaf networking further includes at least one second Leaf device, the first Leaf device, and at least one second Leaf, each Leaf device establishes a neighbor relationship with each Leaf device, and the first Leaf device is a next hop device for sending a target data stream to one second Leaf device by the first Leaf device, as shown in fig. 7, and includes:
a first memory 701 for storing a computer program;
the first processor 702 is configured to implement the following steps when executing the program stored in the memory 701:
receiving a congestion notification message sent by a first Spine device, wherein the congestion notification message is sent by the first Spine device when congestion occurs at an output port for forwarding a target data stream, and the congestion notification message carries a stream identifier, an outer layer destination IP address and a rate of the target data stream;
sending a bandwidth query message carrying an outer layer destination IP address to each second Spine device, so that each second Spine device determines the residual bandwidth of an output port corresponding to the outer layer destination IP address, and sends the residual bandwidth carried in a bandwidth notification message to the first Leaf device;
and receiving the bandwidth notification messages sent by the second Spine devices, and determining one second Spine device with the residual bandwidth larger than the rate of the target data stream as the next hop device for sending the target data stream.
In an optional embodiment, before sending the bandwidth query message to the second Spine, the method further includes:
after receiving the congestion notification message sent by the first Spine device, before sending a bandwidth query message carrying an outer-layer destination IP address to each second Spine device, the method further includes:
establishing a congestion flow table item corresponding to the target data flow in a congestion flow list based on the congestion notification message, wherein the congestion flow table item comprises an IP address, a flow identifier and an outer layer target IP address of a port of the first Spine device connected with the congestion flow list;
after determining a second Spine device with a remaining bandwidth greater than the rate of the target data stream as a next hop device for sending the data stream corresponding to the stream identifier, the method further includes:
and deleting the congestion flow table entry established for the target data flow in the congestion flow list.
In an optional embodiment, sending a bandwidth query packet carrying an outer layer destination IP address to each second Spine device includes:
inquiring a congestion flow list, acquiring a congestion flow list item containing an outer-layer destination IP address, and taking a Spine device contained in the congestion flow list item and a Spine device corresponding to the IP address of a port connected with the Spine device as a congestion Spine device;
and sending the bandwidth query message to other second Spine equipment except the congested Spine equipment.
In an optional embodiment, the method further comprises:
if no second Spine equipment with the residual bandwidth larger than the rate of the target data stream exists, determining the first Spine equipment as next hop equipment for sending the target data stream;
and when receiving a congestion removal notification message sent by the first Spine device, deleting a congestion flow table entry established for the target data flow in the congestion flow list, wherein the congestion removal notification message carries a flow identifier of the target data flow.
In an optional embodiment, before receiving the congestion notification message sent by the first Spine device, the method further includes:
receiving first messages which are sent by each Spine device and carry the IP addresses of the ports connected with each Leaf device, and establishing a local Spine list according to the received first messages;
and aiming at each received first message, respectively sending a second message carrying the MAC address of the port connected with each Spine device to each Spine device, so that each Spine device establishes a local Leaf list according to each received second message.
The embodiment of the present invention further provides a first Spine device, which is applied to Spine-Leaf networking, where the Spine-Leaf networking further includes the first Leaf device, at least one second Leaf device, and at least one second Spine device, each Spine device respectively establishes a neighbor relationship with each Leaf device, and the first Spine device is a next hop device that sends a target data stream to one second Leaf device, as shown in fig. 8, the method includes:
a second memory 801 for storing a computer program;
the second processor 802 is configured to implement the following steps when executing the program stored in the memory 801:
if congestion of an output port for forwarding the target data stream is detected, acquiring a stream identifier, an outer layer destination IP address and a rate of the target data stream;
generating a flow identifier carrying the target data flow, an outer layer target IP address and a congestion notification message of the rate by taking the outer layer source IP address of the target data flow as a target IP address;
and sending the congestion notification message to the first Leaf device.
In an optional embodiment, before sending the congestion notification message to the first Leaf, the method further includes:
before generating the congestion notification packet carrying the flow identifier of the target data flow, the outer layer destination IP address and the rate, the method further includes:
establishing a congestion flow table entry corresponding to the target data flow in a congestion flow list corresponding to the output port, wherein the congestion flow table entry comprises a flow identifier and a rate of the target data flow;
the method further comprises the following steps:
and after the congestion of the output port is detected to be relieved, sending a congestion relief notification message carrying a congestion flow entry corresponding to the target data flow to the first Leaf device, and deleting a congestion flow list corresponding to the output port.
The aforementioned electronic device may include a Random Access Memory (RAM) and a Non-Volatile Memory (NVM), such as at least one disk Memory. Optionally, the memory may also be at least one memory device located remotely from the processor.
The Processor may be a general-purpose Processor, including a Central Processing Unit (CPU), a Network Processor (NP), and the like; but also Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) or other Programmable logic devices, discrete Gate or transistor logic devices, discrete hardware components.
In yet another embodiment of the present invention, a computer-readable storage medium is further provided, which has instructions stored therein, and when the instructions are executed on a computer, the computer is caused to execute any one of the data stream routing methods in the above embodiments.
In yet another embodiment provided by the present invention, a computer-readable storage medium is further provided, which stores instructions that, when executed on a computer, cause the computer to execute any one of the congestion notification methods in the above embodiments.
In a further embodiment provided by the present invention, there is also provided a computer program product containing instructions which, when run on a computer, cause the computer to perform any of the dataflow routing methods described above.
In a further embodiment provided by the present invention, there is also provided a computer program product containing instructions which, when run on a computer, cause the computer to perform any of the congestion notification methods of the above embodiments.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the invention to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, the computer instructions may be transmitted from one website server, computer, server, or data center to another website server, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may 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 Disk (SSD)), among others.
It is noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
All the embodiments in the present specification are described in a related manner, and the same and similar parts among the embodiments may be referred to each other, and each embodiment is described with emphasis on differences from other embodiments. In particular, for the embodiments of the apparatus, the first Leaf device, the first Spine device, the computer-readable storage medium, and the computer program product, since they are substantially similar to the method embodiments, the description is relatively simple, and relevant points can be referred to only part of the description of the method embodiments.
The above description is only for the preferred embodiment of the present invention, and is not intended to limit the scope of the present invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention shall fall within the protection scope of the present invention.

Claims (14)

1. A data flow routing method is applied to a first Leaf device in a Spine-Leaf networking, the Spine-Leaf networking further comprises at least one second Leaf device, a first Spine and at least one second Spine device, each Spine device respectively establishes a neighbor relation with each Leaf device, the first Spine device is a next hop device for sending a target data flow from the first Leaf device to one second Leaf device, and the method comprises the following steps:
receiving a congestion notification message sent by the first Spine device, wherein the congestion notification message is sent by the first Spine device when congestion occurs at an output port for forwarding the target data stream, and the congestion notification message carries a stream identifier, an outer layer destination IP address and a rate of the target data stream;
sending a bandwidth query message carrying the outer layer destination IP address to each second Spine device, so that each second Spine device determines the residual bandwidth of the output port corresponding to the outer layer destination IP address, carries the residual bandwidth in a bandwidth notification message, and sends the bandwidth notification message to the first Leaf device;
and receiving bandwidth notification messages sent by each second Spine device, and determining one second Spine device with the residual bandwidth larger than the rate of the target data stream as a next hop device for sending the target data stream.
2. The method according to claim 1, wherein after receiving the congestion notification packet sent by the first Spine device, before sending a bandwidth query packet carrying the outer layer destination IP address to each second Spine device, the method further comprises:
based on the congestion notification message, establishing a congestion flow entry corresponding to the target data flow in a congestion flow list, where the congestion flow entry includes an IP address of a port where the first Spine device is connected to the first Leaf device, the flow identifier, and the outer layer destination IP address;
after determining that the second Spine device with the remaining bandwidth greater than the rate of the target data stream is the next hop device for sending the target data stream, the method further includes:
and deleting the congestion flow table entry established aiming at the target data flow in the congestion flow list.
3. The method according to claim 2, wherein the sending of the bandwidth query packet carrying the outer layer destination IP address to each second Spine device comprises:
inquiring the congestion flow list, acquiring a congestion flow list item containing the outer-layer destination IP address, and taking a Spine device corresponding to the IP address of a port where the Spine device contained in the congestion flow list item is connected with the first Leaf device as a congestion Spine device;
and sending a bandwidth query message to other second Spine equipment except the congested Spine equipment.
4. The method of claim 2, further comprising:
if no second Spine device with the residual bandwidth larger than the rate of the target data stream exists, determining the first Spine device as a next hop device for sending the target data stream;
and deleting a congestion flow table entry established for the target data flow in the congestion flow list when a congestion removal notification message sent by the first Spine device is received, wherein the congestion removal notification message carries a flow identifier of the target data flow.
5. The method according to claim 1, wherein before the receiving the congestion notification packet sent by the first Spine device, the method further comprises:
receiving first messages which are sent by each Spine device and carry the IP addresses of the ports connected with each Leaf device, and establishing a local Spine list according to the received first messages;
and aiming at each received first message, respectively sending a second message carrying the MAC address of the port connected with each Spine device to each Spine device, so that each Spine device establishes a local Leaf list according to each received second message.
6. A data stream routing method is applied to a first Spine device in a Spine-Leaf networking, the Spine-Leaf networking further comprises the first Leaf device, at least one second Leaf device and at least one second Spine device, each Spine device establishes a neighbor relation with each Leaf device, and the first Spine device is a next hop device for sending a target data stream from the first Leaf device to one second Leaf device, and the method comprises the following steps:
if the congestion of an outlet port for forwarding the target data stream is detected, acquiring a stream identifier, an outer layer destination IP address and a rate of the target data stream;
generating a congestion notification message carrying a flow identifier, an outer layer destination IP address and a rate of the target data flow by taking an outer layer source IP address of the target data flow as a destination IP address;
and sending the congestion notification message to the first Leaf device.
7. The method of claim 6, wherein before the generating the congestion notification packet carrying the flow identifier, the outer-layer destination IP address, and the rate of the target data flow, the method further comprises:
establishing a congestion flow entry corresponding to the target data flow in a congestion flow list corresponding to the egress port, wherein the congestion flow entry comprises a flow identifier and a rate of the target data flow;
the method further comprises the following steps:
and after detecting that the congestion of the output port is relieved, sending a congestion relief notification message carrying a congestion flow entry corresponding to the target data flow to the first Leaf device, and deleting a congestion flow list corresponding to the output port.
8. The utility model provides a data flow routing device, its characterized in that, the device is applied to the first Leaf equipment in the Spine-Leaf network deployment, Spine-Leaf network deployment still includes at least one second Leaf equipment, first Spine equipment and at least one second Spine equipment, and each Spine equipment sets up the neighbour relation with each Leaf equipment respectively, first Spine equipment is the next hop equipment that first Leaf equipment sent the target data flow to a second Leaf, the device includes:
a message receiving module, configured to receive a congestion notification message sent by the first Spine device, where the congestion notification message is sent by the first Spine device when congestion occurs at an output port that forwards the target data flow, and the congestion notification message carries a flow identifier, an outer-layer destination IP address, and a rate of the target data flow;
a bandwidth query module, configured to send a bandwidth query packet carrying the outer layer destination IP address to each second Spine device, so that each second Spine device determines a remaining bandwidth of an egress port corresponding to the outer layer destination IP address, and carries the remaining bandwidth in a bandwidth notification packet and sends the bandwidth notification packet to the first Leaf device;
and the route determining module is used for receiving the bandwidth notification message sent by each second Spine device, and determining one second Spine device with the residual bandwidth greater than the rate of the target data stream as the next hop device for sending the target data stream.
9. The apparatus according to claim 8, wherein the apparatus further includes a first congestion flow management module, configured to, after the receiving of the congestion notification packet sent by the first Spine device, before the sending of the bandwidth query packet carrying the outer layer destination IP address to each second Spine device, establish, based on the congestion notification packet, a congestion flow entry corresponding to the target data flow in a congestion flow list, where the congestion flow entry includes an IP address of a port to which the first Spine device is connected, the flow identifier, and the outer layer destination IP address;
the first congestion flow management module is further configured to delete a congestion flow entry established for the target data flow in the congestion flow list after the second Spine device with the remaining bandwidth greater than the rate of the target data flow is determined as a next hop device for sending the target data flow.
10. The apparatus according to claim 9, wherein the bandwidth querying module is specifically configured to query the congestion flow list, obtain a congestion flow table entry including the outer layer destination IP address, and use, as the congestion Spine device, a Spine device corresponding to an IP address of a port where a Spine device included in the congestion flow table entry is connected to the first Leaf device;
and sending bandwidth query messages to other second Spine equipment except the congested Spine equipment.
11. The apparatus according to claim 9, wherein the route determining module is further configured to determine, if there is no second Spine device with a remaining bandwidth greater than the rate of the target data stream, the first Spine device as a next hop device for sending the target data stream;
the first congestion flow management module is further configured to delete a congestion flow table entry established for the target data flow in the congestion flow list when receiving a congestion relief notification message sent by the first Spine device, where the congestion relief notification message carries a flow identifier of the target data flow.
12. The apparatus according to claim 8, wherein the apparatus further includes a Spine list module, configured to receive, before the receiving the congestion notification packet sent by the first Spine device, a first packet sent by each Spine device and carrying an IP address of a port where the Spine device is connected to each Leaf device, and establish a local Spine list according to each received first packet;
and aiming at each received first message, respectively sending a second message carrying the MAC address of the port connected with each Spine device to each Spine device, so that each Spine device establishes a local Leaf list according to each received second message.
13. The utility model provides a data flow routing device, its characterized in that, the device is applied to the first Spine equipment in Spine-Leaf network deployment, Spine-Leaf network deployment still includes first Leaf equipment, at least one second Leaf equipment and at least one second Spine equipment, and each Spine equipment sets up the neighbour relation with each Leaf equipment respectively, first Spine equipment is the next hop equipment that first Leaf equipment sent the target data flow to a second Leaf equipment, the device includes:
a congestion detection module, configured to, if it is detected that an output port that forwards the target data stream is congested, obtain a stream identifier, an outer-layer destination IP address, and a rate of the target data stream;
a congestion notification module, configured to generate a congestion notification packet carrying a stream identifier, an outer layer destination IP address, and a rate of the target data stream by using an outer layer source IP address of the target data stream as a destination IP address; and sending the congestion notification message to the first Leaf device.
14. The apparatus according to claim 13, wherein the apparatus further comprises a second congestion flow management module, configured to establish a congestion flow entry corresponding to the target data flow in a congestion flow list corresponding to the egress port before the congestion notification packet carrying the flow identifier, the outer layer destination IP address, and the rate of the target data flow is generated, where the congestion flow entry includes the flow identifier and the rate of the target data flow;
the congestion relief notification module is further configured to send a congestion relief notification message carrying a congestion flow entry corresponding to the target data flow to the first Leaf device after detecting that the congestion at the output port is relieved;
the second congestion flow management module is further configured to delete the congestion flow list corresponding to the egress port.
CN201910099050.2A 2019-01-31 2019-01-31 Data stream routing method and device Active CN109802879B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910099050.2A CN109802879B (en) 2019-01-31 2019-01-31 Data stream routing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910099050.2A CN109802879B (en) 2019-01-31 2019-01-31 Data stream routing method and device

Publications (2)

Publication Number Publication Date
CN109802879A CN109802879A (en) 2019-05-24
CN109802879B true CN109802879B (en) 2021-05-28

Family

ID=66560758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910099050.2A Active CN109802879B (en) 2019-01-31 2019-01-31 Data stream routing method and device

Country Status (1)

Country Link
CN (1) CN109802879B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112511325B (en) 2019-09-16 2022-03-11 华为技术有限公司 Network congestion control method, node, system and storage medium
CN111865716B (en) * 2020-06-30 2023-07-18 新华三信息技术有限公司 Port congestion detection method, device, equipment and machine-readable storage medium
CN112787925B (en) * 2020-10-12 2022-07-19 中兴通讯股份有限公司 Congestion information collection method, optimal path determination method and network switch

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099938A (en) * 2014-05-13 2015-11-25 华为技术有限公司 Determining method and device of congestion window in network
CN106911584A (en) * 2015-12-23 2017-06-30 华为技术有限公司 It is a kind of based on leaf-flow load sharing method of ridge topological structure, apparatus and system
CN106998302A (en) * 2016-01-26 2017-08-01 华为技术有限公司 The distribution method and device of a kind of service traffics
CN107547418A (en) * 2016-06-29 2018-01-05 华为技术有限公司 A kind of jamming control method and device
CN108123878A (en) * 2016-11-30 2018-06-05 华为技术有限公司 A kind of method for routing, device and data transfer equipment
CN108206781A (en) * 2016-12-16 2018-06-26 华为技术有限公司 The method and apparatus for selecting forward-path
CN108234320A (en) * 2016-12-14 2018-06-29 华为技术有限公司 Message transmitting method and interchanger

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9325619B2 (en) * 2011-11-15 2016-04-26 Oracle International Corporation System and method for using virtual lanes to alleviate congestion in a fat-tree topology

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099938A (en) * 2014-05-13 2015-11-25 华为技术有限公司 Determining method and device of congestion window in network
CN106911584A (en) * 2015-12-23 2017-06-30 华为技术有限公司 It is a kind of based on leaf-flow load sharing method of ridge topological structure, apparatus and system
CN106998302A (en) * 2016-01-26 2017-08-01 华为技术有限公司 The distribution method and device of a kind of service traffics
CN107547418A (en) * 2016-06-29 2018-01-05 华为技术有限公司 A kind of jamming control method and device
CN108123878A (en) * 2016-11-30 2018-06-05 华为技术有限公司 A kind of method for routing, device and data transfer equipment
CN108234320A (en) * 2016-12-14 2018-06-29 华为技术有限公司 Message transmitting method and interchanger
CN108206781A (en) * 2016-12-16 2018-06-26 华为技术有限公司 The method and apparatus for selecting forward-path

Also Published As

Publication number Publication date
CN109802879A (en) 2019-05-24

Similar Documents

Publication Publication Date Title
US10191758B2 (en) Directing data traffic between intra-server virtual machines
US10534601B1 (en) In-service software upgrade of virtual router with reduced packet loss
US10263808B2 (en) Deployment of virtual extensible local area network
CN109802879B (en) Data stream routing method and device
CN109218200B (en) Message processing method and device
CN102291455B (en) Distributed cluster processing system and message processing method thereof
US9743367B2 (en) Link layer discovery protocol (LLDP) on multiple nodes of a distributed fabric
WO2019196653A1 (en) Packet forwarding method and apparatus
JP5826320B2 (en) Network location service
WO2021109726A1 (en) Bandwidth limitation method, apparatus and system
US20190215191A1 (en) Deployment Of Virtual Extensible Local Area Network
CN109691031B (en) Service message transmission method and node equipment
CN114978978A (en) Computing resource scheduling method and device, electronic equipment and medium
WO2019223534A1 (en) Method and device for monitoring forwarding table entry
WO2021139304A1 (en) Method and device for multi-cloud interconnection
JP5678678B2 (en) Provider network and provider edge device
CN103200100A (en) Method and device for packet transmitting
CN109120449B (en) Method and device for detecting link failure
WO2019128612A1 (en) Method and device for processing routing protocol packet
WO2021098425A1 (en) Qos policy method, device, and computing device for service configuration
CN109831378B (en) Message timeout response method and device
WO2022089212A1 (en) Fault handling method and device
US8665752B2 (en) Network modeling, service provisioning, and service management
WO2020220987A1 (en) Data packet transmission method and apparatus, data packet transmission management method and apparatus, data forwarding device, and storage medium
CN113852572B (en) Message processing method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant