Route notification and message forwarding method, storage medium and electronic device
By introducing a second spine node device in the dragonfly+ network for routing announcements, the problems of high network deployment costs and lack of automatic forwarding mechanism are solved, and the effect of automatic forwarding and reducing the burden on equipment is achieved.
Patent Information
- Application Number
- CN202410256447.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-06
- Publication Date
- 2025-09-09
Smart Images

Figure CN120614296A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to the field of communications, and in particular to a routing announcement and message forwarding method, a storage medium, and an electronic device. Background Art
[0002] Forwarding in a Dragonfly+ network typically uses adaptive routing, which dynamically selects one or more forwarding paths based on specific rules. This results in load balancing traffic across multiple shortest and non-shortest paths, rather than the shortest path-first approach often used in existing routing protocols.
[0003] Among existing solutions, a common approach is to have leaf nodes directly learn all routes and then make forwarding decisions. The disadvantage of this approach is that, when the network scale is large, leaf nodes need to maintain a very large number of forwarding entries. To ensure that forwarding performance is not affected, leaf nodes also need to use high-performance equipment, which increases the networking cost. In addition, the current BGP+VRF configuration solution requires complex routing rule configuration, which has poor usability in large-scale networks.
[0004] In related technologies, the Dragonfly / Dragonfly+ network does not have an automatic forwarding mechanism based on distributed routing. Moreover, when the network scale is large, a large number of detailed routing tables need to be maintained on the leaf nodes, which puts a heavy burden on the equipment and is not conducive to reducing deployment costs. Summary of the Invention
[0005] The embodiments of the present invention provide a routing announcement and message forwarding method, a storage medium, and an electronic device to at least solve the problem in the related art that the DragonFly+ network has high deployment cost and lacks an automatic forwarding mechanism.
[0006] According to one embodiment of the present invention, a routing announcement method is provided for a dragonfly plus network, comprising: a second spine node device receives routing information from a first spine node device in a first group; and the second spine node device performs routing announcement to a second leaf node device in a second group based on the routing information.
[0007] According to another embodiment of the present invention, a message forwarding method is provided, including: a leaf node device receives a data message and determines whether it is a cross-group data message based on the destination prefix address in the data message; when the data message needs to cross the group, the leaf node device forwards the data message to the destination spine node device according to the locally stored forwarding path table entry.
[0008] According to yet another embodiment of the present invention, a computer-readable storage medium is provided, in which a computer program is stored. The computer program is configured to execute the steps of any one of the above method embodiments when run.
[0009] According to another embodiment of the present invention, an electronic device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to perform the steps in any one of the above method embodiments.
[0010] The present invention provides a routing advertisement method in which a second spine node receives routing information from a first spine node in a first group. Based on the routing information, the second spine node advertises the routing information to a second leaf node in a second group. This method addresses the high deployment cost and lack of an automatic forwarding mechanism in the related art Dragonfly+ network, achieving the goal of reducing Dragonfly+ network deployment costs while implementing an automatic forwarding mechanism. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1 This is a schematic diagram of the dragonfly+ compact topology in related technologies;
[0012] Figure 2 This is a schematic diagram of the dragonfly+ loose topology in related technologies;
[0013] Figure 3 1 is a hardware structure block diagram of a mobile terminal according to a routing advertisement method according to an embodiment of the present invention;
[0014] Figure 4 This is the process of the routing advertisement method of the embodiment of the present invention Figure 1 ;
[0015] Figure 5 This is the process of the routing advertisement method of the embodiment of the present invention Figure 2 ;
[0016] Figure 6 This is the process of the routing advertisement method of the embodiment of the present invention Figure 3 ;
[0017] Figure 7 This is the process of the routing advertisement method of the embodiment of the present invention Figure 4 ;
[0018] Figure 8 This is the process of the routing advertisement method of the embodiment of the present invention Figure 5 ;
[0019] Figure 9 This is the process of the routing advertisement method of the embodiment of the present invention Figure 6 ;
[0020] Figure 10 This is the process of the message forwarding method of the embodiment of the present invention Figure 1 ;
[0021] Figure 11 This is the process of the message forwarding method of the embodiment of the present invention Figure 2 ;
[0022] Figure 12 Flowchart of the routing advertisement method according to the first embodiment of the present invention;
[0023] Figure 13 Flowchart of a message forwarding method according to a first embodiment of the present invention;
[0024] Figure 14 is a flow chart of a routing advertisement method according to a second embodiment of the present invention;
[0025] Figure 15 Flowchart of a message forwarding method according to a second embodiment of the present invention;
[0026] Figure 16 is a flowchart of a routing advertisement method according to a third embodiment of the present invention;
[0027] Figure 17 This is a schematic diagram of the service networking of dragonfly+ according to the fourth embodiment of the present invention;
[0028] Figure 18 Flowchart of a message forwarding method according to a fourth embodiment of the present invention;
[0029] Figure 19 This is a schematic diagram of the service networking of dragonfly+ according to the fifth embodiment of the present invention;
[0030] Figure 20 This is a flowchart of a routing advertisement method according to a sixth embodiment of the present invention. DETAILED DESCRIPTION
[0031] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings and in combination with embodiments.
[0032] It should be noted that the terms "first", "second", etc. in the description and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
[0033] Dragonfly networking is a highly efficient communication system commonly used in the field of high-performance computing (HPC). Compared with other topologies such as Clos and Fat Tree networks, Dragonfly networking offers a shorter communication diameter, lower latency, and a larger network scale, enabling low-latency and high-throughput communication. The Dragonfly topology consists of three layers: the router layer (also known as the switch layer), the group layer (also known as the device group), and the system layer.
[0034] Switch layer: includes a switch and its connected p computing nodes / servers, etc.
[0035] Group layer: Contains a switch layer. Each switch in a switch layer can be fully connected (all-to-all). In dragonfly+, the links in the group use Clos / spine-leaf / Fat Tree connection methods.
[0036] System layer: contains g Group layers, which are fully connected.
[0037] Dragonfly+ (DF+) is an evolution of the DF topology. The main difference is that the group structure adopts a Clos / Fat Tree-like topology. Currently, AI data center network technology is exploring new topologies and routing protocols, and the Dragonfly+ network is one of the potential topologies.
[0038] In the embodiment of the present invention, the devices in the dragonfly+ network that are connected to the server / service provider (server / serviceprovider) and do not participate in the interconnection between groups are called leaf devices, and the devices that participate in the interconnection between groups are called top-level spine devices. For the Clos / Fat Tree topology with more than two layers, there are also intermediate devices in the middle layer that connect the leaf and spine devices, namely, intermediate spine devices. Unless otherwise specified in the present invention, spine devices refer to top-level spine devices. In the embodiment of the present invention, dragonfly / dragonfly networks refer to dragonfly plus / dragonfly+ networks unless otherwise specified.
[0039] The dragonfly topology is divided into loose and compact types, depending on the connection between groups, that is, whether each spine in each group is connected to other groups. Figure 1This is a schematic diagram of the dragonfly+ compact topology in related technologies. Figure 2 The figure shows a schematic diagram of the DragonFly+ loose topology in related technologies. To support larger networks with the same hardware conditions, the loose topology is a more practical connection method.
[0040] Dragonfly networks employ two forwarding methods: minimal routing, where packets are forwarded directly from the source group to the destination group, and non-minimal routing, where packets are forwarded from the source group through intermediate groups before reaching the destination group. Dragonfly / Dragonfly+ networks lack an automatic forwarding mechanism based on distributed routing. Furthermore, large-scale networks require leaf nodes to maintain a large number of detailed routing tables, placing a heavy burden on equipment and hindering deployment costs.
[0041] The method embodiments provided in the embodiments of the present application can be executed in a mobile terminal, a computer terminal or a similar computing device. Taking running on a mobile terminal as an example, Figure 3 FIG is a hardware structure block diagram of a mobile terminal of the routing advertisement method according to an embodiment of the present invention. Figure 3 As shown, the mobile terminal may include one or more ( Figure 3 Only one is shown) a processor 302 (the processor 302 may include but is not limited to a microprocessor MCU or a programmable logic device FPGA and other processing devices) and a memory 304 for storing data, wherein the mobile terminal may also include a transmission device 306 and an input and output device 308 for communication functions. It will be understood by those skilled in the art that Figure 3 The structure shown is only for illustration and does not limit the structure of the mobile terminal. Figure 3 More or fewer components than shown, or with Figure 3 Different configurations shown.
[0042] Memory 304 can be used to store computer programs, such as software programs and modules of application software, such as the computer program corresponding to the route advertisement method in the embodiment of the present invention. Processor 302 executes the computer program stored in memory 304 to execute various functional applications and data processing, thereby implementing the above-mentioned method. Memory 304 may include high-speed random access memory and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, storage 304 may further include memory remotely located relative to processor 302, and these remote memories may be connected to the mobile terminal via a network. Examples of the above-mentioned networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0043] The transmission device 306 is used to receive or send data via a network. Specific examples of the aforementioned network may include a wireless network provided by the mobile terminal's communications provider. In one embodiment, the transmission device 306 includes a network interface controller (NIC), which can be connected to other network devices via a base station to enable communication with the Internet. In one embodiment, the transmission device 106 may be a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.
[0044] In the embodiments of the present invention, in order to distinguish the processes and steps of route announcement and message forwarding, the dragonfly network is divided into two groups during the description process, namely the first group and the second group. The first group includes the first spine node device and the first leaf node device, and the second group includes the second spine node device and the second leaf node device. It should be noted that the above-mentioned first and second divisions are only for differentiation and are not specific limitations or definitions. In actual implementation, the dragonfly network includes multiple groups of devices, each of which also includes multiple spine node devices and multiple leaf node devices.
[0045] The embodiment of the present invention provides a routing advertisement method. Figure 4 This is the process of the routing advertisement method of the embodiment of the present invention Figure 1 ,like Figure 4 As shown, the process includes the following steps:
[0046] Step S402: The second spine node device receives routing information from the first spine node device in the first group.
[0047] Step S404: The second spine node device notifies the second leaf node device in the second group of the routing information.
[0048] In the embodiment of the present invention, for groups, the first and second restrictions are only for distinguishing different groups. For spine node devices and leaf node devices, they are also only for distinguishing spine node devices or leaf node devices in different groups.
[0049] In an exemplary embodiment, before the second spine node device receives routing information from the first spine node device in the first group, it also includes: the first spine node device receives the intra-group routing of the first leaf node device in the first group to obtain routing information. Figure 5 This is the process of the routing advertisement method of the embodiment of the present invention Figure 2 ,like Figure 5 As shown, the process includes the following steps:
[0050] Step S502: The first spine node device receives the intra-group route of the first leaf node device in the first group to obtain routing information.
[0051] Step S504: The second spine node device receives routing information from the first spine node device in the first group.
[0052] Step S506: The second spine node device notifies the second leaf node device in the second group of the routing information.
[0053] In an exemplary embodiment, before the second spine node device receives routing information from the first spine node device in the first group, it also includes: non-overlapping numbering of each group in the Dragonfly Plus network, and role marking of the network devices in each group to distinguish between spine node devices and leaf node devices; establishing a routing neighbor relationship of the Dragonfly Plus network to obtain routing information of the Dragonfly Plus network. Figure 6 This is the process of the routing advertisement method of the embodiment of the present invention Figure 3 ,like Figure 6 As shown, the process includes the following steps:
[0054] Step S602: number each group in the Dragonfly Plus network without overlapping, and mark the role of the network devices in each group to distinguish between spine node devices and leaf node devices; establish a routing neighbor relationship of the Dragonfly Plus network to obtain routing information of the Dragonfly Plus network.
[0055] In an embodiment of the present invention, routing neighbors are established, including establishing neighbors between each spine node device in the group and the leaf node device in the group; establishing neighbors between spine node devices between groups; and in the interaction process of neighbor establishment messages between groups, the spine node devices carry their respective group identifiers.
[0056] In an exemplary embodiment, the manner of role-marking network devices in each group includes at least one of the following: in the Open Shortest Path First (OSPF) protocol, different area numbers are configured for spine node devices and leaf node devices; in the Intermediate System to Intermediate System (IS-IS) routing protocol, different location numbers are configured for spine node devices and leaf node devices; in the Routing in Fat Trees (FT) protocol, different location numbers are configured for spine node devices and leaf node devices.
[0057] In an exemplary embodiment, the routing neighbor relationship includes at least: an intra-group routing neighbor relationship between spine node devices and leaf node devices in the same group; and a routing neighbor relationship between spine node devices in different groups.
[0058] In an exemplary embodiment, the interactive information for establishing the routing neighbor relationship of the Dragonfly Plus network includes at least one of the following: group identification information of each spine node device in different groups; routing mode support capability information of the Dragonfly Plus network of each spine node device in different groups.
[0059] Step S604: The first spine node device receives the intra-group route of the first leaf node device in the first group to obtain routing information.
[0060] Step S606: The second spine node device receives routing information from the first spine node device in the first group.
[0061] Step S608: The second spine node device notifies the second leaf node device in the second group of the routing information.
[0062] In an exemplary embodiment, the second spine node device makes a routing announcement to the second leaf node device in the second group based on the routing information, including: the second spine node device obtains the forwarding path information of the destination address based on the routing information and selects the available path information; the second spine node device makes a routing announcement to the leaf node devices in the second group based on the available path information to complete the intra-group routing announcement within the second group.
[0063] In an embodiment of the present invention, when a leaf node device advertises a route within a group, it can modify the next hop address to that device's own address. In one embodiment, the route can carry both the group ID information to which the leaf node device belongs and the destination prefix access / home device, i.e., the group ID information to which the leaf node device advertising the destination prefix belongs.
[0064] In an exemplary embodiment, the intra-group routing announcement includes at least one of the following: destination prefix information; routing metric / cost information; node address information of the next-hop spine node device; group identification information of the second spine node device; and group identification information of the leaf node device corresponding to the destination prefix.
[0065] In an exemplary embodiment, the second spine node device performs routing announcements to the leaf node devices in the second group based on the available path information, including: when multiple second spine node devices perform routing announcements of the same target prefix to the same leaf node device, the leaf node device receives and stores multiple pieces of available path information.
[0066] In an exemplary embodiment, in step S608, after the second spine node device makes a routing announcement to the second leaf node device in the second group based on the routing information, it also includes: updating the routing information of the second leaf node device in the second group when the path status to the destination prefix changes.
[0067] In an exemplary embodiment, the situation in which the path status to the destination prefix changes includes at least one of the following: all forwarding path information to the destination prefix of the second spine node device does not meet the availability conditions; the second spine node device has a new routing announcement path, and the routing metric / cost of the new routing announcement path is the smallest; the forwarding path information corresponding to the minimum routing metric / cost of the second spine node device is unavailable.
[0068] In an exemplary embodiment, after the second spine node device receives the routing information from the first spine node device in the first group, the method further includes: the second spine node device performs cross-group routing announcement according to the routing information. Figure 7 This is the process of the routing advertisement method of the embodiment of the present invention Figure 4 ,like Figure 7 As shown, the process includes the following steps:
[0069] Step S702: The first spine node device receives the intra-group route of the first leaf node device in the first group to obtain routing information.
[0070] Step S704: The second spine node device receives routing information from the first spine node device in the first group.
[0071] Step S706: The second spine node device performs cross-group routing announcement based on the routing information.
[0072] In an exemplary embodiment, in step S706, the second spine node device performs a cross-group routing announcement based on the routing information, including: the second spine node device sends a cross-group routing announcement to other neighboring spine node devices except the first spine node device, wherein the cross-group routing announcement carries a next-hop address, and the next-hop address is the address of the corresponding second spine node device.
[0073] In an exemplary embodiment, the inter-group routing advertisement also carries group identification information to which the leaf node device of the destination prefix belongs.
[0074] In an exemplary embodiment, the cross-group routing advertisement also carries group identification information of the second spine node device.
[0075] In one embodiment, the spine node device outside the group, i.e., the second spine node device, needs to carry path quality information in the routing announcement information when making routing announcements, expressed in the form of metrics / costs, etc. The meaning of the path quality information includes but is not limited to routing distance, bandwidth, latency, etc. This information is accumulated as the routing message is transmitted.
[0076] In an exemplary embodiment, the number of transit hops of the cross-group routing advertisement is one hop.
[0077] In one embodiment, in order to reduce the amount of routing between groups, it may be required to control the routing when passing it to other spine node devices, and limit the number of routing transit hops to one hop.
[0078] In one embodiment, limiting the number of transit hops to one includes: carrying a field in a routing message that records the number of route reflection hops, thereby limiting route reflection to one hop; upon receiving a routing protocol message from another spine node device, a spine node device first checks this field and reflects the route if the route has not been reflected and the spine node device has neighbors other than the sending spine node device; if a message with a reflected hop count of 1 is received, the route is received without being reflected; if a message with a hop count exceeding one is received, the route is discarded. The field reflecting the number of route hops can be a mandatory field or can be included only after the route has been reflected.
[0079] In an exemplary embodiment, the inter-group route advertisement carries a preset field, wherein the preset field is used to limit the number of hops of the transit route to one hop.
[0080] In an exemplary embodiment, after the second spine node device receives routing information from the first spine node device in the first group, it also includes: the current second spine node device makes a default route announcement to the second leaf node device and other spine node devices in the second group, wherein the default route announcement carries default prefix information, and the next hop indicated by the default prefix information is the second spine node device. Figure 8 This is the process of the routing advertisement method of the embodiment of the present invention Figure 5 ,like Figure 8 As shown, the process includes the following steps:
[0081] Step S802: The first spine node device receives the intra-group route of the first leaf node device in the first group to obtain routing information.
[0082] Step S804: The second spine node device receives routing information from the first spine node device in the first group.
[0083] In embodiments of the present invention, when spine node roles are unequal, for example, when reaching a destination, some spine node devices have the shortest path, while others have only non-shortest paths. If only the default route is advertised southbound, leaf node devices may select a spine node with a non-shortest path when selecting a path, resulting in a suboptimal path. Therefore, in this case, it is necessary to distinguish between optimal and non-optimal spine node devices when advertising routes.
[0084] Step S806: The current second spine node device announces a default route to the second leaf node device and other spine node devices in the second group, wherein the default route announcement carries default prefix information, and the next hop indicated by the default prefix information is the second spine node device.
[0085] In an exemplary embodiment, after the second spine node device receives routing information from the first spine node device in the first group, it also includes: the current second spine node device calculates the routing information on other spine node devices in the second group, and makes a prefix routing announcement based on the calculation result. Figure 9 This is the process of the routing advertisement method of the embodiment of the present invention Figure 6 ,like Figure 9 As shown, the process includes the following steps:
[0086] Step S902: The first spine node device receives the intra-group route of the first leaf node device in the first group to obtain routing information.
[0087] Step S904: The second spine node device receives routing information from the first spine node device in the first group.
[0088] Step S906: The current second spine node device calculates the routing information on other spine node devices in the second group, and announces the prefix routing based on the calculation result.
[0089] In an embodiment of the present invention, the top-level spine node device node will take itself into the role of calculating the group, and calculate the routes of other top-level spine node device nodes in the group. If the calculation result is that for the routes of some prefixes, this spine node device does not have the shortest path, but there are shortest paths on other spine node devices, then in addition to the default route, this spine node device also needs to announce to the south that this spine node device is unreachable for these prefixes. In the Remote Interface Transfer Protocol (RIFT) protocol, this route is a negative deaggregation route. Alternatively, the route metric / cost to these prefixes is set to the maximum value to indicate that it is a non-optimal route.
[0090] In an exemplary embodiment, prefix routing announcement is performed based on the calculation result, including at least one of the following: when the current second spine node device has a better forwarding path compared with other spine node devices, the current second spine node device makes a prefix routing announcement to the second group, wherein the routing metric / cost of the prefix routing announcement is less than the routing metric / cost of the default routing announcement; when the current second spine node device has a better forwarding path compared with other spine node devices, the current second spine node device makes a prefix routing announcement to the second group, wherein the prefix routing announcement is used to announce that the forwarding route with the next hop being the current second spine node device is a non-optimal route or an unreachable route.
[0091] In an exemplary embodiment, the second spine node device performs prefix routing announcement based on the calculation result, including: the second spine node device performs positive deaggregation routing announcement or negative deaggregation routing announcement through the RIFT protocol based on the calculation result to implement prefix routing announcement.
[0092] The above steps provide a route advertisement method, in which a second spine node receives routing information from a first spine node in a first group. Based on the routing information, the second spine node advertises the route to a second leaf node in a second group. This method addresses the high deployment cost and lack of an automatic forwarding mechanism in the related art Dragonfly+ network, achieving the goal of reducing Dragonfly+ network deployment costs while implementing an automatic forwarding mechanism.
[0093] The execution entity of the above steps may be a base station, a terminal, etc., but is not limited thereto.
[0094] The embodiment of the present invention also provides a message forwarding method, Figure 10 This is the process of the message forwarding method of the embodiment of the present invention Figure 1 ,like Figure 10 As shown, the following steps are included:
[0095] Step S1002: The leaf node device receives a data message and determines whether it is an inter-group data message based on the destination prefix address in the data message.
[0096] Step S1004: When the data message needs to cross the group, the leaf node device forwards the data message to the destination spine node device according to the locally stored forwarding path table.
[0097] In an exemplary embodiment, the data packet carries group identification information of the destination group.
[0098] In an exemplary embodiment, in step S1004, the leaf node device forwards the data packet to the destination spine node device based on the locally stored forwarding path table entry, including: the leaf node device determines the address of the destination spine node device based on the locally stored forwarding path table entry; the leaf node device determines the forwarding path based on the congestion status and routing metric / cost of the forwarding path to forward the data packet to the destination spine node device.
[0099] In an exemplary embodiment, the leaf node device determines a forwarding path based on the congestion status and routing metric / cost of the forwarding path to forward the data packet to the destination spine node device, including: when the congestion status of multiple forwarding paths is not congested and the routing metric / cost is equal, forwarding the data packet to the destination spine node device in accordance with the equal cost multi-path routing ECMP method.
[0100] In an exemplary embodiment, after the leaf node device forwards the data traffic message to the destination spine node device according to the locally stored forwarding path table entry, it also includes: the destination spine node device confirms the available forwarding path according to the path forwarding information and forwards the data message. Figure 11 This is the process of the message forwarding method of the embodiment of the present invention Figure 2 ,like Figure 11 As shown, the following steps are included:
[0101] Step S1102: The leaf node device receives a data message and determines whether it is an inter-group data message based on the destination prefix address in the data message.
[0102] Step S1104: When the data message needs to cross the group, the leaf node device forwards the data message to the destination spine node device according to the locally stored forwarding path table.
[0103] In an exemplary embodiment, the data packet carries group identification information of the destination group.
[0104] Step S1106: The destination spine node device confirms the available forwarding path based on the path forwarding information and forwards the data packet.
[0105] In an exemplary embodiment, before the leaf node device receives the data message, the method further includes: obtaining the correspondence between the data message and the group identification information of the destination group through pre-configuration or message interaction between leaf node devices of different groups.
[0106] In an embodiment of the present invention, before a leaf node device node receives a message, one of the following is also included: 1) Leaf node devices in different groups exchange messages separately to announce the relationship between the destination prefix and the group ID. For example, the leaf node device node acts as a provider edge device (Packet Engine, PE) and exchanges Border Gateway Protocol Virtual Private Network (BGP VPN) routing with the leaf node device nodes in the destination group. When the leaf node device node on the other end announces the VPN routing, it carries the ID information of the group to which it belongs. For example, this information can be carried in the BGP extended community. In this way, the leaf node device node can obtain the group ID information to which the destination prefix belongs. 2) Leaf node devices across groups do not interact with each other, but instead, the correspondence between the message and the group ID is clarified on each leaf node device node through pre-planning / configuration. 3) The message received by the leaf node device node directly carries the destination group ID information. This information can be directly sent to the traffic sending node (such as a server or network card, etc.) through a controller / application, and encapsulated in the message when it sends the message.
[0107] In an exemplary embodiment, the group identification information is sent from the control device to the leaf node device and encapsulated in a data message.
[0108] In an exemplary embodiment, the group identification information is encapsulated in an IPv6 extension header or a reserved field of a data packet.
[0109] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus the necessary general hardware platform, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present invention is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes a number of instructions for enabling a terminal device (which can be a mobile phone, computer, server, or network device, etc.) to execute the methods described in each embodiment of the present invention.
[0110] In this embodiment, a route advertisement device and a message forwarding device are also provided, which are used to implement the above-mentioned embodiments and preferred embodiments. Details already described will not be repeated here. As used below, the term "module" may refer to a combination of software and / or hardware that implements a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, implementation using hardware, or a combination of software and hardware, is also possible and contemplated.
[0111] In an embodiment of the present invention, a route announcement device is used in a DF+ network and can be provided on or applied to a second spine node. The device includes: a receiving module for receiving routing information from a first spine node device in a first group; and an announcement module for issuing a route announcement to a second leaf node device in a second group based on the routing information. In actual implementation, the present invention does not impose specific limitations on the functional division and naming of the modules in the route announcement device, and these can be determined based on actual circumstances, as long as the route announcement method of the above-described embodiment can be implemented.
[0112] In an embodiment of the present invention, a message forwarding device is used in a DF+ network and can be set in a leaf node device or applied to a leaf node device, including: a receiving judgment module for receiving a data message and judging whether it is a cross-group data message based on the destination prefix address in the data message; a forwarding module for forwarding the data message to the destination spine node device according to the locally stored forwarding path table when the data message needs to cross the group. In the actual implementation process, the present invention does not impose specific restrictions on the functional division and naming of the modules in the message forwarding device, and can be determined according to actual conditions, as long as the message forwarding method in the above embodiment can be implemented.
[0113] It should be noted that the above modules can be implemented through software or hardware. For the latter, it can be implemented in the following ways, but not limited to: the above modules are all located in the same processor; or the above modules are located in different processors in any combination.
[0114] An embodiment of the present invention may also provide a spine node device for use in a DF+ network, for executing the routing announcement method in the above embodiment. The spine node device provided in the embodiment of the present invention may include different modules or units, for example, including: a receiving unit for receiving routing information from spine node devices in other groups; and an announcement unit for making routing announcements to leaf node devices in the current group based on the routing information. In actual implementation, the present invention does not impose specific restrictions on the functional division and naming of the units in the spine node device, and can be determined based on actual conditions, as long as the routing announcement method in the above embodiment can be implemented.
[0115] The embodiment of the present invention can also provide a leaf node device for use in a DF+ network, for executing the message forwarding method in the above embodiment. The leaf node device provided by the embodiment of the present invention may include different modules or units, for example, including: a receiving judgment unit for receiving a data message and judging whether it is a cross-group data message based on the destination prefix address in the data message; a forwarding unit for forwarding the data message to the destination spine node device according to the locally stored forwarding path table entry when the data message needs to cross the group. In the actual implementation process, the present invention does not impose specific restrictions on the functional division and naming of the units in the leaf node device, and can be determined according to actual conditions, as long as the message forwarding method in the above embodiment can be implemented.
[0116] An embodiment of the present invention further provides a computer-readable storage medium, in which a computer program is stored. The computer program is configured to execute the steps of any one of the above method embodiments when running.
[0117] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk, or an optical disk.
[0118] An embodiment of the present invention further provides an electronic device, comprising a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.
[0119] In an exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.
[0120] For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary implementation modes, and this embodiment will not be described in detail here.
[0121] Obviously, those skilled in the art will appreciate that the various modules or steps of the present invention described above can be implemented using a general-purpose computing device, can be centralized on a single computing device, or can be distributed across a network of multiple computing devices. They can be implemented using program code executable by the computing device, and thus, can be stored in a storage device and executed by the computing device. In some cases, the steps shown or described herein can be performed in a different order than that shown, or can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, the present invention is not limited to any particular combination of hardware and software.
[0122] In order to enable those skilled in the art to better understand the technical solution of the present invention, the technical solution of the embodiment of the present invention is explained below in conjunction with scenario embodiments.
[0123] Example 1
[0124] In this embodiment of the present invention, the first and second restrictions are no longer applied to different groups. Similarly, the first and second restrictions are no longer applied to spine and leaf node devices. This is because, for groups, the first and second restrictions are only used to distinguish different groups. For spine and leaf node devices, the same is true only to distinguish spine and leaf node devices from different groups. Therefore, in this first and subsequent embodiments, only the restrictions of within the group, the current group, and other groups are applied, and the first and second distinctions are no longer applied.
[0125] Figure 12 Flowchart of the routing advertisement method according to the first embodiment of the present invention. Figure 12 As shown, the following steps are included:
[0126] Step S1201, number each group in the Dragonfly Plus network without overlapping;
[0127] Through configuration, each group in the Dragonfly network is numbered with non-overlapping numbers. Devices can also be tagged with roles to determine whether they are spine devices or leaf devices.
[0128] In an embodiment of the present invention, the marking method includes:
[0129] In OSPF, different area IDs are configured for spine node devices and leaf node devices. For example, leaf node devices are configured as area 1 and spine node devices are configured as area 0.
[0130] In IS-IS, spine node devices and leaf node devices are configured with different level IDs. For example, leaf node devices are configured as level 0 and spine node devices are configured as level 1.
[0131] In RIFT, different level IDs are configured for spine node devices and leaf node devices. For example, leaf node devices are configured as level 0 and spine node devices are configured as level 1.
[0132] Step S1202: Establish routing neighbor relationships of the Dragonfly network;
[0133] In an embodiment of the present invention, routing neighbors are established, including establishing neighbors between each spine node device in the group and the leaf node device in the group; establishing neighbors between spine node devices between groups; and in the interaction process of neighbor establishment messages between groups, the spine node devices carry their respective group IDs.
[0134] In one embodiment, when spine node devices exchange neighbor information, they may also carry information about whether they support the DF+ mode. A neighbor relationship can only be established if both spine node devices support the DF+ mode.
[0135] Step S1203: The spine node device receives the routes announced by the leaf node devices in the group and announces them to the spine node devices outside the group.
[0136] In this embodiment of the present invention, the spine node device receives the route advertised by the leaf node device within the same group, which is equivalent to the first spine node device in the above embodiment receiving the intra-group route of the first leaf node device in the first group. The spine node device outside the group is the second spine node device in the second group.
[0137] In an embodiment of the present invention, when a leaf node device advertises a route within a group, it can modify the next hop address to that device's own address. In one embodiment, the route can carry both the group ID information to which the leaf node device belongs and the destination prefix access / home device, i.e., the group ID information to which the leaf node device advertising the destination prefix belongs.
[0138] Step S1204: The spine node device outside the group receives the route and processes it.
[0139] In this embodiment of the present invention, the spine node device outside the group, i.e., the second spine node device, receives the routing information from the first spine node device and performs the following processing:
[0140] 1) Store the routing information in its own table.
[0141] 2) The routing information is passed to the spine node devices in other groups of the group where the non-sending spine node device is located.
[0142] When a spine node device outside the group, i.e., the second spine node device, announces a route, it needs to modify the next hop to itself. In one embodiment, it can also carry its own group ID. It may also carry the group ID information of the device to which the destination prefix belongs, i.e., the leaf node device announcing the destination prefix belongs.
[0143] In one embodiment, in order to reduce the amount of routing between groups, it may be required to control the routing when passing it to other spine node devices, and limit the number of routing transit hops to one hop.
[0144] In one embodiment, limiting the number of transit hops to one includes: carrying a field in a routing message that records the number of route reflection hops, thereby limiting route reflection to one hop; upon receiving a routing protocol message from another spine node device, a spine node device first checks this field and reflects the route if the route has not been reflected and the spine node device has neighbors other than the sending spine node device; if a message with a reflected hop count of 1 is received, the route is received without being reflected; if a message with a hop count exceeding one is received, the route is discarded. The field reflecting the number of route hops can be a mandatory field or can be included only after the route has been reflected.
[0145] In one embodiment, a field is carried in the routing message to record the number of hops of route reflection. When route reflection is limited to 1 hop, it is determined that the route has not been reflected when the number of hops in the field is 0.
[0146] In one embodiment, when a spine node device receives a routing protocol message sent by other spine node devices, it first checks this field. If the route has not been reflected and the spine node device has neighbors other than the sending spine node device, it will reflect the route. It then determines whether the route has been reflected by whether the routing message carries this field.
[0147] In the above steps, the spine node device outside the group, i.e. the second spine node device, needs to carry path quality information in the routing announcement when making routing announcements, expressed in the form of metrics / costs, etc. The meaning of the path quality information includes but is not limited to routing distance, bandwidth, latency, etc. This information is accumulated as the routing message is transmitted.
[0148] Step S1205: The spine node device notifies the leaf node devices in the group of the routing information.
[0149] In an embodiment of the present invention, a spine node device selects a route based on routes advertised by other spine node devices and advertises the optimal route to the destination prefix to leaf node devices in the group, including:
[0150] First, the spine node device calculates the forwarding path information to the destination address based on the received routing information; then, based on the availability of the path, such as whether the latency and congestion status meet the availability requirements, it selects the table entry with the minimum metric / cost information in the route corresponding to the available path, and then announces the route to the leaf node devices in the group.
[0151] In one embodiment, the routing information advertised to the leaf node devices in the group includes: the destination prefix, routing metric / cost information, the node address of the spine node device as the next hop, and may also include the group ID information to which the destination prefix belongs.
[0152] Step S1206: The leaf node device node receives the routing information and performs routing selection.
[0153] In an embodiment of the present invention, in the case where multiple spine node devices all announce the route of the same prefix to a leaf node device, the leaf node device needs to save multiple routing information. The leaf node device selects the table entry that is not congested and has the smallest routing metric / cost to the spine node device based on the congestion status of the next-hop spine node device. When there are multiple non-congested spine node devices and the routing metrics / costs are equal, multiple table entries can be selected and forwarded in an equal-cost multi-path (ECMP) manner. Table entry selection can also be performed before each leaf node device sends a message.
[0154] Step S1207: The leaf node device performs routing update based on the path status information.
[0155] In the embodiment of the present invention, after the path status changes, if one of the following situations occurs, the routing update process is triggered:
[0156] If all paths to the destination prefix on the spine node device do not meet the availability conditions, the spine node device sends a route withdrawal message to the leaf node device;
[0157] When a new available route is added to the spine node device and its routing metric / cost is the smallest, the spine node device sends a routing update message to the leaf node device to update its routing metric / cost information;
[0158] If the route with the smallest routing metric / cost on the spine node device becomes unavailable, the route with the smallest routing metric / cost among the currently available routes is selected, and the spine node device sends a routing update message to the leaf node device to update its routing metric / cost information.
[0159] In the embodiment of the present invention, it should be noted that the path availability information mentioned above can be the congestion status, delay, bandwidth, queue depth, etc. of the entire path, or it can only include the congestion status, delay, bandwidth, queue depth, etc. of the path to the next hop. This information can be obtained by the device itself by sending a detection message, or it can be centrally obtained by the management and control system and then notified to the device of the path availability status.
[0160] In the first embodiment, according to the above-mentioned routing advertisement method, a message forwarding method is also provided. Figure 13 Flowchart of the message forwarding method of the first embodiment of the present invention, as shown in FIG. Figure 13 As shown, the following steps are included:
[0161] Step S1301: A leaf node device node receives traffic and determines whether the traffic is cross-group traffic based on the destination address of the traffic.
[0162] Step S1302: If traffic needs to cross groups, it is forwarded to the spine node device node according to the local table entry. This may also include the following table entry selection process:
[0163] 1) Determine the next-hop spine node device to the destination address based on the local table entry;
[0164] 2) Based on the congestion status of the leaf node devices to these spine node devices, select the table entry with no congestion and the smallest metric / cost to the spine node device, and forward it to the corresponding spine node device. When there are multiple uncongested spine node devices with equal metric / cost, you can choose to forward it in ECMP mode.
[0165] Step S1303, after the spine node device node receives the traffic, it selects an available path for forwarding.
[0166] In an embodiment of the present invention, the spine node device selects an available path in the following manner:
[0167] 1) Shortest path first, that is, the path with the smallest path quality value is selected, which may be one or more paths;
[0168] 2) Unbalanced ECMP method: some paths are selected from both the shortest path and the non-shortest path, and traffic is load balanced among these paths.
[0169] In the first embodiment, the spine node device can also be configured to change the method of selecting available paths, such as the selection preference and the number of selected paths.
[0170] Example 2
[0171] In the first embodiment, when the spine node device announces the route to the leaf node devices in the group, it still carries the final destination prefix information. In the second embodiment, the route announced by the spine node device to the leaf node devices in the group is the default prefix, which has nothing to do with the prefix within the destination group. The route can be announced after the neighbor establishment and topology learning between the spine node devices are completed. The advantage of this method is that the leaf node device can only see the default route to the destination group, and the number of routing table entries is only related to the number of groups in the network, and has nothing to do with the prefix information on the leaf node devices in other groups, which greatly reduces the number of forwarding table entries on the leaf node devices.
[0172] Figure 14 Flowchart of the routing advertisement method according to the second embodiment of the present invention. Figure 14 As shown, the following steps are included:
[0173] Step S1401: number each group in the Dragonfly Plus network without overlap, and establish a routing neighbor relationship of the Dragonfly Plus network.
[0174] Step S1402: After the spine node device nodes complete the neighbor establishment, they perform routing exchange.
[0175] In an embodiment of the present invention, path quality information needs to be carried during route exchange. In one embodiment, the group ID information to which the spine node device belongs may also be carried. Since the group ID corresponding to the spine node device is already carried when the neighbor relationship is established, even if the group ID is not carried during route exchange, the group from which the route originates can be determined based on the correspondence between the spine node device and the group obtained when the neighbor relationship was established. Therefore, in some routing algorithms, the group ID in route exchange is optional.
[0176] Step S1403: After receiving the topology interaction information sent by other spine node devices, the spine node device node forwards the route to neighboring spine node devices in other groups other than the group where the sender is located.
[0177] In an embodiment of the present invention, in order to reduce the amount of routing between groups, it may be required to control the routing when passing it to other spine node devices, and limit the number of routing transit hops to one hop.
[0178] The method of limiting the number of route transit hops to one hop includes: carrying a field in the routing message, recording the number of hops of route reflection, and limiting the route reflection to 1 hop, wherein the route hop count in the field is 0 to determine that the route has not been reflected. When the spine node device receives a routing protocol message sent by other spine node devices, it first checks the field. If the route has not been reflected and the spine node device has neighbors other than the sending spine node device, the route will be reflected, wherein whether the route has been reflected is determined by whether the routing message carries the field. If a message with a reflected hop count of 1 is received, the route will only be received without being reflected. If a message with a hop count of more than 1 hop is received, it will be discarded. Among them, the field reflecting the number of route hops can be used as a mandatory field, or the field can be carried only after the route has been reflected.
[0179] During the routing advertisement process in the above steps, path quality information needs to be carried in the routing advertisement information, expressed in the form of metrics / costs. The meaning of this path quality information includes but is not limited to routing distance, bandwidth, latency, etc. This information is accumulated as the routing message is transmitted.
[0180] Step S1404: The spine node device performs southbound routing announcement.
[0181] In this embodiment of the present invention, based on the learned topology information, the spine node selects the minimum path quality information from the available table entries for a specific destination group based on path availability. This information is used to advertise southbound routes. The routing information advertised by the spine node includes the destination group ID, the default prefix, the path quality information, and the node address of the spine node as the next hop.
[0182] Step S1405: The leaf node device node receives routing information and performs routing selection.
[0183] In an embodiment of the present invention, when there are multiple next-hop spine node devices to the same destination group, multiple routing information needs to be stored. Based on the congestion status of the next-hop spine node device, the leaf node device selects the next-hop spine node device that is not congested to the destination group and has the lowest metric / cost. When there are multiple uncongested spine node devices with equal metric / cost, multiple entries can be selected and forwarded in an ECMP manner. Entry selection can also be performed before each leaf node device sends a message.
[0184] In the second embodiment, the following steps are also included:
[0185] The spine node device receives the routes announced by the leaf node devices in the group, announces them to the spine node devices outside the group, modifies the next hop to the address of the device itself, and may also carry the group ID information to which it belongs; it may also carry the group ID information to which the leaf node device that announced the destination prefix belongs.
[0186] The second spine node device receives the route and processes it. The difference from the first embodiment is that after the spine node device learns the detailed route on the leaf node device, it only saves it locally and does not notify the leaf node devices in the group.
[0187] The spine node device calculates the forwarding path information to the destination address based on the received routing information and topology information. Then, based on the availability of the path, such as whether the latency and congestion status meet the availability requirements, the spine node device selects a forwarding path from the available paths to form a forwarding entry. The spine node device can also select an entry based on the availability of the path after receiving the leaf node device traffic. Regardless of the step of table entry selection, the spine node device selects an available path for forwarding in a similar way. The methods for selecting available paths include:
[0188] 1) Shortest path first, that is, the path with the smallest path quality value is selected, which may be one or more paths;
[0189] 2) Unbalanced ECMP method: some paths are selected from both the shortest path and the non-shortest path, and traffic is load balanced among these paths.
[0190] In one embodiment, the spine node device can be configured to change its routing method, such as the selection preference and the number of selected paths.
[0191] In the embodiment of the present invention, the order in which the spine node device receives routing information for routing selection and the leaf node device receives routing information for routing selection is not strictly restricted.
[0192] In the second embodiment, a message forwarding method is also provided. Figure 15 Flowchart of the message forwarding method of the second embodiment of the present invention, Figure 15 As shown, the following steps are included:
[0193] Step S1501: A leaf node device node receives a data message and determines the destination group of the message.
[0194] In the embodiment of the present invention, before the leaf node device node receives the message, the method further includes one of the following:
[0195] 1) Leaf nodes in different groups exchange messages independently, announcing the relationship between the destination prefix and the group ID. For example, a leaf node, acting as a provider edge (PE), exchanges BGP VPN routes with leaf nodes in the destination group. When advertising VPN routes, the peer leaf node carries the ID of the group to which it belongs. For example, this information can be carried in a BGP extended community attribute. This allows the leaf node to obtain the group ID information to which the destination prefix belongs.
[0196] 2) Leaf node devices across groups do not interact with each other. Instead, the correspondence between messages and Group IDs is clearly defined on each leaf node device through pre-planning / configuration.
[0197] 3) The message received by the leaf node directly carries the destination group ID information. This information can be directly sent to the traffic sending node (such as a server or network card) through the controller / application, and encapsulated in the message when it is sent.
[0198] Methods for carrying the destination group ID information in a message include: carrying it in a reserved field in the source / destination address, carrying it in the IPv6 extension header, etc.
[0199] Step S1502: The leaf node device forwards the data message to the spine node device.
[0200] In an embodiment of the present invention, the data is forwarded to the next-hop spine node device node according to the destination group ID and the local table entry.
[0201] In one embodiment, the leaf node device forwards the message to the spine node device, and may also include the following table entry selection process: based on the congestion status of the leaf node device to these spine node devices, select the table entry that is not congested and has the smallest metric / cost to the spine node device, and forward it to the corresponding spine node device. When there are multiple non-congested spine node devices and the metric / cost is equal, forwarding can be selected in ECMP mode.
[0202] In an embodiment of the present invention, the data packet forwarding method of the leaf node device may also include: the leaf node device does not have the group ID information to which the destination prefix belongs, and selects a non-congested spine node device as the next hop for forwarding according to a specific algorithm, such as using a random algorithm.
[0203] Step S1503: The spine node device receives the data packet and forwards it.
[0204] In an embodiment of the present invention, when a spine node receives traffic, it directly forwards the traffic according to the pre-selected table entry, or selects the table entry after receiving the traffic and determining the destination.
[0205] Example 3
[0206] In the second embodiment, the default route carrying the group ID further reduces the burden of routing entries on the leaf node device. However, the leaf node device is required to confirm the destination group information before forwarding the message.
[0207] In an embodiment of the present invention, regarding the route announcement from the spine node device to the leaf node device, the default routing method without the group ID is adopted. However, if multiple spine node devices in the same group announce the default route to the group, the leaf node device may randomly select a spine node device that is not the shortest path. In Example 3, this situation is introduced. In Example 3, the spine node device does not carry the group ID when announcing to the south, but it is also necessary to announce the routes of all prefixes.
[0208] Figure 16 Flowchart of the routing advertisement method according to the third embodiment of the present invention. Figure 16 As shown, the following steps are included:
[0209] Step S1601: After the routing neighbor relationship is established, the spine node device nodes exchange routing information.
[0210] In the implementation of the present invention, routing information is exchanged between spine node devices. First, the top-level spine node device of each group obtains global topology information, and then exchanges routing information with other spine node devices.
[0211] In step S1602, the spine node device announces the default routing information to the leaf node device nodes in the Point of Delivery (POD) and any intermediate spine node devices that may exist in the south.
[0212] In embodiments of the present invention, when spine node roles are unequal, for example, when reaching a destination, some spine node devices have the shortest path, while others have only non-shortest paths. If only the default route is advertised southbound, leaf node devices may choose a spine node with a non-shortest path when selecting a path, resulting in a suboptimal path. Therefore, in this case, it is necessary to distinguish between optimal and non-optimal spine node devices during southbound advertising.
[0213] In step S1603, the spine node device calculates the routing information on other spine node devices in the group and announces the prefix routing based on the calculation results.
[0214] In this embodiment of the present invention, the top-level spine node takes on the role of calculating routes for its own group and calculates routes for other top-level spine nodes in the group. If the calculation result shows that the spine node does not have the shortest path for some prefixes, but other spine nodes have the shortest path, then in addition to the default route, the spine node needs to notify the southbound network that the spine node is unreachable for these prefixes. Alternatively, in the RIFT protocol, this route is a negative deaggregation route, or the metric / cost of the route to these prefixes is set to the maximum value.
[0215] In an embodiment of the present invention, another possible method is that the top-level spine node device node brings itself into the calculation of the routes of other top-level spine node device nodes in this group. If the calculation result is that for the routes of some prefixes, this spine node device has the shortest path, and there is no shortest path on other spine node devices, then in addition to the default route, this spine node device also needs to announce to the south that for these prefixes, this spine node device is better. When the metric / cost of these routes is announced to the south, the metric / cost value carried is smaller than that of the default route. In the RIFT protocol, this route is a forward deaggregation route.
[0216] Step S1604: The leaf node device receives routing information and performs path selection.
[0217] In an embodiment of the present invention, a leaf node device receives a route. When there are multiple next-hop spine node devices to the same destination prefix, multiple routing information needs to be saved. Then, route selection is performed: the leaf node device selects the next-hop spine node device that is not congested and has the smallest metric / cost to the destination group based on the congestion status of the next-hop spine node device. When there are multiple non-congested spine node devices and the metric / cost is equal, multiple table entries can be selected and forwarded in an ECMP manner. Another possible way is to perform table entry selection before each leaf node device sends a message.
[0218] In the routing announcement step of Example 3, it also includes the steps of the spine node device receiving routing information for routing selection and the leaf node device receiving routing information for routing selection, and the order thereof is not strictly limited.
[0219] Example 4
[0220] In the fourth embodiment, the routing advertisement method proposed in the first embodiment adopts the forwarding table structure of the first embodiment and takes the RIFT protocol as an example to illustrate the extension of the routing protocol.
[0221] Figure 17 This is a schematic diagram of the service network of dragonfly+ according to the fourth embodiment of the present invention. Figure 17 As shown, the network within a group is a spine-leaf architecture, with loose connections between groups, forming a fully interconnected network. Group AEs are numbered with group IDs 100 / 200 / 300 / 400 / 500, respectively. Server 1 is connected to leaf node c1, with a prefix of prefix1. The routing cost value represents the routing propagation pattern. The rule is that the cost increases by 1 for each hop within a group and by 100 for each hop between groups.
[0222] In this embodiment, the routing advertisement process is as follows:
[0223] Leaf node device c1 advertises the route to spine node devices C1 and C2:
[0224] prefix: prefix1; next-hop: loopback c1; next-hop group id: 300, cost=1.
[0225] Spine devices in group C advertise routes from leaf device 1. For example, spine device C1 establishes routing neighbors with spine devices A2 and E2 based on the network's connectivity and advertises routes to them. The advertised content is: prefix:prefix1; next-hop:loopback C1; next-hop group id:300, with the cost added by 100, which is 101. C2 then advertises routes to B2 and D1. The advertised content is: prefix:prefix1; next-hop:loopback C2; next-hop group id:300; cost 101.
[0226] The process after spine node device A2 receives the route from C1 is as follows:
[0227] 1) Store the route in its own routing table.
[0228] 2) A2 continues to propagate the route. It sends the route to its neighbor D2, excluding C1. The route includes: prefix: prefix1; next-hop: loopbackA2; next-hop group-ID; and cost 201.
[0229] After receiving the route, spine node device D2 finds that no further reflection is needed, so it only stores the route in the routing table. The same process is used for other routes.
[0230] Table 1 Example of path information entry from spine node device A1 to destination prefix
[0231]
[0232] As shown in Table 1, in group A, after route learning is completed, spine node device A1 obtains two paths to Prefix1 through topology learning and calculation.
[0233] Table 2 Example of path information entry from spine node device A2 to the destination prefix
[0234]
[0235] As shown in Table 2, in group A, after route learning is completed, spine node device A2 obtains two paths to Prefix1 through topology learning and calculation.
[0236] In the embodiment of the present invention, Table 1 and Table 2 are exemplary descriptions, which only illustrate information existing on the device and do not represent the actual form of table entries.
[0237] In an embodiment of the present invention, when the spine node device makes a southbound route announcement, A1 first finds that both forwarding paths are not congested based on the path congestion status, then selects the entry with the smallest cost and announces the route to a1 and a2 respectively. The route content is: prefix:prefix1,dst group-id:300; next hop:A1; cost 102, which is the minimum cost 101 on A1. Since it needs to go through another hop within the group, the cost is obtained by adding 1. After the leaf node device a1 receives the route, it stores all the entries. When generating the forwarding table entry, it checks the congestion status from a1 to the next hop. If it is found that the path from a1 to A2 is congested, the entry with the next hop being A1 is selected.
[0238] The southbound route advertised by spine node device A2 is: prefix:prefix1,dst group-id:300; nexthop:A2; cost 102.
[0239] According to the dragonfly+ networking architecture in the fourth embodiment, the embodiment of the present invention also provides a message forwarding method. Figure 18 Flowchart of the message forwarding method of the fourth embodiment of the present invention, as shown in FIG. Figure 18 As shown, the following steps are included:
[0240] Step S1801: Leaf node device a1 receives a data message and sends the data message to spine node device A1 according to the forwarding table entry.
[0241] In step S1802, spine node device A1 receives the message and matches the entry of prefix1 according to the destination address.
[0242] In one embodiment, the paths corresponding to the two entries are not congested, and load balancing forwarding is performed on the two paths according to the adaptive routing policy.
[0243] In an embodiment of the present invention, in order to apply the RIFT protocol to the dragonfly+ topology, the extensions of the RIFT protocol include the following:
[0244] 1) The top-level spine node device in the Dragonfly+ network acts as the Time of Flight (TOF) in the RIFT protocol. The leaf node device in the Dragonfly+ network acts as the leaf node device in the RIFT protocol. A group in the Dragonfly+ network acts as a delivery point (POD) in the RIFT protocol.
[0245] 2) The topology information and reachability information of the RIFT protocol are transmitted through the Topology Information Element (TIE). A new K value type needs to be extended to carry the group ID information in the K value (Key Value, KV) TIE.
[0246] 3) In related technologies, S-TIE only supports carrying default routes and deaggregated routes sent to lower layers. In the dragonfly+ network, S-TIE needs to be extended so that within the group, spine node devices can transmit detailed routing information to leaf node devices through the south topology cell (S-TIE).
[0247] Example 5
[0248] In the fourth embodiment, the spine node device notifies the leaf node device of its preferred route according to the prefix. In the fifth embodiment, the spine node device only notifies the leaf node device of the default route to the destination group.
[0249] Figure 19 This is a diagram of the service network of dragonfly+ according to the fifth embodiment of the present invention. Figure 19As shown in the figure, taking group A and group C as the source and destination groups respectively, the leaf node device serves as the provider edge device PE node in the VPN service, and performs BGP VPN routing interaction through the service RR (service route reflector). In the BGP VPN routing message, the group ID information of the device sending the VPN routing message is carried, which can be carried through the BGP extended community attribute information.
[0250] Leaf node device c1 sends BGP VPN. After receiving the service RR, it reflects it to leaf node device a1. Table 3 is the VPN table entry of leaf node device a1.
[0251] Table 3 VPN entries of leaf node device a1
[0252] Dst IP Dst Group ID VPN Label Prefix CE2 300 3000
[0253] In the embodiment of the present invention, a single routing protocol is run inside the dragonfly+ network. Taking the RIFT protocol as an example, in the fifth embodiment, first, the process of internal configuration and neighbor establishment of the dragonfly+ network is performed.
[0254] The topology learning mechanism within the group remains unchanged. After establishing neighbors, spine node devices conduct topology learning. During the topology exchange process, the group ID information and path cost information of the spine node device need to be carried. For the RIFT protocol, TIE information needs to be sent in the east-west direction, carrying the group ID information, which can be carried in KVTIE. After receiving the east-west TIE information notified by the neighboring node, the spine node device sends the TIE information to other spine node devices except the sending spine node device. In addition, it needs to carry cost information, and the cost information increases with the number of transit hops.
[0255] The TIE message from C2 to B2 contains the following content: neighbor C2, source C2, source group-ID 300, cost 100. After receiving it, B2 forwards it to A1, adding the cost. The message content is as follows: neighbor B2, source C2, source group-ID 300, cost 100. After receiving it, A1 does not send it further because the route has already been forwarded once.
[0256] In addition, A1 also receives a TIE message from C1: neighbor C1, source C1, source group-ID 300, cost 100.
[0257] The above TIE message may also carry a neighbor group ID.
[0258] In this embodiment of the present invention, A1 finds through calculation that there are two paths to group 300, namely:
[0259] A1--C1, cost 100;
[0260] A1--B2--C2, cost 200.
[0261] First, A1 determines path availability based on the path congestion status. Finding both paths available, it chooses the path with the lowest cost, 100. It then advertises the default route indexed by the destination group ID within the group. Because it adds one hop within the group, the cost increases by 1. The route includes: prefix:0 / 0; dst group-ID:300; next-hop:A1; cost 101. Similarly, A2 advertises the following route southbound: prefix:0 / 0; dst group-ID:300; next-hop:A2; cost 101.
[0262] After receiving the route, leaf node device a1 finds that a1-A2 is congested based on the availability status between a1-A1 and a1-A2. Therefore, if the destination message belongs to group 300, it selects the default routing table entry with the next hop A1.
[0263] In one embodiment, within group 300, the leaf node device nodes will also notify the spine node devices of their own routing information to the north according to the existing routing mechanism.
[0264] After receiving the route, spine node C1 advertises the east-west route to the spine nodes outside the group. The destination is the leaf node address, the next hop is the spine node itself, and the route carries the spine node's own group ID information. It can also carry the group ID information of the source leaf node. For example, prefix:prefixc1; next-hop:C1 address; next-hop group300; source group 300; cost 1.
[0265] In the fifth embodiment, the route is announced to the neighboring spine node device, and the neighboring spine node device will forward the route at most once. The detailed route to the leaf node device is only stored on the spine node device and is not further transmitted to the southbound leaf node device.
[0266] In this embodiment of the present invention, leaf node device a1 receives a message from CE1, whose destination address is CE2. By searching its local VPN table, it finds that the destination group ID of the message is 300. It then searches its default routing table and forwards the message to next hop A1. Spine node device A1 receives the message and forwards it.
[0267] In an embodiment of the present invention, the extension of the RIFT protocol includes the following:
[0268] 1) The top-level spine nodes in the Dragonfly+ network act as the TOF role in the RIFT protocol. Any intermediate spine nodes also act as spine nodes in the RIFT protocol. Leaf nodes in the Dragonfly+ network act as leaf nodes in the RIFT protocol. A group in the Dragonfly+ network acts as a Pod in the RIFT protocol.
[0269] 2) The topology and reachability information of the RIFT protocol are transmitted through TIE. A new KV type needs to be extended to carry group ID information in the Key Value (KV) TIE.
[0270] 3) In the related art, S-TIE supports carrying a default route sent to a lower layer, which requires the route to carry group ID information to form a default route indexed by the group ID.
[0271] Example 6
[0272] In Example 6, Figure 17 In the DragonFly+ networking architecture shown in Figure 1, for example, a route from group E to group C is directly connected to spine node E2, resulting in the shortest path. For spine node E1, the route must be routed through either spine node D1 or spine node A1. The neighbor relationship establishment process is not described again in this embodiment.
[0273] In this embodiment of the present invention, the networking within a group is a spine-leaf architecture, with loose connections between groups, forming a fully interconnected network. Groups AE are numbered, with group IDs 100 / 200 / 300 / 400 / 500. Server 1 is connected to leaf node c1, with a prefix of 1. The routing cost value represents the routing propagation pattern, increasing by 1 for each hop within a group and by 100 for each hop between groups.
[0274] Figure 20Flowchart of the route advertisement method according to the sixth embodiment of the present invention. Figure 20 As shown, the following steps are included:
[0275] In step S2001, the leaf node device c1 announces the route to the spine node devices C1 and C2.
[0276] The advertised route content is: prefix:prefix1; next-hop:loopback c1; cost=1.
[0277] Step S2002: Routing announcements are made between spine node devices.
[0278] In an embodiment of the present invention, the routing between spine node devices is announced. The spine node devices in group C respectively announce the routing from leaf node device 1. Taking spine node device C1 as an example, C1 establishes routing neighbors with spine node devices A2 / E2 according to the connection status of the network and announces the routing to them. The announcement content is: prefix: prefix1; next-hop: loopback C1, and the cost plus 100 is 101.
[0279] In this embodiment of the present invention, after route learning between spine node devices is completed, the routing table on spine node device E2 to prefix1 is prefix:prefix1;next-hop:loopback C1;cost101. Since spine node device E1 is not directly connected to spine node device C1 or spine node device C2, the shortest path still requires an intermediate hop. After calculation, the routing table on E2 to prefix1 is prefix:prefix1;next-hop:loopback C1;cost201. E1 and E2 only send the default route to the south: prefix:0 / 0;next-hop:E1;cost101 for E1 and prefix:0 / 0;next-hop:E2;cost101 for E2.
[0280] In this embodiment of the present invention, since E2 can learn the global topology and routing information, E2 can calculate the path information on E1. Through calculation, it is found that for prefix1, the shortest path exists on E2, but not on E1. This triggers the forward deaggregation process. In addition to the default route, E2 sends a detailed route with a cost less than or equal to the default route, which is prefix: prefix1; next-hop: E2; cost 101. This means that under the same conditions, E2 is better when going to prefix1.
[0281] In summary, the embodiments of the present invention provide a routing announcement method and a message forwarding method, setting up two-level routing, the leaf node device nodes do not participate in the global routing, only learn the routes of the spine node devices in the group, and the forwarding path across the group is determined by the spine node device. In one embodiment, the group ID information is carried in the routing announcement, and forwarding is performed with the destination group as the index. In one embodiment, the RIFT protocol extension supports routing in the dragonfly+ network. It solves the problems in the related art that there is no automatic forwarding mechanism based on distributed routing in the dragonfly+ network, and when the network scale is large, a large number of detailed routing tables need to be maintained on the leaf nodes, which puts a heavy burden on the equipment and is not conducive to reducing deployment costs.
[0282] The foregoing description is merely a preferred embodiment of the present invention and is not intended to limit the present invention. Those skilled in the art will readily appreciate that various modifications and variations of the present invention are possible. Any modifications, equivalent substitutions, or improvements made within the principles of the present invention are intended to be within the scope of protection of the present invention.
Claims
1. A routing advertisement method, characterized in that: For Dragonfly Plus network, including: The second spine node device receives routing information from the first spine node device in the first group; The second spine node device performs a routing announcement to the second leaf node device in the second group based on the routing information.
2. The method according to claim 1, characterized in that Before the second spine node device receives routing information from the first spine node device in the first group, the method further includes: The first spine node device receives the intra-group route of the first leaf node device in the first group to obtain the routing information.
3. The method according to claim 1, characterized in that Before the second spine node device receives routing information from the first spine node device in the first group, the method further includes: Numbering each group in the Dragonfly Plus network in a non-overlapping manner and marking the roles of network devices in each group to distinguish spine node devices from leaf node devices; A routing neighbor relationship of the Dragonfly Plus network is established to obtain routing information of the Dragonfly Plus network.
4. The method according to claim 3, characterized in that The manner of marking the roles of the network devices in each group includes at least one of the following: In an Open Shortest Path First (OSPF) protocol, configuring different area numbers for the spine node device and the leaf node device; In an intermediate system to intermediate system (IS-IS) routing protocol, configuring different location numbers for the spine node device and the leaf node device; In the fat tree routing RIFT protocol, different location numbers are configured for the spine node device and the leaf node device.
5. The method according to claim 3, characterized in that The routing neighbor relationship includes at least: Intra-group routing neighbor relationships between spine and leaf devices in the same group; Routing neighbor relationships between spine node devices in different groups.
6. The method according to claim 5, characterized in that in, The interactive information for establishing the routing neighbor relationship of the Dragonfly Plus network includes at least one of the following: Group identification information of each of the spine node devices in different groups; The routing mode support capability information of the Dragonfly Plus network for each of the spine node devices in different groups.
7. The method according to claim 1, characterized in that After the second spine node device receives routing information from the first spine node device in the first group, the method further includes: The second spine node device performs cross-group routing announcement based on the routing information.
8. The method according to claim 7, characterized in that The second spine node device performs cross-group routing notification according to the routing information, including: The second spine node device sends a cross-group routing announcement to other neighboring spine node devices except the first spine node device, wherein the cross-group routing announcement carries a next-hop address, and the next-hop address is the address of the corresponding second spine node device.
9. The method according to claim 8, characterized in that in, The inter-group routing advertisement also carries group identification information to which the leaf node device of the destination prefix belongs.
10. The method according to claim 8, characterized in that in, The cross-group routing announcement also carries the group identification information of the second spine node device.
11. The method according to claim 7, characterized in that in, The number of transit hops of the inter-group routing advertisement is one hop.
12. The method according to claim 11, characterized in that in, The inter-group routing advertisement carries a preset field, wherein the preset field is used to limit the number of hops of the transit route to one hop.
13. The method according to claim 1, wherein The second spine node device performs a route advertisement to a second leaf node device in the second group according to the routing information, including: The second spine node device obtains forwarding path information of the destination address according to the routing information and selects available path information; The second spine node device performs routing announcement to the leaf node devices in the second group based on the available path information to complete intra-group routing announcement within the second group.
14. The method according to claim 13, characterized in that in, The intra-group routing advertisement includes at least one of the following: Destination prefix information; Routing metric / cost information; Node address information of the next-hop spine node device; Group identification information of the second spine node device; The group identification information of the leaf node device corresponding to the destination prefix.
15. The method according to claim 13, characterized in that The second spine node device performs a route advertisement to the leaf node devices in the second group according to the available path information, including: In the case where multiple second spine node devices make routing announcements of the same target prefix to the same leaf node device, the leaf node device receives and stores multiple pieces of available path information.
16. The method according to claim 1, wherein After the second spine node device performs a routing advertisement to a second leaf node device in the second group according to the routing information, the method further includes: When the state of the path to the destination prefix changes, the routing information of the second leaf node device in the second group is updated.
17. The method according to claim 16, characterized in that in, The situation where the path status to the destination prefix changes includes at least one of the following: All forwarding path information of the second spine node device to the destination prefix does not meet the availability condition; A newly added routing advertisement path of the second spine node device, wherein the routing metric / cost of the newly added routing advertisement path is minimized; The forwarding path information corresponding to the minimum routing metric / cost of the second spine node device is not available.
18. The method according to claim 1, wherein After the second spine node device receives routing information from the first spine node device in the first group, the method further includes: The current second spine node device broadcasts a default route announcement to the second leaf node device and other spine node devices in the second group, wherein the default route announcement carries default prefix information, and the next hop indicated by the default prefix information is the second spine node device.
19. The method according to claim 18, characterized in that After the second spine node device receives routing information from the first spine node device in the first group, the method further includes: The current second spine node device calculates the routing information on other spine node devices in the second group and makes a prefix routing announcement based on the calculation result.
20. The method according to claim 19, characterized in that The performing prefix routing advertisement according to the calculation result includes at least one of the following: When the second spine node device has a better forwarding path than other spine node devices, the second spine node device advertises a prefix route to the second group, wherein the routing metric / cost of the prefix route advertisement is less than the routing metric / cost of the default route advertisement; When the current second spine node device has a better forwarding path than other spine node devices, the current second spine node device performs a prefix route announcement to the second group, wherein the prefix route announcement is used to announce that the forwarding route with the next hop being the current second spine node device is a non-optimal route or an unreachable route.
21. The method according to claim 19, wherein in, The second spine node device performs prefix routing notification according to the calculation result, including: The second spine node device performs a positive de-aggregation routing announcement or a negative de-aggregation routing announcement through the RIFT protocol according to the calculation result to implement the prefix routing announcement.
22. A message forwarding method, characterized in that: include: The leaf node device receives the data message and determines whether it is an inter-group data message according to the destination prefix address in the data message; In the case where the data message needs to cross groups, the leaf node device forwards the data message to the destination spine node device according to the locally stored forwarding path table entry.
23. The method according to claim 22, characterized in that The leaf node device forwards the data message to the destination spine node device according to the locally stored forwarding path table entry, including: The leaf node device determines the destination spine node device address based on the locally stored forwarding path table entry; The leaf node device determines a forwarding path based on the congestion status and routing metric / cost of the forwarding path to forward the data message to the destination spine node device.
24. The method according to claim 23, wherein The leaf node device determines a forwarding path according to the congestion status and routing metric / cost of the forwarding path to forward the data message to the destination spine node device, including: When the congestion status of multiple forwarding paths is not congested and the routing metrics / costs are equal, the data message is forwarded to the destination spine node device in accordance with the equal cost multi-path routing ECMP method.
25. The method according to claim 22, wherein After the leaf node device forwards the data traffic message to the destination spine node device according to the locally stored forwarding path table entry, the method further includes: The destination spine node device confirms the available forwarding path based on the path forwarding information and forwards the data message.
26. The method according to claim 22, characterized in that Before the leaf node device receives the data message, the method further includes: The correspondence between the data message and the group identification information of the destination group is obtained through pre-configuration or message interaction between leaf node devices of different groups.
27. The method according to claim 22, wherein The leaf node device forwards the data message to the destination spine node device, wherein the data message carries the group identification information of the destination group.
28. The method according to claim 27, characterized in that in, The group identification information is sent from the control device to the leaf node device and encapsulated in the data message.
29. The method according to claim 27, characterized in that in, The group identification information is encapsulated in an IPv6 extension header or a reserved field of the data message.
30. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, the method described in any one of claims 1 to 29 is implemented.
31. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the computer program, the method according to any one of claims 1 to 29 is implemented.
Citation Information
Cited By
Routing advertisement method, packet forwarding method, storage medium, and electronic apparatus
WO2025185145A1