Message forwarding method and network device

By obtaining the Service SID in the data packet in the network device and determining the SF SID, and updating it to the extension header of the data packet, the problem of high pressure on the service chain calculation in the existing technology is solved, and more efficient data packet processing and service link path is achieved.

CN114374634BActive Publication Date: 2025-06-06HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011102972.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-10-15
Publication Date
2025-06-06
Estimated Expiration
2040-10-15

AI Technical Summary

Technical Problem

In the existing SRv6 business chain network, the centralized orchestrator completes the orchestration of the business chain, resulting in high pressure on the business chain calculation. Especially when SFF failure or SF migration, the business link path needs to be recalculated and issued, which takes up additional time.

Method used

By obtaining the Service SID in the data packet in the network device, determining the corresponding SF SID, and updating it to the extension header of the data packet, other devices can instantly determine the SF SID, reducing the pressure on the controller to calculate the forwarding path.

Benefits of technology

It reduces the pressure on business chain computing, improves the data packet processing rate, reduces the time for recalculating and issuing the service link path, and improves the orchestration and computing efficiency of network equipment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114374634B_ABST
    Figure CN114374634B_ABST
Patent Text Reader

Abstract

The embodiment of the present application discloses a message forwarding method and a network device for reducing the computing pressure of a service chain. The method of the embodiment of the present application can be applied to a service chain network, and the network device determines a first service function segment identifier according to a first service segment identifier in a first data message, and then sends the first data message to a first service function device corresponding to the first service function segment identifier.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of communications, and in particular to a message forwarding method and a network device. Background Art

[0002] Segment routing internet protocol version 6 (SRv6) is a new generation of internet protocol (IP) bearer protocol based on internet protocol version 6 (IPv6) and segment routing (SR). It can unify traditional complex network protocols, simplify network protocols and ensure application-level service-level agreement (SLA).

[0003] In the existing SRv6 service chain network, the centralized orchestrator completes the service chain orchestration. The service chain includes one or more service function modules with the same or different functions, and sends the service chain to the controller. The controller sends the complete SRv6 service chain to the service classification function (service classifier, SC). The SRv6 service chain contains information such as the service forwarding function (service function forwarder, SFF).

[0004] In the prior art, there is a problem of high computing pressure on the business chain. Summary of the invention

[0005] The present application provides a message forwarding method and a network device, which can reduce the computing pressure of the service chain.

[0006] The first aspect provides a message forwarding method, including: based on a service chain network, a network device can obtain a first data message transmitted by other devices or generated by the network device itself. The first data message includes a first service segment identifier service SID. The network device can determine the first service function segment identifier SF SID of the device to be executed by the first service SID based on the first service SID in the first data message. The first SF SID is an identifier of a first service function device for executing a first target service function. After determining the first SF SID, the network device can send the first data message to the first service function device indicated by the first SF SID.

[0007] The network device determines the first SF SID according to the first service SID in the received first data message, and the controller does not need to calculate the detailed forwarding path of the data message, thereby reducing the calculation pressure of the service chain.

[0008] In a possible design, after determining the first SF SID, the network device may encapsulate the first SF SID in a first segment identification list in an extended header of the first data message to complete the update of the first data message.

[0009] In the present application, the network device updates the first SF SID in the first segment identification list of the first data message, so that other network devices can immediately determine the first SF SID after receiving the updated first data message, thereby improving the processing rate.

[0010] In a possible design, the network device is a head node, and the head node can receive a second data message transmitted from the network, and then determine a second segment identifier list for message forwarding according to the second data message and the message classification rule, and then encapsulate the second segment identifier list into an extended header of the second data message to generate a first data message. The first data message satisfies the above-mentioned message classification rule, the second segment identifier list corresponds to the message classification rule, the first data message includes the second segment identifier list, the second segment identifier list includes a first service SID and a second service SID, the second service SID is adjacent to the first service SID, and the second service SID is used to enable the network device to perform the step of determining a first SF SID according to the first service SID.

[0011] In the present application, the network device determines the second segment identifier list according to the received second data message and the message classification rule, and generates the first data message, thereby improving the feasibility of the solution.

[0012] In a possible design, the network device may determine a first relationship corresponding to the first service SID according to the first service SID in the first data message. The first relationship may include multiple SF SIDs and an indicator parameter corresponding to each SF SID in multiple SFSIDs, wherein the multiple SF SIDs include the first SF SID. That is, the network device may match the indicator requirement corresponding to the second segment identifier list with the indicator parameter in the first relationship to determine the first SF SID.

[0013] In the present application, the network device determines the first SF SID according to the first service SID from the first relationship including the indicator parameters obtained according to the indicator requirements corresponding to the second segment identification list, and the network device determines the service function device corresponding to the service SID, without the need for the controller to centrally calculate the detailed path, thereby reducing the pressure on the service chain calculation.

[0014] In a possible design, the first relationship may be determined from a first interior gateway protocol (IGP) message received by the network device, and the first IGP message may be published by other nodes of the network device. The first IGP message may directly include the first service SID and the first relationship. The first relationship may also be that the network device receives a second IGP message and a third IGP message sent by multiple SFF nodes, the second IGP message may include the first service SID, the first SF SID, and the first indicator parameter corresponding to the first SF SID, the third IGP message may include the first service SID, the fourth SF SID, and the fourth indicator parameter corresponding to the fourth SF SID, and the network device may determine the first relationship based on the second IGP message and the third IGP message.

[0015] In the present application, the network device obtains the above-mentioned first relationship by obtaining the IGP message sent by other devices, thereby reducing the pressure of centralized control by devices such as controllers.

[0016] In a possible design, the network device is a head node, which can obtain a message classification rule sent or pre-configured by a centralized scheduler, and the message classification rule can be used to represent the association relationship between the second segment identifier list and the data message feature, and then send the message classification rule to the head node. After receiving the second data message, the head node can determine the message feature of the second data message to match the data message feature in the association relationship between the second segment identifier list and the data message feature indicated by the above message classification rule, so as to determine the second segment identifier list corresponding to the second data message.

[0017] In the present application, the network device matches the second segment identification list from the message classification rule according to the message characteristics of the second data message, thereby improving the feasibility of the solution.

[0018] In a possible design, when the network device is an intermediate node SFF, the intermediate node may receive a first data message sent by the head node, where the first data message includes a second service SID. The second service SID is the SID of the intermediate node, and the second service SID is adjacent to the first service SID. The intermediate node may determine a first SF SID corresponding to the first service SID according to an indication of the second service SID.

[0019] In the present application, the network device receives a third data message including a second SF SID and a third service SID, and sends the third data message to the second service function device to obtain a first data message, that is, the network device can also be an intermediate node, which improves the flexibility of the solution.

[0020] In one possible design, the second SF SID and the second indicator parameter corresponding to the second SF SID are the segment identifier of the network device.

[0021] In the present application, the second SF SID and the second indicator parameter are defined as segment identifiers of network devices, thereby improving the feasibility of the solution.

[0022] A second aspect provides a message forwarding method, including:

[0023] Based on the service chain network, the network device may be a head node or an intermediate node, and the network device may receive a first notification message issued by other network devices, such as other intermediate nodes. The first notification message includes a first service segment identifier service SID, a first service function segment identifier SF SID, and a first indicator parameter corresponding to the first SF SID. The first service SID is used to indicate a first target service function, and the first SF SID includes an identifier of a first service function device used to execute the first target service function. After receiving the first notification message, the network device may directly extract the first service SID, the first SF SID, and the first indicator parameter contained in the first notification message, and determine the first relationship corresponding to the first service SID based on the first service SID, the first SF SID, and the first indicator parameter. The first relationship is used to enable the network device to determine the first SF SID according to the indicator requirement corresponding to the segment identifier list and the first indicator parameter. The segment identifier list includes the first service SID, and the segment identifier list corresponds to the message classification rule.

[0024] In the embodiment of the present application, the network device can determine the first relationship based on the received first service SID, the first SF SID and the first indicator parameter, and can determine the first SF SID according to the indicator requirement corresponding to the segment identifier list and the first indicator parameter based on the first relationship, thereby improving the efficiency of orchestration calculation.

[0025] In one possible design, the first relationship also includes a second SF SID corresponding to the first service SID, and a second indicator parameter corresponding to the second SF SID, where the second SF SID may be an identifier of a second business function device for executing the first target business function, and the first indicator parameter is different from the second indicator parameter.

[0026] In one possible design, the first notification message may be an IGP message, and the first notification message may include an Intermediate System to Intermediate System (ISIS) routing protocol or an Open Shortest Path First (OSPF) routing protocol.

[0027] A third aspect provides a message forwarding method, including:

[0028] Based on the service chain network, the network device is SFF, and the SFF can pre-receive the first service segment identifier service SID, the first service function segment identifier SF SID and the first indicator parameter corresponding to the first SF SID configured by the centralized orchestrator. Since the centralized orchestrator does not support the intermediate system to intermediate system (ISIS) routing protocol or the open shortest path first (OSPF) routing protocol, the SFF can process the first service segment identifier service SID, the first service function segment identifier SFSID and the first indicator parameter sent by the centralized orchestrator into a first notification message supporting the ISIS routing protocol or the OSPF routing protocol. The first notification message may include the first service SID, the first SF SID and the first indicator parameter, the first service SID is used to indicate the first target service function, and the first SF SID includes the identifier of the first service function device for executing the first target service function. After determining the first notification message, the SFF can publish the first notification message through the IGP protocol or other protocols, and the head node and other SFFs can receive the first notification message.

[0029] In the embodiment of the present application, the network device generates a first notification message by using the first service SID, the first SF SID, and the indicator parameters corresponding to the first SF SID and publishes it to other network devices, which can improve the efficiency of each network device in orchestrating and forwarding the calculation message to other nodes.

[0030] In one possible design, the first notification message also includes a second SF SID and a second indicator parameter corresponding to the second SF SID, the second SF SID includes an identifier of a second business function device for executing the first target business function, and the first indicator parameter is different from the second indicator parameter.

[0031] In one possible design, the first notification message includes a first SF SID TLV, and the first SF SID TLV includes a first SF SID and a first indicator parameter.

[0032] A fourth aspect provides a network device, including: an obtaining module, used to obtain a first data packet, the first data packet including a first service segment identifier service SID, the first service SID being used to indicate a first target service function; a determining module, used to determine a first service function segment identifier SF SID according to the first service SID, the first serviceSID being used to indicate a first target service function, the first SF SID including an identifier of a first service function device that executes the first target service function; and a sending module, used to send the first data packet to the first service function device according to the first SF SID.

[0033] In one possible design, the network device also includes an update module for updating the first data packet, the first data packet includes a first segment identifier list, and the first segment identifier list includes the first SF SID.

[0034] In a possible design, the network device also includes a first receiving module, the first receiving module is used to receive a second data packet; the obtaining module is specifically used to: determine a second segment identifier list according to the second data packet and a message classification rule, the first data packet satisfies the message classification rule, and the second segment identifier list corresponds to the message classification rule; generate a first data packet according to the second data packet, the first data packet includes a second segment identifier list, the second segment identifier list includes a first service SID and a second service SID, the second service SID is adjacent to the first service SID, and the second serviceSID is used to enable the network device to execute the step of determining the first SF SID according to the first service SID by the network device.

[0035] In a possible design, the determination module is specifically used to: obtain a first relationship corresponding to the second service SID, the first relationship including multiple SF SIDs and an indicator parameter corresponding to each SF SID in the multiple SF SIDs, and the multiple SF SIDs include the first SF SID; determine the first SF SID according to the indicator requirement corresponding to the second segment identifier list and the first relationship.

[0036] In a possible design, the network device also includes a generating module, and the first receiving module is further used to: receive a first internal gateway protocol IGP message, the first IGP message includes a first service SID and a first relationship; or, receive a second IGP message and a third IGP message, the second IGP message includes the first service SID, the first SF SID and a first indicator parameter corresponding to the first SF SID, and the third IGP message includes the first service SID, the fourth SF SID and a fourth indicator parameter corresponding to the fourth SF SID; the generating module is used to generate the first relationship according to the second IGP message and the third IGP message.

[0037] In one possible design, the first receiving module is also used to: receive message classification rules sent by the centralized orchestrator, the message classification rules including the association between data message features and the second segment identification list; the determination module is also used to determine the second segment identification list based on the message features of the second data message by matching the data message features.

[0038] In one possible design, the network device also includes a second receiving module, the second receiving module is used to receive a first data packet, the first data packet includes a second service SID, the second service SID is the SID of the network device, and the second service SID is adjacent to the first service SID; the determination module is also used to determine the first SF SID corresponding to the first service SID according to an indication of the second service SID.

[0039] A fifth aspect provides a network device, including: a receiving module, used to receive a first notification message, the first notification message including a first service SID, multiple SF SIDs and an index parameter corresponding to each SF SID in the multiple SF SIDs; a generating module, used to generate a first relationship according to the first service SID, the first SF SID and the first indicator parameter, the first relationship being used to enable the network device to determine the first SF SID according to the indicator requirement corresponding to the segment identifier list and the first indicator parameter, the segment identifier list including the first service SID, and the segment identifier list corresponding to the message classification rule.

[0040] In one possible design, the first relationship also includes a second SF SID corresponding to the first service SID, and a second indicator parameter corresponding to the second SF SID, the second SF SID includes an identifier of a second business function device for performing the first target business function, and the first indicator parameter is different from the second indicator parameter.

[0041] In one possible design, the announcement message is an IGP message, and the first announcement message includes an Intermediate System to Intermediate System (ISIS) routing protocol or an Open Shortest Path First (OSPF) routing protocol.

[0042] The sixth aspect provides a network device, including: a generation module, used to generate a first notification message according to a first service SID, a first SF SID and an indicator parameter corresponding to the first SF SID, the first notification message including the first serviceSID, the first SF SID and the indicator parameter corresponding to the first SF SID, the indicator parameters corresponding to the first service SID, the first SF SID and the first SFSID are used to indicate a first relationship, the first relationship is used to determine the first SF SID according to the indicator requirement of the second segment identifier list, the first service SID is used to indicate a first target business function, the first SF SID includes an identifier of a first business function device that executes the first target business function, and the second segment identifier list includes the first service SID; a publishing module, used to publish the first notification message.

[0043] In one possible design, the first notification message also includes a second SF SID and a second indicator parameter corresponding to the second SF SID, the second SF SID includes an identifier of a second business function device for executing the first target business function, and the first indicator parameter is different from the second indicator parameter.

[0044] In a possible design, the first notification message includes a first SF SID TLV, the first SF SID TLV includes a first SF SID, a first indicator parameter and a status status, where the status is used to indicate whether a first target service function corresponding to the first SF SID is available.

[0045] A seventh aspect provides a network device, comprising: a processor, a memory, and a communication interface, the processor is used to execute instructions stored in the memory, so that the network device executes the method provided by the first aspect or any optional manner of the first aspect, and the communication interface is used to receive or send a message. The specific details of the network device provided by the seventh aspect can be found in the first aspect or any optional manner of the first aspect, and will not be repeated here.

[0046] An eighth aspect provides a network device, comprising: a processor, a memory, and a communication interface, wherein the processor is used to execute instructions stored in the memory, so that the network device performs the method provided by the second aspect or any optional manner of the second aspect, and the communication interface is used to receive or send a message. The specific details of the network device provided by the eighth aspect can be found in the second aspect or any optional manner of the second aspect, and will not be repeated here.

[0047] The ninth aspect provides a network device, comprising: a processor, a memory, and a communication interface, the processor is used to execute instructions stored in the memory, so that the network device performs the method provided by the third aspect or any optional manner of the third aspect, and the communication interface is used to receive or send a message. The specific details of the network device provided by the ninth aspect can be found in the third aspect or any optional manner of the third aspect, and will not be repeated here.

[0048] The tenth aspect provides a computer-readable storage medium, in which a program is stored. When the computer executes the program, the method provided in the first aspect or any optional manner of the first aspect is executed.

[0049] The eleventh aspect provides a computer-readable storage medium, in which a program is stored. When the computer executes the program, the method provided in the second aspect or any optional manner of the second aspect is executed.

[0050] The twelfth aspect provides a computer-readable storage medium, in which a program is stored. When the computer executes the program, the method provided by the third aspect or any optional method of the third aspect is executed.

[0051] The thirteenth aspect provides a computer program product. When the computer program product is executed on a computer, the computer executes the method provided in the first aspect or any optional manner of the first aspect.

[0052] The fourteenth aspect provides a computer program product. When the computer program product is executed on a computer, the computer executes the method provided by the aforementioned second aspect or any optional manner of the second aspect.

[0053] The fifteenth aspect provides a computer program product. When the computer program product is executed on a computer, the computer executes the method provided in the third aspect or any optional manner of the third aspect.

[0054] The sixteenth aspect provides a chip, which, when running on a device, enables the device to execute the method provided in the first aspect or any optional manner of the first aspect.

[0055] The seventeenth aspect provides a chip, which, when running on a device, enables the device to execute the method provided by the aforementioned second aspect or any optional manner of the second aspect.

[0056] The eighteenth aspect provides a chip, which, when running on a device, enables the device to execute the method provided by the aforementioned third aspect or any optional manner of the third aspect.

[0057] The nineteenth aspect provides a network system, which includes the network devices provided by the fourth to sixth aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0058] Figure 1 A system framework diagram of the SRv6 service chain network provided in an embodiment of the present application;

[0059] Figure 2 A schematic diagram of a message forwarding method provided in an embodiment of the present application;

[0060] Figure 3 A schematic diagram of another message forwarding method provided in an embodiment of the present application;

[0061] Figure 4 A schematic diagram of another message forwarding method provided in an embodiment of the present application;

[0062] Figure 5 A schematic diagram of a distributed orchestration algorithm provided in an embodiment of the present application;

[0063] Figure 6 A schematic diagram of the management plane provided in an embodiment of the present application;

[0064] Figure 7 A schematic diagram of the structure of a network device 700 provided in an embodiment of the present application;

[0065] Figure 8 A schematic diagram of the structure of a network device 800 provided in an embodiment of the present application;

[0066] Fig. 9 A schematic diagram of the structure of a network device 900 provided in an embodiment of the present application;

[0067] Fig.10 A schematic diagram of the structure of a network device 1000 provided in an embodiment of the present application;

[0068] Fig.11 A schematic diagram of the structure of a network device 1100 provided in an embodiment of the present application. DETAILED DESCRIPTION

[0069] The following describes the embodiments of the present application in conjunction with the accompanying drawings. Obviously, the described embodiments are only embodiments of a part of the present application, rather than all embodiments. It is known to those skilled in the art that with the development of technology and the emergence of new scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.

[0070] The terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0071] The embodiments of the present application provide a message forwarding method and a network device for alleviating the computing pressure of a service chain.

[0072] Below, some terms in this application are explained to facilitate understanding by those skilled in the art.

[0073] Segment Routing (SR): A protocol designed based on the concept of source routing to forward data packets in the network. SR divides the network path into segments and assigns segment IDs (SIDs) to these segments and network nodes. By arranging the SIDs in order, a SID list (also called a label stack in SR-MPLS) can be obtained, which can indicate a forwarding path. Through SR technology, the nodes and paths that the data packets carrying the SID List pass through can be specified to meet the requirements of traffic optimization. To make an analogy, data packets can be compared to luggage, and SR can be compared to the labels attached to the luggage. If the luggage is to be sent from area A to area D, passing through areas B and C, a label can be attached to the luggage in the origin area A, "first to area B, then to area C, and finally to area D". In this way, each area only needs to identify the label on the luggage and forward the luggage from one area to another according to the label of the luggage. In SR technology, the source node will add a label to the data packet, and the intermediate node can forward it to the next node according to the label until the data packet reaches the destination node. For example, in the packet header, insert<SID1,SID2,SID3> , the data packet will first be forwarded to the node corresponding to SID1, then to the node corresponding to SID2, and then to the node corresponding to SID3. The full name of SR-MPLS in Chinese and English is Segment Routing Multi-Protocol Label Switching.

[0074] Segment Routing (SRv6) based on Internet Protocol Version 6 (IPv6) refers to the application of SR technology in IPv6 networks. IPv6 addresses (128 bits) are used as the representation of SIDs. When forwarding data packets, network devices that support SRv6 will query the local segment identification table (local SID table) according to the destination address (Destination Address, DA) in the data packet. When the destination address of the data packet matches any SID in the local segment identification table for the longest match, the policy related to the SID in the local segment identification table is followed and the operation corresponding to the policy is performed. For example, the data packet can be forwarded from the outbound interface corresponding to the SID); if the destination address of the data packet does not have the longest match with each SID in the local segment identification table, the IPv6 forwarding table is checked again and the longest match forwarding is performed according to the IPv6 forwarding table.

[0075] Different nodes in the SRv6 network can be connected through the Internet Protocol (IP) address layer link. For any node, the node can publish at least one endpoint three-layer cross-connection segment identifier (End.X SID, End means endpoint, X means crossing, SID means segment identifier). Each End.X SID is used to identify an IP layer link directly connected to the node. Other nodes in the network can determine the SID corresponding to each IP layer link in the network by sending and receiving End.X SIDs published by each other. When a data packet enters the SRv6 network, the head node will receive the data packet. After determining the forwarding path of the data packet, in a possible implementation, the head node can obtain the End.X SID corresponding to each IP layer link according to each IP layer link that the forwarding path needs to pass, write the obtained End.X SID into the data packet, and then send the data packet carrying the End.X SID to the next node. When any node receives a data packet, the node will parse the data packet, obtain the End.X SID carried by the data packet, and send the data packet out from the IP layer outbound interface bound to the End.XSID. The data packet will reach the next node through the IP layer link corresponding to the IP layer outbound interface. The next node will continue to forward the data packet by performing similar steps until the data packet reaches the destination node. In another possible implementation, the head node can obtain the endpoint segment identifier (End SID, End means endpoint, SID means segment identifier) ​​corresponding to each node according to each node that the forwarding path needs to pass through, write the obtained End SID into the data packet, and then send the data packet carrying the End SID to the next node. When any node receives a data packet, the node will parse the data packet, obtain the End SID carried by the data packet, and send the data packet to the node corresponding to the End SID. The data packet will reach the node corresponding to the End SID, and so on. Each node continues to forward the data packet by performing similar steps until the data packet reaches the destination node. It should be noted that the SID list composed of the above END.X or END can only indicate some nodes on the path, rather than all nodes. In addition, END.X and END, as well as other SRv6 Functions, can be mixed.

[0076] Segment Routing Header (SRH): IPv6 packets are composed of IPv6 standard header + extension header (0...n) + payload. In order to implement SRv6 based on the IPv6 forwarding plane, a new IPv6 extension header is added, called the SRH extension header. This extension header specifies an IPv6 explicit path and stores the IPv6 Segment List information. Its function is the same as the Segment List in SR MPLS. The head node adds an SRH extension header to the IPv6 packet, and the intermediate nodes can forward it according to the path information contained in the SRH extension header.

[0077] Bound SID (BSID): BSID is bound to a SID list. When a node obtains a valid BSID, it performs BSID-related operations. In SR-MPLS, BSID-related operations can be: popping the BSID and pushing it into the corresponding SID List. In SRv6, BSID-related operations can be: inserting a new SRH header (End.B6.Insert) or inserting a new outer IPv6 header containing SRH (End.B6.Encaps), depending on the BSID function.

[0078] Head Node: The starting node of the SR forwarding path, responsible for encapsulating segment identifiers.

[0079] The following is an example of an application scenario of the present application. Figure 1The system framework of the SRv6 service chain network shown in the figure includes: service function chain (SFC) orchestrator, SFC control layer (controller), flow classifier (SC), service chain tail device (post service, PS), service forwarding function node (SFF), service function node (SF) and service node (SN). In the related art, the SFC orchestrator sends the complete SRv6 service chain path to the SC through the SFC controller. The SC encapsulates the data message based on the path information of the service chain path and sends it to the SFF. After the SFF determines the SF corresponding to the message from the encapsulated data message, it sends the data message to the SF. The SF receives the data message from the SFF and provides the corresponding service function, and then transmits the data message back to the SFF. The SFF then sends the data message to the next SF, SFF or PS.

[0080] The business chain collaboration layer mainly completes the provision of basic resources required for providing business chain services, including the provisioning and basic configuration of SC, SFF and SN, the network connection collaboration between SF and SFF, and the business policy configuration of SF, etc. It is a unified entrance to the business chain features.

[0081] The service chain control layer also provides network control functions for service chain characteristics, including overlay network management, service chain path calculation, and flow table delivery required by the service chain. At the same time, the service chain control layer can also provide interfaces to connect with the cloud management platform or the collaboration layer, and can also connect with SC / SFF / PS through interfaces such as the network configuration protocol (NetConf).

[0082] SC receives data packets from non-SFC networks, classifies data packets based on the secure copy (SCP) protocol, encapsulates data packets after matching the service chain path, and forwards them to the first-hop SFF. SC and SFF can be deployed together.

[0083] PS is the destination device of the service chain to which the data message is to go after passing through the service chain path. PS and SFF can be deployed together.

[0084] SFF is responsible for forwarding the data packets introduced into the service chain by SC along the pre-defined service chain path, and forwarding the data packets to PS at the end of the service chain, that is, acting as an agent of the unidentified (unaware) type SF to decapsulate and encapsulate the data packets and update the header information. There can be multiple SFFs. This framework diagram takes two as examples, namely SFF1 and SFF2. The data packets of the service chain are introduced into SFF1 by SC and forwarded to PS by SFF2.

[0085] The SF instances in the business function nodes are usually virtual resources. For example, a virtual system (VSYS) instance receives data packets from the SFF and provides corresponding business functions, such as applying business policies, and then sends the data packets back to the SFF. For example, the SF instances can be SF1-SF8, SFF1 can apply business functions in SF1-SF4 instances, and SFF2 can apply business functions in SF5-SF8 instances.

[0086] SN, as a SF container, may be a physical network function (PNF) or a virtual network function (VNF) network service device. SN includes a single SF instance or multiple SF instance modes. Exemplarily, in this framework diagram, SN may be SN1-SN4, SN1 includes SF1 and SF2, SN2 includes SF3 and SF4, SN3 includes SF5 and SF6, and SN4 includes SF7 and SF8.

[0087] Figure 1 In the system framework diagram of the SRv6 service chain network shown in the figure, SC is the head node, PS is the tail node, and at least one path can be established between the head node and the tail node. For any path between the head node and the tail node, there is at least one other node between the head node and the tail node on the path. For the sake of convenience, the other nodes between the head node and the tail node are called intermediate nodes. For example, Figure 1 The path 11 shown is a path between the head node SC and the tail node PS, and SFF1 and SFF2 are also included between the head node and the tail node on the path 11, that is, SFF1 and SFF2 are intermediate nodes on the path 11. In the process of forwarding data packets of the service chain, the data packet can be forwarded to SF4 through SFF1, and SF4 provides the corresponding service function, and the data packet can also be forwarded to SF5 through SFF2, and SF5 provides the corresponding service function.

[0088] Applied to the above SRv6 system framework, the message forwarding method in the related art is described below:

[0089] In the related technologies, service chains are mainly used in data centers. With the increasing demand for sudden migration of massive virtual machines in data centers, many systems and platforms based on user services (such as firewalls or load balancers, etc.) are closely related to the network topology and need to be deployed according to the message path. Data centers use service chains to achieve flexible connection of services and decoupling of virtual networks and physical networks. In the existing service chain network, the centralized orchestrator completes the service chain orchestration and sends the controller. The controller sends the complete SRv6 service chain path to the SC. The service chain contains the SID indicating the physical location of the SFF / SF. Due to the large number of service chains, SFs, etc. in the network, the solution of centralized orchestrator to centrally calculate or orchestrate the service chain path requires high computing power of the centralized orchestrator. When the SFF fails or the SF migrates, the centralized orchestrator needs to recalculate and send the service chain path, and recalculation and sending take extra time.

[0090] In order to solve the above problem, an embodiment of the present application provides a message forwarding method, which is described as follows:

[0091] The following describes the message forwarding process provided by the embodiments of the present application from the perspectives of the control plane process and the forwarding plane process respectively.

[0092] In the control plane process of the embodiment of the present application, the network device includes both the case of receiving notification messages and the case of sending notification messages.

[0093] The following, combined Figure 2 A message processing method provided in an embodiment of the present application is introduced. The method mainly introduces the situation where a network device sends a notification message. The method includes the following steps:

[0094] 201. A network device generates a first notification message according to a first service SID, a first SF SID, and a first indicator parameter corresponding to the first SF SID.

[0095] The above-mentioned network device can be an intermediate node SFF, or a head node or a tail node, which is not limited in the embodiments of the present application. The network device can receive the first service SID, SF SID and the first indicator parameter, which can be sent by the centralized orchestrator or pre-configured in the network device in advance. The network device can generate a first notification message after obtaining the above-mentioned first service SID, the first SF SID and the indicator parameter corresponding to the first SF SID. In an example, the notification message can be an IGP message, such as an intermediate system to intermediate system (intermediate system to intermediate system, ISIS) message or an open shortest path first (open shortest path first, OSPF) message. The above-mentioned first service SID is used to indicate the first target business function required to be executed for data message forwarding, and the first SF SID can be used as an identifier of the first business function device that executes the first target business function.

[0096] Optionally, the network device may also obtain a second indicator parameter corresponding to the second SF SID and the second SFSID corresponding to the first Service SID, and carry the indicator parameter corresponding to the second SF SID and the second SF SID in the above-mentioned first notification message. The second SF SID is an identifier of a second service function device that performs the first target service function. Optionally, the parameter values ​​of the first indicator parameter and the second indicator parameter are different. The indicator parameter may include a computing power value or other indicator that identifies performance, such as latency, packet loss rate, or throughput, etc., which is not limited in this application.

[0097] In an example, the first notification message includes a service SID type-length-value (tag-length-value, TLV), and the service SID TLV includes a first service SID. Exemplarily, the service SID TLV is an extended implementation of the IGP protocol in this embodiment, and the service SID TLV can be shown in Table 1.

[0098] Table 1

[0099]

[0100] Among them, Type: is used to indicate that the TLV is of Service SID type.

[0101] Length: Defines the length of the Service SID TLV.

[0102] Algorithm: The algorithm type defined by IGP.

[0103] Flags: 1 octet.

[0104] Endpoint Behavior: The type is End.B6.INTERT, which indicates the way to insert a new SRH into the binding tag.

[0105] Service SID: 16 octets, carrying the specific value of the service SID.

[0106] Sub-sub-TLV-length: defines the length of sub-sub-TLVs.

[0107] Sub-sub-TLVs: defines the Service network proxy (Proxy) SID Sub-sub-TLV, which can contain multiple ones.

[0108] The first notification message also includes a SF SID TLV, and the SF SID TLV includes a first SF SID and an indicator parameter corresponding to the first SF SID. Optionally, the first notification message also includes a status corresponding to the first SF SID, and the status is used to indicate whether the first target service function corresponding to the first SF SID is available. The first SF SID TLV is an extended implementation of the IGP protocol in this embodiment, and the first SF SID TLV can be shown in Table 2.

[0109] Table 2

[0110]

[0111] Type: is used to indicate that the TLV is a new type of service attribute.

[0112] Length: used to define the length of the Service Proxy SID Sub-sub-TLV.

[0113] ComputePower value: identifies the indicator parameter corresponding to the SF SID. In this example, the specific content of the indicator parameter is the computing power value.

[0114] Flags: 1 octet.

[0115] Endpoint Behavior: The intermediate node is End.AS or End.AD, indicating a static or dynamic proxy mode. The tail node is the newly defined END.CT type, which performs the operation of stripping the SRH header.

[0116] Status: Indicates the status of SF indicator parameters. There are two statuses: available and unavailable.

[0117] SF SID: Identifies the SF SID.

[0118] The indicator parameter corresponding to the function identifier is only carried in the SF SID Sub-sub-TLV, but not in the Service SIDSub-TLV. This can prevent the local SFF from selecting the proxy SF SID of the next-hop SFF. If the route is selected according to the indicator parameter of the Service SID, the indicator parameter weight of the proxy SF SID cannot be reflected, resulting in uneven SF load.

[0119] 202. The network device publishes a first notification message.

[0120] After generating the first notification message, the network device can publish the first notification message so that other device head nodes in the network can receive the first notification message.

[0121] In particular, when the network device is a head node, the head node may not publish the first Service SID, the first SF SID, and the first indicator parameter obtained by it.

[0122] The following, combined Figure 3 Another message processing method provided in an embodiment of the present application is introduced. This method mainly introduces a situation where a network device receives a notification message. The method includes the following steps:

[0123] 301. A network device receives a first notification message.

[0124] In this embodiment, the network device can receive Figure 2 The network device in the message forwarding method shown sends a first notification message, where the first notification message includes a first service SID, a first SF SID, and a first indicator parameter corresponding to the first SF SID.

[0125] 302. The network device generates a first relationship according to the first service SID, the first SF SID, and the first indicator parameter.

[0126] After receiving the first notification message, the network device can directly extract the first service SID, the first SF SID and the first indicator parameter contained in the first notification message, and then generate a first relationship including the first service SID, the first SF SID and the first indicator parameter.

[0127] Optionally, the above-mentioned first relationship may be pre-generated and stored by the network device, or may be generated during the data packet forwarding process, which is not limited in this application.

[0128] Optionally, the first relationship also includes a second SF SID and a second indicator parameter.

[0129] In an example, the notification message also includes the second SF SID and a second indicator parameter corresponding to the second SF SID.

[0130] In another example, the network device may receive multiple notification messages, which may include a second IGP message and a third IGP message, and the network device may generate a first relationship based on the first serviceSID, the first SF SID, and the indicator parameter corresponding to the first SF SID in the received first notification message, and the second SF SID corresponding to the first serviceSID and the second indicator parameter corresponding to the second SF SID in the second notification message. The second SF SID is an identifier of a second service function device that performs the first target service function, and the first indicator parameter and the second indicator parameter have different parameter values.

[0131] In the forwarding process of the embodiment of the present application, Figure 4 Another message processing method provided in an embodiment of the present application is introduced, and the method comprises the following steps:

[0132] 401. A network device obtains a first data message.

[0133] In this embodiment, in the SRv6 service chain network, the network device may be the head node, intermediate node or tail node mentioned above, that is, this solution can be divided into the following two cases for explanation.

[0134] Case A: When the network device is a head node, the head node can receive the second data message transmitted from the network, and determine the second segment identifier list based on the message feature of the second data message and the data message feature based on the obtained message classification rule. Then the head node can encapsulate the second segment identifier list into the SRH extension header of the second data message to generate a first data message including the second segment identifier list, and the network device can obtain the first data message.

[0135] The message classification rule can be sent by a centralized orchestrator or configured in a network device. The message classification rule is used to indicate the association between the second segment identifier list and the data message characteristics, that is, when the network device receives a message with certain message characteristics, it needs to encapsulate and forward the message according to the forwarding path indicated by the second segment identifier list. The second segment identifier list can be used to include the order of target business functions required for data messages during message forwarding. In one example, the second segment identifier list can include a first service SID and a second service SID, the second service SID is adjacent to the first service SID, the first service SID is used to indicate the first target business function, and the second service SID is used to enable the network device to perform the step of determining the first SF SID based on the first service SID. Exemplarily, the second segment identification list encapsulated in the SRH extension header of the first data message may be SRH1, and the SRH1 may be {S3_1SID, S2_1 SID, S1_1 SID, S0_1 SID} or {S3_2 SID, S2_2SID, S1_2 SID, S0_2 SID}, that is, the service SID may be S3_1 SID, S2_1 SID, S1_1 SID or S0_1 SID, and the specific forwarding path specified by SRH1 may be determined by the characteristics of the data message, and the service SID in SRH1 may be an identifier of the BSID type.

[0136] Optionally, the message classification rule may be pre-configured in the head node by the centralized orchestrator, or may be obtained from the centralized orchestrator after the network device receives the second data message, which is not limited in the present application.

[0137] Case B: When the network device is an intermediate node or a tail node, the network device may receive a first data message sent by an upper node device thereof, where the first data message includes a second segment identifier list.

[0138] The second segment identifier list also includes a second service SID, which is the SID of the network device and is adjacent to the first service SID. In an example, when the second segment identifier list is {S3_1 SID, S2_1SID, S1_1 SID, S0_1 SID}, S3_1 SID can be considered as the second service SID, S2_1 SID can be considered as the first service SID, and in terms of order, S3_1 SID can be considered as the SID executed first, and S2_1 SID can be considered as the SID executed later.

[0139] After determining that the SID indicated by the segment left (SL) in the segment identification list is its own service SID or the destination address in the first data message is its own service SID, the network device determines a first service SID adjacent to the service SID, and further determines a first SF SID corresponding to the service SID.

[0140] 402. The network device determines a first SF SID according to the first service SID.

[0141] Each second-segment identifier list is pre-set with corresponding indicator requirements. For example, the indicator requirements of the above {S3_1SID, S2_1 SID, S1_1 SID, S0_1 SID}, such as the computing power requirement, can be fixedly set to 100, and the computing power requirement of {S3_2SID, S2_2SID, S1_2 SID, S0_2 SID} can be fixedly set to 400.

[0142] Based on the above situation A, the head node SC may receive multiple data packets, that is, the forwarding paths of the data packets may have multiple paths. In one example, after receiving the packet, the head node determines the segment identifier list corresponding to the data packet based on the correspondence between the packet characteristics in the packet classification rules and the segment identifier list and indicator requirements. For example, based on the packet characteristics and the computing power requirement of 100, the corresponding segment identifier list is determined to be {S3_1 SID, S2_1 SID, S1_1 SID, S0_1 SID}. In this segment identifier list, only the Service SID indicating the business function is included, but the SF SID that explicitly executes the specific business function is not required. The SF SID corresponding to each Service SID is determined by the network device that forwards the packet, which can reduce the path calculation pressure of the centralized orchestrator.

[0143] Based on the above situation B, the network device includes a determined segment identifier list in the received data message, and the segment identifier list includes the service SID.

[0144] Combining the above two situations, the network device can determine the SFSID corresponding to the adjacent service SID according to the second service SID indicated by the segment left (SL) in the segment identification list in the first data message. In an example, the second service SID indicated by the SL in the message is the service SID of the network device, and the network device determines the SF SID corresponding to the adjacent service SID (i.e., the first service SID) such as S1 SID according to the indication of the second service SID.

[0145] The network device can determine the SF SID corresponding to the first service SID corresponding to the indicator requirement corresponding to the second segment identifier list through the first relationship. Figure 5 In the distributed orchestration algorithm shown, the network device determines the computing power requirement ratio between multiple SF SIDs according to the computing power requirement. In one example, the orchestration algorithm is performed by the distributed orchestration system of the network device to perform distributed orchestration calculations. Exemplarily, it can be assumed that the total computing power requirement SUM of the first service SID is S, which corresponds to 4 SF SIDs, such as: A1, A2, A3 and A4. Assume that the computing power values ​​of A1-A4 are CP 100, CP 200, CP 300, CP 400, respectively, represented by S1-S4. Then the network device can determine the computing power ratio between the computing power values ​​corresponding to each SF SID according to the sharing items. Exemplarily, the sharing items can be Weigth1, Weigth2, Weigth3 and Weigth4 respectively, and the corresponding SF SID can be determined according to satisfying the minimum fitting variance: S1 / S<->Wegth1, S2 / S<->Wegth2, S3 / S<->Wegth3, S4 / S<->Wegth4. For the first service SID carried in the second segment identifier list, each path A1-A4 may be tried in turn similar to the above calculation, and the SF SID with the smallest fitting variance is selected as the first SF SID. In an example, the network device may determine that the first SF SID corresponding to the first service SID included in the second segment identifier list with a computing power requirement of 100 is A1SID, and the first SF SID corresponding to the first service SID included in the second segment identifier list with a computing power requirement of 400 is A4SID.

[0146] Before determining the SF SID corresponding to the first service SID, the network device first obtains the first relationship. The situation in which the network device obtains the first relationship is as follows:

[0147] The network device may indicate a first relationship corresponding to a first target service function according to a first service SID sent by other devices. The first relationship may include multiple SF SIDs and an indicator parameter corresponding to each of the multiple SF SIDs, wherein the multiple SF SIDs include the first SF SID.

[0148] The method for the network device to obtain the first relationship can be referred to above for details. Figure 3 The detailed description of the method embodiment shown in the present application will not be repeated here.

[0149] The following is an exemplary introduction to the first relationship obtained by the network device. The indicator parameter may include a computing power value or other indicators that identify performance, such as latency, packet loss rate, or throughput, etc., which is not limited in this application. This example takes the computing power value as an example.

[0150] For example, Figure 6 In the management plane diagram provided by the embodiment of the present application, the centralized orchestrator is connected to the head nodes SC, SFF1, SFF2 and TAIL respectively, SFF1 is connected to SF instances A1, A2 and A3, SFF2 is connected to SF instance A4 and SF instance B1, and TAIL includes C1 function (not shown in the figure). The centralized orchestrator can directly send the service SID, SF SID and the computing power value corresponding to the SF SID to SFF1, SFF2 and TAIL.

[0151] Exemplarily, the service SID may include S1 SID, S2 SID and S3 SID, and the SF SID includes A1 SID, A2SID, A3 SID, A4 SID, B1 SID and C1 SID, and corresponding computing power values ​​CP: 100, 200, 300, 400, 500, 1500. Taking the first service SID as S1 SID as an example, the representation of the first relationship of the first service SID may be as shown in Table 3 below.

[0152] Table 3

[0153]

[0154] 403. The network device updates the first data message.

[0155] After determining the first SF SID, the network device can perform the operation of inserting the SRH header corresponding to the second service SID, and encapsulate the first SF SID in the first segment identifier list of SRH2 of the first data message. Exemplarily, the head node performs the operation corresponding to the S0_1 SID in the second segment identifier list with a computing power requirement of 100, that is, inserting the SF SID: A1 SID into SRH2 of the first data message.

[0156] 404. The network device sends a first data packet to the first service function device according to the first SF SID.

[0157] After determining the first SF SID according to the first service SID, the network device can send the first data message to the first service function device indicated by the first SF SID according to the indication of the first SF SID.

[0158] Before sending the first data message, the network device may perform the above step 403, or may not perform the action of updating the first data message shown in the above step 403. That is, the network device may not update the first SF SID to the first data message, but may send the first data message to the first service function device corresponding to the first SF SID after determining the first SF SID. That is, the above step 403 is an optional step.

[0159] After sending the first data packet to the first service function device, the network device may also receive the first data packet sent by the first service function device. In one example, if the first data packet includes the SF SID, the network device may also perform an operation of stripping the SRH header corresponding to the SF SID to update the first data packet.

[0160] In this way, the device on the path indicated by the second identification list included in the first data message determines the final transmission path of the message by determining the corresponding SF SID according to the serviceSID.

[0161] For example, the method of determining the corresponding SF according to the service SID of each device in the network device, the final forwarding route of the message that meets the feature A and the network indicator parameter is 100 is as follows: Figure 6 As shown in the path 61, it is transmitted through SC, SFF1, A1, SFF2, B1 and TAIL; the message forwarding route that meets feature B and the network indicator parameter is 400 is as follows Figure 6 As shown in path 62, it is transmitted through SC, SFF1, A4, SFF2, B1 and TAIL.

[0162] The network device determines the first SF SID according to the first service SID in the received first data message, and does not need the controller to calculate the complete forwarding path of the data message, thereby alleviating the calculation pressure of the service chain.

[0163] Furthermore, a distributed SRv6 service chain method for SF instances is adopted to reduce the complexity of centralized SRv6 service chain orchestration while meeting the requirement of sharing SF instances according to user information.

[0164] The above describes the embodiments of the present application. Figure 2 , Figure 3 or Figure 4 The method shown in the figure, the network devices of the embodiment of the present application are introduced below, and the network devices introduced below respectively have the above Figure 2 , Figure 3 or Figure 4 Any functionality of a network device in the method shown.

[0165] Figure 7 700 is a schematic diagram of the structure of a network device provided in an embodiment of the present application. Figure 7 As shown, the network device 700 includes: an obtaining module 701, used to execute step 401, a determining module 702, used to execute step 402, an updating module 703, used to execute step 403, a sending module 704, used to execute step 404, a first receiving module 705, used to execute the step of receiving the second data message before step 401 and the step of receiving the first IGP message or receiving the second IGP message and the third IGP message before step 402, a generating module 706, used to execute the step of generating the first relationship after the step of receiving the second IGP message and the third IGP message, and a second receiving module 707, used to execute the step of receiving the first data message before step 401.

[0166] The network device 700 corresponds to the above Figure 4 The network device in the method embodiment shown, the modules in the network device 700 and the above-mentioned other operations and / or functions are respectively for implementing Figure 4 The various steps and methods implemented by the network device in the method embodiment shown in the figure can be found in the above Figure 4 For the sake of brevity, the method shown will not be described in detail here.

[0167] When the network device 700 processes a message, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the network device 700 is divided into different functional modules to complete all or part of the functions described above. Figure 4The method shown belongs to the same concept, and its specific implementation process is detailed in Figure 4 The method shown will not be repeated here.

[0168] Figure 8 800 is a schematic diagram of a network device provided in an embodiment of the present application. Figure 8 As shown, the network device 800 includes: a receiving module 801 for executing step 201, and a generating module 802 for executing step 202.

[0169] The network device 800 corresponds to the above Figure 2 The network device in the method embodiment shown, the modules in the network device 800 and the above-mentioned other operations and / or functions are respectively for implementing Figure 2 The various steps and methods implemented by the network device in the method embodiment shown in the figure can be found in the above Figure 2 For the sake of brevity, the method shown will not be described in detail here.

[0170] When the network device 800 processes a message, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the network device 800 is divided into different functional modules to complete all or part of the functions described above. Figure 2 The method shown belongs to the same concept, and its specific implementation process is detailed in Figure 2 The method shown will not be repeated here.

[0171] Fig. 9 is a schematic diagram of the structure of a network device 900 provided in an embodiment of the present application, such as Fig. 9 As shown, the network device 900 includes: a generating module 901 for executing step 301, and a sending module 902 for executing step 302.

[0172] The network device 900 corresponds to the above Figure 3 The network device in the method embodiment shown, the modules in the network device 900 and the above-mentioned other operations and / or functions are respectively for implementing Figure 3 The various steps and methods implemented by the network device in the method embodiment shown in the figure can be found in the above Figure 3 For the sake of brevity, the method shown will not be described in detail here.

[0173] When the network device 900 processes a message, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the network device 900 is divided into different functional modules to complete all or part of the functions described above. Figure 3 The method shown belongs to the same concept, and its specific implementation process is detailed in Figure 3 The method shown will not be repeated here.

[0174] Corresponding to the method embodiment and virtual device embodiment provided in the present application, the embodiment of the present application further provides a network device, and the hardware structure of the network device is introduced below.

[0175] The network device 1000 or network device 1100 described below corresponds to the network device in the above method embodiment. The hardware, modules and other operations and / or functions in the network device 1000 or network device 1100 are respectively for implementing the various steps and methods implemented by the network device 1000 or network device 1100 in the method embodiment. For the detailed process of how the network device 1000 or network device 1100 implements micro-segmentation based on IPv6, please refer to the above method embodiment for specific details. For the sake of brevity, it will not be repeated here. Figure 2 , Figure 3 or Figure 4 Each step of the method shown is completed by an integrated logic circuit of hardware or software instructions in the processor of network device 1000 or network device 1100. The steps of the method disclosed in conjunction with the embodiment of the present application can be directly embodied as a hardware processor for execution, or a combination of hardware and software modules in the processor for execution. The software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in a memory, and the processor reads the information in the memory and completes the steps of the above method in conjunction with its hardware. To avoid repetition, it is not described in detail here.

[0176] The network device 1000 or the network device 1100 corresponds to the network device 800, the network device 900 or the network device 1000 in the above-mentioned virtual device embodiment, and each functional module in the network device 800, the network device 900 or the network device 1000 is implemented by the software of the network device 1000 or the network device 1100. In other words, the functional modules included in the network device 800, the network device 900 or the network device 1000 are generated after the processor of the network device 1000 or the network device 1100 reads the program code stored in the memory.

[0177] See also Fig.10 , Fig.10 A schematic diagram of the structure of a network device 1000 provided by an exemplary embodiment of the present application is shown. The network device 1000 can be implemented by a general bus architecture.

[0178] The network device 1000 includes at least one processor 1001 , a communication bus 1002 , a memory 1003 , and at least one communication interface 1004 .

[0179] The processor 1001 may be a general-purpose CPU, NP, microprocessor, or may be one or more integrated circuits for implementing the solution of the present application, such as an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof. The above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.

[0180] The communication bus 1002 is used to transmit information between the above components. The communication bus 1002 can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.

[0181] The memory 1003 may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, or a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 1003 may exist independently and be connected to the processor 1001 via the communication bus 1002. The memory 1003 may also be integrated with the processor 1001.

[0182] The communication interface 1004 uses any transceiver-like device for communicating with other devices or communication networks. The communication interface 1004 includes a wired communication interface and may also include a wireless communication interface. Among them, the wired communication interface may be, for example, an Ethernet interface. The Ethernet interface may be an optical interface, an electrical interface, or a combination thereof. The wireless communication interface may be a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof, etc.

[0183] In a specific implementation, as an embodiment, the processor 1001 may include one or more CPUs, such as Fig.10 CPU0 and CPU1 are shown in the figure.

[0184] In a specific implementation, as an embodiment, the network device 1000 may include multiple processors, such as Fig.10 1 and 1005. Each of these processors may be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). The processor here may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).

[0185] In a specific implementation, as an embodiment, the network device 1000 may further include an output device 1006 and an input device 1007. The output device 1006 communicates with the processor 1001 and may display information in a variety of ways. For example, the output device 1006 may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device 1007 communicates with the processor 1001 and may receive user input in a variety of ways. For example, the input device 1007 may be a mouse, a keyboard, a touch screen device, or a sensor device.

[0186] In some embodiments, the memory 1003 is used to store the program code 1010 for executing the solution of the present application, and the processor 1001 can execute the program code 1010 stored in the memory 1003. That is, the network device 1000 can implement the method embodiment provided by the processor 1001 and the program code 1010 in the memory 1003. Figure 2 , Figure 3 or Figure 4 The method shown.

[0187] The network device 1000 of the embodiment of the present application may correspond to the network device in each of the above method embodiments, and the processor 1001, the communication interface 1004, etc. in the network device 1000 may implement the functions and / or various steps and methods implemented by the network device in each of the above method embodiments. For the sake of brevity, no further description is given here.

[0188] The obtaining module 701 and the sending module 704 in the network device 700 are equivalent to the communication interface 1004 in the network device 1000 ; the determining module 702 and the updating module 703 in the network device 700 may be equivalent to the processor 1001 in the network device 1000 .

[0189] The receiving module 801 in the network device 800 is equivalent to the communication interface 1004 in the network device 1000 ; the generating module 802 in the network device 800 may be equivalent to the processor 1001 in the network device 1000 .

[0190] The sending module 902 in the network device 900 is equivalent to the communication interface 1004 in the network device 1000 ; the generating module 901 in the network device 900 may be equivalent to the processor 1001 in the network device 1000 .

[0191] See also Fig.11 , Fig.11A schematic structural diagram of a network device 1100 provided by an exemplary embodiment of the present application is shown. The network device 1100 includes: a main control board 1110 and an interface board 1130 .

[0192] The main control board 1110 is also called a main processing unit (MPU) or a route processor card. The main control board 1110 is used to control and manage various components in the network device 1100, including routing calculation, device management, device maintenance, and protocol processing functions. The main control board 1110 includes: a central processing unit 1111 and a memory 1112.

[0193] The interface board 1130 is also called a line processing unit (LPU), a line card or a service board. The interface board 1130 is used to provide various service interfaces and realize the forwarding of data packets. The service interface includes but is not limited to an Ethernet interface, a POS (Packet over SONET / SDH) interface, etc., and the Ethernet interface is, for example, a Flexible Ethernet Service Interface (Flexible Ethernet Clients, FlexE Clients). The interface board 1130 includes: a central processing unit 1131, a network processor 1132, a forwarding table entry memory 1134 and a physical interface card (Ph11sical interface card, PIC) 1133.

[0194] The central processing unit 1131 on the interface board 1130 is used to control and manage the interface board 1130 and communicate with the central processing unit 1111 on the main control board 1110 .

[0195] The network processor 1132 is used to implement the forwarding processing of the message. The network processor 1132 can be in the form of a forwarding chip. Specifically, the network processor 1132 is used to forward the received message based on the forwarding table stored in the forwarding table entry memory 1134. If the destination address of the message is the address of the network device 1100, the message is sent to the CPU (such as the central processor 1111) for processing; if the destination address of the message is not the address of the network device 1100, the next hop and the output interface corresponding to the destination address are found from the forwarding table according to the destination address, and the message is forwarded to the output interface corresponding to the destination address. Among them, the processing of the uplink message includes: processing of the message input interface, forwarding table search; processing of the downlink message: forwarding table search, etc.

[0196] The physical interface card 1133 is used to implement the physical layer docking function, whereby the original traffic enters the interface board 1130, and the processed message is sent out from the physical interface card 1133. The physical interface card 1133, also called a daughter card, can be installed on the interface board 1130, and is responsible for converting the optical signal into a message and forwarding the message to the network processor 1132 for processing after checking the legitimacy of the message. In some embodiments, the central processor can also perform the functions of the network processor 1132, such as implementing software forwarding based on a general-purpose CPU, so that the network processor 1132 is not required in the physical interface card 1133.

[0197] Optionally, the network device 1100 includes a plurality of interface boards. For example, the network device 1100 further includes an interface board 1140 . The interface board 1140 includes a central processor 1141 , a network processor 1142 , a forwarding table entry memory 1144 , and a physical interface card 1143 .

[0198] Optionally, the network device 1100 further includes a switching fabric board 1120. The switching fabric board 1120 may also be referred to as a switch fabric unit (SFU). When the network device has multiple interface boards 1130, the switching fabric board 1120 is used to complete data exchange between the interface boards. For example, the interface board 1130 and the interface board 1140 may communicate through the switching fabric board 1120.

[0199] The main control board 1110 is coupled to the interface board 1130. For example, the main control board 1110, the interface board 1130, the interface board 1140, and the switching network board 1120 are connected to the system backplane through a system bus to achieve intercommunication. In a possible implementation, an inter-process communication (IPC) channel is established between the main control board 1110 and the interface board 1130, and the main control board 1110 and the interface board 1130 communicate through the IPC channel.

[0200] Logically, the network device 1100 includes a control plane and a forwarding plane. The control plane includes a main control board 1110 and a central processor 1131. The forwarding plane includes various components for performing forwarding, such as a forwarding table entry memory 1134, a physical interface card 1133, and a network processor 1132. The control plane performs functions such as a router, generating a forwarding table, processing signaling and protocol messages, and configuring and maintaining the status of the device. The control plane sends the generated forwarding table to the forwarding plane. On the forwarding plane, the network processor 1132 forwards the message received by the physical interface card 1133 based on the forwarding table sent by the control plane. The forwarding table sent by the control plane can be stored in the forwarding table entry memory 1134. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same device.

[0201] The obtaining module 701 and the sending module 704 in the network device 700 are equivalent to the physical interface card 1133 in the network device 1100 ; the determining module 702 and the updating module 703 in the network device 700 may be equivalent to the network processor 1132 or the central processor 1111 .

[0202] The receiving module 801 in the network device 800 is equivalent to the physical interface card 1133 in the network device 1100 ; the generating module 802 in the network device 800 may be equivalent to the network processor 1132 or the central processor 1111 .

[0203] The sending module 902 in the network device 900 is equivalent to the physical interface card 1133 in the network device 1100 ; the generating module 901 in the network device 900 may be equivalent to the network processor 1132 or the central processor 1111 .

[0204] The operation on the interface board 1140 in the embodiment of the present application is consistent with the operation of the interface board 1130, and for the sake of brevity, it will not be repeated. The network device 1100 of this embodiment can correspond to the network device in each of the above-mentioned method embodiments, and the main control board 1110, the interface board 1130 and / or 1140 in the network device 1100 can implement the functions and / or various steps implemented by the network device in each of the above-mentioned method embodiments, and for the sake of brevity, it will not be repeated here.

[0205] It is worth noting that there may be one or more main control boards, and when there are multiple boards, they may include a primary main control board and a backup main control board. There may be one or more interface boards. The stronger the data processing capability of the network device, the more interface boards are provided. There may also be one or more physical interface cards on the interface board. There may be no switching network board, or there may be one or more switching network boards. When there are multiple switching network boards, they can jointly realize load sharing and redundant backup. In a centralized forwarding architecture, network devices may not need switching network boards, and the interface board is responsible for processing the service data of the entire system. In a distributed forwarding architecture, network devices can have at least one switching network board, which realizes data exchange between multiple interface boards and provides large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of network devices with distributed architecture are greater than those of devices with centralized architecture. Optionally, the network device may have only one board, that is, no switching board, and the functions of the interface board and the main control board are integrated on the board. In this case, the central processor on the interface board and the central processor on the main control board can be combined into one central processor on the board to perform the functions of the two. This type of device has low data exchange and processing capabilities (for example, low-end switches or routers and other network devices). The specific architecture to be adopted depends on the specific networking deployment scenario, and no limitation is made here.

[0206] In some possible embodiments, the above network device may be implemented as a virtualized device.

[0207] For example, a virtualized device may be a virtual machine (English: Virtual Machine, VM) running a program for sending message functions, and the virtual machine is deployed on a hardware device (e.g., a physical server). A virtual machine refers to a complete computer system with complete hardware system functions simulated by software and running in a completely isolated environment. A virtual machine can be configured as a network device. For example, a network device can be implemented based on a general physical server in combination with Network Function Virtualization (NFV) technology. The network device is a virtual host, a virtual router, or a virtual switch. Those skilled in the art can virtualize a network device with the above functions on a general physical server in combination with NFV technology by reading this application. I will not go into details here.

[0208] For example, the virtualized device may be a container, which is an entity for providing an isolated virtualized environment, for example, the container may be a docker container. The container may be configured as a network device. For example, a network device may be created through a corresponding image, for example, two container instances may be created for the proxy-container through an image of a proxy-container (a container providing proxy services), namely, container instance proxy-container1 and container instance proxy-container2, and the container instance proxy-container1 is provided as a network device or a computing device, and the container instance proxy-container2 is provided as a network device or a computing device. When implemented using container technology, the network device may run using the kernel of a physical machine, and multiple network devices may share the operating system of a physical machine. Different network devices may be isolated through container technology. Containerized network devices may run in a virtualized environment, for example, in a virtual machine, and containerized network devices may also run directly in a physical machine.

[0209] For example, a virtualized device can be a Pod, which is the basic unit for Kubernetes (Kubernetes is a container orchestration engine open sourced by Google, referred to as K8s in English) to deploy, manage, and orchestrate containerized applications. A Pod can include one or more containers. Each container in the same Pod is usually deployed on the same host, so each container in the same Pod can communicate through the host and can share the storage resources and network resources of the host. A Pod can be configured as a network device. For example, specifically, a container as a service (full name in English: container as a service, referred to in English: CaaS, is a container-based PaaS service) can be instructed to create a Pod and provide the Pod as a network device.

[0210] Of course, the network device can also be other virtualized devices, which are not listed here one by one.

[0211] In some possible embodiments, the above-mentioned device may also be implemented by a general-purpose processor. For example, the general-purpose processor may be in the form of a chip. Specifically, the general-purpose processor that implements the network device includes a processing circuit and an input interface and an output interface that are internally connected and communicated with the processing circuit. The processing circuit is used to perform the message generation step in the above-mentioned various method embodiments through the input interface, the processing circuit is used to perform the receiving step in the above-mentioned various method embodiments through the input interface, and the processing circuit is used to perform the sending step in the above-mentioned various method embodiments through the output interface. Optionally, the general-purpose processor may also include a storage medium, and the processing circuit is used to perform the storage step in the above-mentioned various method embodiments through the storage medium. The storage medium may store instructions executed by the processing circuit, and the processing circuit is used to execute the instructions stored in the storage medium to execute the above-mentioned various method embodiments.

[0212] The present application embodiment provides a computer program product, when the computer program product is run on a network device, so that the network device performs the above method embodiment. Figure 2 , Figure 3 or Figure 4 The method shown.

[0213] The network devices in the above-mentioned various product forms respectively have any functions of the network devices in the above-mentioned method embodiments, which will not be described in detail here.

[0214] Those of ordinary skill in the art will appreciate that the various method steps and units described in the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in the above description according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those of ordinary skill in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0215] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0216] In several embodiments provided in the present application, the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the unit is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, or it can be an electrical, mechanical or other form of connection.

[0217] The unit described as a separate component may or may not be physically separated, and the component displayed as a unit may or may not be a physical unit, that is, it may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the embodiment of the present application.

[0218] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0219] If the integrated unit 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. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or 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 a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program code.

[0220] The above description is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

[0221] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. When the computer program instructions are loaded and executed on a computer, the process or function in accordance with the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer program instructions can be transmitted from a website site, a computer, a server or a data center to another website site, a computer, a server or a data center by wired or wireless means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or a data center that includes one or more available media integration. The available medium can be a magnetic medium (such as a floppy disk, a hard disk, a tape), an optical medium (for example, a digital video disc (digitalvideo disc, DVD), or a semiconductor medium (such as a solid state drive), etc.

[0222] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0223] The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.

Claims

1. A message forwarding method, It is characterized in that Applied to business chain networks, including: The network device obtains a first data packet, where the first data packet includes a first service segment identifier service SID, where the first service SID is used to indicate a first target service function; The network device determines a first service function segment identifier SF SID according to the first service SID, where the first SF SID includes an identifier of a first service function device for executing the first target service function; The network device sends the first data packet to the first service function device according to the first SF SID.

2. The method according to claim 1, It is characterized in that Before the network device sends the first data message, the method further includes: The network device updates the first data packet, where the first data packet includes a first segment identifier list, and the first segment identifier list includes the first SF SID.

3. The message forwarding method according to claim 1 or 2, It is characterized in that The network device obtains a first data message, including: The network device receives a second data message; The network device determines a second segment identifier list according to the second data message and a message classification rule, the first data message satisfies the message classification rule, and the second segment identifier list corresponds to the message classification rule; The network device generates the first data packet according to the second data packet, where the first data packet includes the second segment identifier list, where the second segment identifier list includes the first service SID and the second service SID, where the second service SID is adjacent to the first service SID, and where the second service SID is used to enable the network device to execute the step of determining the first SF SID according to the first service SID.

4. The message forwarding method according to claim 3, It is characterized in that The network device determines a first SF SID according to the first service SID, including: The network device obtains a first relationship corresponding to the first service SID, where the first relationship includes multiple SF SIDs and an indicator parameter corresponding to each SF SID in the multiple SF SIDs, and the multiple SF SIDs include the first SF SID; The network device determines the first SF SID according to the indicator requirement corresponding to the second segment identifier list and the first relationship.

5. The message forwarding method according to claim 4, It is characterized in that The network device obtains a first relationship corresponding to the first service SID, including: The network device receives a first internal gateway protocol IGP message, where the first IGP message includes the first service SID and the first relationship; or, The network device receives a second IGP message and a third IGP message, where the second IGP message includes the first service SID, the first SF SID, and a first indicator parameter corresponding to the first SF SID, the third IGP message includes the first service SID, a fourth SF SID, and a fourth indicator parameter corresponding to the fourth SF SID, and the network device generates the first relationship according to the second IGP message and the third IGP message.

6. The message forwarding method according to claim 3, It is characterized in that The network device determines a second segment identifier list according to the second data message and a message classification rule, including: The network device receives the message classification rule sent by the centralized orchestrator, where the message classification rule includes an association between a data message feature and the second segment identifier list; The network device determines the second segment identifier list by matching the data packet feature according to the packet feature of the second data packet.

7. The message forwarding method according to claim 1, It is characterized in that The network device obtains a first data message, including: The network device receives the first data packet, where the first data packet includes a second service SID, where the second service SID is the SID of the network device, and the second service SID is adjacent to the first service SID. The network device determines the first SF SID corresponding to the first service SID according to an indication of the second service SID.

8. A message forwarding method, It is characterized in that Applied to business chain networks, including: The network device receives a first notification message, where the first notification message includes a first service segment identifier service SID, a first service function segment identifier SF SID, and a first indicator parameter corresponding to the first SF SID, where the first serviceSID is used to indicate a first target service function, and the first SF SID includes an identifier of a first service function device used to execute the first target service function; The network device generates a first relationship according to the first service SID, the first SF SID and the first indicator parameter, wherein the first relationship is used to enable the network device to determine the first SF SID according to the indicator requirement corresponding to the segment identifier list and the first indicator parameter, wherein the segment identifier list includes the first service SID, and the segment identifier list corresponds to a message classification rule.

9. The message forwarding method according to claim 8, It is characterized in that The first relationship also includes a second SF SID corresponding to the first service SID, and a second indicator parameter corresponding to the second SF SID, the second SF SID including an identifier of a second business function device for executing the first target business function, and the first indicator parameter is different from the second indicator parameter.

10. The message forwarding method according to claim 8 or 9, It is characterized in that The notification message is an IGP message, and the first notification message includes an intermediate system to intermediate system ISIS routing protocol or an open shortest path first OSPF routing protocol.

11. A message forwarding method, It is characterized in that Applied to business chain networks, including: The network device generates a first notification message, where the first notification message includes a first service segment identifier service SID, a first service function segment identifier SF SID, and a first indicator parameter corresponding to the first SF SID, where the first service SID is used to indicate a first target service function, and the first SF SID includes an identifier of a first service function device used to execute the first target service function; The network device sends the first notification message.

12. The method according to claim 11, It is characterized in that The first notification message also includes a second SF SID and a second indicator parameter corresponding to the second SF SID, the second SF SID includes an identifier of a second service function device used to execute the first target service function, and the first indicator parameter is different from the second indicator parameter.

13. The message forwarding method according to claim 11 or 12, It is characterized in that The first notification message includes a first SF SID TLV, and the first SF SID TLV includes the first SF SID and the first indicator parameter.

14. A network device, It is characterized in that include: processor, memory, and communication interface, The processor is configured to execute instructions stored in the memory, so that the network device executes the method according to any one of claims 1 to 7.

15. A network device, It is characterized in that include: processor, memory, and communication interface, The processor is configured to execute instructions stored in the memory, so that the network device executes the method according to any one of claims 8 to 10.

16. A network device, It is characterized in that include: processor, memory, and communication interface, The processor is configured to execute instructions stored in the memory, so that the network device executes the method according to any one of claims 11 to 13.

Citation Information

Patent Citations

  • Service function chain message packaging method and device and computer readable storage medium

    CN109962847A

  • Data forwarding method and related device

    CN111510387A