CN113285878A - Load sharing method and first network equipment - Google Patents

Load sharing method and first network equipment Download PDF

Info

Publication number
CN113285878A
CN113285878A CN202010194777.1A CN202010194777A CN113285878A CN 113285878 A CN113285878 A CN 113285878A CN 202010194777 A CN202010194777 A CN 202010194777A CN 113285878 A CN113285878 A CN 113285878A
Authority
CN
China
Prior art keywords
load sharing
bier
link
network device
sharing group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010194777.1A
Other languages
Chinese (zh)
Other versions
CN113285878B (en
Inventor
谢经荣
夏阳
刘学海
张峰
秦苏林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2020/116048 priority Critical patent/WO2021164245A1/en
Publication of CN113285878A publication Critical patent/CN113285878A/en
Application granted granted Critical
Publication of CN113285878B publication Critical patent/CN113285878B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The application provides a load sharing method, which comprises the following steps: determining a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of first network equipment according to a Bit Index Forwarding Table (BIFT), wherein the first load sharing group comprises at least two link interfaces between the first network equipment and the first BFR neighbor, and the at least two link interfaces are used for forwarding a BIER message in a load sharing manner; the first network equipment performs modular operation on the number of the link interfaces with available states in the first load sharing group according to the message header information of the BIER message to obtain the first link interfaces in the first load sharing group; and forwarding the BIER message to the first BFR neighbor through the first link interface. The technical scheme provided by the application can reduce the overhead of the BIFT list items under the condition of realizing load balance, and saves the memory space.

Description

Load sharing method and first network equipment
Technical Field
The present application relates to the field of network communications, and more particularly, to a method and a first network device for load sharing.
Background
The Internet Protocol (IP) multicast technology realizes the high-efficiency data transmission from point to multipoint in the IP network, and can effectively save the network bandwidth and reduce the network load. For this reason, a new technique for constructing a multicast data forwarding path is proposed in the industry, which is called bit-indexed explicit replication (BIER) technique, and this technique proposes a new multicast technical architecture that does not require the construction of a multicast distribution tree.
In the forwarding process of the BIER packet, a bit index forwarding table (bit index forwarding table, BIFT) needs to be established, so that the node in the BIER domain forwards the packet according to the BIFT and a bit string (bit string) carried in the BIER header, and the original multicast data packet can be sent to all destination addresses.
In a scenario where multiple parallel links exist between two nodes that forward a BIER packet, in a conventional technical scheme, multiple BIFT entries need to be established in order to implement load sharing, and if load sharing balancing is further to be implemented, more BIFT entries need to be established. Therefore, in the conventional technical scheme, the overhead of the BIFT table entry is large, and a large memory space is occupied.
Therefore, how to reduce the overhead of the BIFT table entry becomes a technical problem which needs to be solved urgently at present under the condition of realizing load sharing balance.
Disclosure of Invention
The application provides a load sharing method and a first network device, which can reduce the overhead of the BIFT table entry and save the memory space under the condition of realizing load balancing.
In a first aspect, a method for load sharing is provided, including: a first network device determines a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of the first network device according to a Bit Index Forwarding Table (BIFT), wherein the first load sharing group comprises at least two link interfaces between the first network device and the first BFR neighbor, and the at least two link interfaces are used for forwarding an explicit copy BIER message based on a bit index in a load sharing manner; the first network equipment performs modular operation on the number of the link interfaces with available states in the first load sharing group according to the message header information of the BIER message to obtain a first link interface in the first load sharing group; and the first network equipment forwards the BIER message to the first BFR neighbor through the first link interface.
It should be noted that in the present application, that a link interface of a network device is in an available state (up) may be understood as that a link of the network device is normal, and may perform packet forwarding. The link interface of the network device is in a down state (down), which can be understood as a link failure of the network device and cannot forward a message.
The first link interface of the first network device may be a member of a first load sharing group, and the link interfaces in the first load sharing group may all be in an available state or a partially unavailable state. The number of link interfaces in the first load sharing group may be an integer greater than 1, which is not specifically limited in this application.
It should be understood that in the embodiments of the present application, "member" may refer to an interface, including an ethernet port, where the network device in the load sharing group is connected to the load sharing link.
The embodiment of the present application does not specifically limit the header information of the BIER packet. Taking the example that the BIER message includes a BIER header and an inner layer multicast message, the message header information is a value of an entropy field in the BIER header. Taking the BIER packet including an outer layer IPv6 header, a BIER header, and an inner layer multicast packet as an example, the packet header information is a value of a flow label field in an IPv6 header, or a result obtained by performing hash calculation on a value of a source IP address field in an IPv6 header according to the value of the flow label field.
In the above technical solution, for a scenario where there are multiple parallel links between two nodes, the multiple parallel links between two nodes may be configured as a parallel link group, a parallel link group is determined in a BIFT entry according to a next-hop BFR neighbor, and then a link in the parallel link group is selected by a modulo algorithm to forward a BIER packet. Therefore, the BIFT table entries can be reduced, the uniform distribution of the flow can be realized, and the purpose of load balancing is achieved.
It should be understood that a parallel link in this application may be understood as a scenario where there are multiple physical links between two nodes.
In a possible implementation manner, the first network device may directly receive the BIER packet, and forward the BIER packet to the first BFR neighbor through the first link interface.
In another possible implementation manner, the first network device receives a multicast packet, and the first network device may further perform BIER encapsulation on the multicast packet to obtain a BIER packet, and forward the BIER packet to the first BFR neighbor through the first link interface.
In another possible implementation manner, before the first network device determines, according to a Bit Index Forwarding Table (BIFT), a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of the first network device, the method further includes: the first network equipment generates a first Bit Index Routing Table (BIRT), wherein the first BIRT comprises the identifier of the first BFR neighbor and the identifier of the first load sharing group; and the first network equipment establishes the BIFT according to the first BIRT.
It should be understood that before the above-mentioned bit is formed, routing information of the BIER, i.e. a Bit Index Routing Table (BIRT), needs to be established. The BIRT is embodied as a BFR neighbor (BFR-NBR) to the BFER node, and the BIRT may also contain next hop-out interface information to the BFR-NBR. The technical scheme also includes that the BIRT before generating the BIFT table entry contains an identifier of the first BFR neighbor and an identifier of the first load sharing group.
In another possible implementation manner, the method further includes: the first network device generates a second BIRT, where the second BIRT includes an identifier of a second BFR neighbor of the first network device and an identifier of a second load sharing group, the second load sharing group includes at least two link interfaces between the first network device and the second BFR neighbor, and the at least two link interfaces are used to forward the BIER packet in a load sharing manner; and the first network equipment establishes the BIFT according to the second BIRT, wherein the BIFT comprises the second BFR neighbor and the second load sharing group.
In another possible implementation manner, the method further includes: and the first network device determines a first state table entry corresponding to the first load sharing group according to the identifier of the first load sharing group, where the first state table entry includes the number of link interfaces in the first load sharing group whose states are available.
In another possible implementation manner, the BIER packet includes a BIER header and an inner layer multicast packet, and the packet header information is a value of an entropy field in the BIER header.
In another possible implementation manner, the BIER packet includes an IPv6 header of the sixth version of the internet protocol and an inner-layer multicast packet, where the IPv6 header includes a source IP address field and a flow label field, and the packet header information is a value of the flow label field, or a result obtained by performing hash calculation on a value of the source IP address field according to the value of the flow label field.
In another possible implementation manner, the method further includes: if the state of the first link interface is unavailable, the first network device performs modular operation on the number of the link interfaces with the available state in the first load sharing group according to the message header information of the BIER message to obtain a second link interface which forwards the BIER message in the first load sharing group; and the first network equipment forwards the BIER message to the first BFR neighbor through the second link interface.
In another possible implementation manner, the method further includes: and the first network equipment determines the state of the first link interface as unavailable according to the state of each link interface in the first load sharing group.
In another possible implementation manner, the state of each link interface in the first load sharing group is a bit string with K bits, where K is a positive integer greater than 1, a position of each bit in the bit string represents one link interface in the first load sharing group, a value of the bit represents state information of the link interface, and the first network device determines that the state of the first link interface is unavailable according to a value of a bit corresponding to the first link interface in the bit string.
In a second aspect, a first network device is provided, which includes:
a determining module, configured to determine, according to a Bit Index Forwarding Table (BIFT), a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of a first network device, where the first load sharing group includes at least two link interfaces between the first network device and the first BFR neighbor, and the at least two link interfaces are used to forward an explicit duplicate BIER packet based on a bit index in a load sharing manner;
the determining module is further configured to perform a modular operation on the number of link interfaces in the first load sharing group that are available in the state according to the header information of the BIER packet, so as to obtain a first link interface in the first load sharing group;
a sending module, configured to forward the BIER packet to the first BFR neighbor through the first link interface.
It should be noted that in the present application, that a link interface of a network device is in an available state (up) may be understood as that a link of the network device is normal, and may perform packet forwarding. The link interface of the network device is in a down state (down), which can be understood as a link failure of the network device and cannot forward a message.
The first link interface of the first network device may be a member of a first load sharing group, and the link interfaces in the first load sharing group may all be in an available state or a partially unavailable state. The number of link interfaces in the first load sharing group may be an integer greater than 1, which is not specifically limited in this application.
It should be understood that in the embodiments of the present application, "member" may refer to an interface, including an ethernet port, where the network device in the load sharing group is connected to the load sharing link.
The embodiment of the present application does not specifically limit the header information of the BIER packet. Taking the example that the BIER message includes a BIER header and an inner layer multicast message, the message header information is a value of an entropy field in the BIER header. Taking the BIER packet including an outer layer IPv6 header, a BIER header, and an inner layer multicast packet as an example, the packet header information is a value of a flow label field in an IPv6 header, or a result obtained by performing hash calculation on a value of a source IP address field in an IPv6 header according to the value of the flow label field.
In one possible implementation manner, the first network device further includes: and the receiving module is used for receiving the BIER message.
In another possible implementation manner, the receiving module is configured to receive a multicast packet, and the first network device further includes an encapsulating module configured to perform BIER encapsulation on the multicast packet to obtain a BIER packet.
In another possible implementation manner, the method further includes:
a generation module to: generating a first Bit Index Routing Table (BIRT), wherein the first BIRT comprises an identifier of the first BFR neighbor and an identifier of the first load sharing group;
the generating module is further configured to establish the BIFT according to the first BIRT.
In another possible implementation manner, the generating module is further configured to: generating a second BIRT, where the second BIRT includes an identifier of a second BFR neighbor of the first network device and an identifier of a second load sharing group, where the second load sharing group includes at least two link interfaces between the first network device and the second BFR neighbor, and the at least two link interfaces are used to forward the BIER packet in a load sharing manner;
the generation module is further configured to: and establishing the BIFT according to the second BIRT, wherein the BIFT also comprises the second BFR neighbor and the second load sharing group.
In another possible implementation manner, the determining module is further configured to: and determining a first state table entry corresponding to the first load sharing group according to the identifier of the first load sharing group, where the first state table entry includes the number of link interfaces in the first load sharing group whose states are available.
In another possible implementation manner, the BIER packet includes a BIER header and an inner layer multicast packet, and the packet header information is a value of an entropy field in the BIER header.
In another possible implementation manner, the BIER packet includes an IPv6 header of the sixth version of the internet protocol and an inner-layer multicast packet, where the IPv6 header includes a source IP address field and a flow label field, and the packet header information is a value of the flow label field, or a result obtained by performing hash calculation on a value of the source IP address field according to the value of the flow label field.
In another possible implementation manner, the determining module is further configured to: if the state of the first link interface is unavailable, performing modular operation on the number of the link interfaces with the available state in the first load sharing group according to the message header information of the BIER message to obtain a second link interface which forwards the BIER message in the first load sharing group;
the sending module is further configured to: and forwarding the BIER message to the first BFR neighbor through the second link interface.
In another possible implementation manner, the determining module is further configured to: and determining the state of the first link interface as unavailable according to the state of each link interface in the first load sharing group.
In another possible implementation manner, the state of each link interface in the first load sharing group is a bit string with K bits, where K is a positive integer greater than 1, the position of each bit in the bit string represents a link interface in the first load sharing group, the value of the bit represents state information of the link interface,
the determining module is specifically configured to: and determining the state of the first link interface as unavailable according to the value of the bit corresponding to the first link interface in the bit string.
The beneficial effects of the second aspect and any one of the possible implementation manners of the second aspect correspond to the beneficial effects of the first aspect and any one of the possible implementation manners of the first aspect, and therefore, the detailed description is omitted here.
In a third aspect, a first network device is provided that includes a processor, a memory, an interface, and a bus. The interface may be implemented by a wireless or wired manner, and specifically may be a network card. The processor, the memory and the interface are connected by a bus.
The interface may specifically include a transmitter and a receiver for the first network device to implement the transceiving described above. For example, the interface is used to support the reception of explicit duplicate messages of bit indices. For another example, the interface is configured to support forwarding the BIER packet to the first BFR neighbor via the first link interface. For another example, the interface is configured to support forwarding the BIER packet to the first BFR neighbor via the second link interface.
The processor is configured to perform the processing performed by the first network device in the above-described embodiment. For example, the processor is configured to determine, according to a Bit Index Forwarding Table (BIFT), a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of the first network device; and/or other processes for the techniques described herein. The memory includes an operating system and an application program for storing programs, codes or instructions that when executed by the processor or hardware device may perform the processes of the method embodiments involving the first network device. Alternatively, the memory may include a read-only memory (ROM) and a Random Access Memory (RAM). Wherein, the ROM includes a basic input/output system (BIOS) or an embedded system; the RAM includes application programs and an operating system. When the first network device needs to be operated, the first network device is booted to enter a normal operation state by starting a boot system in a BIOS (basic input/output system) solidified in a ROM (read only memory) or an embedded system. And after the first network equipment enters a normal operation state, the application program and the operating system which are operated in the RAM, thereby completing the processing procedures related to the first network equipment in the method embodiment.
Specifically, the processor is configured to perform:
determining a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of the first network device according to a Bit Index Forwarding Table (BIFT), wherein the first load sharing group comprises at least two link interfaces between the first network device and the first BFR neighbor, and the at least two link interfaces are used for forwarding an explicit copy BIER message based on a bit index in a load sharing manner; performing a modular operation on the number of the link interfaces in the first load sharing group, the number of which is in an available state, according to the message header information of the BIER message to obtain a first link interface in the first load sharing group; and forwarding the BIER message to the first BFR neighbor through the first link interface.
In the above technical solution, for a scenario where there are multiple parallel links between two nodes, the multiple parallel links between two nodes may be configured as a parallel link group, a parallel link group is determined in a BIFT entry according to a next-hop BFR neighbor, and then a link in the parallel link group is selected by a modulo algorithm to forward a BIER packet. Therefore, the BIFT table entries can be reduced, the uniform distribution of the flow can be realized, and the purpose of load balancing is achieved.
It should be understood that a parallel link in this application may be understood as a scenario where there are multiple physical links between two nodes.
In another possible implementation manner, before the first network device determines, according to a Bit Index Forwarding Table (BIFT), a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of the first network device, the method further includes: generating a first Bit Index Routing Table (BIRT), wherein the first BIRT comprises an identifier of the first BFR neighbor and an identifier of the first load sharing group; and establishing the BIFT according to the first BIRT.
It should be understood that before the above-mentioned bit is formed, routing information of the BIER, i.e. a Bit Index Routing Table (BIRT), needs to be established. The BIRT is embodied as a BFR neighbor (BFR-NBR) to the BFER node, and the BIRT may also contain next hop-out interface information to the BFR-NBR. The technical scheme also includes that the BIRT before generating the BIFT table entry contains an identifier of the first BFR neighbor and an identifier of the first load sharing group.
In another possible implementation manner, the method further includes: generating a second BIRT, where the second BIRT includes an identifier of a second BFR neighbor of the first network device and an identifier of a second load sharing group, where the second load sharing group includes at least two link interfaces between the first network device and the second BFR neighbor, and the at least two link interfaces are used to forward the BIER packet in a load sharing manner; and establishing the BIFT according to the second BIRT, wherein the BIFT also comprises the second BFR neighbor and the second load sharing group.
In another possible implementation manner, the method further includes: and determining a first state table entry corresponding to the first load sharing group according to the identifier of the first load sharing group, where the first state table entry includes the number of link interfaces in the first load sharing group whose states are available.
In another possible implementation manner, the BIER packet includes a BIER header and an inner layer multicast packet, and the packet header information is a value of an entropy field in the BIER header.
In another possible implementation manner, the BIER packet includes an IPv6 header of the sixth version of the internet protocol and an inner-layer multicast packet, where the IPv6 header includes a source IP address field and a flow label field, and the packet header information is a value of the flow label field, or a result obtained by performing hash calculation on a value of the source IP address field according to the value of the flow label field.
In another possible implementation manner, the method further includes: if the state of the first link interface is unavailable, performing modular operation on the number of the link interfaces with the available state in the first load sharing group according to the message header information of the BIER message to obtain a second link interface which forwards the BIER message in the first load sharing group; and forwarding the BIER message to the first BFR neighbor through the second link interface.
In another possible implementation manner, the method further includes: and determining the state of the first link interface as unavailable according to the state of each link interface in the first load sharing group.
In another possible implementation manner, the state of each link interface in the first load sharing group is a bit string with K bits, where K is a positive integer greater than 1, a position of each bit in the bit string represents one link interface in the first load sharing group, a value of the bit represents state information of the link interface, and the first network device determines that the state of the first link interface is unavailable according to a value of a bit corresponding to the first link interface in the bit string.
It will be appreciated that in actual practice, the first network device may contain any number of interfaces, processors, or memories.
In a fourth aspect, there is provided a computer program product comprising: computer program code which, when run on a computer, causes the computer to perform the method of the above-mentioned aspects.
In a fifth aspect, a computer-readable medium is provided, which stores program code, which, when run on a computer, causes the computer to perform the method of the above-mentioned aspects. These computer-readable memories include, but are not limited to, one or more of the following: read-only memory (ROM), Programmable ROM (PROM), Erasable PROM (EPROM), Flash memory, Electrically EPROM (EEPROM), and hard drive (hard drive).
In a sixth aspect, a chip is provided, where the chip includes a processor and a data interface, where the processor reads instructions stored in a memory through the data interface to execute the method of the first aspect or any one of the possible implementation manners of the first aspect. In a specific implementation process, the chip may be implemented in the form of a Central Processing Unit (CPU), a Micro Controller Unit (MCU), a Micro Processing Unit (MPU), a Digital Signal Processor (DSP), a system on chip (SoC), an application-specific integrated circuit (ASIC), a Field Programmable Gate Array (FPGA), or a Programmable Logic Device (PLD).
In a seventh aspect, a system is provided, which includes the above first network device.
Drawings
Fig. 1 is a schematic networking diagram of a BIER technology provided in an embodiment of the present application.
Fig. 2 is a schematic diagram of a BIER header format according to an embodiment of the present disclosure.
Fig. 3 is a process of establishing a BIER forwarding table and forwarding BIER messages based on the BIER technology.
Fig. 4 is a schematic diagram of a packet format encapsulated by BIERv6 according to an embodiment of the present application.
Fig. 5 is a schematic diagram of a possible application scenario applicable to the present application.
Fig. 6 is a schematic flowchart of a load sharing method provided in an embodiment of the present application.
Fig. 7 is a schematic structural diagram of a first network device 700 according to an embodiment of the present application.
Fig. 8 is a schematic hardware configuration diagram of the first network device 2000 according to an embodiment of the present application.
Fig. 9 is a schematic hardware configuration diagram of another first network device 2100 according to an embodiment of the present application.
Detailed Description
The technical solution in the present application will be described below with reference to the accompanying drawings.
Multicast (multicast) is a data transmission method for transmitting data to a plurality of receivers on a Transmission Control Protocol (TCP)/Internet Protocol (IP) network in an efficient manner at the same time by using one multicast address. The multicast source sends a multicast stream to the multicast group members in the multicast group through the link in the network, and the multicast group members in the multicast group can all receive the multicast stream. The multicast transmission mode realizes point-to-multipoint data connection between a multicast source and multicast group members. Since the multicast stream only needs to be delivered once per network link, and the multicast is replicated only when a branch occurs on the link. Therefore, the multicast transmission mode improves the data transmission efficiency and reduces the possibility of congestion of the backbone network.
The Internet Protocol (IP) multicast technology realizes the high-efficiency data transmission from point to multipoint in the IP network, and can effectively save the network bandwidth and reduce the network load. Therefore, the method and the device have wide application in real-time data transmission, multimedia conferences, data copying, Internet Protocol Television (IPTV), games, simulation and other aspects. The multicast technology uses a multicast protocol to construct a control plane multicast tree, and then uses the multicast tree to logically tree a network plane so as to realize multicast point-to-multipoint data forwarding. The intermediate nodes taking the distribution tree as the core need to maintain complex multicast forwarding information states. With the increasing network size and the increasing multicast data traffic, the multicast technology faces increasing cost and operation and maintenance challenges.
For this reason, a new technique for constructing a multicast data forwarding path, called Bit Indexed Explicit Replication (BIER) technique, is proposed in the industry, and the technique proposes a multicast technical architecture without constructing a multicast distribution tree. As shown in fig. 1, a router supporting the BIER technology is called a Bit-forwarding router (BFR), and the BFR may receive and forward BIER packets. One multicast forwarding domain consisting of one or more of the above BFRs is called BIER domain. At the entrance of the BIER domain, the BFR that performs BIER encapsulation on the original multicast data packet is called a BIER forwarding entry router (BFIR). At the exit of the BIER domain, the BFR decapsulating the original multicast data packet from the BIER packet is called BIER Forwarding Egress Router (BFER). It should be understood that BFIR and BFER in the BIER domain may be referred to as edge BFR in the BIER domain.
For ease of understanding, BIER technology is described in detail below in conjunction with fig. 2-4.
In the BIER domain, the edge BFR may be configured with a bit position (bit position) identification that is globally unique across the BIER Subdomain (SD). As an example, each edge BFR may be configured with a value as a BFR identification (BFR ID), e.g., the BFR ID may be a value between 1-256. All BFR IDs in the BIER field constitute a bit string.
For example, one possible BIER message format is: BIER header + original multicast data message. Specifically, when the original multicast data packet is transmitted in the BIER domain, a specific BIER header needs to be additionally encapsulated. All destination nodes of the original multicast data message are marked in the BIER head in a bit string mode. The BFR in the BIER domain may forward according to a Bit Index Forwarding Table (BIFT) and a bit string carried in the BIER header, so as to ensure that the original multicast data packet can be sent to all destination addresses.
It should be understood that the original multicast data packet behind the BIER header may be an internet protocol version 6 (IPv 6) multicast packet, or may also be an internet protocol version 4 (IPv 4) multicast packet.
Fig. 2 is a schematic block diagram of one possible BIER header format. As shown in fig. 2, the BIER header may include, but is not limited to: a bit index forwarding table identifier (bifid) with a length of 20 bits, a Bit String Length (BSL), and other fields of 64 bits (8 bytes), such as a Transport Class (TC), a Traffic Class (TC), an entropy field, a version number (Ver), a proto field, etc. of the original multicast data packet after the BIER header. The fields in the BIER header are described in detail below.
(1) BIFT ID field
The length is 20 bits, and the label (label, L) is encapsulated by BIER-multiprotocol label switching (MPLS). The BIFT ID may be a BIFT-ID, and may include a combination of sub-domain (SD)/Bit String Length (BSL)/Set Identifier (SI), and different BIFT IDs may correspond to different SD/BSL/SI combinations.
1. Sub-field SD
One BIER domain may be configured as different sub-domains SD according to the requirements of the actual service scenario, and each sub-domain SD is represented by a sub-domain identifier (SD-ID). For example, the SD-ID takes on values of [0-255] and has a length of 8 bits. As an example, depending on the service, for example, a Virtual Private Network (VPN), the BIER domain may be configured to have different SDs, and the different VPNs may be configured to use different SDs. For example, SD 0 is used for VPN 1, and SD 1 is used for VPN 2.
2. Bit String Length (BSL)
BSL is the length of the bit string included in the BIER header. The BSL may be various, and this is not particularly limited in the embodiments of the present application. Specifically, the message is identified by 4 bits, for example, when the BSL is 64 bits, the message is identified by 0001, when the BSL is 128 bits, the message is identified by 0010, when the BSL is 512 bits, the message is identified by 0100, and so on.
3. Set identifier (set index, SI)
SI may be understood as a collection of edge BFRs or configured BFR IDs in the network. As an example, the BSL is 256 bits, but there are more than 256 edge BFRs in the network, or more than 256 configured BFR IDs, then these edge BFRs or BFR IDs need to be divided into different sets. For example, 256 edge BFRs with BFR IDs 1 to 256 are set 0(set index0, or SI ═ 0), and 256 edge BFRs with BFR IDs 257 to 512 are set 1(set index 1, or SI ═ 1).
After receiving the BIER message, the BFR in the BIER domain may determine which SD the BIER message belongs to, the BSL used, and which SI of the BSL the message belongs to according to the BIFT ID in the BIER header.
(2) Bit string field
Each bit in the bit string is used to identify the edge BFR, e.g., the lower (rightmost) bit of the bit string is used to identify the BFER with a BFR-ID of 1. The 2 nd Bit from right to left in Bit string is used to identify the BFER with BFR-ID 2. The forwarding table item according to which the forwarding plane forwards determines which BFERs the message is sent to according to the bit string in the message. And when the BFR in the BIER domain receives the message header containing the BIER, forwarding the BIER message according to the bit string and the BIFT ID carried in the BIER header.
Taking the bit ID of 2 as an example, after receiving the BIER packet, the BFR may obtain that the BIER packet belongs to SD 0 according to the bit ID in the BIER header, and the BSL used in the BIER header is 256 bits and belongs to set 1 (including a set of 256 edge BFRs whose BFR IDs are 257 to 512).
(3) Traffic Class (TC) field
The priority of the message is identified.
(4) Version number (Ver) field
The length is 4bit, the version number of IP, the value of 4 represents IPv4, and the value of 6 represents IPv 6.
(5) Entropy (entropy) field
The entropy of a plurality of messages belonging to one flow is the same, and the entropy of a plurality of messages of different flows is different. When the message is forwarded, different traffic can be shared to different links according to the entropy, and a plurality of messages with the same traffic walk the same link.
(6) proto field
The proto field equal to 4 represents that the original multicast data message behind the BIER header is an IPv4 message, and the proto field equal to 6 represents that the original multicast data message behind the BIER header is an IPv6 message.
Fig. 3 is a process of establishing a BIER forwarding table and forwarding BIER messages based on the BIER technology. The BIER domain shown in fig. 3 may include nodes PE1, PE2, PE3, PE4, P2, and P3, where the nodes PE1, PE2, PE3, and PE4 belong to edge BFRs in the BIER domain, and the nodes P2 and P3 belong to BIER intermediate forwarding nodes.
Specifically, the node PE1 is located at an entry of the BIER domain, and is responsible for BIER encapsulation of the original multicast data packet, which corresponds to the BFIR in fig. 1. The nodes E2, PE3, and PE4 are located at the exit of the BIER domain, and are responsible for decapsulating the original multicast data packet from the BIER packet, which corresponds to the BFER in fig. 1.
In the embodiment of the present application, a unique BFR-ID may be allocated to each edge BFR in the BIER domain, for example, in fig. 3, the BFR-IDs configured for node PE1, node PE2, node PE3, and node PE4 are 1, 2, 3, and 4, respectively. The BFRs of the intermediate forwarding, for example, node P2, node P3, do not allocate BFR-IDs, therefore, node P2, node P3 correspond to BFR-IDs of 0.
The bit string encapsulated in the BIER header of the data traffic marks all destination nodes of the traffic. For example, for a node D with a BFR-ID of 1, the bit string corresponding to the node D is 0001, the bit string corresponding to a node F with a BFR-ID of 2 is 0010, the bit string corresponding to a node E with a BFR-ID of 3 is 0100, and the bit string corresponding to a node A with a BFR-ID of 4 is 1000.
It should be understood that the BFR-ID value assigned to the edge BFR in each BIER domain may be flooded to other BFRs in the BIER domain via a routing protocol, and the IP address of the edge BFR, encapsulation information, may also be included in the flooded BIER information. For example, the flooded BIER information of node PE1 would carry the IP address of node PE1 and the BIFT-id. The BFRs in the BIER domain (e.g., nodes PE2, PE3, and PE4 in fig. 3) may establish a BIFT entry according to the flooded BIER information, so that after the BFRs in fig. 3 receive the BIER packet, the forwarding of the BIER packet to the destination node is completed according to the established BIFT entry.
For the node PE1, if the BIER packet needs to be sent to BFRs whose BFR-IDs are 2, 3, and 4, respectively, the BIER packet needs to be sent to the neighbor of the node PE1 first (two neighbors of PE1 shown in fig. 3 are respectively node P2 and node P3), and the edge BFR whose BFR-ID is 1 is its own, so the BIFT table entry established by the node PE1 is as follows:
and (3) BIFT: (forward bit mask, FBM 0110, next hop P2); (forwarding bit mask (FBM) ═ 1000, next hop (P3).
Wherein, the BIFT is used for indicating that when any bit string of the BIER message has any one of the 2 nd bit and the 3 rd bit from right to left as 1, the BIER message is sent to the neighbor (node P2) of the node PE1, and the node P2 forwards the BIER message to the node PE2 and the node PE3 of which the BFR-IDs are 2 and 3 respectively. When the bit string of the BIER packet is 1 from the right to the left, the 4 th bit of the BIER packet is sent to the neighbor of the node PE1 (node P3), and the node P3 forwards the BIER packet to the node PE4 with the BFR-ID of 4.
For another example, another possible BIER message format is: IPv6 header + BIER header + original multicast data packet. The BIER message format is the message format encapsulated by BIERv 6. Specifically, referring to fig. 4, the BIER header may be located in the IPv6 extension header, for example, the BIER header is used as an option type of the IPv6 extension header, the option is composed of a type-length-value (TLV) structure, and the BIER header is used as a value part of the TLV.
The fields contained in the IPv6 header are described in detail below.
Version number (version, Ver): the version number of IP, with a value of 6, represents IPv 6.
Traffic Type (TC) field: identifying the priority of the message;
flow Label (FL) field: multiple messages belonging to one flow can be labeled with the same flow label, and multiple messages of different flows can be labeled with another flow label value. When the message is forwarded, different flows can be shared to different links according to the flow label, and a plurality of messages with the same flow share the same link.
Payload Length (PL) field: indicating the length of the message.
Next Header (NH) field: the type of the next header representing the message may be, for example, an IPv6 extension header.
Hop Limit (HL) field: indicating the number limit of messages.
Source Address (SA) field: the source address of the message is identified.
Destination Address (DA) field: the destination address of the message is identified.
Take the BIER field shown in fig. 3 as an example. The node PE1, serving as a head node (ingress node) of the Ipv6 network, encapsulates the packet after receiving the user multicast data packet in a BIERv6 header, that is, after an outer Ipv6 header and an Ipv6 extension header including the BIER header.
Take the next hop of the node PE1 as the node P2 as an example. If node P2 supports BIER forwarding, PE1 will encapsulate the destination address of node P2. After receiving the message, the node P2 copies the message to PE2 and PE3 according to the BIER header, wherein the destination address of the Ipv6 header will be changed to the address of PE2 by the message sent to PE2, and the destination address of the Ipv6 header will be changed to the destination address of PE3 by the message sent to PE 3. PE2 and PE3 receive the BIER message, decapsulate the message to obtain the inner layer multicast data message according to the fact that the bitstring information in the BIER header contains bit corresponding to the BFrid value of the message, and forward the inner layer multicast data message. The process of forwarding the packet with the next hop of the node PE1 being the node P3 is similar to the above process, and please refer to the above description for details, which is not described herein again.
For the case that there are multiple parallel links between two nodes, multiple BIFT entries need to be established in order to realize load sharing. A possible application scenario applicable to the embodiment of the present application is described in detail below with reference to fig. 5.
As shown in fig. 5, the next hop of the node PE1 may have a node, e.g., node P2 in scenario two. Or the next hop of the node PE1 may have at least two nodes, e.g., node P2 and node P3 in scenario one. There are at least two parallel links between node PE1 and its next hop.
It should be understood that, for convenience of description, the scenario one is described by taking the next hop of PE1 as two nodes, P2 and P3, two parallel links between node PE1 and node P2, and three parallel links between node PE1 and node P3 as an example. Similarly, in scenario two, the next hop of PE1 is P2, three parallel links exist between PE1 and P2, the next hop of P2 is P3, and two parallel links exist between P2 and P3.
In a scenario that there are multiple parallel links between two nodes as shown in fig. 5, in a conventional technical solution, in order to implement load sharing, multiple bit entries need to be established. Taking scene one as an example, the next hop from the node PE1 to the PE2/PE3 is P2 but the output interfaces are INTF1 and INTF2, and the next hop from the node PE1 to the PE4 is P3 but the output interfaces are INTF 3/4/5. The multiple BIFT forwarding entries established by PE1 are as follows.
BIFT-1:(FBM=0000 0110,Nexthop=P2,outIntf=INTF1);(FBM=0000 1000,Nexthop=P3,outINTF=INTF3);
BIFT-2:(FBM=0000 0110,Nexthop=P2,outIntf=INTF2);(FBM=0000 1000,Nexthop=P3,outINTF=INTF4);
BIFT-3:(FBM=0000 0110,Nexthop=P2,outIntf=INTF1);(FBM=0000 1000,Nexthop=P3,outINTF=INTF5)。
If the uniform distribution of the flow in a plurality of parallel links is to be realized, 6 BIFT forwarding tables may be needed, so that the overhead of the BIFT forwarding table entry is large, and a large memory space is occupied.
The load sharing method provided by the embodiment of the application can reduce the overhead of the BIFT forwarding table entry and save the memory space under the condition of realizing the uniform distribution of the flow in a plurality of parallel links. A method for load sharing provided in the embodiment of the present application is described in detail below with reference to fig. 6.
Fig. 6 is a schematic flowchart of a load sharing method provided in an embodiment of the present application. As shown in FIG. 6, the method may include steps 610 and 630, and the steps 610 and 630 are described in detail below.
Step 610: the first network equipment determines a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of the first network equipment according to a Bit Index Forwarding Table (BIFT).
It should be understood that the first network device may correspond to node PE1 in fig. 5, with the first BFR neighbor being one of the next-hop BFR neighbors of node PE 1.
The first load sharing group includes at least two link interfaces between the first network device and the first BFR neighbor, where the at least two link interfaces are used to forward the BIER packet in a load sharing manner.
Specifically, taking an example that the node PE1 has a next-hop BFR neighbor P2, and there are two parallel links between PE1 and P2, the BIFT established on PE1 is:
(FBM 00000110, BFR NBR P2, Flag parallel Link group, Link parallel Link group ID 1).
In addition, node PE1 also has a list of member links under the parallel link group (parallel link group status list):
(Link set ID1, Link set Link1, Mem set 1); (Link set ID1, Link set Link2, Mem set 2).
The Link group ID1 comprises two members of Link1 and Link2, and the member numbers are 1 and 2 respectively.
In addition, node PE1 also has a member state table (parallel link group state table) under the parallel link group:
(parallel link group ID: ID1, cfg-member-number: 2, act-member-number: 2, State < BS > -011).
The cfg-number-num indicates the number of configured members of the parallel link, and 2 indicates that there are 2 links for parameter load sharing in the load sharing group, that is, there are two outgoing interfaces on the node PE1, and the BIER packet may be sent to the next-hop BFR neighbor P2 through any one of the two outgoing interfaces. The act-member-num indicates the number of member links that are currently actually active and UP. The State < BS > indicates the UP/DOWN State of each member link, the bit from right to left in the State < BS > 11 sequentially represents the State of each member link, a bit of 1 indicates that the State of the member link is UP, and a bit of 0 indicates that the State of the member link is DOWN. Therefore, State < BS > is 11, which indicates that two parallel link states between PE1 and P2 are both UP, and can forward the BIER message.
It should be noted that, in this embodiment, it may be understood that a link interface of the network device is in an available state (up) that a link of the network device is normal and may perform packet forwarding. The link interface of the network device is in a down state (down), which can be understood as a link failure of the network device and cannot forward a message.
Alternatively, in some embodiments, PE1 may flush the act-number and State < BS > in the parallel Link group State table if the State of a link between PE1 and P2 changes.
Step 620: and the first network equipment performs modular operation on the number of the link interfaces with the available states in the first load sharing group according to the message header information of the BIER message to obtain the first link interfaces in the first load sharing group.
Specifically, the first network device may perform a modulo operation according to act-number in a packet header information parallel link group status table of the BIER packet to obtain a first link interface in the first load sharing group.
The first link interface of the first network device may be a member of a first load sharing group, and the link interfaces in the first load sharing group may all be in an available state or a partially unavailable state. The number of link interfaces in the first load sharing group may be an integer greater than 1, which is not specifically limited in this application.
It should be understood that in the embodiments of the present application, "member" may refer to an interface, including an ethernet port, where the network device in the load sharing group is connected to the load sharing link.
The embodiment of the present application does not specifically limit the header information of the BIER packet. Taking the example that the BIER message includes a BIER header and an inner layer multicast message, the message header information is a value of an entropy field in the BIER header. Taking the BIER packet including an outer layer IPv6 header, a BIER header, and an inner layer multicast packet as an example, the packet header information is a value of a flow label field in an IPv6 header, or a result obtained by performing hash calculation on a value of a source IP address field in an IPv6 header according to the value of the flow label field.
It should be noted that the first network device may directly receive the BIER packet, or the first network device receives a multicast packet, and the first network device may further perform BIER encapsulation on the multicast packet to obtain the BIER packet, which is not specifically limited in this application.
Step 630: and the first network equipment forwards the BIER message to the first BFR neighbor through the first link interface.
In the embodiment of the application, for a scenario where there are multiple parallel links between two nodes, the multiple parallel links between the two nodes may be configured as one parallel link group, one parallel link group is determined in one BIFT entry according to a next-hop BFR neighbor, and then one link in the parallel link group is selected by a modulo algorithm to forward a BIER packet. Therefore, the BIFT table entries can be reduced, the uniform distribution of the flow can be realized, and the purpose of load balancing is achieved.
It should be understood that a parallel link in this application may be understood as a scenario where there are multiple physical links between two nodes.
Optionally, in some embodiments, the first network device may form the above-described BIFT prior to step 610.
Optionally, in some embodiments, before forming the above-mentioned BIFT, routing information of the BIER, i.e. a Bit Index Routing Table (BIRT), needs to be established. The BIRT is embodied as a BFR neighbor (BFR-NBR) to the BFER node, and the BIRT may also contain next hop-out interface information to the BFR-NBR. The technical scheme also includes that the BIRT before generating the BIFT table entry contains an identifier of the first BFR neighbor and an identifier of the first load sharing group.
Optionally, in some embodiments, if the first network device has multiple BFR neighbors. For example, the first network device may further generate a second BIRT, where the second BIRT includes an identifier of a second BFR neighbor of the first network device and an identifier of a second load sharing group, and the first network device establishes the BIFT according to the second BIRT, where the BIFT includes not only a correspondence between the identifier of the first BFR neighbor and the identifier of the first load sharing group, but also a correspondence between the identifier of the second BFR neighbor and the identifier of the second load sharing group. Before the first network device performs step 620, a first state entry corresponding to the first load sharing group may also be determined according to the identifier of the first load sharing group, where the first state entry includes the number of link interfaces in the first load sharing group whose states are available.
The following describes in detail the load sharing method provided in the embodiment of the present application with reference to the first scenario shown in fig. 5. It is to be understood that the following examples are merely provided to assist those skilled in the art in understanding the embodiments of the present application and are not intended to limit the embodiments of the application to the specific values or specific contexts illustrated. It will be apparent to those skilled in the art from the examples given that various equivalent modifications or variations can be made, and such modifications and variations also fall within the scope of the embodiments of the present application.
Step 1: node PE1 is configured to generate two parallel link sets and a bit.
Figure BDA0002417204360000121
Figure BDA0002417204360000131
Wherein "Link-group LG 1" represents a parallel Link group 1, "Interface gigabit ethernet 1/0/1member 1" represents an Interface 1 in the parallel Link group 1 on the node PE1, which is a member of the parallel Link group 1 and is numbered 1, and "Interface gigabit ethernet 1/0/2member 2" represents an Interface 2 in the parallel Link group 1 on the node PE1, which is another member of the parallel Link group 1 and is numbered 2. "Link-Group LG 2" represents the parallel Link Group 2, "Interface gigabit ethernet 1/0/3 number 1" represents the Interface 1 in the parallel Link Group 2 on the node PE1, which is one member of the parallel Link Group 2 and is numbered 1, "Interface gigabit ethernet 1/0/4 number 2" represents the Interface 2 in the parallel Link Group 2 on the node PE1, which is the other member of the parallel Link Group 2 and is numbered 2, "Interface gigabit ethernet 1/0/5 number 3" represents the Interface 3 in the parallel Link Group 2 on the node PE1, which is the other member of the parallel Link Group 2 and is numbered 3.
"Use Link-group LG 1" indicates that the configuration node PE1 uses the parallel Link group 1 in the BIER forwarding process, and "Use Link-group LG 2" indicates that the configuration node PE1 uses the parallel Link group 2 in the BIER forwarding process.
PE1 may generate a BIFT as follows according to the above configuration.
Figure BDA0002417204360000132
Step 2: and the node PE1 receives the multicast data message and forwards the BIER message according to the BIFT.
The specific forwarding process is as follows:
1. the PE1 encapsulates the BIER header in the multicast data packet, and the bit string of the BIER header includes the position 1 corresponding to the node PE2/PE3/PE4, i.e., the 2 nd, 3 rd, and 4 th position 1, and the initial bit string of the BIER header is represented by 1110.
2. The PE1 performs message forwarding according to the BIFT forwarding table, AND determines that a message is to be sent to P2 AND a corresponding bit string is to be AND-ed with 0110, AND a message is to be sent to P3 AND a corresponding bit string is to be AND-ed with 1000. In this example, the bit string of the message is 1110, AND the result of AND with 0110 is 0110, AND the result of AND with 1000 is 1000.
3. According to the information of "Flag ═ parallel Link group" and "Link ═ parallel Link group ID 1" in the BFR _ NBR ═ P2 table entry, the members of the parallel Link group ID1 are queried, and the member IDs are Link1 and Link 2. PE1 selects one of the two links to transmit.
4. According to the information of "Flag ═ parallel Link group" and "Link ═ parallel Link group ID 2" in the BFR _ NBR ═ P3 table entry, the members of the parallel Link group ID2 are queried, and the member IDs are Link3, Link4 and Link 5. PE1 selects one of the three links to transmit.
5. In steps 3 and 4, when PE1 selects a link in the parallel link group, it reads the state table of the parallel link group members to obtain the value of act-number, and then gets the modulus of the value of act-number according to the field value (BIER header information) in the packet to obtain the corresponding link.
In an implementation manner, taking the example that the BIER packet includes a BIER header and a multicast packet in an inner layer, the act-member-number value may be modulo according to an entry field value in the BIER header, and then a corresponding link may be obtained.
It should be understood that this method requires that when the node encapsulates the BIER IPv6 header in the multicast data packet, the PE1 encapsulates the corresponding BIER header entry field value in the multicast stream.
In another implementation mode, the act-member-number value can be modulo according to other field values of the BIER message. For example, in a kind of BIER IPv6 (or BIERv6) encapsulation, after the multicast data packet is encapsulated in the outer IPv6 packet header and the IPv6 extension header (carrying BIER header), the field value in the IPv6 packet header may also be used to modulo the act-number value. The specific implementation manner is various, and the present application is not limited to this. As an example, a multicast flow may be determined according to IPv6 source address and flow label (flow label) fields, and a value may be obtained by performing a certain operation using the two field values, for example, obtaining a value by Hash operation, and then modulo the act-number value. As another example, the act-member-num value may also be directly modulo from a flow label (flow label) field value.
It should be understood that this method requires that when the node encapsulates the BIER IPv6 header in the multicast data packet, the PE1 encapsulates the corresponding IPv6 header flow label field value according to the multicast flow.
Assume that the messages received by PE1 belong to multicast flows 1 to 12, and these multicast flows need to be sent to PE2, PE3, and PE 4. PE1 fills 1-12 in the Encopy field when encapsulating the BIER header for these multicast streams, or fills 1-12 in the IPv6 stream label field under BIERv6 encapsulation, and the load sharing condition of the multicast streams is as follows.
Figure BDA0002417204360000141
Figure BDA0002417204360000151
It can be seen that, in the present application, a parallel link group is used for the outgoing interface link of each BFR _ NBR in the BIER, and then one link is selected from the link group for forwarding, thereby reducing the overhead of the BIFT entry on the premise of achieving uniform load sharing.
Alternatively, when a link in a parallel link group fails, PE1 may flush the link group state table. Specifically, the values of the act-number and Ls < BS > of the parallel link group 1 may be refreshed.
For convenience of description, the following description will be given taking the case where the link1 in the parallel link group 1 fails as an example.
When link1 in parallel link group 1 fails, PE1 updates the link group status table as follows.
(parallel link group ID: ID1, cfg-member-number: 2, act-member-number: 1, Ls < BS > -0010);
(parallel link group ID: ID2, cfg-member-number: 3, act-member-number: 3, Ls < BS > -0111).
Thereafter, PE1 forwards the received packet as follows.
1. The PE1 encapsulates the BIER header in the multicast data packet, and the bit string of the BIER header includes the position 1 corresponding to the node PE2/PE3/PE4, i.e., the 2 nd, 3 rd, and 4 th position 1, and the initial bit string of the BIER header is represented by 1110.
2. The PE1 performs message forwarding according to the BIFT forwarding table, AND determines that a message is to be sent to P2 AND a corresponding bit string is to be AND-ed with 0110, AND a message is to be sent to P3 AND a corresponding bit string is to be AND-ed with 1000. In this example, the bit string of the message is 1110, AND the result of AND with 0110 is 0110, AND the result of AND with 1000 is 1000.
3. According to the information of "Flag ═ parallel Link group" and "Link ═ parallel Link group ID 1" in the BFR _ NBR ═ P2 table entry, the members of the parallel Link group ID1 are queried, and the member IDs are Link1 and Link 2. Since Link1 status is a failure status (Ls < BS > bit 1 is 0), PE1 selects Link2 from the two links to send.
4. According to the information of "Flag ═ parallel Link group" and "Link ═ parallel Link group ID 2" in the BFR _ NBR ═ P3 table entry, the members of the parallel Link group ID2 are queried, and the member IDs are Link3, Link4 and Link 5. PE1 selects one of the three links to transmit.
5. In steps 3 and 4, when PE1 selects a link in the parallel link group, it reads the state table of the members of the parallel link group to obtain the value of act-number, and then gets the modulus of the value of act-number according to the field value in the packet to obtain the corresponding link. For details, please refer to the above description, which is not repeated herein.
Accordingly, the load sharing of the received packets belonging to multicast stream 1 to multicast stream 12 by PE1 is as follows.
Figure BDA0002417204360000152
Optionally, in some embodiments, the node implementing the load sharing method provided in this embodiment may be the same node as the node encapsulating the BIER header or BIERv6 header, or may be a different node.
In the following, with reference to the second scenario shown in fig. 5, in a scenario where the node encapsulating the BIER header or the BIERv6 header and the node implementing the load sharing method are not the same node, a specific process of implementing the load sharing method provided in the embodiment of the present application by the node is described in detail.
Step 1: node PE1 is configured to generate parallel link group 2 and a bit.
Figure BDA0002417204360000161
PE1 may generate a BIFT as follows according to the above configuration.
Figure BDA0002417204360000162
Step 2: and the node PE1 receives the multicast data message and forwards the BIER message according to the BIFT.
The specific forwarding process is as follows:
1. the PE1 encapsulates the BIER header in the multicast data packet, and the bit string of the BIER header includes the position 1 corresponding to the node PE2/PE3/PE4, i.e., the 2 nd, 3 rd, and 4 th position 1, and the initial bit string of the BIER header is represented by 1110.
2. The PE1 forwards the message according to the BIFT forwarding table, determines that the message is to be sent to the P2 AND the corresponding bit string is AND-ed with 1110; in this example, the bit string of the message is 1110, AND the result of AND between 1110 is 1110.
3. According to the information of "Flag ═ parallel Link group" and "Link ═ parallel Link group ID 2" in the BFR _ NBR ═ P2 table entry, the members of the parallel Link group ID2 are queried, and the member IDs are Link3, Link4 and Link 5. PE1 selects one of the three links to transmit.
4. In step 3, when PE1 selects a link in the parallel link group, the state table of the parallel link group members is read to obtain the value of act-member-number, and then the modulo of the value of act-member-number is obtained according to the field value in the packet to obtain the corresponding link.
And step 3: node P2 is configured to generate parallel link set 1 and a bipt.
Figure BDA0002417204360000163
Figure BDA0002417204360000171
P2 may generate a BIFT as follows according to the above configuration.
Figure BDA0002417204360000172
And 4, step 4: and the node P2 receives the multicast data message and forwards the BIER message according to the BIFT.
The specific forwarding process is as follows:
1. PE2 receives the multicast packet encapsulated by BIER, and the bit string of BIER header is 1110.
2. The P2 forwards the message according to the BIFT forwarding table, determines that the message is to be sent to the P3 AND the corresponding bit string is AND-ed with 1110. In this example, the bit string of the message is 1110, AND the result of AND between 1110 is 1110.
3. According to the information of "Flag ═ parallel Link group" and "Link ═ parallel Link group ID 1" in the BFR _ NBR ═ P3 table entry, the members of the parallel Link group ID1 are queried, and the member IDs are Link1 and Link 2. P2 selects one link from the two links to transmit.
4. In step 3, when the P2 selects a link in the parallel link group, the state table of the parallel link group members is read to obtain the value of act-member-number, and then the modulo of the value of act-member-number is obtained according to the field value in the packet to obtain the corresponding link.
The messages received by the PE1 belong to multicast streams 1 to 12, and these multicast streams need to be sent to PE2, PE3, and PE 4. PE1 fills 1-12 in the Encopy field when encapsulating the BIER header for these multicast streams, or fills 1-12 in the IPv6 stream label field under BIERv6 encapsulation, and the load sharing condition of the multicast streams is as follows.
Figure BDA0002417204360000173
Figure BDA0002417204360000181
Optionally, in some embodiments, taking BIERv6 encapsulation as an example, the flow label field of the IPv6 header encapsulated by the node encapsulating the BIERv6 header may be used by the BIERv6 forwarding node to perform load sharing of the parallel link, and may also be used by the node not forwarded by BIERv6 to perform load sharing of the parallel link according to the unicast packet.
The above implementation is described in detail with reference to the second scenario shown in fig. 5. In the second scenario, the P2 node is an IPv6 router but does not support BIERv6 forwarding, and each of the other nodes supports BIERv6 forwarding.
Step 1: node PE1 is configured to generate parallel link group 2 and a bit.
Figure BDA0002417204360000182
PE1 may generate a BIFT as follows according to the above configuration.
Figure BDA0002417204360000183
Step 2: and the node PE1 receives the multicast data message and forwards the BIER message according to the BIFT.
The specific forwarding process is as follows:
1. the PE1 encapsulates the BIER header in the multicast data packet, and the bit string of the BIER header includes the position 1 corresponding to the node PE2/PE3/PE4, i.e., the 2 nd, 3 rd, and 4 th position 1, and the initial bit string of the BIER header is represented by 1110.
2. The PE1 forwards the message according to the above-mentioned bit forwarding table, AND determines that the message is to be sent to P2 AND the corresponding bit string is anded with 1110. The bit string of the message in this example is 1110, AND the result after the AND is 1110.
3. According to the information of "Flag ═ parallel Link group" and "Link ═ parallel Link group ID 2" in the BFR _ NBR ═ P2 table entry, the members of the parallel Link group ID2 are queried, and the member IDs are Link3, Link4 and Link 5. PE1 selects one of the three links to transmit.
4. In step 3, when PE1 selects a link in the parallel link group, the state table of the parallel link group members is read to obtain the value of act-member-number, and then the modulo of the value of act-member-number is obtained according to the field value in the packet to obtain the corresponding link.
The implementation described in this example, used in a kind of BIER IPv6 (or BIERv6) encapsulation, uses the IPv6 source address and Flow Label (Flow Label) fields of the IPv6 header to modulo the act-number value.
The P2 receives the multicast data message encapsulated with BIERv6 through one of the parallel links, and the outer layer IPv6 address of the message is the unicast IPv6 address of the P3 node. The IPv6 header flow label value of the packet differs according to the multicast flows, for example, the IPv6 header flow label values of the packets of 12 multicast flows are 1 to 12, respectively. The P2 performs load sharing on the packet, and may perform the load sharing according to the flow label of the unicast packet.
Assume that the messages received by PE1 belong to multicast flows 1 to 12, and these multicast flows need to be sent to PE2, PE3, and PE 4. The PE1 fills 1-12 IPv6 flow label fields under BIERv6 encapsulation for the multicast flows respectively, and the load sharing condition of the multicast flows is as follows.
Figure BDA0002417204360000191
The parallel link group and the BIFT are generated by the node according to the configuration information. Optionally, in some embodiments, the node may also automatically generate the parallel link group identification and the bif.
The following takes the second scenario shown in fig. 5 as an example, and details a specific implementation manner of the node automatically generating the parallel link group identifier and the BIFT are described.
Step 1: node PE1 is configured as follows to generate parallel link set 2 and a BIFT.
Figure BDA0002417204360000192
"Use Link-group Auto-generated" indicates that a forwarding table of a parallel Link group is generated for the case that there is a "parallel Link" for the next hop of a node. The PE1 may generate a forwarding table of a parallel Link group for the case where there is a "parallel Link" for the next hop of the BFR _ NBR node according to the configuration of the "Use Link-group Auto-generated".
PE1 may also generate a parallel link group ID for each next-hop node that reaches the BFR _ NBR node and use the parallel link group ID and flags in the BIER forwarding table. The parallel link group ID may include one link, or may include two or more parallel links, which is not specifically limited in this embodiment of the application. .
PE1 may generate a BIFT as follows according to the above configuration.
Figure BDA0002417204360000193
Figure BDA0002417204360000201
Step 2: node P2 is configured as follows to generate parallel link set 1 and a BIFT.
Figure BDA0002417204360000202
The P2 generates a forwarding table of a parallel Link group under the condition that a next hop of the BFR _ NBR node has a parallel Link according to the configuration of the user Link-group Auto-generated.
The P2 may also generate a parallel link group ID for each next-hop node that reaches the BFR _ NBR node and use the parallel link group ID and flags in the BIER forwarding table.
P2 generates a BIFT as follows according to the above configuration.
Figure BDA0002417204360000203
And step 3: and the node PE1 receives the multicast data message and forwards the BIER message to the node P2 according to the BIFT.
The specific forwarding process is as follows:
1. the PE1 encapsulates the BIER header in the multicast data packet, and the bit string of the BIER header includes the position 1 corresponding to the node PE2/PE3/PE4, i.e., the 2 nd, 3 rd, and 4 th position 1, and the initial bit string of the BIER header is represented by 1110.
2. The PE1 forwards the message according to the above-mentioned bit forwarding table, AND determines that the message is to be sent to P2 AND the corresponding bit string is anded with 1110. In this example, the bit string of the message is 1110, AND the result of AND between 1110 is 1110.
3. According to the information of "Flag ═ parallel Link group" and "Link ═ parallel Link group ID 2" in the BFR _ NBR ═ P2 table entry, the members of the parallel Link group ID2 are queried, and the member IDs are Link3, Link4 and Link 5. PE1 selects one of the three links to transmit.
4. In step 3, when PE1 selects a link in the parallel link group, the state table of the parallel link group members is read to obtain the value of act-member-number, and then the modulo of the value of act-member-number is obtained according to the field value in the packet to obtain the corresponding link.
And 4, step 4: and the P2 receives the BIER message and forwards the BIER message to the node PE2/PE3/PE4 according to the BIFT.
The specific forwarding process is as follows:
1. PE2 receives the multicast packet encapsulated by BIER, and the bit string of BIER header is 1110.
2. The P2 forwards the message according to the BIFT forwarding table, determines that the message is to be sent to the P3 AND the corresponding bit string is AND-ed with 1110. In this example, the bit string of the message is 1110, AND the result of AND between 1110 is 1110.
3. According to the information of "Flag ═ parallel Link group" and "Link ═ parallel Link group ID 1" in the BFR _ NBR ═ P3 table entry, the members of the parallel Link group ID1 are queried, and the member IDs are Link1 and Link 2. P2 selects one link from the two links to transmit.
4. In step 3, when the P2 selects a link in the parallel link group, the state table of the parallel link group members is read to obtain the value of act-member-number, and then the modulo of the value of act-member-number is obtained according to the field value in the packet to obtain the corresponding link.
Assume that the messages received by PE1 belong to multicast flows 1 to 12, and these multicast flows need to be sent to PE2, PE3, and PE 4. The PE1 fills 1-12 IPv6 flow label fields under BIERv6 encapsulation for the multicast flows respectively, and the load sharing condition of the multicast flows is as follows.
Figure BDA0002417204360000211
In the technical scheme, the parallel link group can be automatically judged and generated according to the network connection condition, so that the configuration of the parallel link is further saved, and the realization is simpler.
Optionally, in some embodiments, when Link1 in the parallel Link group ID1 fails, the P2 refreshes the forwarding table as follows (the Link group may have only 1 Link member) according to the configuration of "Use Link-group Auto-generated".
Figure BDA0002417204360000212
Accordingly, the load sharing among the multicast streams 1 to 12 to the link is as follows.
Figure BDA0002417204360000213
Figure BDA0002417204360000221
The method for load sharing provided by the embodiment of the present application is described in detail above with reference to fig. 1 to 6, and an embodiment of the apparatus of the present application is described in detail below with reference to fig. 7 to 9. It is to be understood that the description of the method embodiments corresponds to the description of the apparatus embodiments, and therefore reference may be made to the preceding method embodiments for parts not described in detail.
Fig. 7 is a schematic structural diagram of a first network device 700 according to an embodiment of the present application. The first network device 700 shown in fig. 7 may perform the corresponding steps performed by the first network device in the methods of the above embodiments. As shown in fig. 7, the first network device 700 includes: the determination module 710, the sending module 720,
a determining module 710, configured to determine, according to a Bit Index Forwarding Table (BIFT), a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of a first network device, where the first load sharing group includes at least two link interfaces between the first network device and the first BFR neighbor, and the at least two link interfaces are used to forward an explicit duplicate BIER packet based on a bit index in a load sharing manner;
the determining module 710 is further configured to perform a modular operation on the number of link interfaces in the first load sharing group that are available in the state according to the header information of the BIER packet, so as to obtain a first link interface in the first load sharing group;
a sending module 720, configured to forward the BIER packet to the first BFR neighbor through the first link interface.
Optionally, the first network device 700 further includes: a receiving module 730, configured to receive the BIER packet.
Optionally, the receiving module 730 is configured to receive a multicast packet, and the first network device further includes an encapsulating module, configured to perform BIER encapsulation on the multicast packet to obtain a BIER packet.
Optionally, the first network device 700 further includes a generating module 740, configured to: generating a first Bit Index Routing Table (BIRT), wherein the first BIRT comprises an identifier of the first BFR neighbor and an identifier of the first load sharing group;
the generating module 740 is further configured to establish the BIFT according to the first BIRT.
Optionally, the generating module 730 is further configured to: generating a second BIRT, where the second BIRT includes an identifier of a second BFR neighbor of the first network device and an identifier of a second load sharing group, where the second load sharing group includes at least two link interfaces between the first network device and the second BFR neighbor, and the at least two link interfaces are used to forward the BIER packet in a load sharing manner;
the generating module 740 is further configured to: and establishing the BIFT according to the second BIRT, wherein the BIFT also comprises the second BFR neighbor and the second load sharing group.
Optionally, the determining module 710 is further configured to: and determining a first state table entry corresponding to the first load sharing group according to the identifier of the first load sharing group, where the first state table entry includes the number of link interfaces in the first load sharing group whose states are available.
Optionally, the BIER packet includes a BIER header and an inner layer multicast packet, where the packet header information is a value of an entropy field in the BIER header.
Optionally, the BIER packet includes an internet protocol sixth version IPv6 header and an inner layer multicast packet, where the IPv6 header includes a source IP address field and a flow label field, and the packet header information is a value of the flow label field, or a result obtained by performing hash calculation on a value of the source IP address field according to the value of the flow label field.
Optionally, the determining module 710 is further configured to: if the state of the first link interface is unavailable, performing modular operation on the number of the link interfaces with the available state in the first load sharing group according to the message header information of the BIER message to obtain a second link interface for forwarding the BIER message in the first load sharing group;
the sending module 720 is further configured to: and forwarding the BIER message to the first BFR neighbor through the second link interface.
Optionally, the determining module 710 is further configured to: and determining the state of the first link interface as unavailable according to the state of each link interface in the first load sharing group.
Optionally, the state of each link interface in the first load sharing group is a bit string with K bits, where K is a positive integer greater than 1, a position of each bit in the bit string represents one link interface in the first load sharing group, and a value of the bit represents state information of the link interface,
the determining module 710 is specifically configured to: and determining the state of the first link interface as unavailable according to the value of the bit corresponding to the first link interface in the bit string.
Fig. 8 is a schematic hardware configuration diagram of the first network device 2000 according to an embodiment of the present application. The first network device 2000 shown in fig. 8 may perform the corresponding steps performed by the first network device in the methods of the above embodiments.
As shown in fig. 8, the first network device 2000 includes a processor 2001, a memory 2002, an interface 2003, and a bus 2004. Wherein the interface 2003 may be implemented by wireless or wired means, specifically a network card. The processor 2001, the memory 2002, and the interface 2003 are connected by a bus 2004.
The interface 2003 may specifically include a transmitter and a receiver for the first network device to implement the transceiving described above. For example, the interface 2003 is used to receive explicit duplicate messages with bit indices. For another example, the interface 2003 is configured to forward the BIER packet to the first BFR neighbor via the first link interface.
The processor 2001 is configured to execute the processing performed by the first network device in the above embodiments. For example, a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of the first network device is determined according to a Bit Index Forwarding Table (BIFT); and/or other processes for the techniques described herein. The processor 2001 is used to support the steps 620, 630 in fig. 6, as an example. The memory 2002 includes an operating system 20021 and an application 20022 for storing programs, codes, or instructions that when executed by a processor or hardware device may perform the processes of the method embodiments involving the first network device. Alternatively, the memory 2002 may include a read-only memory (ROM) and a Random Access Memory (RAM). Wherein the ROM includes a basic input/output system (BIOS) or an embedded system; the RAM includes an application program and an operating system. When the first network device 2000 needs to be operated, the first network device 2000 is booted to enter a normal operation state by booting through a BIOS that is solidified in a ROM or a bootloader boot system in an embedded system. After the first network device 2000 enters the normal operation state, the application program and the operating system that are run in the RAM are executed, thereby completing the processes related to the first network device 2000 in the method embodiment.
It will be appreciated that fig. 8 only shows a simplified design of the first network device 2000. In practical applications, the first network device may comprise any number of interfaces, processors or memories.
Fig. 9 is a schematic hardware configuration diagram of another first network device 2100 according to an embodiment of the present application. The first network device 2100 shown in fig. 9 may perform the corresponding steps performed by the first network device in the methods of the above embodiments.
As illustrated in fig. 9, the first network device 2100 includes: a main control board 2110, an interface board 2130, a switch board 2120 and an interface board 2140. The main control board 2110, the interface boards 2130 and 2140, and the switch board 2120 are connected to the system backplane through the system bus to realize intercommunication. The main control board 2110 is used for completing functions such as system management, device maintenance, and protocol processing. The switch network board 2120 is used to complete data exchange between interface boards (interface boards are also called line cards or service boards). The interface boards 2130 and 2140 are used to provide various service interfaces (e.g., POS interface, GE interface, ATM interface, etc.) and implement forwarding of packets.
The interface board 2130 may include a central processor 2131, a forwarding entry memory 2134, a physical interface card 2133, and a network processor 2132. The central processing unit 2131 is used for controlling and managing the interface board and communicating with the central processing unit on the main control board. The forwarding entry memory 2134 is used to hold entries, e.g., BIFT as described above. Physical interface card 2133 is used to complete the reception and transmission of traffic.
Specifically, the physical interface card 2133 is configured to receive a BIER packet, and after receiving the BIER packet, the physical interface card 2133 sends the BIER packet to the central processing unit 2111 via the central processing unit 2131, and the central processing unit 2111 processes the BIER packet.
It should be understood that operations on the interface board 2140 in the embodiment of the present application are the same as those of the interface board 2130, and are not described again for brevity. It should be understood that the first network device 2100 in this embodiment may correspond to the functions and/or various steps of the foregoing method embodiments, and are not described herein again.
In addition, it should be noted that there may be one or more main control boards, and when there are multiple main control boards, the main control board may include an active main control board and a standby main control board. The interface board may have one or more boards, and the more the data processing capability of the first network device is, the more interface boards are provided. There may also be one or more physical interface cards on an interface board. The exchange network board may not have one or more blocks, and when there are more blocks, the load sharing redundancy backup can be realized together. Under the centralized forwarding architecture, the first network device may not need the switching network board, and the interface board undertakes the processing function of the service data of the whole system. Under the distributed forwarding architecture, the first network device may have at least one switching network board, and data exchange between the plurality of interface boards is realized through the switching network board, so as to provide large-capacity data exchange and processing capability. Therefore, the data access and processing capabilities of the first network device of the distributed architecture are greater than those of the centralized architecture. Which architecture is specifically adopted depends on the specific networking deployment scenario, and is not limited herein.
Embodiments of the present application also provide a computer-readable medium storing program code, which when run on a computer, causes the computer to perform the method in the above aspects. These computer-readable memories include, but are not limited to, one or more of the following: read-only memory (ROM), Programmable ROM (PROM), Erasable PROM (EPROM), Flash memory, Electrically EPROM (EEPROM), and hard drive (hard drive).
An embodiment of the present application further provides a computer program product, which is applied in a first network device or a BFR neighborhood of the first network device, and the computer program product includes: computer program code which, when run by a computer, causes the computer to perform the method of any possible implementation of any of the above aspects.
An embodiment of the present application further provides a chip system, which is applied to a first network device, and the chip system includes: the chip system comprises at least one processor, at least one memory and an interface circuit, wherein the interface circuit is responsible for information interaction between the chip system and the outside, the at least one memory, the interface circuit and the at least one processor are interconnected through lines, and instructions are stored in the at least one memory; the instructions are executable by the at least one processor to perform operations of the first network device or a BFR neighbor of the first network device in the methods of the various aspects described above.
In a specific implementation process, the chip may be implemented in the form of a Central Processing Unit (CPU), a Micro Controller Unit (MCU), a Micro Processing Unit (MPU), a Digital Signal Processor (DSP), a system on chip (SoC), an application-specific integrated circuit (ASIC), a Field Programmable Gate Array (FPGA), or a Programmable Logic Device (PLD).
The present application further provides a computer program product, which is applied in a first network device or a BFR neighbor of the first network device, and the computer program product includes a series of instructions, when executed, to perform the operations of the first network device or the BFR neighbor of the first network device in the method of the above aspects.
It should be understood that, in the various embodiments of the present application, the sequence numbers of the above-mentioned processes do not mean the execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product stored in a storage medium and including instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a read-only memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (20)

1. A method of load sharing, the method comprising:
a first network device determines a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of the first network device according to a Bit Index Forwarding Table (BIFT), wherein the first load sharing group comprises at least two link interfaces between the first network device and the first BFR neighbor, and the at least two link interfaces are used for forwarding an explicit copy BIER message based on a bit index in a load sharing manner;
the first network equipment performs modular operation on the number of the link interfaces with available states in the first load sharing group according to the message header information of the BIER message to obtain a first link interface in the first load sharing group;
and the first network equipment forwards the BIER message to the first BFR neighbor through the first link interface.
2. The method of claim 1, wherein before the first network device determines the first load sharing group corresponding to the first Bit Forwarding Router (BFR) neighbor of the first network device according to a Bit Index Forwarding Table (BIFT), the method further comprises:
the first network equipment generates a first Bit Index Routing Table (BIRT), wherein the first BIRT comprises the identifier of the first BFR neighbor and the identifier of the first load sharing group;
and the first network equipment establishes the BIFT according to the first BIRT.
3. The method of claim 2, further comprising:
the first network device generates a second BIRT, where the second BIRT includes an identifier of a second BFR neighbor of the first network device and an identifier of a second load sharing group, the second load sharing group includes at least two link interfaces between the first network device and the second BFR neighbor, and the at least two link interfaces are used to forward the BIER packet in a load sharing manner;
and the first network equipment establishes the BIFT according to the second BIRT, and the BIFT also comprises the second BFR neighbor and the second load sharing group.
4. The method according to claim 3, wherein before the first network device performs modulo operation on the number of link interfaces in the first load sharing group whose states are available according to header information of the BIER packet, the method further comprises:
and the first network device determines a first state table entry corresponding to the first load sharing group according to the identifier of the first load sharing group, where the first state table entry includes the number of link interfaces in the first load sharing group whose states are available.
5. The method according to any one of claims 1 to 4, wherein the BIER packet includes a BIER header and an inner layer multicast packet, and the packet header information is a value of an entropy field in the BIER header.
6. The method according to any one of claims 1 to 4, wherein the BIER packet includes an Internet protocol sixth version IPv6 header and an inner layer multicast packet, the IPv6 header includes a source IP address field and a flow label field, and the packet header information is a value of the flow label field or a result obtained by performing a hash calculation on the value of the source IP address field according to the value of the flow label field.
7. The method according to any one of claims 1 to 6, further comprising:
if the state of the first link interface is unavailable, the first network device performs modular operation on the number of the link interfaces with the available state in the first load sharing group according to the message header information of the BIER message to obtain a second link interface which forwards the BIER message in the first load sharing group;
and the first network equipment forwards the BIER message to the first BFR neighbor through the second link interface.
8. The method of claim 7, further comprising:
and the first network equipment determines the state of the first link interface as unavailable according to the state of each link interface in the first load sharing group.
9. The method of claim 8, wherein the status of each link interface in the first load sharing group is a bit string with K bits, wherein K is a positive integer greater than 1, the position of each bit in the bit string represents a link interface in the first load sharing group, and the value of the bit represents status information of the link interface,
the determining, by the first network device, that the state of the first link interface is unavailable according to the state of each link interface in the first load sharing group includes:
and the first network equipment determines that the state of the first link interface is unavailable according to the value of the bit corresponding to the first link interface in the bit string.
10. A first network device, comprising:
a determining module, configured to determine, according to a Bit Index Forwarding Table (BIFT), a first load sharing group corresponding to a first Bit Forwarding Router (BFR) neighbor of a first network device, where the first load sharing group includes at least two link interfaces between the first network device and the first BFR neighbor, and the at least two link interfaces are used to forward an explicit duplicate BIER packet based on a bit index in a load sharing manner;
the determining module is further configured to perform a modular operation on the number of link interfaces in the first load sharing group that are available in the state according to the header information of the BIER packet, so as to obtain a first link interface in the first load sharing group;
a sending module, configured to forward the BIER packet to the first BFR neighbor through the first link interface.
11. The first network device of claim 10, further comprising:
a generating module, configured to generate a first bit index routing table BIRT, where the first BIRT includes an identifier of the first BFR neighbor and an identifier of the first load sharing group;
the generating module is used for establishing the BIFT according to the first BIRT.
12. The first network device of claim 11,
the generation module is further configured to: generating a second BIRT, where the second BIRT includes an identifier of a second BFR neighbor of the first network device and an identifier of a second load sharing group, where the second load sharing group includes at least two link interfaces between the first network device and the second BFR neighbor, and the at least two link interfaces are used to forward the BIER packet in a load sharing manner;
the generation module is further configured to: and establishing the BIFT according to the second BIRT, wherein the BIFT comprises the second BFR neighbor and the second load sharing group.
13. The first network device of claim 12, wherein the determining module is further configured to:
and determining a first state table entry corresponding to the first load sharing group according to the identifier of the first load sharing group, where the first state table entry includes the number of link interfaces in the first load sharing group whose states are available.
14. The first network device according to any one of claims 10 to 13, wherein the BIER packet includes a BIER header and an inner layer multicast packet, and the packet header information is a value of an entropy field in the BIER header.
15. The first network device according to any one of claims 10 to 13, wherein the BIER packet includes an internet protocol sixth version IPv6 header and an inner layer multicast packet, the IPv6 header includes a source IP address field and a flow label field, and the packet header information is a value of the flow label field or a result obtained by performing hash calculation on the value of the source IP address field according to the value of the flow label field.
16. The first network device of any of claims 10-15, wherein the determining module is further configured to:
if the state of the first link interface is unavailable, performing modular operation on the number of the link interfaces with the available state in the first load sharing group according to the message header information of the BIER message to obtain a second link interface for forwarding the BIER message in the first load sharing group;
the sending module is further configured to: and forwarding the BIER message to the first BFR neighbor through the second link interface.
17. The first network device of claim 16, wherein the determining module is further configured to:
and determining the state of the first link interface as unavailable according to the state of each link interface in the first load sharing group.
18. The first network device of claim 17, wherein the state of each link interface in the first load sharing group is a bit string with K bits, wherein K is a positive integer greater than 1, a position of each bit in the bit string represents one link interface in the first load sharing group, and a value of the bit represents state information of the link interface,
the determining module is specifically configured to:
and determining the state of the first link interface as unavailable according to the value of the bit corresponding to the first link interface in the bit string.
19. A first network device, comprising: a processor and a memory, the memory for storing a program, the processor for calling and running the program from the memory to perform the method of any of claims 1 to 9.
20. A computer-readable storage medium, comprising a computer program which, when run on a computer, causes the computer to perform the method of any one of claims 1 to 9.
CN202010194777.1A 2020-02-20 2020-03-19 Load sharing method and first network equipment Active CN113285878B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/116048 WO2021164245A1 (en) 2020-02-20 2020-09-18 Load sharing method and first network device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010104744 2020-02-20
CN2020101047443 2020-02-20

Publications (2)

Publication Number Publication Date
CN113285878A true CN113285878A (en) 2021-08-20
CN113285878B CN113285878B (en) 2022-08-26

Family

ID=77275233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010194777.1A Active CN113285878B (en) 2020-02-20 2020-03-19 Load sharing method and first network equipment

Country Status (2)

Country Link
CN (1) CN113285878B (en)
WO (1) WO2021164245A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666276A (en) * 2022-04-01 2022-06-24 阿里巴巴(中国)有限公司 Method and device for sending message

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605091A (en) * 2009-02-13 2009-12-16 华为技术有限公司 A kind of multi-port load sharing method, device and network system
CN106209629A (en) * 2014-11-06 2016-12-07 瞻博网络公司 Bit index that is deterministic and that optimize explicitly replicates (BIER) and forwards
CN110460522A (en) * 2018-05-08 2019-11-15 华为技术有限公司 Multicast data transmission method, relevant apparatus and system
US20190386837A1 (en) * 2018-06-19 2019-12-19 Juniper Networks, Inc. Forwarding multicast data packets using bit index explicit replication (bier) for bier-incapable network devices
CN110650094A (en) * 2018-06-27 2020-01-03 华为技术有限公司 Method, equipment and system for sending message
CN110677342A (en) * 2018-07-02 2020-01-10 马维尔以色列(M.I.S.L.)有限公司 Group specific load balancing in network devices

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811387B (en) * 2014-01-24 2018-06-01 思科技术公司 The equal cost multipath explicitly replicated with position index
WO2019214589A1 (en) * 2018-05-08 2019-11-14 华为技术有限公司 Multicast data transmission method, related apparatus and system
CN110535768B (en) * 2018-05-25 2022-01-14 北京华为数字技术有限公司 Multicast data transmission method and related equipment
CN110611577A (en) * 2018-06-14 2019-12-24 中兴通讯股份有限公司 Service fast switching method, switching device, network equipment and storage medium

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605091A (en) * 2009-02-13 2009-12-16 华为技术有限公司 A kind of multi-port load sharing method, device and network system
CN106209629A (en) * 2014-11-06 2016-12-07 瞻博网络公司 Bit index that is deterministic and that optimize explicitly replicates (BIER) and forwards
CN110460522A (en) * 2018-05-08 2019-11-15 华为技术有限公司 Multicast data transmission method, relevant apparatus and system
US20190386837A1 (en) * 2018-06-19 2019-12-19 Juniper Networks, Inc. Forwarding multicast data packets using bit index explicit replication (bier) for bier-incapable network devices
CN110650094A (en) * 2018-06-27 2020-01-03 华为技术有限公司 Method, equipment and system for sending message
CN110677342A (en) * 2018-07-02 2020-01-10 马维尔以色列(M.I.S.L.)有限公司 Group specific load balancing in network devices

Also Published As

Publication number Publication date
CN113285878B (en) 2022-08-26
WO2021164245A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
CN110784411B (en) Method, device and system for establishing BIER forwarding table item
CA3080526C (en) Ip mpls pop virtualization and fault tolerant virtual router
US20230283554A1 (en) BIER Packet Forwarding Method, Device, and System
CN114465920B (en) Method, device and system for determining corresponding relation
CN113114576B (en) Method, equipment and system for sending message
US20220200820A1 (en) Packet Sending Method and Apparatus
CN112822097A (en) Message forwarding method, first network device and first device group
WO2021244108A1 (en) Bier multicast traffic statistics method, device and system
CN113285878B (en) Load sharing method and first network equipment
US20230318974A1 (en) BIER Packet Forwarding Method, Device, and System
WO2022206405A1 (en) Bierv6 message processing method, and device and system
US20220337521A1 (en) Packet Sending Method, Device and System
JP7273125B2 (en) Method and first network device for transmitting BIERv6 packets
CN114006780A (en) Method, equipment and system for forwarding message
CN113541924A (en) Method, device and system for detecting message
CN113824608A (en) BIER OAM detection method, equipment and system
WO2022012073A1 (en) Message forwarding method, device and system
WO2024093778A1 (en) Packet processing method and related apparatus
CN114690680A (en) Data processing method, controller and first network equipment
CN114598634A (en) Message transmission method, device and system for acquiring corresponding relation

Legal Events

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