WO2020244651A1 - 一种bier报文的发送方法和装置 - Google Patents

一种bier报文的发送方法和装置 Download PDF

Info

Publication number
WO2020244651A1
WO2020244651A1 PCT/CN2020/094791 CN2020094791W WO2020244651A1 WO 2020244651 A1 WO2020244651 A1 WO 2020244651A1 CN 2020094791 W CN2020094791 W CN 2020094791W WO 2020244651 A1 WO2020244651 A1 WO 2020244651A1
Authority
WO
WIPO (PCT)
Prior art keywords
bier
header
forwarding
ipv6
message
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.)
Ceased
Application number
PCT/CN2020/094791
Other languages
English (en)
French (fr)
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 EP20819174.2A priority Critical patent/EP3965381B1/en
Priority to BR112021024190A priority patent/BR112021024190A2/pt
Priority to MX2021014793A priority patent/MX2021014793A/es
Priority to JP2021571827A priority patent/JP7322188B2/ja
Priority to KR1020217041107A priority patent/KR102657811B1/ko
Publication of WO2020244651A1 publication Critical patent/WO2020244651A1/zh
Priority to US17/542,505 priority patent/US11949585B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • 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/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/32Flooding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source 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/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • 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
    • H04L2212/00Encapsulation of packets
    • 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/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6

Definitions

  • the present application relates to the field of network communication, and more specifically, to a method and device for sending a display copy BIER message based on a bit index.
  • IP multicast technology realizes point-to-multipoint efficient data transmission in an IP network, which can effectively save network bandwidth and reduce network load. Therefore, it is widely used in many aspects such as real-time data transmission, multimedia conferences, data copying, interactive network television (IPTV), games and simulation.
  • IP Internet protocol
  • the multicast protocol of the multicast technology needs to construct a control plane multicast tree, and use this multicast tree to logically tree the network plane to realize the point-to-multipoint data forwarding of multicast forwarding.
  • the intermediate nodes of such a multicast routing protocol with the construction of a distribution tree as the core need to maintain the state of complex multicast forwarding information.
  • this kind of multicast technology is facing increasing costs and challenges in operation and maintenance.
  • bit indexed explicit replication (BIER) technology, which proposes a new technology that does not require group building.
  • BIER bit indexed explicit replication
  • the forwarding node supporting the BIER technology can forward BIER messages in the BIER domain according to the encapsulated BIER header information.
  • IPv6 Internet Protocol version 6
  • the forwarding node supporting the BIER technology encapsulates the common IP address flooded by each node in the destination address field in the IPv6 basic header.
  • the node receiving the BIER message needs to determine the type of the message format according to the IPv6 address in the destination address field, which results in low forwarding efficiency.
  • This application provides a method and device for sending a BIER message, which can fill the first IPv6 address of a neighbor node in the destination address field of the IPv6 extension header, so that the neighbor node can determine the BIER message according to the identifier of the first IPv6 address BIER forwarding is performed to prevent the nodes receiving BIER messages in the traditional technology from determining the message types one by one according to the IPv6 address, which improves the forwarding efficiency.
  • a method for sending a BIER message includes: a first forwarding device receives a BIER message encapsulated under the Internet Protocol Version 6 IPv6 protocol sent by a second forwarding device, the BIER message
  • the text includes an IPv6 basic header and a BIER header, where the destination address field in the IPv6 basic header is the first IPv6 address of the first forwarding device; the first forwarding device is based on the first IPv6 address in the forwarding table.
  • An identifier corresponding to an IPv6 address determines the BIER forwarding of the BIER message, where the identifier is used to indicate that the first IPv6 address is a destination address for BIER forwarding.
  • the first IPv6 address of the neighbor node can be filled in the destination address field of the IPv6 extension header, so that the neighbor node determines to perform BIER forwarding of the BIER message according to the identifier of the first IPv6 address, and avoids receiving in the traditional technology.
  • the node of the BIER message determines the message type one by one according to the IPv6 address, which improves the forwarding efficiency.
  • the first forwarding device determines that the address filled in the destination address field in the IPv6 basic header is the same as the first IPv6 address in the forwarding table; the first forwarding device is based on The identifier corresponding to the first IPv6 address determines to perform BIER forwarding on the BIER message.
  • the first forwarding device configures the first IPv6 address and the identifier.
  • the method before the first forwarding device receives the BIER message encapsulated under the Internet Protocol Version 6 IPv6 protocol sent by the second forwarding device, the method further includes: The forwarding device floods the first IPv6 address and the identifier of the first forwarding device to the network through a routing protocol.
  • the first forwarding device may flood the first IPv6 address and the identifier to other nodes in the network, so that other nodes in the network can establish a forwarding table according to the first IPv6 address flooded by the first forwarding device and Encapsulate the message.
  • first IPv6 address and the identifier of the first forwarding device flooded to the network by the first forwarding device through the routing protocol may be the same message as the BIER message, or may also be a message different from the BIER message. There is no specific restriction on this.
  • the first IPv6 address is an IPv6 segment routing (IPv6 segment routing, SRv6) segment identification (segment identify, SID).
  • next header (next header, NH) field in the IPv6 basic header is an extended header carrying a BIER header
  • the first forwarding device The bit string field in the BIER header is forwarded by BIER.
  • next header NH field in the IPv6 basic header is a routing header (routing header, RH)
  • routing header routing header
  • the next header NH field of the routing header RH is carrying
  • the first forwarding device pops up the routing header RH, and performs BIER forwarding according to the bit string field in the BIER header.
  • the routing header RH is a segment routing header (segment routing header, SRH), and the segment remaining SL of the segment routing header SRH is 0.
  • next header NH field in the IPv6 basic header is an extended header carrying a BIER header
  • next header NH field of the extended header is AH
  • the first forwarding device performs BIER forwarding according to the bit string field in the BIER header.
  • the first forwarding device pops the IPv6 basic header and responds to all The user data message is forwarded.
  • the first forwarding device fills the destination address field in the IPv6 basic header of the BIER message with the first bit string in the BIER header and the BIER forwarding table. 3. The first IPv6 address of the forwarding device, wherein the BIER forwarding table is established according to the first IPv6 address carried in the message flooded by the third forwarding device; the first forwarding device is based on the BIER forwarding table Copy the BIER message to the third forwarding device.
  • the first forwarding device pops one or more BIER headers carried; the first forwarding device pops out an extended header containing the one or more BIER headers ; The first forwarding device copies the BIER message that does not include the extended header to the third forwarding device.
  • the first forwarding device determines that the third forwarding device is a leaf node, it pops the extended header of one or more BIER headers it carries.
  • the extended header is a destination option header.
  • the routing protocol includes any one of the following protocols: intermediate system to intermediate system IS-IS protocol, open shortest path first OSPF protocol, border gateway protocol BGP.
  • a device for sending a BIER message includes:
  • the receiving module is configured to receive a BIER message encapsulated under the Internet Protocol Version 6 IPv6 protocol sent by the second forwarding device, the BIER message includes an IPv6 basic header and a BIER header, wherein the IPv6 basic header
  • the destination address field in is the first IPv6 address of the first forwarding device
  • a processing module configured to determine to perform BIER forwarding of the BIER message according to the identifier corresponding to the first IPv6 address in the forwarding table, wherein the identifier is used to indicate that the first IPv6 address is the destination address for BIER forwarding .
  • the processing module is specifically configured to: determine that the address filled in the destination address field in the IPv6 basic header is the same as the first IPv6 address in the forwarding table; the first forwarding The device determines to perform BIER forwarding of the BIER packet according to the identifier corresponding to the first IPv6 address.
  • a configuration module is further included, configured to configure the first IPv6 address and the identifier.
  • the apparatus further includes: a sending module, configured to flood the first IPv6 address and the identifier of the first forwarding device to the network through a routing protocol.
  • the processing module is specifically configured to: when the next header NH field in the IPv6 basic header is an extended header carrying a BIER header, according to the BIER header The bit string field in the part is BIER forwarded.
  • the processing module is specifically configured to: when the next header NH field in the IPv6 basic header is a routing header RH, where the next header of the routing header RH When the NH field is an extended header carrying a BIER header, the routing header RH is popped up, and the BIER forwarding is performed according to the bit string field in the BIER header.
  • the routing header RH is a segment routing header SRH, and the segment remaining SL of the segment routing header SRH is 0.
  • the processing module is specifically configured to: when the next header NH field in the IPv6 basic header is an extended header carrying a BIER header, the value of the extended header When the next header NH field is an AH authentication header, BIER forwarding is performed according to the bit string field in the BIER header.
  • the processing module is specifically configured to: fill the destination address field in the IPv6 basic header of the BIER message according to the bit string in the BIER header and the BIER forwarding table Is the first IPv6 address of the third forwarding device, wherein the BIER forwarding table is established according to the first IPv6 address carried in the BIER message flooded by the third forwarding device; and the first forwarding device is based on the The BIER forwarding table copies the BIER message to the third forwarding device.
  • the processing module is specifically configured to: eject one or more BIER headers carried; eject an extended header containing the one or more BIER headers; and will not include The BIER message in the extended header is copied to the third forwarding device.
  • the processing module is specifically configured to: when it is determined that the third forwarding device is a leaf node, pop out one or more extended headers of the carried BIER header.
  • the extended header is a destination option header.
  • the routing protocol includes any one of the following protocols: intermediate system to intermediate system IS-IS protocol, open shortest path first OSPF protocol, border gateway protocol BGP.
  • a first forwarding device which is characterized by comprising an input and output interface, a processor, and a memory, wherein the processor is used to control the input and output interface to send and receive information, and the memory is used to store a computer program
  • the processor is configured to call and run the computer program from the memory, so that the first forwarding device executes the method described in the first aspect or any one of the possible implementation manners of the first aspect.
  • the processor may be a general-purpose processor, which may be implemented by hardware or software.
  • the processor may be a logic circuit, integrated circuit, etc.; when implemented by software, the processor may be a general-purpose processor, which is implemented by reading software codes stored in the memory, and the memory may Integrated in the processor, can be located outside of the processor, and exist independently.
  • a computer program product comprising: computer program code, which when the computer program code runs on a computer, causes the computer to execute the methods in the above aspects.
  • a computer-readable medium stores program code, and when the computer program code runs on a computer, the computer executes the methods in the above aspects.
  • a system which includes a first forwarding node, a second forwarding node, and a third forwarding node, wherein the first forwarding node is used to perform the first aspect or possible implementations of the first aspect Method in.
  • the second forwarding node is configured to fill the destination address field in the IPv6 basic header of the BIER message according to the first IPv6 address flooded by the first forwarding node, and send the BIER message to the first forwarding node.
  • the third forwarding node is used to receive the BIER message sent by the first forwarding node, and according to the address filled in the destination address field in the IPv6 basic header of the BIER message for its configured first IPv6 address, report to the BIER message
  • the text is forwarded by BIER.
  • FIG. 1 is a schematic networking diagram of a BIER technology provided by an embodiment of the present application.
  • FIG. 2 is a schematic block diagram of sending a BIER message according to the BIER header in the BIER domain according to an embodiment of the present application.
  • FIG. 3 is a schematic diagram of the format of a BIERv6 message provided by an embodiment of the present application.
  • Fig. 4 is a schematic flowchart of a method for sending a BIER message provided by an embodiment of the present application.
  • Fig. 5 is a schematic diagram of an SRv6 locator message format provided by an embodiment of the present application.
  • Fig. 6 is a schematic diagram of an IPv6-prefix message format provided by an embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of an apparatus 700 for sending a BIER message according to an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of a first forwarding device 800 provided by an embodiment of the present application.
  • IP multicast technology realizes point-to-multipoint efficient data transmission in an IP network, which can effectively save network bandwidth and reduce network load. Therefore, it is widely used in many aspects such as real-time data transmission, multimedia conferences, data copying, interactive network television (IPTV), games and simulation.
  • IP Internet protocol
  • the multicast protocol of the multicast technology needs to construct a control plane multicast tree, and use this multicast tree to logically tree the network plane to realize the point-to-multipoint data forwarding of multicast forwarding.
  • the intermediate nodes of such a multicast routing protocol with the construction of a distribution tree as the core need to maintain the state of complex multicast forwarding information.
  • this kind of multicast technology is facing increasing costs and challenges in operation and maintenance.
  • BIER bit indexed explicit replication
  • BIERforwarding router BFIR
  • BIERforwarding router BIER forwarding egress router
  • each edge node for example, BFER
  • a globally unique bit position (bit position) in the entire BIER subdomain (SD) can be configured.
  • each edge node can be configured with a value as a BFR identification (identification, ID), for example, a value between 1 and 256.
  • ID identification
  • All BFRIDs in the BIER domain form a bit string.
  • user data traffic also called BIER packets
  • a specific BIER header needs to be encapsulated.
  • the BIER header is marked in the form of a bit string. All the destination nodes of the user’s data traffic.
  • the intermediate forwarding node in the BIER domain performs routing according to the bit string carried in the BIER header to ensure that user data traffic can be sent to all destination addresses.
  • the bit position information of the node configuration will be flooded in the BIER domain through the interior gateway protocol (IGP) or the exterior gateway protocol (border gateway protocol, BGP) in advance to form a guide for user data traffic in the BIER domain.
  • IGP interior gateway protocol
  • BGP border gateway protocol
  • a bit index forwarding table (BIFT) for forwarding by each node.
  • BIFT bit index forwarding table
  • the internal gateway protocol IGP in the embodiments of the present application may include, but is not limited to: open shortest path first (OSPF) protocol, intermediate system to intermediate system (intermediate system to intermediate system, ISIS) protocol, etc.
  • OSPF open shortest path first
  • ISIS intermediate system to intermediate system
  • BIFT ID 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 combination.
  • SD sub-domain
  • BSL bit string length
  • SI set identifier
  • a BIER domain can be configured as different sub-domain SD according to the requirements of the actual business scenario.
  • Each sub-domain SD is represented by a sub-domain identification (SD-ID), the value is [0-255], and the length is 8bit.
  • SD-ID sub-domain identification
  • the BIER domain can be configured as different SDs according to different services such as virtual private networks (virtual private networks, VPNs). For example, VPN 1 uses SD 0, and VPN 1 uses SD 1.
  • VPNs can also use the same SD.
  • Different SDs in the BIER domain can be in one IGP process or topology, or not in one IGP process or topology, which is not specifically limited in the embodiments of this application. .
  • BSL is the length of the bit string included in the BIER header. There may be multiple types of BSL, which are not specifically limited in the embodiments of this application.
  • the smallest 64 bits are 128 bits, 256 bits, 512 bits, 1024 bits, 2048 bits, and the largest 4096 bits.
  • 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, and when the BSL is 512 bits, the message Use 0100 in the middle, when the BSL is 1024 bits, use 0101 in the message, and so on.
  • SI can be understood as a collection of multiple nodes or configured BFR IDs in the network.
  • the BSL is 256 bits, but there are more than 256 nodes in the network, or there are more than 256 configured BFR IDs, you need to divide these nodes or BFR IDs into different sets.
  • the BFR in the BIER domain can determine which SD the BIER message belongs to according to the BIFT ID in the BIER header, the BSL used, and the set of nodes or configured BFR IDs that forward the message.
  • BIFT ID 91: corresponding toSD 0, BSL 256, SI 0
  • BIFT ID 92: corresponding to SD 0, BSL 256, SI 1
  • BIFT ID 93: corresponding to SD 0, BSL 256, SI 2
  • BIFT ID 94: corresponding to SD 0, BSL 256, SI 3
  • BIFT ID 95: corresponding to SD 0, BSL 512, SI 0
  • BIFT ID 96: corresponding to SD 0, BSL 512, SI 1
  • the BFR can obtain the BIER message belonging to SD 0 according to the BIFT ID in the BIER header.
  • the BFR prefix is the address information of each BFR, and the address information of each BFR is unique within a BIER domain, which is equivalent to a router identification (routingidentify).
  • the BFR-prefix is generally the loopback address of the BFR device.
  • Each bit in the bit string can be used to indicate the next hop node that receives the BIER message.
  • the BFR in the BIER domain receives a header containing BIER, it forwards the BIER message according to the bit string and BIFTID carried in the BIER header.
  • each edge node in the BIER domain needs to be assigned a unique BFR-id.
  • the BFR-id configured for edge nodes such as A, D, E, and F are 4, 1, 2, and 3 respectively.
  • the bit string encapsulated in the BIER header marks all destination nodes of the traffic. For example, the bit string corresponding to node D with a BFR-id of 1 is 0001, the bit string corresponding to node F with a BFR-id of 2 is 0010, and the bit string corresponding to node E with a BFR-id of 3 is 0100, and BFR- The bit string corresponding to node A with an id of 4 is 1000.
  • the BFR-id value assigned to each edge node in the BIER domain can be flooded to other network devices in the BIER domain through a routing protocol, and the flooded BIER information also includes the IP address and encapsulation information of the network node.
  • the flooded BIER information of node A will carry the IP address of node A and the BIFT-id.
  • Nodes in the BIER domain can establish a bit index forwarding table BIFT based on the flooded BIER information, so that after the node receives the BIER message, it completes the forwarding of the BIER message to the destination node according to the established BIFT.
  • the next hops of BIER nodes with BFR-id 1, 2, and 3 are node B, and the BIER node with BFR-id 4 is itself. Therefore, the BIFT established by node A is as follows:
  • forwarding entry 1 is used to indicate that when any of the first bit, the second bit, and the third bit of the bit string of a BIER message from right to left is 1, the BIER message will go to The neighbor node B sends;
  • forwarding entry 2 is used to indicate that when the fourth bit of the bit string of a BIER message from right to left is 1, the BIER message will be sent to node A, because node A is itself, so , Node A will strip off the BIER header and forward it according to the original user data message.
  • the identifier of the forwarding entry mentioned above uses * to identify the Nbr as oneself.
  • other nodes can also establish BIFT based on neighboring nodes. For details, please refer to Figure 2, which will not be repeated here.
  • node A When node A receives the user data message, it encapsulates the BIER header before the user data message. As an example, after receiving the user data packet, node A can learn the recipient of the user data packet according to the Border Gateway Protocol BGP message. For example, the recipient of the user data packet is node E with BFR-id of 3. , Node F with BFR-id of 2 and Node D with BFR-id of 1. Node A encapsulates the bit string of the BIER header as 0111, and forwards the encapsulated BIER message to neighbor node B according to the above forwarding entry 1.
  • node E After node E receives the BIER message, it determines that the BIER message is to be sent to neighboring node E according to the bit string of 0100. Since node E determines that neighbor node E is itself according to the identifier * in the forwarding table, it will decapsulate the BIER header and forward it according to the destination address of the inner user data packet.
  • the BIER message encapsulated in IPv6 can also be called BIERv6 message.
  • the format of the BIERv6 message with the link layer as the Ethernet link is as follows:
  • the encapsulation of the above-mentioned BIERv6 message is superimposed on the Ethernet link layer as an example for encapsulation.
  • the BIER encapsulation in the embodiment of the present application may also be superimposed on other types of links, for example, a point-to-point protocol (PPP) link.
  • PPP point-to-point protocol
  • IPv6 extension headers there are many types of IPv6 extension headers, which are not specifically limited in the embodiment of the present application, for example, it may be a destination options header (destination options header).
  • a BIERv6 message may include a BIERv6 header and an inner user data message (for example, it may be an IPv6 message), where the BIERv6 header may include an IPv6 basic header and a destination option header, and the destination option header carries BIER head.
  • the BIERv6 header may include an IPv6 basic header and a destination option header, and the destination option header carries BIER head.
  • Version The length is 4bit.
  • Transmission type (traffic class, TC): The length is 8 bits, which is used to distinguish the types and priorities of different IPv6 packets.
  • a "flow” can be understood as a data packet from a specific source address to a specific destination address on the network. The data packets belonging to the same "flow” have the same flow label.
  • Payload length The length is 16 bits, the length of other parts except the IPv6 basic header, such as the length of the IPv6 extension header and the inner user data packet.
  • Next header (NH): The length is 8 bits, which can be understood as the identification number of the IPv6 extension header immediately following the IPv6 basic header (that is, the type of the IPv6 extension header), where each IPv6 extension header is also Including the NH field.
  • Hop limit (HL) The length is 8 bits, similar to the IPv4 time-to-live (TTL) field.
  • Source address (SA): The length is 128 bits and is used to fill the IPv6 address of the node that sends the data packet.
  • Destination address The length is 128 bits and is used to fill the IPv6 address of the node that receives the data packet.
  • the destination address field is a unicast address. For example, when node B sends a BIER message to node D, the IPv6 address of node D can be filled in the destination address field.
  • Next header (NH) The length is 8 bits, which can be understood as the identification number of the IPv6 extension header (the type of IPv6 extension header) immediately following the destination option header, or the upper-layer header (upper-layer header) Type, for example, the type of user datagram protocol (UDP) message.
  • Header extend length (header extend length, Hdr Ext Len): The length is 8 bits and is used to describe the length of the IPv6 extension header, for example, the length of the destination option header.
  • Type, length and value (type length value, TLV): The type value in the TLV is used to indicate that the TLV contains a BIER header, and the value part in the TLV contains the entire BIER header. Specifically, the type value in the TLV is carried in the option type (option type) field shown in FIG. 3, and the value part is carried in the BIER header (BIER header) field shown in FIG. 3.
  • the method for sending the BIER message provided by the embodiment of the application can fill the IPv6 address carrying the identifier of the node receiving the BIER message in the destination address field of the IPv6 extension header, so that the node receiving the BIER message can be identified according to the IPv6 address It is determined to perform BIER forwarding processing on the BIER message, so as to prevent the node receiving the BIER message in the traditional technology from determining the message type one by one according to the IPv6 address in the destination address field, which improves the forwarding efficiency.
  • Fig. 4 is a schematic flowchart of a method for sending a BIER message provided by an embodiment of the present application. As shown in FIG. 4, the method may include steps 410-420, and steps 410-420 will be described in detail below.
  • Step 410 The first forwarding device receives the BIER message encapsulated under the IPv6 protocol and sent by the second forwarding device.
  • the BIER message encapsulated under the IPv6 protocol received by the first forwarding device includes the IPv6 basic header and the BIER header.
  • the specific format of the BIER message encapsulated under the IPv6 protocol please refer to the description in Figure 3. Here No longer.
  • the BIER message may include multicast data or unicast data, which is not specifically limited in the embodiment of the present application.
  • Step 420 The first forwarding device determines to perform BIER forwarding processing on the BIER message according to the identifier corresponding to the first IPv6 address encapsulated in the BIER message in the forwarding table, and the identifier is used to indicate that the first IPv6 address is for BIER processing. Destination address for forwarding processing.
  • the first forwarding device determines that the address filled in the destination address field in the IPv6 basic header is the first IPv6 address, and determines whether there is a first IPv6 address in the locally stored forwarding table. If the first IPv6 address is configured, it can be understood The first forwarding device is the receiving node of the BIER message. The first forwarding device may also determine, according to the identifier corresponding to the first IPv6 address in the forwarding table, that the BIER packet needs to be BIER forwarded, where the identifier is used to indicate that the first IPv6 address is to perform BIER forwarding processing on the BIER packet The destination address.
  • the identifier corresponding to the first IPv6 address configured in the forwarding table is End.BIER
  • the configured end function of the first IPv6 address is to perform BIER forwarding processing on the BIER message.
  • the first IPv6 address may also be referred to as an IPv6 address of the End.BIER type.
  • first IPv6 address may be an address newly configured for the first forwarding device, or may also be an already configured address, which is not specifically limited in the embodiment of the present application.
  • nodes in the BIER domain may flood End.BIER type IPv6 addresses to other nodes in the BIER domain to form an IPv6 address used to guide BIER packets in the BIER domain
  • Each node in the BIER domain performs the forwarding BIFT, that is, each node in the BIER domain can establish a BIFT or BIER routing table according to the IPv6 address of the End.BIER type flooded by neighbor nodes.
  • the first forwarding device can flood other nodes in the BIER domain with an IPv6 address of the End. BIER type in specific implementation manners, which are not specifically limited in the embodiment of the present application.
  • the message in which the first forwarding device floods the BFR-IPv6-prefix carries an identifier indicating that the first IPv6 address is of the End.BIER type.
  • the first forwarding device uses a message different from BFR-IPv6-prefix, and carries the IPv6 address of the End.BIER type and the identifier corresponding to the IPv6 address by carrying the SRv6locator message, where the identifier indicates the type of the IPv6 address For End.BIER.
  • IPv6 address of the End.BIER type is used to indicate the IPv6 destination address when the BIERv6 packet is encapsulated and forwarded.
  • the following uses the first forwarding device as the node B shown in FIG. 2 to describe in detail the sending process of the BIER message provided in the embodiment of the present application.
  • Step 1 Node B configures an IPv6 address of type End.BIER.
  • the configured IPv6 address of the End.BIER type may be an IPv6 address different from the IPv6-prefix. For example, you can select an SID from the SRv6 locator address space.
  • the specific implementation of configuring End.BIER type IPv6 address under locator is as follows:
  • the configured IPv6 address of the End.BIER type may be an IPv6 address with a mask of 128 configured under the interface (for example, loopback interface), and the configuration of the IPv6 address of the End.BIER type
  • the method is different from the common IPv6 address configuration method.
  • the specific configuration method is as follows:
  • a configuration that uses End.BIER as BFR-IPv6-Prefix at the same time is as follows:
  • Step 2 Node B locally saves and floods the configured IPv6 address of End.BIER type.
  • node B floods the End.BIER type IPv6 address and its End.BIER indication message to other nodes in the BIER domain, and the message used to flood the BIER information is two different News.
  • the IPv6 address of End.BIER and its End.BIER indication are carried in the IS-IS SRv6locator message, and the BIER information is carried in the IS-IS prefix-reachability message.
  • the BIER information is carried in the prefix-reachability TLV message of the IS-IS protocol.
  • the message carries a BFR-Prefix IPv6 address (called BFR-IPv6-Prefix). ), it also carries BIER sub-domain (sub-domain) information.
  • BIER sub-domain information may be a BIER Info subTLV (BIER Info subTLV).
  • the IPv6 address of the End.BIER type is carried in the SRv6 locator message of the IS-IS protocol.
  • the SRv6 SID information of End.BIER in the SRv6 locator message can carry the SID value of End.BIER (for example, SID represents the first IPv6 Address), and an indication of End.BIER (for example, SID type means End.BIER).
  • SID value of End.BIER for example, SID represents the first IPv6 Address
  • SID type for example, SID type means End.BIER.
  • the IPv6 address of End.BIER and the IPv6 address of BFR-Prefix can be different addresses or the same address.
  • the IPv6 address of the End.BIER type and its End.BIER identifier can be in the same message as the BIER information.
  • the IPv6 address of the BFR-prefix will be the IPv6 address of End.BIER at the same time, with End.BIER indication information.
  • Step 3 Node A encapsulates the IPv6 header according to the IPv6 address of the End.BIER type flooded by node B.
  • Node A can create a forwarding table entry based on the End.BIER type IPv6 address flooded by node B, and determine the need to replicate to node B based on the forwarding table entry, and fill the IPv6 basic with the End.BIER type IPv6 address flooded by node B DA field in the header and sent to node B.
  • Step 4 Node B performs BIER forwarding processing on the BIER message according to the End.BIER type IPv6 address of Node B according to the DA field in the received BIER message.
  • next header NH in the IPv6 basic header of the BIER message received by Node B is an extended header carrying a BIER header
  • the BIER message contains an SRH header
  • it will The SRH header pops up, and the BIER forwarding is performed according to the bit string field in the BIER header. Otherwise, the node B discards the BIER message and sends an Internet Control Message Protocol (Internet Control Message Protocol, ICMP) parameter problem message.
  • Internet Control Message Protocol Internet Control Message Protocol
  • the next header NH in the IPv6 basic header of the BIER message received by Node B is the segment routing header SRH, and the segment remaining SL of the segment routing header SRH is 0, the route
  • the next header NH of the header SRH is an extended header carrying a BIER header
  • the SRH header is popped, and the BIER forwarding is performed according to the bit string field in the BIER header. Otherwise, Node B discards the BIER message and sends an ICMP parameter problem message.
  • the specific configuration is as follows:
  • step 8 if the next header is the last NH of the NH chain, that is to say, the next header is the NH field filled with the upper-layer header, the upper-layer header can indicate the inner layer The type of message, the node can forward the inner user data message.
  • TCP Transmission Control Protocol
  • MPLS multi-protocol label switching
  • the next header NH in the IPv6 basic header of the BIER message received by node B is a fragment header
  • the next header NH in the fragment header is When carrying an extended header of a BIER header; or the IPv6 basic header is followed by an extended header carrying BIER, followed by a segment header. Then, BIER forwarding is performed according to the bit string field in the BIER header. Otherwise, Node B discards the BIER message and sends an ICMP parameter problem message.
  • the processing process is as follows:
  • the next header NH in the IPv6 basic header of the BIER message received by Node B is an extended header carrying a BIER header, and the next header in the extended header NH is an authentication header (AH). If the SRH header is included in the BIER message, the SRH header is popped out, and BIER forwarding is performed according to the bit string field in the BIER header. Otherwise, the node B discards the BIER message and sends an Internet Control Message Protocol (Internet Control Message Protocol, ICMP) parameter problem message.
  • ICMP Internet Control Message Protocol
  • CPU central processing unit
  • Last_NH ICMPv6
  • Step 5 Node B forwards the BIER message to neighbor node E.
  • the node B can determine that the BIER message needs to be sent to the node C and the node E respectively according to the forwarding entry and the bit string of 0111.
  • node B sends the BIER message to node C, it can modify the bit string of the BIER header to 0011, fill the DA field in the IPv6 basic header with the flooded End.BIER IPv6 address of node C, and send it to the node C.
  • node B sends the BIER message to node E it can modify the bit string of the BIER header to 0100, fill the DA field in the IPv6 basic header with the IPv6 address of the End.BIER type flooded by node E, and Send to node E.
  • node B in the embodiment of the present application sends a BIER message to node E
  • the node can pop the extended header carrying the BIER header in the BIER message .
  • the destination option header carrying the BIER header is popped up, and the BIER message that does not include the destination option header carrying the BIER header is sent to node E.
  • node E needs to decapsulate the extended header carrying the BIER header, and forward the inner user data message.
  • the node E may directly forward the inner user data message without decapsulating the extended header carrying the BIER header.
  • the specific configuration is as follows:
  • the leaf node E may not support reading and processing the BIER header, but as long as it can support popping of the outer IPv6 header, it can be deployed in the network according to this method.
  • node B receives End.BIER whose destination address is B, and will go through the following End.BIER processing flow, determine that there are N BIER headers in the IPv6 extension header, and read the Mth BIER header Head and copy, for example, copy to node E, fill IPv6DA with End.BIER of node E, pop other BIER headers except the M-th BIER header, and keep only the M-th BIER header.
  • the length field of the IPv6 extension header is also changed accordingly. Taking the next header NH in the IPv6 basic header as the destination option header, its specific configuration is as follows:
  • step 2 "HdrExtLen*8+8" is used to indicate the total length of the destination option header (DestOptHdr), and "OptLength1" is used to indicate the length in the first BIER TLV (Length, that is, the length of the BIER header).
  • the length of the BIER header +4 is an integer multiple of 8, because the destination option header (DestOptHdr) requires the entire header length to be an integer multiple of 8, and its Length is the length value in units of 8 bytes and does not include the first 8 byte.
  • step 3 to step 8 is a loop to determine whether the message format meets the requirements.
  • multiple BIER headers are required to have the same length (the same length as the first BIER header OptLength1) ), the second and subsequent BIER headers are filled with PadN (see RFC8200 filling requirements).
  • steps 9 to 14 are another loop that traverses each BIER header processing without having to process the PadN header.
  • steps 9 to 14 are another loop that traverses each BIER header processing without having to process the PadN header.
  • steps 9 to 14 are another loop that traverses each BIER header processing without having to process the PadN header.
  • steps 9 to 14 are another loop that traverses each BIER header processing without having to process the PadN header.
  • steps 9 to 14 are another loop that traverses each BIER header processing without having to process the PadN header.
  • FIG. 7 is a schematic structural diagram of an apparatus 700 for sending a BIER message according to an embodiment of the present application.
  • the apparatus 700 for sending a BIER message may include:
  • the receiving module 710 is configured to receive a BIER message encapsulated under the Internet Protocol Version 6 IPv6 protocol sent by the second forwarding device, the BIER message including an IPv6 basic header and a BIER header, where the IPv6 basic header
  • the destination address field in the part is the first IPv6 address of the first forwarding device
  • the processing module 720 is configured to determine to perform BIER forwarding processing on the BIER message according to the identifier corresponding to the first IPv6 address in the forwarding table, where the identifier is used to indicate that the first IPv6 address is performing BIER forwarding processing The destination address.
  • the processing module 720 is specifically configured to: determine that the address filled in the destination address field in the IPv6 basic header is the same as the first IPv6 address in the forwarding table; and the first forwarding device according to the The identifier corresponding to the first IPv6 address determines to perform BIER forwarding processing on the BIER message.
  • the apparatus 700 for sending the BIER message further includes: a configuration module 740, configured to configure the first IPv6 address and the identifier.
  • the apparatus 700 further includes: a sending module 730, configured to flood the first IPv6 address and the identifier of the first forwarding device to the network through a routing protocol.
  • a sending module 730 configured to flood the first IPv6 address and the identifier of the first forwarding device to the network through a routing protocol.
  • the processing module 720 is specifically configured to: when the next header NH field in the IPv6 basic header is an extended header carrying a BIER header, according to the bit string in the BIER header The field is forwarded by BIER.
  • the processing module 720 is specifically configured to: when the next header NH field in the IPv6 basic header is a routing header RH, where the next header NH field of the routing header RH carries a When the extension header of the BIER header, the routing header RH is popped up, and the BIER forwarding is performed according to the bit string field in the BIER header.
  • the routing header RH is a segment routing header SRH, and the segment remaining SL of the segment routing header SRH is 0.
  • the processing module 720 is specifically configured to: when the next header NH field in the IPv6 basic header is an extended header carrying a BIER header, the next header NH of the extended header When the field is the AH authentication header, BIER forwarding is performed according to the bit string field in the BIER header.
  • the processing module 720 is specifically configured to: fill the destination address field in the IPv6 basic header of the BIER message as the third forwarding device according to the bit string in the BIER header and the BIER forwarding table The first IPv6 address of the BIER forwarding table, wherein the BIER forwarding table is established according to the first IPv6 address carried in the BIER message flooded by the third forwarding device; The BIER message is copied to the third forwarding device.
  • the processing module 720 is specifically configured to: eject one or more BIER headers carried; eject an extended header containing the one or more BIER headers; and will not include the extended header Copy the BIER message to the third forwarding device.
  • the processing module 720 is specifically configured to: when it is determined that the third forwarding device is a leaf node, pop up one or more extended headers of the carried BIER header.
  • the extended header is a destination option header.
  • the routing protocol includes any one of the following protocols: intermediate system to intermediate system IS-IS protocol, open shortest path first OSPF protocol, and border gateway protocol BGP.
  • FIG. 8 is a schematic structural diagram of a first forwarding device 800 provided by an embodiment of the present application.
  • the first forwarding device 600 may include: a memory 810, a processing 820, and an input/output interface 830.
  • the memory 810, the processor 820, and the input/output interface 830 are connected through an internal connection path.
  • the memory 810 is used to store program instructions
  • the processor 820 is used to execute the program instructions stored in the memory 810 to control the input/output interface.
  • 830 receives input data and information, and outputs data such as operation results.
  • the processor 820 may adopt a central processing unit (central processing unit, CPU), and the processor may also be other general-purpose processors, digital signal processors (DSP), and Application specific integrated circuit (ASIC), field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the processor 820 adopts one or more integrated circuits to execute related programs to implement the technical solutions provided in the embodiments of the present application.
  • the memory 810 may include a read-only memory and a random access memory, and provides instructions and data to the processor 820.
  • a part of the processor 820 may also include a non-volatile random access memory.
  • the processor 820 may also store device type information.
  • the steps of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 820 or instructions in the form of software.
  • the method disclosed in combination with the embodiments of the present application may be directly embodied as being executed by a hardware processor, or executed by a combination of hardware and software modules in the processor.
  • the software module can be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
  • the storage medium is located in the memory 810, and the processor 820 reads information in the memory 810, and completes the steps of the foregoing method in combination with its hardware. To avoid repetition, it will not be described in detail here.
  • first forwarding device 800 is used to execute the corresponding processes of the respective methods in FIG. 2 to FIG. 4 in the embodiment of the present application, and the foregoing and other operations of the various modules in the first forwarding device 800 and /Or the functions are to implement the corresponding processes of the respective methods in FIG. 2 to FIG. 4 in the embodiments of the present application. For brevity, details are not repeated here.
  • the processor can implement the steps executed by each module by calling a computer program in the memory.
  • the processor may call the computer instructions stored in the cache to execute the steps required by each module (for example, the receiving module 710 and the processing module 720 shown in FIG. 7).
  • the size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, rather than corresponding to the embodiments of the present application.
  • the implementation process constitutes any limitation.
  • the disclosed system, device, and method may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • each unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this application essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the method described in each embodiment of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disk or optical disk and other media that can store program code .

Landscapes

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

Abstract

本申请提供了一种基于BIER报文的发送方法,该方法包括:接收第二转发设备发送的在IPv6协议下封装的BIER报文,BIER报文包括IPv6基本头部和BIER头部,IPv6基本头部中的目的地址字段为第一转发设备的第一IPv6地址;根据转发表中第一IPv6地址对应的标识确定对BIER报文进行BIER转发处理,该标识用于指示第一IPv6地址为进行BIER转发处理的目的地址。本申请提供的技术方案可以使节点根据第一IPv6地址的标识确定对BIER报文进行BIER转发处理,避免传统技术中接收BIER报文的节点根据IPv6地址确定报文类型,提高了转发效率。

Description

一种BIER报文的发送方法和装置
本申请要求于2019年6月6日提交中国专利局、申请号为201910493114.7、申请名称为“一种BIER报文的发送方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及网络通信领域,并且更具体地,涉及一种基于位索引的显示复制BIER报文的发送方法和装置。
背景技术
网络协议(internet protocol,IP)组播技术实现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载。因此,在实时数据传送、多媒体会议、数据拷贝、交互式网络电视(internet protocol television,IPTV)、游戏和仿真等诸多方面都有广泛的应用。该组播技术的组播协议需要构建一种控制平面组播树,利用这种组播树将网络平面逻辑树状,以实现组播转发的点到多点的数据转发。这种以构建分发树为核心的组播路由协议的中间节点都需要维护复杂的组播转发信息的状态。在网络规模越来越大,组播数据流量与日俱增的情况下,这种组播技术面临越来越大的成本和运维方面的挑战。
为此,业界提出了一种新的用于构建组播数据转发路径的技术,称为基于位索引的显示复制(bitindexed explicit replication,BIER)技术,该技术提出了一种新的不需要构建组播分发树的组播技术架构。支持BIER技术的转发节点可以根据封装的BIER头信息在本BIER域内进行BIER报文的转发。
在互联网协议第6版(internet protocol version 6,IPv6)下传输BIER报文,需要对BIER报文进行封装。传统的技术方案中,支持BIER技术的转发节点将各个节点泛洪的普通IP地址封装在IPv6基本头中的目的地址字段中。但是,由于在目的地址字段中填充普通的IP地址,使得接收BIER报文的节点需要根据目的地址字段中的IPv6地址确定报文格式的类型,造成其转发效率较低。
因此,如何提高转发效率称为当前亟需要解决的问题。
发明内容
本申请提供一种BIER报文的发送方法和装置,可以在IPv6扩展头的目的地址字段中填充邻居节点的第一IPv6地址,以便于接邻居节点根据第一IPv6地址的标识确定对BIER报文进行BIER转发,避免传统技术中接收BIER报文的节点根据IPv6地址逐个确定报文类型,提高了转发效率。
第一方面,提供了一种BIER报文的发送方法,所述方法包括:第一转发设备接收第二转发设备发送的在互联网协议第六版IPv6协议下封装的BIER报文,所述BIER报文包括IPv6基本头部和BIER头部,其中,所述IPv6基本头部中的目的地址字段为 所述第一转发设备的第一IPv6地址;所述第一转发设备根据转发表中所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发,其中,所述标识用于指示所述第一IPv6地址为进行BIER转发的目的地址。
上述技术方案中,可以在IPv6扩展头的目的地址字段中填充邻居节点的第一IPv6地址,以便于接邻居节点根据第一IPv6地址的标识确定对BIER报文进行BIER转发,避免传统技术中接收BIER报文的节点根据IPv6地址逐个确定报文类型,提高了转发效率。
在一种可能的实现方式中,所述第一转发设备确定所述IPv6基本头部中的目的地址字段填充的地址和所述转发表中的第一IPv6地址相同;所述第一转发设备根据所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发。
在另一种可能的实现方式中,所述第一转发设备配置所述第一IPv6地址以及所述标识。
在另一种可能的实现方式中,在所述第一转发设备接收第二转发设备发送的在互联网协议第六版IPv6协议下封装的BIER报文之前,所述方法还包括:所述第一转发设备通过路由协议向网络泛洪所述第一转发设备的第一IPv6地址和所述标识。
上述技术方案中,第一转发设备可以向网络中的其他节点泛洪第一IPv6地址和所述标识,以便于网络中的其他节点根据第一转发设备泛洪的第一IPv6地址建立转发表以及对报文进行封装。
应理解,第一转发设备通过路由协议向网络泛洪的第一转发设备的第一IPv6地址和所述标识与BIER消息可以是同一个消息,或者还可以是与BIER消息不同的消息,本申请对此不做具体限定。
在另一种可能的实现方式中,所述第一IPv6地址为IPv6段路由(IPv6segment routing,SRv6)的分段标识(segment identify,SID)。
在另一种可能的实现方式中,当所述IPv6基本头部中的下一个头部(next header,NH)字段为携带一个BIER头部的扩展头部时,所述第一转发设备根据所述BIER头部中的比特串字段进行BIER转发。
在另一种可能的实现方式中,当所述IPv6基本头部中的下一个头部NH字段为路由头(routingheader,RH),其中,所述路由头RH的下一个头部NH字段为携带一个BIER头部的扩展头部时,所述第一转发设备弹出所述路由头RH,根据所述BIER头部中的比特串字段进行BIER转发。
在另一种可能的实现方式中,所述路由头RH为段路由头部(segmentroutingheader,SRH),所述段路由头部SRH的段剩余SL为0。
在另一种可能的实现方式中,当所述IPv6基本头部中的下一个头部NH字段为携带一个BIER头部的扩展头部,所述扩展头部的下一个头部NH字段为AH认证头时,所述第一转发设备根据所述BIER头部中的比特串字段进行BIER转发。
在另一种可能的实现方式中,当所述IPv6基本头部中的下一个头部NH字段为4或41或97或137,所述第一转发设备弹出所述IPv6基本头部,对所述用户数据报文进行转发。
在另一种可能的实现方式中,所述第一转发设备根据所述BIER头部中的比特串 和BIER转发表,将所述BIER报文的IPv6基本头部中的目的地址字段填充为第三转发设备的第一IPv6地址,其中,所述BIER转发表是根据所述第三转发设备泛洪的消息中携带的第一IPv6地址建立的;所述第一转发设备根据所述BIER转发表将所述BIER报文复制到所述第三转发设备。
在另一种可能的实现方式中,所述第一转发设备将携带的一个或多个BIER头部弹出;所述第一转发设备将包含所述一个或多个BIER头部的扩展头部弹出;所述第一转发设备将不包括所述扩展头部的BIER报文复制到所述第三转发设备。
在另一种可能的实现方式中,所述第一转发设备确定所述第三转发设备为叶子节点时,将携带的一个或多个BIER头部的扩展头部弹出。
在另一种可能的实现方式中,所述扩展头部为目的选项头部。
在另一种可能的实现方式中,所述路由协议包括以下中的任意一种协议:中间系统到中间系统IS-IS协议、开放式最短路径优先OSPF协议、边界网关协议BGP。
第二方面,提供了一种BIER报文的发送装置,所述装置包括:
接收模块,用于接收第二转发设备发送的在互联网协议第六版IPv6协议下封装的BIER报文,所述BIER报文包括IPv6基本头部和BIER头部,其中,所述IPv6基本头部中的目的地址字段为所述第一转发设备的第一IPv6地址;
处理模块,用于根据转发表中所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发,其中,所述标识用于指示所述第一IPv6地址为进行BIER转发的目的地址。
在一种可能的实现方式中,所述处理模块具体用于:确定所述IPv6基本头部中的目的地址字段填充的地址和所述转发表中的第一IPv6地址相同;所述第一转发设备根据所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发。
在另一种可能的实现方式中,还包括配置模块,用于配置所述第一IPv6地址以及所述标识。
在另一种可能的实现方式中,所述装置还包括:发送模块,用于通过路由协议向网络泛洪所述第一转发设备的第一IPv6地址和所述标识。
在另一种可能的实现方式中,所述处理模块具体用于:当所述IPv6基本头部中的下一个头部NH字段为携带一个BIER头部的扩展头部时,根据所述BIER头部中的比特串字段进行BIER转发。
在另一种可能的实现方式中,所述处理模块具体用于:当所述IPv6基本头部中的下一个头部NH字段为路由头RH,其中,所述路由头RH的下一个头部NH字段为携带一个BIER头部的扩展头部时,弹出所述路由头RH,根据所述BIER头部中的比特串字段进行BIER转发。
在另一种可能的实现方式中,所述路由头RH为段路由头部SRH,所述段路由头部SRH的段剩余SL为0。
在另一种可能的实现方式中,所述处理模块具体用于:当所述IPv6基本头部中的下一个头部NH字段为携带一个BIER头部的扩展头部,所述扩展头部的下一个头部NH字段为AH认证头时,根据所述BIER头部中的比特串字段进行BIER转发。
在另一种可能的实现方式中,所述处理模块具体用于:根据所述BIER头部中的 比特串和BIER转发表,将所述BIER报文的IPv6基本头部中的目的地址字段填充为第三转发设备的第一IPv6地址,其中,所述BIER转发表是根据所述第三转发设备泛洪的BIER消息中携带的第一IPv6地址建立的;所述第一转发设备根据所述BIER转发表将所述BIER报文复制到所述第三转发设备。
在另一种可能的实现方式中,所述处理模块具体用于:将携带的一个或多个BIER头部弹出;将包含所述一个或多个BIER头部的扩展头部弹出;将不包括所述扩展头部的BIER报文复制到所述第三转发设备。
在另一种可能的实现方式中,所述处理模块具体用于:确定所述第三转发设备为叶子节点时,将携带的一个或多个BIER头部的扩展头部弹出。
在另一种可能的实现方式中,所述扩展头部为目的选项头部。
在另一种可能的实现方式中,所述路由协议包括以下中的任意一种协议:中间系统到中间系统IS-IS协议、开放式最短路径优先OSPF协议、边界网关协议BGP。
第三方面,提供了一种第一转发设备,其特征在于,包括输入输出接口、处理器和存储器,其中所述处理器用于控制所述输入输出接口收发信息,所述存储器用于存储计算机程序,所述处理器用于从存储器中调用并运行该计算机程序,使得所述第一转发设备执行第一方面或第一方面任意一种可能的实现方式中所述的方法。
可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
第六方面,提供了一种系统,该系统包括第一转发节点、第二转发节点和第三转发节点,其中,第一转发节点用于执行上述第一方面或第一方面的可能的实现方式中的方法。第二转发节点用于根据第一转发节点泛洪的第一IPv6地址填充BIER报文中IPv6基本头部中的目的地址字段,并将该BIER报文发送至第一转发节点。第三转发节点用于接收第一转发节点发送的BIER报文,并根据BIER报文中IPv6基本头部中的目的地址字段中填充的地址为其配置的第一IPv6地址,对所述BIER报文进行BIER转发。
附图说明
图1是本申请实施例提供的一种BIER技术的示意性组网图。
图2是本申请实施例提供的一种在BIER域中根据BIER头发送BIER报文的示意性框图。
图3是本申请实施例提供的一种BIERv6报文的格式示意图。
图4是本申请实施例提供的一种BIER报文的发送方法的示意性流程图。
图5是本申请实施例提供的一种SRv6 locator消息格式的示意图。
图6是本申请实施例提供的一种IPv6-prefix消息格式的示意图。
图7是本申请实施例提供的一种BIER报文的发送装置700的示意性结构图。
图8是本申请实施例提供的一种第一转发设备800的示意性结构图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
网络协议(internet protocol,IP)组播技术实现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载。因此,在实时数据传送、多媒体会议、数据拷贝、交互式网络电视(internet protocol television,IPTV)、游戏和仿真等诸多方面都有广泛的应用。该组播技术的组播协议需要构建一种控制平面组播树,利用这种组播树将网络平面逻辑树状,以实现组播转发的点到多点的数据转发。这种以构建分发树为核心的组播路由协议的中间节点都需要维护复杂的组播转发信息的状态。在网络规模越来越大,组播数据流量与日俱增的情况下,这种组播技术面临越来越大的成本和运维方面的挑战。
为此,业界提出了一种新的用于构建组播数据转发路径的技术,称为基于位索引的显示复制(bitindexed explicit replication,BIER)技术,该技术提出了一种新的不需要构建组播分发树的组播技术架构。如图1所示,支持BIER技术的路由器可以称为(BIER forwarding router,BFR),该BFR设备可以接收并转发BIER报文。由一个或多个BFR组成的一个组播转发域称为BIER域(BIER domain)。在BIER域的边缘,对用户的组播数据进行BIER数据报文封装的设备称为BIER转发入口路由器(BIERforwarding ingress router,BFIR),解封装BIER数据报文的设备称为BIER转发出口路由器(BIERforwarding egress router,BFER)。
在BIER域中,对每台边缘的节点(例如,BFER)可以配置一个在整个BIER子域(sub domain,SD)中全局唯一的比特位置(bit position)。作为一个示例,可以为每一个边缘的节点配置一个值作为BFR标识(identification,ID),例如,一个1-256之间的一个数值。BIER域中所有的BFRID组成一个比特串(bit string),用户数据流量(也可以称为BIER报文)在BIER域中传输时需要额外封装一个特定的BIER头,BIER头以bit string的形式标注了该用户数据流量的所有目的节点。BIER域中的中间转发节点根据BIER头中携带的bit string进行路由,保证用户数据流量能够发送到所有的目的地址。
节点配置的比特位置信息事先会通过内部网关协议(interior gateway protocol,IGP)或者外部网关协议(border gateway protocol,BGP)在BIER域中泛洪,形成用于指导用户数据流量在BIER域中的每个节点进行转发的位索引转发表(bit index forwarding table,BIFT)。BFR在接收到封装有BIER头的BIER报文时,根据BIFT来完成BIER报文到目的节点的转发。本申请实施例中内部网关协议IGP可以包括但不限于:开放式最短路径优先(open shortest path first,OSPF)协议,中间系统到中间系统(intermediate system tointermediate system,ISIS)协议等。
为了便于理解,下面对BIER技术中的基本概念进行描述。
(1)BIFT ID
BIFT ID可以包括子域(sub-domain,SD)/比特串长度(bit string length,BSL)/集合标识(set identifier,SI)的一个组合,不同的BIFT ID可以对应于不同的SD/BSL/SI组合。
1、子域SD
一个BIER域可以根据实际的业务场景的需求配置为不同的子域SD,每个子域SD由子域标识(sub-domain identify,SD-ID)来表示,取值为[0-255],长度为8bit。作为一个示例,可以根据业务例如,虚拟私有网(virtual private network,VPN)的不同,将BIER域配置为不同的SD。例如,VPN 1使用SD 0,VPN 1使用SD 1。
需要说明的是,多个VPN也可以使用相同的SD,BIER域中不同的SD可以在一个IGP进程或拓扑中,也可以不在一个IGP进程或拓扑中,本申请实施例对此不做具体限定。
2、比特串长度BSL
BSL为BIER头中包括的bit string的长度。BSL可以有多种,本申请实施例对此不做具体些限定。最小的64位,依次有128位,256位,512位,1024位,2048位,最大的4096位。具体的,在报文中通过4bit来标识,例如当BSL为64位时,报文中用0001标识,当BSL为128位时,报文中用0010标识,当BSL为512位时,报文中用0100标识,当BSL为1024位时,报文中用0101标识,依次类推。
3、集合标识SI
SI可以理解为网络中的多个节点或配置的BFR ID组成的集合。作为一个示例,BSL为256bit,但是网络中有超过256个节点,或者配置的BFR ID有超过256个,则需要将这些节点或BFR ID划分为不同的集合。例如,BFR ID=1to 256的节点为集合0(setindex0,或SI=0),BFR ID=257to 512的节点为集合1(setindex 1,或者SI=1)。
BIER域中的BFR在接收到了BIER报文之后,可以根据BIER头中的BIFT ID确定该BIER报文属于哪个SD,使用的BSL以及转发该报文的节点或配置的BFR ID组成的集合。
下面列举出几种可能的BIFT ID所代表的对应的SD/BSL/SI组合。
BIFT ID=91:corresponding toSD 0,BSL 256,SI 0
BIFT ID=92:corresponding to SD 0,BSL 256,SI 1
BIFT ID=93:corresponding to SD 0,BSL 256,SI 2
BIFT ID=94:corresponding to SD 0,BSL 256,SI 3
BIFT ID=95:corresponding to SD 0,BSL 512,SI 0
BIFT ID=96:corresponding to SD 0,BSL 512,SI 1
以BIFT ID=92为例,BFR在接收到了BIER报文之后,可以根据该BIER头中的BIFT ID获取该BIER报文属于SD 0,BIER头中使用的BSL为256bit,属于集合1(包括BFR ID=257to 512的节点的集合)。
(2)BFR前缀(BFR-prefix)
BFR前缀为每个BFR的地址信息,每个BFR的地址信息在一个BIER域内是唯一的,相当于路由器标识(routingidentify)。具体的,BFR-prefix一般为BFR设备的 loopback(回环)地址。
(3)比特串(bit string)
bit string中的每一个bit可以用来表示接收BIER报文的下一跳节点。当BIER域中的BFR在接收到了包含有BIER的报文头时,根据BIER头中携带的bit string以及BIFTID转发BIER报文。
以BFR接收到的BIER头中的BIFT ID=92为例,bit string的长度为256bit,转发BIER报文的节点为BFR ID=257to 512的节点。bit string中的低位(最右)的一个bit用来标识目的节点是BFR ID=257的节点,bit string中从右往左的第2个bit用来标识目的节点是BFR ID=258的节点。
下面结合图2,对基于BIER技术进行BIER报文的转发过程进行详细描述。
如图2所示,需要为每一个BIER域内的边缘节点分配一个唯一的BFR-id,例如,边缘节点如A、D、E、F配置的BFR-id分别为4、1、2、3。BIER头中封装的bit string标注了该流量的所有目的节点。例如,对于BFR-id为1的节点D对应的bit string为0001,BFR-id为2的节点F对应的bit string为0010,BFR-id为3的节点E对应的bit string为0100,BFR-id为4的节点A对应的bit string为1000。
应理解,为每一个BIER域内的边缘节点分配的BFR-id值可以通过路由协议向BIER域内的其他网络设备进行泛洪,泛洪的BIER信息中还包括网络节点的IP地址、封装信息。例如节点A的泛洪的BIER信息会携带节点A的IP地址以及BIFT-id。BIER域内的节点可以根据泛洪的BIER信息建立位索引转发表BIFT,以便于该节点接收到BIER报文之后,根据建立的BIFT来完成BIER报文到目的节点的转发。
对于A节点而言,BFR-id为1、2、3的BIER节点的下一跳均为节点B,BFR-id为4的BIER节点为其自己,因此,A节点建立的BIFT如下所示:
转发表项1:邻居(neighbor,Nbr)=B,转发位掩码(forwarding bit mask,FBM)=0111;
转发表项2:Nbr*=A,FBM=1000。
其中,转发表项1用于表示当有BIER报文的bit string从右往左第1个bit位、第2个bit位、第3个bit位任意一个为1时,该BIER报文会往邻居节点B发送;转发表项2用于表示当有BIER报文的bit string从右往左第4个bit位为1时,该BIER报文会往节点A发送,由于节点A是自己,因此,节点A会剥掉BIER头,按照原始用户数据报文进行转发。
需要说明的是,上述转发表项的标识中使用*标识该Nbr为自己。同样地,其他节点也可以根据邻居节点建立BIFT,具体的请参考图2,此处不再赘述。
当节点A收到用户数据报文后,在用户数据报文前封装BIER头。作为一个示例,节点A可以在接收到用户数据报文后,根据边界网关协议BGP消息获知该用户数据报文的接收者,例如,用户数据报文的接收者为BFR-id为3的节点E、BFR-id为2的节点F、BFR-id为1的节点D。节点A封装BIER头的bit string为0111,并根据上述转发表项1将封装之后的BIER报文转发到邻居节点B。节点B收到该BIER报文后,根据bit string为0111以及BIFT确定需要将该BIER报文分别发送至节点C和节点E。节点B将该BIER报文往节点C发送时,可以将BIER头的bit string为0111以及BIFT 里Nbr=C的表项的FBM字段做AND操作,本申请实施例中AND的结果是0011,因此,节点B可以将BIER头的bit string修改为0011,并发送至节点C。同样地,节点B将该BIER报文往节点E发送时,可以将BIER头的bit string修改为0100。节点E收到该BIER报文后,根据bit string为0100确定该BIER报文要往邻居节点E发送。由于节点E根据转发表中的标识*确定邻居节点E为自己,因此会解封装BIER头,并根据内层的用户数据报文的目的地址进行转发。
应理解,BIER头在不同的协议下的封装格式不同。在IPv6下封装的BIER报文也可以称为BIERv6报文,以链路层为以太链路的BIERv6报文的格式如下所示:
Eth头+IPv6基本头+IPv6扩展头(内含BIER头)+用户数据报文
需要说明的是,为了便于描述,上述BIERv6报文的封装是叠加在以太链路层为例进行封装的。本申请实施例中BIER封装还可以是叠加其他类型的链路上,例如,点对点协议(pointtopoint protocol,PPP)的链路。
应理解,IPv6扩展头有多种,本申请实施例对此不做具体限定,例如,可以是目的选项头(destination options header)。
下面结合图3,以IPv6扩展头为目的选项头为例,对在IPv6下封装的BIER报文的格式进行详细描述。
参见图3,BIERv6报文可以包括BIERv6头以及内层的用户数据报文(例如,可以是IPv6报文),其中,BIERv6头可以包括IPv6基本头以及目的选项头,该目的选项头中携带BIER头。具体的有关BIER头请参考上文中的描述,此处不再赘述。
(1)IPv6基本头:
版本号(version):长度为4bit。
传输类型(traffic class,TC):长度为8bit,用于区分不同的IPv6数据包的类别以及优先级。
流标识(flow label):长度为20bit,“流”可以理解为网络上从特定的源地址到特定的目的地址的数据包,属于同一个“流”的数据包的流标识相同。
载荷长度(payload length):长度为16bit,除IPv6基本头之外的其他部分的长度,例如IPv6扩展头和内层的用户数据报文的长度。
下一个头部(next header,NH):长度为8bit,可以理解为紧跟在IPv6基本头后面的IPv6扩展头的标识号(即IPv6扩展头的类型),其中,每一个IPv6扩展头中也包括NH字段。
跳数极限(hop limit,HL):长度为8bit,类似于IPv4的生存时间(timeto live,TTL)字段。
源地址(source address,SA):长度为128bit,用于填充发送的数据包的节点的IPv6地址。
目的地址(destination address,DA):长度为128bit,用于填充接收数据包的节点的IPv6地址。该目的地址字段为单播地址,例如,节点B向节点D发送BIER报文时,可以在目的地址字段中填充节点D的IPv6地址。
(2)目的选项头(destination options header)
下一个头部(next header,NH):长度为8bit,可以理解为紧跟在目的选项头后 面的IPv6扩展头的标识号(即IPv6扩展头的类型),或者上层头(upper-layer header)类型,例如,用户数据报协议(user datagram protocol,UDP)报文的类型。
扩展头长度(header extend length,Hdr Ext Len):长度为8bit,用于描述IPv6扩展头的长度,例如,目的选项头的长度。
类型,长度和值(typelength value,TLV):该TLV中的type值用于指示该TLV中包含有一个BIER头,该TLV中的value部分则包含整个BIER头。具体的,该TLV中的type值携带于图3所示的选项类型(option type)字段中,value部分携带于图3所示的BIER头(BIER header)字段。
本申请实施例提供的BIER报文的发送方法,可以在IPv6扩展头的目的地址字段中填充接收BIER报文的节点的携带标识的IPv6地址,以便于接收BIER报文的节点根据IPv6地址的标识确定对BIER报文进行BIER转发处理,避免传统技术中接收BIER报文的节点根据目的地址字段中的IPv6地址逐个确定报文类型,提高了转发效率。
图4是本申请实施例提供的一种BIER报文的发送方法的示意性流程图。如图4所示,该方法可以包括步骤410-420,下面分别对步骤410-420进行详细描述。
步骤410:第一转发设备接收第二转发设备发送的在IPv6协议下封装的BIER报文。
第一转发设备接收到的在IPv6协议下封装的BIER报文包括IPv6基本头部和BIER头部,具体的有关在IPv6协议下封装的BIER报文的格式请参考图3中的描述,此处不再赘述。
需要说明的是,BIER报文可以包括组播数据或者单播数据,本申请实施例对此不做具体限定。
步骤420:第一转发设备根据转发表中BIER报文中封装的第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发处理,该标识用于指示所述第一IPv6地址为进行BIER转发处理的目的地址。
第一转发设备确定IPv6基本头部中的目的地址字段中填充的地址为第一IPv6地址,并确定本地存储的转发表中是否有第一IPv6地址,如果配置有该第一IPv6地址,可以理解为第一转发设备为该BIER报文的接收节点。第一转发设备还可以根据转发表中第一IPv6地址对应的标识确定需要对该BIER报文进行BIER转发处理,其中,该标识用于表示该第一IPv6地址为对BIER报文进行BIER转发处理的目的地址。
例如,转发表中配置的第一IPv6地址对应的标识为End.BIER,可以理解为配置的该第一IPv6地址的终点功能(end function)为对BIER报文进行BIER转发处理。第一IPv6地址也可以称为End.BIER类型的IPv6地址。
需要说明的是,第一IPv6地址可以是为第一转发设备新配置的地址,或者还可以是已经配置的地址,本申请实施例对此不做具体限定。
可选地,在一些实施例中,BIER域中的节点,例如第一转发设备可以向BIER域中的其他节点泛洪End.BIER类型的IPv6地址,形成用于指导BIER报文在BIER域中的每个节点进行转发的BIFT,也就是说,BIER域中的每个节点可以根据邻居节点泛洪的End.BIER类型的IPv6地址建立BIFT或者BIER路由表。
第一转发设备可以向BIER域中的其他节点泛洪End.BIER类型的IPv6地址的具 体实现方式有多种,本申请实施例对此不做具体限定。作为一个示例,第一转发设备使用泛洪BFR-IPv6-prefix的消息中携带指示第一IPv6地址为End.BIER类型的标识。作为另一个示例,第一转发设备使用不同于BFR-IPv6-prefix的消息,通过携带SRv6locator消息中携带该End.BIER类型的IPv6地址以及IPv6地址对应的标识,其中,该标识指示IPv6地址的类型为End.BIER。下面会结合具体的例子进行详细描述,此处不再赘述。
应理解,End.BIER类型的IPv6地址用于表示BIERv6报文封装转发时的IPv6目的地址。
下面以第一转发设备为图2所示的节点B,对本申请实施例提供的BIER报文的发送过程进行详细描述。
步骤1:节点B配置End.BIER类型的IPv6地址。
一种可能的实现方式中,配置的End.BIER类型的IPv6地址可以是一个与IPv6-prefix不同的IPv6地址。例如,可以从SRv6 locator地址空间中选择一个SID。在locator下配置End.BIER类型的IPv6地址的具体实现方式如下所示:
segment-routing ipv6
locator as1 ipv6-prefix 2002::
opcode::AAAA End.BIER##配置2002::AAAA为End.BIER类型的SID;
opcode::AAAB End.X##配置2002::AAAB为End.X类型的SID;
另一种可能的实现方式中,配置的End.BIER类型的IPv6地址可以是在配置在接口(例如,loopback接口)下的128为掩码的IPv6地址,该End.BIER类型的IPv6地址的配置方式和普通的IPv6地址的配置方式不同。具体的配置方式如下所示:
interface loopback0
ipv6 address 2001::000A 128##这是一个普通IPv6地址
ipv6 address 2001::000B 128 End.BIER##这是一个End.BIER的IPv6地址
一种使用End.BIER同时用作BFR-IPv6-Prefix的配置如下所示:
Bier
sub-domain 6 ipv6##配置BIER的sub-domain 6使用IPv6
BFR-prefix 2001::000B##配置使用End.BIER的IPv6地址作BFR-IPv6-prefix
另一种使用End.BIER同时用作BFR-IPv6-Prefix的配置如下所示:
Bier
sub-domain 6 ipv6##配置BIER的Sub-domain 6使用IPv6
BFR-prefix loopback0##使用loopback0下的End.BIER的IPv6地址作BFR-prefix
步骤2:节点B本地保存并泛洪配置的End.BIER类型的IPv6地址。
一种可能的实现方式中,节点B向BIER域中的其他节点泛洪End.BIER类型的IPv6地址及其End.BIER指示信息的消息,和泛洪BIER信息所使用的消息,是两个不同的消息。例如,End.BIER的IPv6地址及其End.BIER的指示携带在IS-IS的SRv6locator消息中,而BIER信息携带在IS-IS的prefix-reachability消息中。
具体的,请参见图5,BIER信息携带在IS-IS协议的前缀可达性(prefix-reachability) TLV消息中,该消息中携带有一个BFR-Prefix的IPv6地址(称为BFR-IPv6-Prefix),还携带有BIER子域(sub-domain)信息,例如,BIER子域信息可以是BIER信息子TLV(BIER InfosubTLV)。End.BIER类型的IPv6地址携带在IS-IS协议的SRv6 locator消息中,例如,可以在SRv6 locator消息下End.BIER的SRv6 SID信息中携带End.BIER的SID值(例如,SID表示第一IPv6地址),以及End.BIER的指示(例如,SID type表示End.BIER)。End.BIER的IPv6地址和BFR-Prefix的IPv6地址可以是不同的地址,也可以是相同的地址。
另一种可能的实现方式中,End.BIER类型的IPv6地址及其End.BIER标识可以和BIER信息在同一个消息中。例如,通过IS-IS的prefix-reachability消息中携带End.BIER的指示(例如,SID type=End.BIER),同时还会携带BIER信息如BIER子域SD。
具体的,请参见图6,BIER信息泛洪时所使用的消息除了携带BIER子域(sub-domain)信息,还会同时携带End.BIER的指示信息,例如,携带SID type=End.BIER。相应的,该BFR-prefix的IPv6地址会同时作为End.BIER的IPv6地址,具有End.BIER的指示信息。
步骤3:节点A根据节点B泛洪的End.BIER类型的IPv6地址封装IPv6头。
节点A可以根据节点B泛洪的End.BIER类型的IPv6地址建立转发表项,并根据转发表项确定需要往节点B复制,并以节点B泛洪的End.BIER类型的IPv6地址填充IPv6基本头中的DA字段,并发送至节点B。
步骤4:节点B根据接收到的BIER报文中的DA字段为节点B的End.BIER类型的IPv6地址,对BIER报文进行BIER转发处理。
节点B接收到节点A发送的BIER报文之后,确定IPv6基本头中的DA字段中填充的地址为节点B配置的End.BIER类型的IPv6地址。具体的,节点B可以根据本地存储的转发表中的IPv6地址与IPv6基本头中的DA字段中填充的地址相同,并根据转发表中的IPv6地址对应的标识,例如,SID type=End.BIER确定需要对接收到的BIER报文进行BIER转发处理。
一种可能的实现方式中,在节点B接收到的BIER报文其IPv6基本头中的下一个头部NH为携带一个BIER头部的扩展头部时,如果BIER报文中包含SRH头,将SRH头弹出,并根据所述BIER头部中的比特串字段进行BIER转发。否则,节点B丢弃BIER报文,发送因特网控制报文协议(internet control message protoco,ICMP)参数问题消息。以IPv6基本头中的下一个头部NH为目的选项头,其具体的配置如下所示:
1.IF NH=60##IPv6基本头中的下一个头部NH为目的选项头(标号60)
2.  IF(DestOptHdr OptType=BIER)and(HdrExtLen*8+8=4+OptLength)
3.    pop the SRH if exists.##如果存在SRH头,将SRH头弹出
4.    lookup the BIER Header inside the BIER.##在BIER中找到BIER头
5.   forward via the matched entry.##通过匹配的条目进行转发
6.  ELSE
7.   drop the packet;possibly send an ICMP parameter problem message;
8.  ELSE
9.   drop the packet;possibly send an ICMP parameter problem message;
其中,“NH=60”用于标识IPv6基本头中的下一个头部为目的选项头,“DestOptHdr OptType=BIER”用于表示目的选项头中的第一个option TLV的类型为BIER。“HdrExtLen*8+8=4+OptLength”用于表示目的选项头中只包含一个TLV,该一个TLV的长度+4和目的扩展头的总长度相同(即目的扩展头里只有一个BIER TLV)。
另一种可能的实现方式中,在节点B接收到的BIER报文其IPv6基本头中的下一个头部NH为段路由头部SRH,且段路由头部SRH的段剩余SL为0,路由头部SRH的下一个头部NH为携带一个BIER头部的扩展头部时,将SRH头弹出,并根据所述BIER头部中的比特串字段进行BIER转发。否则,节点B丢弃BIER报文,发送ICMP参数问题消息。以路由头部SRH的下一个头部NH为目的选项头,其具体的配置如下所示:
1.  IF(NH=SRH and SL=0 and SRH_NH=DestOptHdr)##扩展头是SRH和DestOptHdr
2.   IF(DestOptHdr OptType=BIER)and(HdrExtLen*8+8=4+OptLength)
3.    pop the SRH if exists.##如果存在SRH头,将SRH头弹出
4.    lookup the BIER Header inside the BIER.##在BIER中找到BIER头
5.    forward via the matched entry.##通过匹配的条目进行转发
6.   ELSE
7.   drop the packet;possibly send an ICMP parameter problem message;
8.  ELSE IF(IPv6_NH=4 or 41 or 97 or 137)
9.       pop the Outer IPv6 header,and process the next header.
10.  ELSE
11.   drop the packet;possibly send an ICMP parameter problem message;
其中,第8步中,如果下一个头部是NH链的最后一个NH,也就是说,下一个头部是NH字段填充的是上层头(upper-layer heade),该上层头可以指示内层报文的类型,节点可以对内层用户数据报文进行转发。例如,IPv6_NH=4表示下一个头部指示的内层报文的类型为IPv4,IPv6_NH=41表示下一个头部指示的内层报文的类型为IPv6,IPv6_NH=6表示下一个头部指示的内层报文的类型为传输控制协议(transmission control protoco,TCP),IPv6_NH=17表示下一个头部指示的内层报文的类型为用户数据报协议(user datagram protocol,UDP),IPv6_NH=58表示下一个头部指示的内层报文的类型为ICMP,IPv6_NH=137表示下一个头部指示的内层报文的类型为多协议标签交换(multi-protocol label switching,MPLS)。
另一种可能的实现方式中,在节点B接收到的BIER报文其IPv6基本头中的下一个头部NH为分段头(fragment header),且分段头中的下一个头部NH为携带一个BIER头部的扩展头部时;或者IPv6基本头后是携带BIER的扩展头,随后再是分段头。则根据所述BIER头部中的比特串字段进行BIER转发。否则,节点B丢弃BIER报文,发送ICMP参数问题消息。处理过程如下所示:
1.  IF(NH=Frag and Frag_NH=DestOptHdr)or(NH=DestOptHdr and Dest_NH=Frag)
2.  IF(DestOptHdr OptType=BIER)and(HdrExtLen*8+8=4+OptLength)
3.  pop the SRH if exists.##如果存在SRH头,将SRH头弹出
4.   lookup the BIER Header inside the BIER.##在BIER中找到BIER头
5.  forward via the matched entry.##通过匹配的条目进行转发
6.  ELSE
7.    drop the packet;possibly send an ICMP parameter problem message;
8.  ELSE IF(IPv6_NH=4 or 41 or 97 or 137)
9.       pop the Outer IPv6 header,and process the next header.
10.  ELSE
11.      drop the packet;possibly send an ICMP parameter problem message;
另一种可能的实现方式中,在节点B接收到的BIER报文其IPv6基本头中的下一个头部NH为携带一个BIER头部的扩展头部,该扩展头部中的下一个头部NH为认证头(authentication header,AH),如果BIER报文中包含SRH头,将SRH头弹出,并根据所述BIER头部中的比特串字段进行BIER转发。否则,节点B丢弃BIER报文,发送因特网控制报文协议(internet control message protoco,ICMP)参数问题消息。以IPv6基本头中的下一个头部NH为目的选项头,其具体的配置如下所示:
1.  IF(IPv6_NH=DestOptHdr and Dest_NH=AH)
2.    IF(DestOptHdr OptType=BIER)and(HdrExtLen*8+8=4+OptLength)
3.     pop the SRH if exists.##如果存在SRH头,将SRH头弹出
4.     lookup the BIER Header inside the BIER.##在BIER中找到BIER头
5.     forward via the matched entry.##通过匹配的条目进行转发
6.    ELSE
7.    drop the packet;possibly send an ICMP parameter problem message;
8.  ELSE IF(IPv6_NH=4 or 41 or 97 or 137)
9.       pop the Outer IPv6 header,and process the next header.
10.  ELSE
11.   drop the packet;possibly send an ICMP parameter problem message;
另一种可能的实现方式中,如果IPv6NH链的最后一个NH(last_NH=ICMPv6),可以上送至中央处理器(central processing unit,CPU)进行处理,例如,增加ICMPv6报文计数,或者发送一个ICMPv6响应报文。具体的配置如下所示:
1.  IF Last_NH=ICMPv6##如果IPv6NH链的最后一个NH为ICMPv6报文
2.        Pump to CPU,add packet counter,possibly send an ICMP response message.
步骤5:节点B将BIER报文转发至邻居节点E。
节点B可以根据转发表项以及bit string为0111确定需要将该BIER报文分别发送至节点C和节点E。节点B将该BIER报文往节点C发送时,可以将BIER头的bit string修改为0011,以节点C泛洪的End.BIER类型的IPv6地址填充IPv6基本头中的DA字段,并发送至节点C。同样地,节点B将该BIER报文往节点E发送时,可以将BIER头的bit string修改为0100,以节点E泛洪的End.BIER类型的IPv6地址填充IPv6基本头中的DA字段,并发送至节点E。
一种可能的实现方式中,本申请实施例节点B将BIER报文往节点E发送时,在判断其邻居节点E为叶子节点,节点可以将BIER报文中携带BIER头部的扩展头部弹出。例如,将携带BIER头部的目的选项头弹出,并将不包括携带BIER头部的目的选项头的BIER报文发送至节点E。节点E接收到节点B发送的BIER报文之后,由于节点E为叶子节点,节点E需要解封装携带BIER头部的扩展头部,并对内层用户数据报文进行转发。在节点B发送的BIER报文不包括携带BIER头部的扩展头部时,节点E可以不需要解封装携带BIER头部的扩展头部,直接对内层用户数据报文进行转发。具体的配置如下所示:
1.IF NH=60##IPv6基本头中的下一个头部NH为目的选项头(标号60)
2.  IF(DestOptHdr OptType=BIER)and(HdrExtLen*8+8=4+OptLength)
3.    pop the SRH if exists.##如果存在SRH头,将SRH头弹出
4.    lookup the BIER Header inside the BIER.##在BIER中找到BIER头
5.    forward via the matched entry.##通过匹配的条目进行转发
6.   ELSE
7.    drop the packet;possibly send an ICMP parameter problem message;
8.  ELSE IF(IPv6_NH=4 or 41 or 97 or 137)
9.        pop the Outer IPv6 header,and process the next header.
10.   ELSE
11.    drop the packet;possibly send an ICMP parameter problem message;
节点E在接收到的BIER报文不包含BIER头时,可以不需要执行步骤1-7,直接执行步骤8-9,可以减小叶子节点E处理的开销。
上述技术方案中,还可以支持更灵活的进行BIER部署,例如叶子节点E可能不支持读取及处理BIER头,但只要能支持弹出外层IPv6头,就可以按本方法部署在网络中。
另一种可能的实现方式中,节点B接收到的目的地址为B的End.BIER,会走如下的End.BIER处理流程,判断IPv6扩展头中有N个BIER头,读取第M个BIER头并进行复制,例如往节点E复制,以节点E的End.BIER填充IPv6DA,将除第M个BIER头以外的其它BIER头弹出,只保留第M个BIER头。IPv6扩展头部的长度字段也相应更改。以IPv6基本头中的下一个头部NH为目的选项头,其具体的配置如下所示:
1.  IF NH=60//con2
2.  IF(DestOptHdr OptType=BIER)and((HdrExtLen*8+8)%(4+OptLength1)=0)//con1
3.   Walk each TLV in DestOptHdr
4.If(OptType=BIER and OptLen=OptLength1)or(OptType=PadN and OptLen=0)
5.           Continue
6.      ELSE
7.           Drop the packet;possibly send an ICMP parameter problem message;
8.    End Walk of each TLV
9.  For(N=0;N<(HdrExtLen*8+8)/(4+OptLength1);N++)
10.    lookup the BIER Header begin from(N*OptLength1+4)bytes
11.    copy packet if this packet need to forward to according to this lookup.
12.    pop the TLV(s)except for this one,Set HdrExtLen=(4+OptLength1)/8.
13.    forward via the matched entry,
14.   END-FOR
15  ELSE//end of con1
16.   drop the packet;possibly send an ICMP parameter problem message;
17.  ELSE//end of con2
18.   drop the packet;possibly send an ICMP parameter problem message;
其中,第2步,“HdrExtLen*8+8”用于表示目的选项头(DestOptHdr)的总长度,“OptLength1”用于表示第一个BIER TLV里的长度(Length,即BIER头的长度)。BIER头的长度+4则是8的整数倍,因为目的选项头(DestOptHdr)要求整个头部长度是8的整数倍,其Length是以8字节为单位的长度值并且不包括第一个8字节。例如:
(NextHeader=x,Length=17,Type=BIER,Length=44)//说明1;
(BIER头<12字节固定长度+32字节代表256bit>)//第一个BIER头
(Type=PadN,Length=0,Type=BIER,Length=44)//说明2;
(BIER头<12字节固定长度+32字节代表256bit>)//第二个BIER头;
(Type=PadN,Length=0,Type=BIER,Length=44)//说明3;
(BIER头<12字节固定长度+32字节代表256bit>)//第三个BIER头;
说明1:DestOptHdr开头是NH和Length字段;
说明2:第二个BIER TLV之前填充一个PadN的TLV;
说明3:第三个BIER TLV之前填充一个PadN的TLV;
上述配置中,第3步到第8步之间是一个循环,判断报文格式是否满足要求,本申请实施例中要求多个BIER头是一样的长度(和第一个BIER头的长度OptLength1相同),第二个以后的BIER头使用PadN填充(参见RFC8200的填充要求)。
上述配置中,第9步到第14步是另一个循环,遍历每个BIER头处理,而不必处理PadN头。其中,处理第一个BIER头时,弹出后面两个BIER头比较容易,只需要丢掉从1*(OptLength1+4)开始的96个字节并置IPv6扩展头部的长度字段(DestOptHdr Length)=5;处理第二个BIER头时,弹出第1个和第3个BIER头,需要将第二个BIER头,即从1*(OptLength1+4)+4开始的OptLength个字节拷贝到第0*(OptLength1+4)+4的地方,再丢掉从1*(OptLength1+4)开始的96个字节并置DestOptHdr Length=5。处理第三个BIER头时,弹出第1个和第2个BIER头,需要将第三个BIER头,即从2*(OptLength1+4)+4开始的OptLength个字节拷贝到第0*(OptLength1+4)+4的地方,再丢掉从1*(OptLength1+4)开始的96个字节并置DestOptHdr Length=5。
上文结合图1至图6,详细描述了本申请实施例提供的BIER报文的发送方法,下面将结合图7至图8,详细描述本申请的BIER报文的发送装置的实施例。应理解,方 法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图7是本申请实施例提供的一种BIER报文的发送装置700的示意性结构图。该BIER报文的发送装置700可以包括:
接收模块710,用于接收第二转发设备发送的在互联网协议第六版IPv6协议下封装的BIER报文,所述BIER报文包括IPv6基本头部和BIER头部,其中,所述IPv6基本头部中的目的地址字段为所述第一转发设备的第一IPv6地址;
处理模块720,用于根据转发表中所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发处理,其中,所述标识用于指示所述第一IPv6地址为进行BIER转发处理的目的地址。
可选地,所述处理模块720具体用于:确定所述IPv6基本头部中的目的地址字段填充的地址和所述转发表中的第一IPv6地址相同;所述第一转发设备根据所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发处理。
可选地,所述BIER报文的发送装置700还包括:配置模块740,用于配置所述第一IPv6地址以及所述标识。
可选地,所述装置700还包括:发送模块730,用于通过路由协议向网络泛洪所述第一转发设备的第一IPv6地址和所述标识。
可选地,所述处理模块720具体用于:当所述IPv6基本头部中的下一个头部NH字段为携带一个BIER头部的扩展头部时,根据所述BIER头部中的比特串字段进行BIER转发。
可选地,所述处理模块720具体用于:当所述IPv6基本头部中的下一个头部NH字段为路由头RH,其中,所述路由头RH的下一个头部NH字段为携带一个BIER头部的扩展头部时,弹出所述路由头RH,根据所述BIER头部中的比特串字段进行BIER转发。
可选地,所述路由头RH为段路由头部SRH,所述段路由头部SRH的段剩余SL为0。
可选地,所述处理模块720具体用于:当所述IPv6基本头部中的下一个头部NH字段为携带一个BIER头部的扩展头部,所述扩展头部的下一个头部NH字段为AH认证头时,根据所述BIER头部中的比特串字段进行BIER转发。
可选地,所述处理模块720具体用于:根据所述BIER头部中的比特串和BIER转发表,将所述BIER报文的IPv6基本头部中的目的地址字段填充为第三转发设备的第一IPv6地址,其中,所述BIER转发表是根据所述第三转发设备泛洪的BIER消息中携带的第一IPv6地址建立的;所述第一转发设备根据所述BIER转发表将所述BIER报文复制到所述第三转发设备。
可选地,所述处理模块720具体用于:将携带的一个或多个BIER头部弹出;将包含所述一个或多个BIER头部的扩展头部弹出;将不包括所述扩展头部的BIER报文复制到所述第三转发设备。
可选地,所述处理模块720具体用于:确定所述第三转发设备为叶子节点时,将携带的一个或多个BIER头部的扩展头部弹出。
可选地,所述扩展头部为目的选项头部。
可选地,所述路由协议包括以下中的任意一种协议:中间系统到中间系统IS-IS协议、开放式最短路径优先OSPF协议、边界网关协议BGP。
图8是本申请实施例提供的一种第一转发设备800的示意性结构图。该第一转发设备600可以包括:存储器810、处理820、输入/输出接口830。
其中,存储器810、处理器820和输入/输出接口830通过内部连接通路相连,该存储器810用于存储程序指令,该处理器820用于执行该存储器810存储的程序指令,以控制输入/输出接口830接收输入的数据和信息,输出操作结果等数据。
应理解,在本申请实施例中,该处理器820可以采用中央处理单元(central processing unit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器820采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器810可以包括只读存储器和随机存取存储器,并向处理器820提供指令和数据。处理器820的一部分还可以包括非易失性随机存取存储器。例如,处理器820还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820读取存储器810中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,根据本申请实施例的第一转发设备800用于执行本申请实施例图2-图4中的各个方法的相应流程,并且第一转发设备800中的各个模块的上述和其它操作和/或功能分别为了实现本申请实施例图2-图4中的各个方法的相应流程,为了简洁,在此不再赘述。
需要说明的是,在图8所示的第一转发设备800中,处理器可以通过调用存储器中的计算机程序,实现各个模块执行的步骤。例如,可以由处理器调用缓存中存储的计算机指令来执行各个模块(例如,图7所示的接收模块710、处理模块720)所需要执行的步骤。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实 现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (28)

  1. 一种基于位索引的显示复制BIER报文的发送方法,其特征在于,所述方法包括:
    第一转发设备接收第二转发设备发送的在互联网协议第六版IPv6协议下封装的BIER报文,所述BIER报文包括IPv6基本头部和BIER头部,其中,所述IPv6基本头部中的目的地址字段为所述第一转发设备的第一IPv6地址;
    所述第一转发设备根据转发表中与所述第一IPv6地址对应的标识对所述BIER报文进行BIER转发,其中,所述标识用于指示所述第一IPv6地址为所述BIER的目的地址。
  2. 根据权利要求1所述的方法,其特征在于,所述第一转发设备根据转发表中与所述第一IPv6地址对应的标识对所述BIER报文进行BIER转发,包括:
    所述第一转发设备确定所述IPv6基本头部中的目的地址字段填充的地址和所述转发表中的第一IPv6地址相同;
    所述第一转发设备根据与所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发。
  3. 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
    所述第一转发设备配置所述第一IPv6地址以及所述标识。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,在所述第一转发设备接收第二转发设备发送的在互联网协议第六版IPv6协议下封装的BIER报文之前,所述方法还包括:
    所述第一转发设备通过路由协议向网络泛洪所述第一转发设备的第一IPv6地址和所述标识。
  5. 根据权利要求1至4中任一项所述的方法,其特征在于,所述第一转发设备根据转发表中所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发,包括:
    当所述IPv6基本头部中的下一个头部NH字段为携带一个所述BIER头部的扩展头部时,所述第一转发设备根据所述BIER头部中的比特串字段进行BIER转发。
  6. 根据权利要求1至4中任一项所述的方法,其特征在于,所述第一转发设备根据转发表中所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发,包括:
    当所述IPv6基本头部中的下一个头部NH字段为路由头RH,其中,所述路由头RH的下一个头部NH字段为携带一个所述BIER头部的扩展头部时,所述第一转发设备弹出所述路由头RH,根据所述BIER头部中的比特串字段进行BIER转发。
  7. 根据权利要求6所述的方法,其特征在于,所述路由头RH为段路由头部SRH,所述段路由头部SRH的段剩余SL为0。
  8. 根据权利要求1至4中任一项所述的方法,其特征在于,所述第一转发设备根据转发表中所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发,包括:
    当所述IPv6基本头部中的下一个头部NH字段为携带一个所述BIER头部的扩展 头部,所述扩展头部的下一个头部NH字段为AH认证头时,所述第一转发设备根据所述BIER头部中的比特串字段进行BIER转发。
  9. 根据权利要求5至8中任一项所述的方法,其特征在于,所述第一转发设备根据转发表中所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发,包括:
    所述第一转发设备根据所述BIER头部中的比特串和BIER转发表,将所述BIER报文的IPv6基本头部中的目的地址字段填充为第三转发设备的第一IPv6地址,其中,所述BIER转发表是根据所述第三转发设备泛洪的BIER消息中携带的第一IPv6地址建立的;
    所述第一转发设备根据所述BIER转发表将所述BIER报文复制到所述第三转发设备。
  10. 根据权利要求9所述的方法,其特征在于,所述第一转发设备根据所述BIER转发表将所述BIER报文复制到所述第三转发设备,包括:
    所述第一转发设备将携带的一个或多个所述BIER头部弹出;
    所述第一转发设备将包含所述一个或多个BIER头部的扩展头部弹出;
    所述第一转发设备将不包括所述扩展头部的BIER报文复制到所述第三转发设备。
  11. 根据权利要求10所述的方法,其特征在于,所述第一转发设备将携带的一个或多个BIER头部的扩展头部弹出,包括:
    所述第一转发设备确定所述第三转发设备为叶子节点时,将携带的一个或多个BIER头部的扩展头部弹出。
  12. 根据权利要求5至11中任一项所述的方法,其特征在于,所述扩展头部为目的选项头部。
  13. 根据权利要求4至12中任一项所述的方法,其特征在于,所述路由协议包括以下中的任意一种协议:中间系统到中间系统IS-IS协议、开放式最短路径优先OSPF协议、边界网关协议BGP。
  14. 一种基于位索引的显示复制BIER报文的发送装置,其特征在于,包括:
    接收模块,用于接收第二转发设备发送的在互联网协议第六版IPv6协议下封装的BIER报文,所述BIER报文包括IPv6基本头部和BIER头部,其中,所述IPv6基本头部中的目的地址字段为所述第一转发设备的第一IPv6地址;
    处理模块,用于根据转发表中与所述第一IPv6地址对应的标识对所述BIER报文进行BIER转发,其中,所述标识用于指示所述第一IPv6地址为所述BIER的目的地址。
  15. 根据权利要求14所述的装置,其特征在于,所述处理模块具体用于:
    确定所述IPv6基本头部中的目的地址字段填充的地址和所述转发表中的第一IPv6地址相同;
    根据与所述第一IPv6地址对应的标识确定对所述BIER报文进行BIER转发。
  16. 根据权利要求14或15所述的装置,其特征在于,还包括:
    配置模块,用于配置所述第一IPv6地址以及所述标识。
  17. 根据权利要求14至16中任一项所述的装置,其特征在于,还包括:
    发送模块,用于通过路由协议向网络泛洪所述第一转发设备的第一IPv6地址和所述标识。
  18. 根据权利要求14至17中任一项所述的装置,其特征在于,所述处理模块用于:
    当所述IPv6基本头部中的下一个头部NH字段为携带一个所述BIER头部的扩展头部时,根据所述BIER头部中的比特串字段进行BIER转发。
  19. 根据权利要求14至17中任一项所述的装置,其特征在于,所述处理模块用于:
    当所述IPv6基本头部中的下一个头部NH字段为路由头RH,其中,所述路由头RH的下一个头部NH字段为携带一个所述BIER头部的扩展头部时,弹出所述路由头RH,根据所述BIER头部中的比特串字段进行BIER转发。
  20. 根据权利要求19所述的装置,其特征在于,所述路由头RH为段路由头部SRH,所述段路由头部SRH的段剩余SL为0。
  21. 根据权利要求14至17中任一项所述的装置,其特征在于,所述处理模块用于:
    当所述IPv6基本头部中的下一个头部NH字段为携带一个所述BIER头部的扩展头部,所述扩展头部的下一个头部NH字段为AH认证头时,根据所述BIER头部中的比特串字段进行BIER转发。
  22. 根据权利要求18至21中任一项所述的装置,其特征在于,所述处理模块用于:
    根据所述BIER头部中的比特串和BIER转发表,将所述BIER报文的IPv6基本头部中的目的地址字段填充为第三转发设备的第一IPv6地址,其中,所述BIER转发表是根据所述第三转发设备泛洪的BIER消息中携带的第一IPv6地址建立的;
    所述第一转发设备根据所述BIER转发表将所述BIER报文复制到所述第三转发设备。
  23. 根据权利要求22所述的装置,其特征在于,所述处理模块具体用于:
    将携带的一个或多个所述BIER头部弹出;
    将包含所述一个或多个BIER头部的扩展头部弹出;
    将不包括所述扩展头部的BIER报文复制到所述第三转发设备。
  24. 根据权利要求23所述的装置,其特征在于,所述处理模块具体用于:
    确定所述第三转发设备为叶子节点时,将携带的一个或多个BIER头部的扩展头部弹出。
  25. 根据权利要求18至24中任一项所述的装置,其特征在于,所述扩展头部为目的选项头部。
  26. 根据权利要求17至25中任一项所述的装置,其特征在于,所述路由协议包括以下中的任意一种协议:中间系统到中间系统IS-IS协议、开放式最短路径优先OSPF协议、边界网关协议BGP。
  27. 一种第一转发设备,其特征在于,包括:输入输出接口、处理器和存储器,所述存储器用于存储程序指令,所述处理器用于从存储器中调用并运行所述程序指令 以执行权利要求1至13中任一项所述的方法。
  28. 一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行权利要求1至13中任一项所述的方法。
PCT/CN2020/094791 2019-06-06 2020-06-07 一种bier报文的发送方法和装置 Ceased WO2020244651A1 (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
EP20819174.2A EP3965381B1 (en) 2019-06-06 2020-06-07 Bier packet sending method and apparatus
BR112021024190A BR112021024190A2 (pt) 2019-06-06 2020-06-07 Método e aparelho de envio de pacote bier
MX2021014793A MX2021014793A (es) 2019-06-06 2020-06-07 Metodo y aparato de envio de paquetes bier.
JP2021571827A JP7322188B2 (ja) 2019-06-06 2020-06-07 Bierパケット送信方法及び装置
KR1020217041107A KR102657811B1 (ko) 2019-06-06 2020-06-07 Bier 패킷 송신 방법 및 장치
US17/542,505 US11949585B2 (en) 2019-06-06 2021-12-06 BIER packet sending method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910493114.7A CN112054959B (zh) 2019-06-06 2019-06-06 一种bier报文的发送方法和装置
CN201910493114.7 2019-06-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/542,505 Continuation US11949585B2 (en) 2019-06-06 2021-12-06 BIER packet sending method and apparatus

Publications (1)

Publication Number Publication Date
WO2020244651A1 true WO2020244651A1 (zh) 2020-12-10

Family

ID=73609062

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/094791 Ceased WO2020244651A1 (zh) 2019-06-06 2020-06-07 一种bier报文的发送方法和装置

Country Status (8)

Country Link
US (1) US11949585B2 (zh)
EP (1) EP3965381B1 (zh)
JP (1) JP7322188B2 (zh)
KR (1) KR102657811B1 (zh)
CN (2) CN112054959B (zh)
BR (1) BR112021024190A2 (zh)
MX (1) MX2021014793A (zh)
WO (1) WO2020244651A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055294A (zh) * 2020-12-29 2021-06-29 中兴通讯股份有限公司 报文封装、解封装方法、装置、存储介质及电子装置
EP4149057A4 (en) * 2021-05-28 2023-08-02 New H3C Technologies Co., Ltd. In-situ flow information telemetry method and electronic device
EP4387189A4 (en) * 2021-09-02 2024-11-20 Huawei Technologies Co., Ltd. PACKET FORWARDING METHOD, APPARATUS, DEVICE, AND STORAGE MEDIUM

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021129023A1 (zh) * 2019-12-25 2021-07-01 华为技术有限公司 报文发送的方法、设备和系统
US11632254B2 (en) * 2020-02-21 2023-04-18 Mcafee, Llc Home or enterprise router-based secure domain name services
CN112491718B (zh) * 2020-08-31 2025-01-28 中兴通讯股份有限公司 报文头的处理方法及装置、存储介质、电子装置
CN114945000B (zh) * 2021-02-07 2023-08-15 中国移动通信有限公司研究院 一种组播报文传输方法、位转发路由器及存储介质
CN114915589B (zh) * 2021-02-10 2024-06-04 华为技术有限公司 报文传输方法及装置
US11705983B2 (en) * 2021-03-22 2023-07-18 Cisco Technology, Inc. Efficient BIER forwarding over varying BSL domain using header stitching
CN115314150A (zh) * 2021-04-21 2022-11-08 中兴通讯股份有限公司 一种报文处理方法、装置、存储介质及电子装置
CN115277552A (zh) * 2021-04-30 2022-11-01 华为技术有限公司 传输报文的方法、装置及设备
CN113839895B (zh) * 2021-11-01 2023-08-22 新华三技术有限公司合肥分公司 一种报文转发方法及装置
CN116232989A (zh) * 2021-12-02 2023-06-06 中兴通讯股份有限公司 Bier报文转发方法、装置及存储介质
CN115134275B (zh) * 2022-06-06 2024-06-18 中国信息通信研究院 利用IPv6逐跳扩展头实现单向网络测试的方法、电子设备及存储介质
EP4376375A1 (en) * 2022-11-28 2024-05-29 Huawei Technologies Co., Ltd. Packet mirroring method, apparatus, and system
CN119094635B (zh) * 2024-09-06 2025-09-30 武汉烽火技术服务有限公司 BIERv6报文的处理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160142248A1 (en) * 2014-11-18 2016-05-19 Cisco Technology, Inc. Using bit index explicit replication (bier) in low-power and lossy networks
WO2018152019A1 (en) * 2017-02-17 2018-08-23 Cisco Technology, Inc. System and method to facilitate content delivery to multiple recipients in a network environment
CN108632150A (zh) * 2017-03-22 2018-10-09 中兴通讯股份有限公司 一种信息传递方法及装置
CN110784411A (zh) * 2019-09-30 2020-02-11 华为技术有限公司 建立bier转发表项的方法、装置和系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246175B1 (en) 2001-12-07 2007-07-17 Cisco Technology, Inc. IPv6 over MPLS IPv4 core
US10447575B1 (en) * 2012-12-27 2019-10-15 Sitting Man, Llc Routing methods, systems, and computer program products
WO2015042152A1 (en) * 2013-09-17 2015-03-26 Cisco Technology, Inc. Bit indexed explicit replication using multiprotocol label switching
US11451474B2 (en) * 2013-09-17 2022-09-20 Cisco Technology, Inc. Equal cost multi-path with bit indexed explicit replication
US9438432B2 (en) * 2013-09-17 2016-09-06 Cisco Technology, Inc. Bit indexed explicit replication packet encapsulation
US9444677B2 (en) 2013-10-18 2016-09-13 Cisco Technology, Inc. Scalable edge node protection using IPv6 segment routing extension header
US9762488B2 (en) * 2014-03-06 2017-09-12 Cisco Technology, Inc. Segment routing extension headers
US10341221B2 (en) * 2015-02-26 2019-07-02 Cisco Technology, Inc. Traffic engineering for bit indexed explicit replication
CN106341327A (zh) * 2015-07-08 2017-01-18 中兴通讯股份有限公司 一种bier报文的传输方法及系统
CN106572017B (zh) * 2015-10-09 2021-06-15 中兴通讯股份有限公司 Bier信息的发送方法、接收方法及装置
CN106603407B (zh) * 2015-10-16 2020-10-27 中兴通讯股份有限公司 组播地址的传输方法和装置
CN106921579B (zh) * 2015-12-28 2020-02-14 华为技术有限公司 基于业务功能链sfc的通信方法和装置
US9992111B2 (en) 2016-01-21 2018-06-05 Cisco Technology, Inc. Router table scaling in modular platforms
US10270690B2 (en) 2016-02-29 2019-04-23 Cisco Technology, Inc. System and method for dataplane-signaled packet capture in IPV6 environment
GB2549997B (en) 2016-04-19 2019-07-03 Cisco Tech Inc Management of content delivery in an IP network
CN107592262A (zh) * 2016-07-07 2018-01-16 中兴通讯股份有限公司 报文发送方法和装置、报文跨域转发的网络架构
US10382597B2 (en) 2016-07-20 2019-08-13 Cisco Technology, Inc. System and method for transport-layer level identification and isolation of container traffic
CN107786451A (zh) * 2016-08-30 2018-03-09 中兴通讯股份有限公司 一种元数据的传输方法及装置
US10447496B2 (en) * 2017-03-30 2019-10-15 Cisco Technology, Inc. Multicast traffic steering using tree identity in bit indexed explicit replication (BIER)
CN108965134B (zh) * 2017-05-23 2022-04-29 中兴通讯股份有限公司 报文转发方法及装置
US10506083B2 (en) 2017-06-27 2019-12-10 Cisco Technology, Inc. Segment routing gateway storing segment routing encapsulating header used in encapsulating and forwarding of returned native packet
US10367734B2 (en) 2017-07-11 2019-07-30 Cisco Technology, Inc. Forwarding of packets in a network based on multiple compact forwarding identifiers represented in a single internet protocol version 6 (IPv6) address
CN109510771B (zh) * 2017-09-15 2021-06-29 北京华为数字技术有限公司 组播传输方法及相关设备
CN113839871B (zh) * 2017-09-25 2024-10-22 华为技术有限公司 一种报文转发的方法及网络设备
CN109756425B (zh) * 2017-11-07 2022-01-18 中国电信股份有限公司 组播转发方法、装置以及bfr
CN109729012B (zh) * 2018-12-24 2021-08-24 新华三技术有限公司 一种单播报文传输方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160142248A1 (en) * 2014-11-18 2016-05-19 Cisco Technology, Inc. Using bit index explicit replication (bier) in low-power and lossy networks
WO2018152019A1 (en) * 2017-02-17 2018-08-23 Cisco Technology, Inc. System and method to facilitate content delivery to multiple recipients in a network environment
CN108632150A (zh) * 2017-03-22 2018-10-09 中兴通讯股份有限公司 一种信息传递方法及装置
CN110784411A (zh) * 2019-09-30 2020-02-11 华为技术有限公司 建立bier转发表项的方法、装置和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
J XIE , L GENG , M MCBRIDE , S DHANARAJ , G YAN , Y XIA: "Encapsulation for BIER in Non-MPLS IPv6 Networks, draft-xie-bier-ipv6-encapsulation-00", 8 March 2019 (2019-03-08), pages 1 - 12, XP055765706, Retrieved from the Internet <URL:https://tools.ietf.org/pdf/draft-xie-bier-ipv6-encapsulation-00.pdf> *
J XIE, L GENG , L WANG , G YAN , M MCBRIDE ,Y XIA: "Encapsulation for BIER in Non-MPLS IPv6 Networks, draft-xie-6man-bier-encapsulation-02", 1 September 2018 (2018-09-01), pages 1 - 11, XP055765700, Retrieved from the Internet <URL:https://tools.ietf.org/pdf/draft-xie-bier-6man-encapsulation-02.pdf> *
J XIE, L GENG , M MCBRIDE , S DHANARAJ , G YAN , Y XIA: "Encapsulation for BIER in Non-MPLS IPv6 Networks, draft-xie-bier-ipv6-encapsulation-01", 19 June 2019 (2019-06-19), pages 1 - 13, XP055765690, Retrieved from the Internet <URL:https://tools.ietf.org/pdf/draft-xie-bier-ipv6-encapsulation-01.pdf> *
See also references of EP3965381A4

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055294A (zh) * 2020-12-29 2021-06-29 中兴通讯股份有限公司 报文封装、解封装方法、装置、存储介质及电子装置
EP4274123A4 (en) * 2020-12-29 2024-07-03 ZTE Corporation METHOD AND DEVICE FOR PACKET ENCAPSULATING AND DECAPSULATING, STORAGE MEDIUM AND ELECTRONIC DEVICE
EP4149057A4 (en) * 2021-05-28 2023-08-02 New H3C Technologies Co., Ltd. In-situ flow information telemetry method and electronic device
EP4387189A4 (en) * 2021-09-02 2024-11-20 Huawei Technologies Co., Ltd. PACKET FORWARDING METHOD, APPARATUS, DEVICE, AND STORAGE MEDIUM

Also Published As

Publication number Publication date
EP3965381A1 (en) 2022-03-09
JP2022535405A (ja) 2022-08-08
MX2021014793A (es) 2022-01-18
CN114189473B (zh) 2023-07-14
EP3965381B1 (en) 2025-09-24
BR112021024190A2 (pt) 2022-01-11
KR20220007736A (ko) 2022-01-18
CN112054959B (zh) 2021-11-19
JP7322188B2 (ja) 2023-08-07
KR102657811B1 (ko) 2024-04-15
CN112054959A (zh) 2020-12-08
CN114189473A (zh) 2022-03-15
US20220109623A1 (en) 2022-04-07
US11949585B2 (en) 2024-04-02
EP3965381A4 (en) 2022-10-26

Similar Documents

Publication Publication Date Title
CN114189473B (zh) 一种报文的发送方法和装置
US11902049B2 (en) BIER packet sending method and apparatus
US11533249B2 (en) Route processing method and apparatus, and data transmission method and apparatus
US11848858B2 (en) Bier forwarding entry construction method, apparatus, and system
EP3863237B1 (en) Packet forwarding method, packet transmission device, and packet reception device
CN110832813B (zh) 使用分段路由的以太网虚拟专用网
CN109120526B (zh) 点对点的传输报文的方法和网络设备
CN102971991A (zh) 通过分组交换网络在分组伪线上传送的分组的有效封装
US12500838B2 (en) Pseudo wire packet transmission method and related device
CN112491706B (zh) 数据报文的处理方法及装置、存储介质、电子装置
US20210320929A1 (en) Packet Detection Method and First Network Device
US9686381B1 (en) Control word decapsulation in a hybrid BGP-VPLS network
WO2023088145A1 (zh) 一种报文处理方法、装置及设备
WO2022199486A1 (zh) 路径跟踪方法、设备和存储介质
CN108667731A (zh) 一种基于bier信息的处理及装置
WO2023174188A1 (zh) 一种报文处理的方法、路由通告的方法及相关设备
CN118301060A (zh) 组播数据报文的处理方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20819174

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021571827

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112021024190

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 2020819174

Country of ref document: EP

Effective date: 20211203

ENP Entry into the national phase

Ref document number: 20217041107

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 112021024190

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20211130

WWG Wipo information: grant in national office

Ref document number: MX/A/2021/014793

Country of ref document: MX

WWG Wipo information: grant in national office

Ref document number: 2020819174

Country of ref document: EP