WO2024001701A1 - 数据处理方法、装置及系统 - Google Patents

数据处理方法、装置及系统 Download PDF

Info

Publication number
WO2024001701A1
WO2024001701A1 PCT/CN2023/098698 CN2023098698W WO2024001701A1 WO 2024001701 A1 WO2024001701 A1 WO 2024001701A1 CN 2023098698 W CN2023098698 W CN 2023098698W WO 2024001701 A1 WO2024001701 A1 WO 2024001701A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
node
segment
sff
list
Prior art date
Application number
PCT/CN2023/098698
Other languages
English (en)
French (fr)
Inventor
路君
曾毅
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2024001701A1 publication Critical patent/WO2024001701A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines

Definitions

  • the present application relates to the field of communications, and in particular, to a data processing method, device and system.
  • SFC Service Function Chaining
  • SC service classifier
  • SFF service function forwarder
  • SF service function
  • the SC node is used to classify the traffic of the packets entering the SFC domain and encapsulate the network service header (network service header, NSH).
  • NSH network service header
  • the SFF node communicates with the SF node and is used to forward messages according to the network service header.
  • the SF node is used to provide value-added service functions and to process business functions on received messages.
  • SRv6 technology is combined with SFC technology.
  • SFF1 and SFF2 use dynamic proxy to implement SF nodes.
  • SFF1 and SFF2 use dynamic proxy to implement SF nodes.
  • SFF1 and SFF2 use dynamic proxy to implement SF nodes.
  • Embodiments of the present application provide a data processing method, device and system, which can solve the problem of the SFF node being unable to encapsulate messages sent by the SF node according to the SRv6 protocol in the scenario where the SF node is dual-homed and connected to the SFF node, thereby improving the efficiency of message transmission. reliability.
  • a data processing method is provided, which is executed by a first SFF node.
  • the first SFF node is connected to a second SFF node.
  • the first SFF node and the second SFF node are respectively connected to an SF node.
  • the method includes: first The SFF node obtains the first segment identifier (Segment Identifier, SID) and the first segment list (Segment List).
  • SID Segment Identifier
  • Segment List the first segment list
  • the first segment identifier is used to instruct the first SFF node to synchronize the list with the second SFF node, so that the first SFF node
  • the SFF node sends the first segment list to realize synchronization of the segment lists of the second SFF node and the first SFF node.
  • the second SFF node needs to forward the message processed by the SF node, and the first SFF node strips off the SRH of the first message, causing the second SFF node to be unable to learn the SRH of the first message, because the first SFF node
  • the node sends the first segment list to the second SFF node to synchronize the segment list of the second SFF node with the first SFF node.
  • the second SFF node encapsulates the SRH for the message processed by the SF node according to the first segment list, based on
  • the SRv6 protocol forwards packets received from SF nodes. This avoids message transmission failure, ensures the stability of the link between the second SFF node and the SF node, and improves the reliability of message transmission.
  • the SF node double Home to the first SFF node and the second SFF node.
  • the first SFF node and the second SFF node send the same message to the SF node based on the received first message.
  • the first SFF node and the second SFF node also sends the same message to the next hop node based on the received message processed by the SF node.
  • the SF node can process the message received from the first SFF node and then send it to the second SFF node for processing.
  • the message received from the second SFF node may also be processed by the service function and then sent to the first SFF node for forwarding.
  • the first segment identifier is set in the local SID table (local SID table, also called the local segment identifier list) of the first SFF node and the second SFF node.
  • the first segment identifier can be an anycast segment identifier ( Anycast-SID), the first SFF node and the second SFF node publish the same address, so that the first SFF node and the second SFF node perceived by the SF node are the same device, so that the first SFF node and the second SFF node can communicate with each other. Packets sent by SF nodes are load-balanced.
  • the first segment identifier and the first segment list may be obtained from the first message.
  • the first message is sent by the service classification SC node to the first SFF node, or the first message is sent by the leaf spine node to the first SFF node.
  • the first message is an SRv6 message including SRH, and the first message includes the first segment identifier and the first segment list.
  • the first segment identifier and the first segment list are set in the SRH of the message header of the first message.
  • the first segment list is the segment list included in the SRH of the first message.
  • the first segment identifier is the segment identifier indicated by the segment left (SL) field in the SRH of the first message.
  • the segment remaining field is used to indicate the number of intermediate nodes that the message needs to visit before reaching the destination node.
  • the payload of the first message contains the first segment identifier and the first segment list.
  • the first SFF node can read the first segment list and the first segment identifier from the payload of the first message. .
  • the first segment identifier may also be the destination address (destination address, DA) in the IPv6 header of the first message.
  • This solution does not limit the format of the first segment identifier and the first segment list in the message, which improves the flexibility of data processing.
  • the first segment identifier may also be used to instruct the first SFF node to save the first segment list.
  • the first segment identifier indicates the first SFF node that when the first segment identifier contained in the first message hits the local segment identifier and the first segment identifier is not saved in the cache of the first SFF node, Send the first segment list to the second SFF node.
  • the first SFF node will not send the first segment list to the second SFF node every time it receives a message containing the first segment list, which reduces the need for Waste of communication resources between the first SFF node and the second SFF node.
  • the first message may be a message received by the first SFF node from a previous hop node, and the previous hop node may be an SFF node or SC node in the SFC.
  • the first message is a message generated by the SC node in the SFC based on the service message sent by the terminal.
  • the first message contains a message header and a payload.
  • the message header contains the SRH and the payload contains the service message.
  • the first SFF node After receiving the first message, the first SFF node can also peel off the SRH of the first message according to the first segment identifier, obtain the third message, and send the third message to the SF node.
  • the first segment identifier is also used to instruct the first SFF node to strip off the SRH of the first message, obtain the third message, and send the third message to the SF node.
  • the first message may be the test message received by the first SFF node from the previous hop node. Test message.
  • This test packet can simulate the forwarding and processing of business packets.
  • the test packet is generated by the SC node in the SFC when creating the SRv6 traffic engineering policy (segment routing ipv6 traffic engineering policy, SRv6TE Policy).
  • the test packet contains a packet header and does not need to carry a payload.
  • the packet header contains SRH, so that the first The SFF node receives the first message and identifies the synchronization list according to the first segment in the SRH of the first message.
  • the first SFF node can synchronize the list with the second SFF node when receiving the first message, ensuring the SRv6 message forwarding capability of the second SFF node during the transmission of the first message.
  • the first SFF node can also synchronize the list with the second node when receiving the test message to avoid the second SFF node receiving the message sent by the SF node before receiving the first segment of the list from the first SFF node. 2.
  • the SFF node cannot encapsulate SRH for the packets sent by the SF node.
  • the first SFF node sends the first segment list to the second SFF node in the form of a message, that is, the first SFF node sends the second message to the second SFF node, and the second message contains the A list.
  • the second message may be a Network Layer Reachability Information (NLRI) message, a redundant user information message or a Network Multisystem Link Aggregation Group (M-LAG) ) message.
  • NLRI Network Layer Reachability Information
  • M-LAG Network Multisystem Link Aggregation Group
  • the second message is a network layer reachability message
  • the second message may include a Route Distinguisher (RD) field, an Ethernet Segment Identifier (ESI) field, and an Ethernet label (Ethernet label).
  • RD Route Distinguisher
  • EI Ethernet Segment Identifier
  • Ethernet label Ethernet label
  • Tag ID tag ID
  • segment list length field segment remaining field
  • first segment list segment list length field
  • the segment list length field is used to indicate the length of the first segment list in the second message.
  • the route discriminator field, Ethernet segment field, and Ethernet label field are common contents in network layer reachability message packets, and will not be described again here.
  • the second message is a network multi-system link aggregation group message.
  • the second message can include a message header and a payload.
  • the message header is a custom message header (Msg Header), and the payload includes the message received by the first SFF node.
  • the first message that arrives, the first message contains SRH, and SRH contains the first segment list.
  • the first SFF node can send the first segment identifier to the second SFF node based on different message formats to synchronize the list, making the data processing method applicable to multiple network transmission protocols and improving the applicability of the data processing method. sex and flexibility.
  • a data processing method is provided, which is executed by a second SFF node.
  • the second SFF node is connected to the first SFF node.
  • the second SFF node and the first SFF node are respectively connected to the SF node.
  • the method includes: second The SFF node receives the first segment list sent by the first SFF node and saves the first segment list to achieve synchronization of the segment lists of the second SFF node and the first SFF node.
  • the second SFF node receives and saves the first segment list from the first SFF node, and the second SFF node synchronizes the list with the first SFF node, so that the second SFF node can provide the data sent by the SF node based on the first segment list.
  • the first packet is encapsulated with SRH, and SRH instructs the packet to be forwarded to the next hop. This prevents the second SFF node from being unable to encapsulate SRH for the packet received from the SF node, resulting in packet transmission failure, and ensures that the second SFF node to SF
  • the stability of the links between nodes improves the reliability of message transmission.
  • the SF node is dual-homed to the first SFF node and the second SFF node.
  • the first SFF node and the second SFF node send the same message to the SF node based on the received first message.
  • the first SFF node and the second SFF node also sends the same message to the next hop node based on the received message processed by the SF node.
  • the SF node can process the message received from the first SFF node and then send it to the second SFF node for processing. Forwarding, the packets received from the second SFF node can also be processed by business functions. After processing, it is sent to the first SFF node for forwarding.
  • the first segment list received by the second SFF node is in the form of a message, that is, the second SFF node receives the first message sent by the first SFF node, and the first message includes the first segment list.
  • the first message may be a network layer reachability message, a redundant user information message or a network multi-system link aggregation group message.
  • the first message is a network layer reachability message message
  • the first message may include a route discriminator, an Ethernet segment field, an Ethernet label field, a segment list length field, a segment remaining field, and a first segment list.
  • the segment list length field is used to indicate the length of the first segment list in the first message.
  • the route discriminator field, Ethernet segment field, and Ethernet label field are common contents in network layer reachability message packets, and will not be described again here.
  • the second SFF node determines the first segment list in the first message according to the segment list length field, and saves the first segment list.
  • the first message is a network multi-system link aggregation group message.
  • the first message may include a message header and a payload.
  • the message header is a custom message header, and the payload includes the second message received by the first SFF node.
  • message, the second message contains SRH, and SRH contains the first segment list.
  • the second SFF node uses the SRv6 function to extract the SRH from the second message and saves the first segment list in the SRH.
  • the second SFF node also saves the segment remaining fields in the first message, so that the second SFF node determines the segment identifier of the next hop node of the first message when performing SRH encapsulation of the first message. .
  • the second SFF node can receive the first segment identifier sent by the first SFF node based on different message formats to synchronize the list, making the data processing method applicable to multiple network transmission protocols and improving the efficiency of the data processing method. Applicability and flexibility.
  • a data processing device in a third aspect, includes data for performing the first aspect or any possible implementation of the first aspect, or the second aspect and any possible implementation of the second aspect. Each module of the processing method.
  • a service function forwarding device configured to perform the first aspect or any possible implementation of the first aspect, or the second aspect and any possible implementation of the second aspect. Data processing method steps.
  • a fifth aspect provides a processor, which when the processor runs in the business function forwarding device of the fourth aspect, causes the business function forwarding device to execute the first aspect or any possible implementation of the first aspect, or the second aspect. aspect and the operation steps of the data processing method in any possible implementation of the second aspect.
  • a system in the sixth aspect, includes the business function forwarding device in the fourth aspect.
  • the business function forwarding device is used to perform the first aspect or any possible implementation of the first aspect, or the second aspect and the second aspect.
  • the operation steps of the data processing method in any possible implementation manner.
  • a computer-readable storage medium including instructions.
  • the instructions When the instructions are run on the computer, the computer is caused to perform the data processing method provided by the above-mentioned first or second aspect.
  • An eighth aspect provides a computer program product.
  • the computer program product When the computer program product is run on the computer, the computer is caused to execute the data processing method provided by the above-mentioned first or second aspect.
  • Figure 1 is a schematic structural diagram of an SRv6 message provided by an embodiment of the present application.
  • Figure 2 is a schematic structural diagram of an SRv6 SID provided by an embodiment of the present application.
  • Figure 3 is a schematic diagram of a system provided by an embodiment of the present application.
  • Figure 4 is a schematic diagram of a data processing method provided by an embodiment of the present application.
  • Figure 5 is a schematic structural diagram of an NLRI provided by an embodiment of the present application.
  • FIG. 6 is a schematic structural diagram of an M-LAG message provided by an embodiment of the present application.
  • FIG. 7 is a schematic diagram of another data processing method provided by an embodiment of the present application.
  • Figure 8 is a schematic structural diagram of a data processing device provided by an embodiment of the present application.
  • Figure 9 is a schematic structural diagram of another data processing device provided by an embodiment of the present application.
  • Figure 10 is a schematic structural diagram of another data processing device provided by an embodiment of the present application.
  • a, b or c can mean: a, b, c, a and b, a and c, b and c, or a and b and c, where a, b and c can be single or multiple.
  • words such as “first” and “second” are used to distinguish the same or similar items with basically the same functions and effects. Those skilled in the art can understand that words such as “first” and “second” do not limit the number and execution order.
  • the "first” in the first message and the "second” in the second message are only used to distinguish different messages.
  • the first, second, etc. descriptions appearing in the embodiments of the present application are only for illustration and to distinguish the description objects, and there is no order. They do not represent special limitations on the number of devices in the embodiments of the present application, and cannot constitute a limitation of the present application. Any limitations of the embodiments.
  • the data processing method provided by the embodiment of the present application can be applied in the scenario of business function chain (also called business chain) in the field of segment routing (SR).
  • SR segment routing
  • SRv6 technology applies SR technology to IPv6 networks, that is, it uses existing IPv6 forwarding technology to implement similar label forwarding of packets by extending the header of IPv6 packets (for example, based on Multi-Protocol Label Switching, MPLS) packet forwarding) processing.
  • MPLS Multi-Protocol Label Switching
  • SR is a tunnel technology based on source routing forwarding mode.
  • SR technology includes the IPv6 data plane, which is called SRv6.
  • SRv6 usually uses SRH to carry the segment list (SID list, also called segment list or SID list).
  • SID list also called segment list or SID list.
  • One or more SIDs are used to indicate the forwarding path of SRv6 messages, and the forwarding path constitutes an SR Tunnel.
  • An SR tunnel refers to a tunnel formed by specifying a segment list by the head node and encapsulating the segment list into a header.
  • a tunnel generally refers to a collection of end-to-end paths between two points. These two points are the starting point and end point of the tunnel. The starting point of the tunnel is the head node, and the end point of the tunnel is the tail node.
  • the SID of SRv6 is encoded using the IPv6 address and encapsulated in SRH.
  • the node that supports SRv6 will query the local SID table according to the destination address in the message.
  • the destination address of the message matches any SID in the local SID table, it is confirmed that the destination address hits the local SID table. , then perform the corresponding operation based on the topology, instruction or service corresponding to the SID.
  • the IPv6 routing and forwarding table is queried based on the destination address, and the packet is forwarded based on the route that the destination address matches in the routing and forwarding table.
  • the node receiving the message may act as a node with different functions in different transmission paths and operate the message differently. Therefore, the node has a local SID table, and different SIDs exist in the local SID table.
  • the local SID table is a table maintained by nodes with SRv6 capabilities.
  • the local SID table has three main functions. First, define a locally generated SID, such as End.X SID. Second, specify the instructions bound to these SIDs. Third, store the forwarding information related to these instructions, such as the outbound interface and next hop.
  • the SRv6 message can be an IPv6 message containing SRH.
  • IPv6 messages include IPv6 headers, extension headers and payloads.
  • SRH is a new extension header added to implement SRv6 based on the IPv6 forwarding plane.
  • SRH contains a segment list, and SRH specifies an IPv6 display path based on the segment list.
  • the head node adds SRH to the IPv6 packet, and the intermediate node can forward the packet according to the display path specified by SRH.
  • an SRv6 message includes an IPv6 header, SRH, and payload.
  • the IPv6 header includes the destination address
  • the SRH includes the segment list, segment remaining fields, and extension header length. Each field is explained in detail below.
  • the segment list can include one or more SIDs, and each SID can be in the form of an IPv6 address, so the segment list can also be understood as an explicit IPv6 address stack.
  • the segment list can be recorded as segment list[n], and the length of segment list[n] is segment length (segment length)*n bits (bit). If the segment length is 128 bits, the length of segment list[n] is 128*n bits. Segment list is in the form of IPv6 address.
  • the segment left (SL) field is used to indicate the number of intermediate nodes visited before reaching the destination node.
  • the SL field can also be called the remaining node field.
  • the value of the SL field can indicate the active SID in the segment list.
  • the length of SL can be 8 bits.
  • the segment list includes 5 SIDs, and the 5 SIDs include SID0, SID1, SID2, SID3, and SID4, and the SL value is 2, which indicates that the packet has not accessed the nodes corresponding to the two SIDs in the segment list, such as SID0 and SID1.
  • the current node in the segment list needs to perform operations on the packet based on SID2, and the packet has visited nodes corresponding to two SIDs in the segment list, such as SID3 and SID4.
  • the extension header length field is used to indicate the length of the SRH header.
  • the length of the SRH header mainly refers to the length of the segment list, for example, the length occupied from segment list[0] to segment list[n].
  • SRH can also contain type length values (Type- Length-Value, TLV) field, next header (Next Header) field, routing type (Routing Type) field, last index (Last Entry) field, flag (Flag) field, label (Tag) field and payload, etc., each For the specific role and format of the fields, please refer to the description of the SRH format in the SRv6 protocol, which will not be described again here.
  • the structure of the SRv6 message is introduced above.
  • the SID is used to indicate the forwarding operation of the SRv6 message during the forwarding process of the SRv6 message.
  • the SRv6 SID is introduced in conjunction with Figure 2.
  • FIG. 2 is a schematic structural diagram of an SRv6 SID provided by an embodiment of the present application.
  • SID includes location (Locator) information and function (Function) information.
  • the format of SID is Locator: Function.
  • the SID can also include parameter (Arguments) information, and the format of the SID is Locator:Function:Arguments.
  • the positioning information in the SRv6 SID is used to enable other nodes in the network to perform routing addressing, find the generating node of the SRv6 SID, and forward the SRv6 message to that node.
  • Functional information is used to instruct the SRv6 SID generating node to perform corresponding functional operations.
  • SFC is a technology that provides ordered services to the application layer. SFC is used to connect business functions on network devices at a logical level to form an orderly service combination.
  • System 300 is an illustration of the architecture of SRv6SFC.
  • the system 300 includes a Software Defined Networking (SDN) controller 301, a terminal 308 and a server 309.
  • SDN controller 301 is used for flow control in the system 300 .
  • the SDN controller 301 establishes the service function path by collecting and calculating paths through the border gateway protocol link state (BGP-LS) or the path computation element communication protocol (PCEP). (service function path, SFP), so that the message sent by the terminal 308 to the server 309 can be transmitted to the server 309 through the service function path in the SFC domain.
  • BGP-LS border gateway protocol link state
  • PCEP path computation element communication protocol
  • the terminal 308 can be a mobile phone terminal, a tablet computer, a laptop, a virtual reality (VR) device, an augmented reality (AR) device, a mixed reality (Mixed Reality, MR) device, or an extended reality (ER) device. ) device, camera or vehicle-mounted terminal, etc., or it can also be an edge device (for example, a box carrying a chip with processing capabilities), etc.
  • the server 309 is used to receive the message sent by the terminal 308 through the SFC domain included in the system 300, perform business function processing on the message, or return the data requested by the terminal 308 to the terminal 308 according to the message, for example, the terminal 308 requests the address allocated by the server 309. wait.
  • the SFC domain includes an SC node 302 , a first SFF node 303 , a second SFF node 304 and an SF node 305 .
  • the terminal 308, SC node 302, first SFF node 303, second SFF node 304 and server 309 are connected in sequence.
  • the SF node can be connected to at least two SFF nodes, and at least two SFF nodes process the packets of the SF node.
  • the SF node 305 uses a dual-homing connection to connect the first SFF node 303 and the second SFF node 304, that is, the SF node 305 connects the first SFF node 303 and the second SFF node 304.
  • Dual-homing of the SF node 305 to the first SFF node 303 and the second SFF node 304 means that the first SFF node 303 and the second SFF node 304 use the same communication parameter configuration (for example: local node IP address, Anycast-SID, etc. ) communicates with the SF node 305 and performs the same operation on the received message.
  • the first SFF node 303 or the second SFF node 304 sends a message to the SF node 305 according to the received message.
  • the 305 processed message sends the same message to the next hop node.
  • the first SFF node 303 can replace the second SFF node 304 to communicate with the SF node 305, and the second SFF node 304 can also replace the first SFF node 303 to communicate with the SF node 305, thereby supporting the first SFF node 303 and the second SFF node 304.
  • the SC node 302 is used to classify the traffic of packets entering the SFC domain. For example, the SC node 302 determines the tunnel identifier corresponding to the five-tuple (source IP address, source port, destination IP address, destination port, and transport layer protocol) contained in the message based on one or more elements.
  • the tunnel identification includes the headend identification and the destination node identification.
  • the SC node 302 determines the SRv6 Policy that matches the tunnel identifier based on the SRv6 Policy including the headend identifier and the destination node identifier and the tunnel identifier.
  • the SRv6 Policy also includes a segment list that corresponds to the candidate paths that should be used to process the above packets.
  • the tunnel identification also includes a color (Color) identification.
  • the SC node 302 can determine the tunnel identifier based on one or more elements in the five-tuple included in the message.
  • the tunnel identifier includes a headend identifier, a destination node (Endpoint) identifier, and a color identifier.
  • the SC node 302 determines the SRv6 Policy that matches the tunnel identifier based on the SRv6 Policy including the headend identifier, the destination node (Endpoint) identifier, and the color identifier, and the tunnel identifier.
  • SRv6 Policy also includes a segment list, which corresponds to candidate paths that meet business requirements. The business requirements can be distinguished by color identification.
  • the first SFF node 303 and the second SFF node 304 are used to forward the received SRv6 message.
  • the first SFF node 303 receives the SRv6 message sent by the SC node 302 and forwards the message to the SF node 305 according to the SRH contained in the SRv6 message.
  • the first SFF node 303 is also configured to send the first segment list to the second SFF node 304 when receiving the SRv6 message from the SC node 302.
  • the second SFF node 304 is also configured to receive the first segment list sent by the first SFF node 303, to SRH encapsulate the message received from the SF node 305, and to send the SRH-encapsulated message to the server 309.
  • the communication between the first SFF node 303, the second SFF node 304 and the SF node 305 can be implemented using SFC Proxy.
  • SFC Proxy includes four types, which are also called four proxy modes.
  • SR proxy includes static proxy, dynamic proxy, masquerading proxy and shared-memory proxy.
  • the static proxy method is implemented based on End.AS SID.
  • End.AS SID is used to identify a SF node in SRv6SFC.
  • the forwarding action corresponding to End.AS SID is: before the message is sent from the SFF node to the SF node, the SFF node first decapsulates the message, and then forwards the message according to the outbound interface associated with the End.AS SID; the message is sent from the SF node to the SFF After the node, the SFF node re-encapsulates the packet based on the End.AS SID associated with the incoming interface of the packet or the Virtual Local Area Network (VLAN) corresponding to the incoming interface and its configuration.
  • VLAN Virtual Local Area Network
  • End.AD SID is used to identify a SF node in SRv6SFC.
  • the forwarding action corresponding to End.AD SID is: before the message is sent from the SFF node to the SF node, the SFF node strips the SRH from the SRv6 message, obtains a message that does not contain SRH, and sends the message that does not contain SRH to the SF node.
  • the SFF node caches SRH; the SFE node receives the message that does not contain SRH, processes the message, and returns the processed message to the SFF node; after the SFF node receives the message that does not contain SRH returned by the SF node, Obtain SRH from the cache, re-encapsulate the processed packet with SRH, restore the packet to SRv6 packet, and then forward the SRv6 packet.
  • the pseudo proxy method is implemented based on End.AM SID. End.AM SID is used to identify an SF node in SRv6SFC.
  • the forwarding action corresponding to the End.AM SID is: before the message is sent from the SFF node to the SF node, the SFF node first changes the destination address of the SRv6 message to the first SID value in the SRH, and then based on the outgoing message associated with the End.AM SID Interface forwarding. After the message is sent from the SF node to the SFF node, SFF sets the destination address of the SRv6 message to SRH.
  • the SID value indicated by SL in the packet is forwarded according to the normal SRv6 packet forwarding process.
  • dynamic proxy is taken as an example.
  • the first SFF node 303 and the second SFF node 304 use the SFC Proxy function to forward the received message to the SF node 305 or forward the message received from the SF node 305.
  • the operation and forwarding of the message received from the SF node 305 is the dynamic agent operation corresponding to the endpoint dynamic agent SID (End.Ad SID, End means endpoint, meaning endpoint; d means dynamic, meaning dynamic).
  • the End.Ad SID configured by the first SFF node 303 and the second SFF node 304 can be Anycast-SID, that is, Anycast End.Ad SID, so that the first SFF node 303 and the second SFF node 304 are forwarding to the SF node. 305 performs the same dynamic proxy operation corresponding to Anycast End.Ad SID when sending a message or receiving a message sent by SF node 305.
  • the dynamic proxy operation corresponding to Anycast End.Ad SID may also include the operation of synchronizing the list. For details of the operation of synchronizing the list, please refer to step 402, which will not be described again here.
  • the SF node 305 is used to perform service function processing on messages.
  • the types of business function processing performed by the SF node 305 on packets may be but not limited to firewall, load balancing, application accelerator, legality interception, network address translation (Network Address Translation, NAT), bandwidth control, virus detection, and cloud storage. , Deep Packet Inspection (DPI), intrusion detection or intrusion prevention, etc.
  • SF nodes are divided into SF (SRv6-aware SF) nodes that are aware of SRv6 encapsulation and SF (SRv6-unaware SF) nodes that are not aware of SRv6 encapsulation.
  • SRv6-aware SF nodes can identify received SRv6 messages and process them.
  • the SF node 305 is an SRv6-unaware SF node as an example.
  • the SF node 305 requires the first SFF node 303 and the second SFF node 304 to use the dynamic proxy function to realize message transmission between the SF node 305 and the SFF node.
  • the SF node 305 is also called value-added service equipment (Value-added Service, VAS).
  • VAS value-added service equipment
  • the SF node 305 processes the message sent by the first SFF node 303 and then sends the processed message to the first SFF node 303 or the second SFF node 304.
  • the SFC domain can also be constructed based on the leaf-spine topology network structure.
  • the SFC domain also includes a spine node 306 and a tail end node 307.
  • the SC node 302 is connected to the first SFF node 303, the second SFF node 304 and the tail end node 307 through the leaf spine node 306 respectively.
  • the tail end node 307 is also connected to the server 309.
  • the leaf spine node 306 and the tail end node 307 belong to the nodes in the leaf spine topology network structure that forward packets and do not process the payload of the packets. The method of the leaf spine node 306 and the tail end node 307 processing the packets will not be discussed here. Repeat.
  • the SC node 302 serves as the access leaf in the leaf-spine topology network structure
  • the first SFF node 303 and the second SFF node 304 serve as the leaf-spine topology network structure.
  • Server Leaf in .
  • the node can be a physical device or a virtual machine.
  • the SC node 302, the first SFF node 303, the second SFF node 304, the leaf spine node 306 and the tail end node 307 can respectively be a physical device or a virtual machine, such as a router, a switch, etc.
  • At least one node is deployed on the same physical device.
  • the physical entity of the SF node 305 may be a physical device or a virtual machine, such as a server, a host, a personal computer, a network device, or a terminal device.
  • this embodiment does not limit the specific structure of the system 300.
  • the embodiment of the present application provides a data processing method.
  • One of the SFF nodes dual-homed to the SF node is connected to When receiving an SRv6 message, it sends the segment list in the SRH of the SRv6 message to the SFF node that is dual-homed to the SF node but has not received the SRv6 message. Compared with the SFF node that has not received the SRv6 message, it does not know the SRH of the SRv6 message and does not have the function of SRH encapsulation of the message processed by the SF node. The message transmission is terminated at the SFF node, causing the message transmission to fail.
  • the data processing method provided by this embodiment enables the SFF node that has not received the SRv6 message to encapsulate SRH for the message processed by the SF node according to the segment list, and continue to transmit the message based on the SRv6 protocol, which improves the reliability of message transmission. .
  • FIG. 4 is a schematic diagram of a data processing method provided by an embodiment of the present application. This method can be applied to SFF nodes in SRv6SFC, such as the first SFF node 303 and the second SFF node 304 in the system 300. The method includes step 401 - Step 403.
  • Step 401 The first SFF node 303 receives the first segment identifier and the first segment list.
  • the first segment identifier and the first segment list may be sent to the first SFF node 303 in the form of a first message.
  • the first message is an SRv6 message sent from the previous hop node of the first SFF node 303.
  • the SRv6 message The message includes message header and payload.
  • the previous hop node of the first SFF node 303 is the leaf spine node 306 .
  • the previous hop node of the first SFF node 303 may also be a network device other than the leaf spine node 306, such as the SC node 302.
  • the message header contains the IPv6 header and SRH.
  • the destination address in the IPv6 header contains the first segment identifier, such as Anycast End.Ad SID, and the SRH contains the first segment list.
  • the ordered segment identifiers contained in the first segment list are used to indicate the transmission path of the first message and the dynamic proxy operation corresponding to the first message at each node.
  • the first segment list uses ordered segment identifiers to indicate the transmission path of the first message: leaf spine node 306—>SF node 305—>leaf spine node 306—>tail end node 307—>server 309.
  • the first segment identifier is used to instruct the first SFF node 303 to perform a synchronization list operation.
  • the operation of synchronizing the list corresponding to the first segment identifier may include: the first SFF node 303 sends the first segment list to the second SFF node 304, so that the second SFF node 304 and the first SFF node 303 synchronize the lists.
  • the first segment list may not be set in the SRH.
  • the payload of the first message includes the first segment list, or a new extension header is added to the header of the first message to carry the first segment. list.
  • the SF node 305 returns the processed message to the first SFF node 303, and the first SFF node 303 needs to have the function of SRH encapsulation of the processed message by the SF node 305. Therefore, the dynamic proxy operation corresponding to the first segment identifier may also include the first SFF node 303 saving the first segment list, so that the first SFF node 303 also has the ability to perform SRH encapsulation based on the first segment list, and can send messages to the SF node 305 messages are forwarded. For example, the first SFF node 303 caches the first segment list into a cache memory for saving the segment list according to the first segment identifier.
  • the segment list cached in the cache memory may be called a cache list. It should be noted that the synchronization list operation in this embodiment may be cache synchronization of the cahce list of the first SFF node 303 and the cahce list of the second SFF node 304.
  • Step 402 The first SFF node 303 sends the first segment list to the second SFF node according to the first segment identifier.
  • the first SFF node 303 queries the local SID table according to the destination address in the IPv6 header of the first message. If the destination address hits the first segment identifier in the local SID table, it performs the dynamic proxy operation corresponding to the first segment identifier.
  • the dynamic proxy The operation includes an operation of synchronizing the list, that is, the first SFF node 303 sends the first segment list to the second SFF node 304 according to the first segment identifier.
  • the first SFF node 303 may send the first segment list to the second SFF node 304 when the first segment identifier is not saved in the cache memory of the first SFF node 303. in the cache of the first SFF node 303
  • the first segment identifier is not saved, which may mean that the cache memory used to save the segment list in the first SFF node 303 is empty, or it may mean that the cache list saved in the cache memory is different from the first segment list. This prevents the first SFF node 303 from sending the first segment list to the second SFF node 304 again when the second SFF node 304 has cached the first segment list, thereby reducing waste of communication resources.
  • the first SFF node 303 sends the first segment list to the second SFF node 304 in the form of a message.
  • the first SFF node 303 generates a second message based on the first segment list, and sends the second message containing the first segment list to the second SFF node 304, so that the second SFF node 304 can obtain the second message from the second message.
  • the first segment of the list encapsulates the SRH for the message sent by the SF node 305.
  • the second message may be an NLRI message, that is, an Update message containing NLRI.
  • a new NLRI type which includes a segment list length field, a segment remaining field, and a first segment list.
  • Segment list length is used to indicate the length of the first segment list.
  • the segment remaining field is used to indicate the current device, that is, the SID that the destination address in the first message received by the first SFF node 303 matches.
  • the SID carried by the SRH may be compressed.
  • the NLRI provided in this embodiment may also include a compressed type (compressed type) field and a compressed segment remaining (compressed left, CL) field, so that the first SFF node 303 can identify the compressed segment identifier.
  • the compression type field is used to indicate the protocol used to compress the SID carried by the SRH (for example, G-SRv6 protocol).
  • the remaining compressed segment field is used to indicate the compressed segment identifier (for example: G-SID (Generalized SID)) that the destination address in the first message received by the current device (for example: the first SFF node 303) hits.
  • NLRI also includes conventional data carried by NLRI such as route discriminator field, Ethernet segment field and Ethernet label field.
  • the Route Distinguisher field is used to indicate the value of the Route Distinguisher (RD) set under the EVPN (Ethernet Virtual Private Network) instance.
  • the Ethernet segment field is used to indicate a unique identifier connected to the opposite end, that is, the second SFF node 304.
  • the Ethernet label field is used to indicate the VLAN ID actually configured by the current device, that is, the first SFF node 303.
  • the route discriminator, Ethernet segment field, segment list length, and segment remaining field length in NLRI can be flexibly adjusted according to the message structure.
  • the Route Discriminator field can contain 8 bytes
  • the Ethernet Segment field can contain 10 bytes
  • the Segment List Length field can contain 1 byte
  • the Segment Remaining field can contain 1 byte
  • the Compression Type field can contain 1 byte
  • the Compressed Segment field can contain 1 byte.
  • the remaining field can contain 2 bytes.
  • the second message may be an M-LAG message.
  • Figure 6 is a schematic structural diagram of an M-LAG message provided by an embodiment of the present application.
  • the M-LAG message in this embodiment includes the first message, and the first message includes the first segment list, so that the second SFF node 304 receives the M-LAG message according to the first segment list containing the first segment list. Get the first segment list of the message.
  • the first message includes a message header and a payload.
  • the message header is a custom message header (Msg Header).
  • the payload includes a type (Type) field, a length (Length) field and a value (Value) field.
  • the value The field contains the M-LAG ID and the first message.
  • type field, length field, value field and M-LAG ID please refer to the instructions in the M-LAG protocol and will not be repeated here.
  • the second message may also be a message encapsulated based on the Redundancy User Information (RUI) protocol.
  • RUI Redundancy User Information
  • the RUI protocol is used to implement user interfaces between devices. To back up user information, the RUI protocol is carried on the Transmission Control Protocol (TCP) and stipulates what user information is transmitted between two devices, the format and number of user information transmitted, etc.
  • TCP Transmission Control Protocol
  • Step 403 The second SFF node 304 saves the first segment list sent by the first SFF node.
  • the second SFF node 304 receives the first segment list from the first SFF node 303 and saves the first segment list.
  • the first segment list is a segment list included in the SRH in the first message received by the first SFF node 303.
  • the first segment list may be sent to the second SFF node 304 in the form of a message.
  • the second message is an NLRI message.
  • the second SFF node 304 determines the position of the first segment list in the second message according to the length of the segment list included in the NLRI of the NLRI message, extracts the first segment list, and adds the first segment list to the second segment list.
  • the segment list and remaining fields of the segment are saved to the cache.
  • the second SFF node 304 can use the SRv6 function to strip the SRH from the first message contained in the value field of the M-LAG message, and remove the first SRH in the SRH.
  • the segment list and remaining fields of the segment are saved to cache.
  • the second SFF node 304 saves the first segment list.
  • the second SFF node 304 may save the first segment list in the form of a cache list into the cache memory of the second SFF node 304 for saving the segment list.
  • the second SFF node 304 receives the message sent by the SF node 305.
  • the second SFF node 304 can also prepare the message received from the SF node 305 based on the first segment list and the segment remaining field.
  • the packet is forwarded after being encapsulated with SRH. Please refer to the description in step 714 below for this step, which will not be described again here.
  • the first SFF node 303 sends the segment list of the received SRv6 message to the second SFF node 304.
  • the SFF node 304 enables cache synchronization of the cache memories of the first SFF node 303 and the second SFF node 304 respectively used to save the segment list. Therefore, when the second SFF node 304 receives the message processed by the SF node 305, it can also encapsulate SRH for the message according to the first segment list stored in the cache memory of the second SFF node 304.
  • the SC node 302 may also send a test message containing SRH to the first SFF node 303 when receiving the SRv6 Policy issued by the controller 301, so that the One SFF node 303 sends the segment list in the SRH to the second SFF node 304 to complete list pre-synchronization.
  • the test packet may be a Bidirectional Forwarding Detection (BFD) packet.
  • BFD Bidirectional Forwarding Detection
  • the test packet contains a packet header. The difference between the test packet and the first packet is that the test packet does not need to carry a payload.
  • the message header of the test message contains the SRH determined by the SC node 302 according to the SRv6 Policy.
  • the first SFF node 303 receives the test message, and the destination address of the test message hits the segment identifier in the local SID table of the first SFF node 303.
  • the segment identifier is used to instruct the execution of the synchronization list corresponding to the segment identifier.
  • the synchronization list The operation includes sending the segment list to the second SFF node 304. The synchronization list operation performed by the first SFF node 303 based on the segment identifier will not be described again here.
  • Step 701 SC node 302 sends message A to leaf spine node 306.
  • the SC node 302 receives the SRv6 Policy sent by the controller 301, and before successfully establishing the SR tunnel represented by the segment list contained in the SRv6 Policy according to the bidirectional forwarding detection protocol, it generates message A and sends message A to the leaf spine node 306.
  • SRv6 Policy is used to utilize the source routing mechanism of segment routing to guide the packets to traverse the network by encapsulating segment lists at SC node 302 for packets received by SC node 302.
  • the segment list included by the SC node 302 according to the SRv6 Policy is (6::, 5::, 1::, 3::, 1::).
  • Message A is a test message generated by SC node 302 according to SRv6 Policy.
  • the SFC does not need to be a hop-by-hop strongly constrained path, and the segment list in the SRH of message A may contain the minimum set, that is, it includes the segment identifier 3:: of the SFC Proxy and the segment identifier 5:: of the end node 307. .
  • Step 702 The leaf spine node 306 sends message B to the first SFF node 303.
  • the leaf spine node 306 After receiving the message A, the leaf spine node 306 generates the message B according to the message A, and forwards the message B according to the destination address of the message B.
  • the destination address 1:: of message A hits the segment identifier 1:: in the local SID table of the leaf spine node 306.
  • the segment identifier 1:: is used to instruct the leaf spine node 306 to transfer the remaining fields of the segment contained in the SRH of message A.
  • the destination address in B's IPv6 header to obtain message B.
  • the leaf spine node 306 sends the message B to the first SFF node 303 according to the destination address 3:: of the message B.
  • Step 703 The first SFF node 303 sends the segment list to the second SFF node 304.
  • the destination address 3:: of the message B hits the segment identifier 3:: in the local SID table of the first SFF node 303.
  • the segment identifier 3:: is used to indicate the execution segment identifier.
  • the operation of the synchronization list corresponding to segment identifier 3:: includes: the first SFF node 303 extracts the segment list (6::, 5::, 1::, 3::, 1::) from message B, and forwards it to the
  • the second SFF node 304 sends the segment list.
  • step 402 For the synchronization list operation performed by the first SFF node 303 based on the first segment identifier, reference can be made to step 402, which will not be described again here.
  • the first SFF node 303 encapsulates the segment list and sends the segment list to the second SFF node 304 in the form of a message, for example, encapsulates it into message C, and sends the message C to the second SFF node 304.
  • the message C contains the segments. list.
  • Step 704 The second SFF node 304 receives and saves the segment list.
  • step 403 For the operation of the second SFF node 304 to receive and save the segment list, please refer to step 403, which will not be described again here.
  • the SC node 302 uses message A to trigger the operation of the synchronization list of the first SFF node 303 before sending the first message to the SFC domain based on the service message sent by the terminal 308, it is avoided that the second SFF node 304 receives the SF message.
  • the first segment list has not been saved in the message returned by the node 305.
  • the second SFF node 304 cannot encapsulate the SRH for the message and cannot continue to forward the message based on the SRv6 protocol, resulting in message transmission failure.
  • the destination address of the IPv6 header of the message received by the first SFF node 303 is 3::. If the segment list carried in the message is the same as the segment list stored in the cache memory of the first SFF node 303, the first SFF node 303 does not need to perform the synchronization list operation again.
  • the first SFF node 303 performs the synchronization list operation again.
  • the SC node 302 generates an SRv6 message according to the service message sent by the terminal 308, and sends the SRv6 message to the first SFF node 303.
  • the service packet contains IP layer information such as source IP address and destination IP address.
  • the source IP address is the IP address of the terminal 308, and the destination IP address is the IP address of the server 309.
  • the transmission path of the SRv6 packet is: SC node 302—>leaf Spine node 306—>SF node 305—>leaf spine node 306—>tail node 307—>server 309.
  • the SRv6 message sent by the leaf spine node 306 to the SF node 303 needs to be forwarded by the first SFF node 303 or the second SFF node 304.
  • the first SFF node 303 strips the SRH of the SRv6 message, sends the SRH-stripped message to the SF node 305, and sends the segment list in the SRH to the second SFF node 304.
  • the SF node 305 performs service processing on the SRH-stripped message received from the first SFF node 303, and then sends the processed message to the second SFF node 304.
  • the second SFF node 304 performs SRH encapsulation on the processed message according to the segment list sent by the first SFF node 303, obtains a re-encapsulated SRv6 message, and sends the re-encapsulated SRv6 message to the server 309.
  • Step 705 The terminal 308 sends the service message to the SC node 302.
  • the service message contains a five-tuple, and/or data such as application log files and geospatial service data of the terminal 308.
  • the source IP address in the five-tuple of the service message is the IP address of the terminal 308, and the destination IP address is 6::, which is the IP address of the server 309.
  • Step 706 The SC node 302 determines the SRv6 Policy that the service packet matches.
  • the SC node 302 matches one or more elements in the five-tuple of the service message with the head node identifier and destination node identifier of the SRv6 Policy, and determines the SRv6 Policy that matches the service message.
  • Step 707 The SC node 302 encapsulates the service message according to the SRv6 Policy to obtain message D.
  • the SC node 302 determines the segment list contained in the candidate path matching the service message in the SRv6 Policy based on the color identifier contained in the service message, encapsulates the service message, and obtains message D.
  • Message D is an SRv6 message, including IPv6 header, SRH and payload.
  • Step 708 SC node 302 sends message D to leaf spine node 306.
  • the SC node 302 sends the message D to the leaf-spine node 306 according to the destination address 1:: of the IPv6 header of the message D.
  • Step 709 The leaf spine node 306 sends the message E to the first SFF node 303.
  • the leaf spine node 306 After receiving the message D, the leaf spine node 306 generates the message E according to the message D, and forwards the message E according to the destination address of the message E.
  • the destination address of the message D hits the segment identifier 1:: in the local SID table of the leaf spine node 306.
  • the leaf spine node 306 sends the message E to the first SFF node 303 according to the destination address 3:: of the message E.
  • Step 710 The first SFF node 303 sends the segment list to the second SFF node 304.
  • the first SFF node 303 After receiving the message E, the first SFF node 303 extracts the segment list from the message E and sends the segment list to the second SFF node 304.
  • the first SFF node 303 extracts the segment list from the message E as (6::, 5::, 1::, 3::, 1::).
  • the first SFF node 303 sends the segment list to the second SFF node 304 in the form of a message F, where the message F contains the segment list.
  • the destination address 3:: of message E hits the segment identifier 3:: in the local SID table of the first SFF node 303.
  • the segment identifier 3:: is used to instruct the first SFF node to execute the synchronization list corresponding to segment identifier 3::.
  • Operation, the operation of segment identifier 3::corresponding synchronization list includes sending the segment list to the second SFF node 304.
  • step 402 For the list synchronization operation performed by the first SFF node 303 based on the first segment identifier, reference can be made to step 402, which will not be described again here.
  • Step 711 The second SFF node 304 receives and saves the segment list.
  • step 403 For the operation of the second SFF node 304 to receive and save the segment list, please refer to step 403, which will not be described again here.
  • Step 712 The first SFF node 303 sends the message G to the SF node 305.
  • the first SFF node 303 strips the SRH of the message E to obtain the message G, and sends the message G to the SF node 305.
  • the destination address of the message E hits the segment identifier 3:: in the local SID table of the first SFF node 303.
  • the segment identifier 3:: is also used to instruct the first SFF node 303 to strip the SRH of the message E to obtain the message G, and send it to SF node 305 sends message G and caches the SRH of message E.
  • Step 713 The SF node 305 sends the message H to the second SFF node 304.
  • the SF node 305 After receiving the message G sent by the first SFF node 303, the SF node 305 performs business functions on the message G (for example: firewall, load balancing, application accelerator, legality interception, network address translation, bandwidth control, virus detection, cloud Storage, deep packet inspection, intrusion detection or intrusion prevention) processing, and the processed message H is obtained.
  • the SF node 305 sends the message H to the second SFF node 304.
  • the SF node 305 can implement load sharing of the first SFF node 303 and the second SFF node 304 based on the Interior Gateway Protocol (IGP).
  • the SF node 305 can use the idle computing power of the second SFF node 304.
  • the first SFF node 303 determines to send the message H to the second SFF node 304 .
  • Step 714 The second SFF node 304 sends message I to the leaf spine node 306.
  • the second SFF node 304 After receiving the message H sent by the SF node 305, the second SFF node 304 performs SRH encapsulation on the message H to obtain the message I, and sends the message I to the leaf spine node 306.
  • the same segment identifier 3:: is configured in the local SID tables of the second SFF node 304 and the first SFF node 303.
  • the segment identifier 3:: is also used to instruct the second SFF node 304 to SRH encapsulate the message H to obtain the message. I, and sends the message I to the leaf spine node 306.
  • Step 715 The leaf spine node 306 sends the message J to the tail node 307.
  • the leaf spine node 306 After receiving the message I sent by the second SFF node, the leaf spine node 306 generates the message J according to the message I.
  • the destination address of message J forwards message J.
  • the destination address of the message I hits the segment identifier 1:: in the local SID table of the leaf spine node 306.
  • the segment identifier 1:: is used to instruct the leaf spine node 306 to reduce the value of the segment remaining field contained in the SRH of the message I by one.
  • the leaf spine node 306 sends the message J to the tail node 307 according to the destination address 5:: of the message J.
  • Step 716 The tail-end node 307 sends the message K to the server 309.
  • the tail end node 307 After receiving the message J sent by the leaf spine node 306, the tail end node 307 generates the message K according to the message J, and forwards the message K according to the destination address of the message K.
  • the destination address of message J hits the segment identifier 5:: in the local SID table of the tail end node 307.
  • the segment identifier 5:: is used to instruct the tail end node 307 to decrement the value of the segment remaining fields contained in the SRH of the fifth message.
  • the tail end node 307 sends the message K to the server 309 according to the destination address 6:: of the message K.
  • the manner in which the server 309 processes the message K after receiving the message K is not limited in the embodiment of this application.
  • the server 309 returns the data requested by the terminal 308 to the terminal 308 according to the message K.
  • the computing device includes corresponding hardware structures and/or software modules that perform each function.
  • the units and method steps of each example described in conjunction with the embodiments disclosed in this application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or computer software driving the hardware depends on the specific application scenarios and design constraints of the technical solution.
  • the data processing method provided according to this embodiment is described in detail above with reference to FIGS. 1 to 7 .
  • the data processing device provided according to this embodiment will be described below with reference to FIGS. 8 , 9 and 10 .
  • Figure 8 is a schematic structural diagram of a data processing device provided by an embodiment of the present application.
  • the data processing device can be used to implement the functions of the first SFF node 303 in the above method embodiment, and therefore also has the beneficial effects of the above method embodiment.
  • the data processing device may be the first SFF node 303 as shown in Figure 3, or may be a module (such as a chip) applied to the server.
  • the data processing device 800 includes: an acquisition module 801 and a sending module 802.
  • the acquisition module 801 is used to support the data processing device 800 in acquiring data.
  • the sending module 802 is used to support the data processing device 800 in sending data.
  • the data processing device 800 can also execute programs or instructions stored in the memory to implement the methods and functions involved in any of the above embodiments.
  • the acquisition module 801 may be used to perform, for example, step 401 in Figure 4, and/or other processes for the techniques described herein.
  • the above-described sending module 802 may be used to perform, for example, step 402 in FIG. 4, and/or other processes for the techniques described herein. All relevant content of each step involved in the above method embodiments can be quoted from the functional description of the corresponding functional module, and will not be described again here.
  • the functions of the acquisition module 801 and the sending module 802 can be performed by a transceiver (transmitter/receiver) and/or a communication interface.
  • Figure 9 is a schematic structural diagram of another data processing device provided by an embodiment of the present application.
  • the data processing device can be used to implement the functions of the second SFF node 304 in the above method embodiment, and therefore also has the beneficial effects of the above method embodiment.
  • the data processing device may be the second SFF node 304 as shown in Figure 3, or Can be a module (such as a chip) applied to the server.
  • the data processing device 900 includes: a receiving module 901 and a processing module 902.
  • the receiving module 901 is used to support the data processing device 900 in receiving messages.
  • the processing module 902 is used to control and manage the actions of the data processing device 900 .
  • the processing module 902 can also execute programs or instructions stored in the memory, so that the data processing device 900 implements the methods and functions involved in any of the above embodiments.
  • the receiving module 901 may be configured to perform the step of receiving the first segment list sent in step 402 in FIG. 4, and/or other processes for the technology described herein.
  • the processing module 902 described above may be used to perform, for example, step 403 in FIG. 4, and/or other processes for the techniques described herein. All relevant content of each step involved in the above method embodiments can be quoted from the functional description of the corresponding functional module, and will not be described again here.
  • the function of the receiving module 901 can be performed by a transceiver (transmitter/receiver) and/or a communication interface
  • the function of the processing module 902 can be performed by a processor, wherein the processing module 902 can be
  • the hardware form is embedded in or independent of the processor of the data processing device 900, and can also be stored in the memory of the data processing device 900 in the software form, so that the processor can call and execute the operations corresponding to each of the above functional units.
  • the data processing device 1000 includes a memory 1001, a processor 1002, and a communication interface 1003.
  • the memory 1001 is used to store computer program code, which includes computer instructions.
  • the communication interface 1003 is used to send and receive messages, for example, to perform the function of the acquisition module 801 in the above-mentioned data processing device 800.
  • the processor 1002 executes the computer instructions
  • the data processing device 1000 executes the steps of the first SFF node 303 or the second SFF node 304 in the data processing method shown in FIG. 4 or FIG. 7, and also The functions of the processing module 902 in the above-mentioned data processing device 900 can be performed.
  • Embodiments of the present application also provide a computer-readable storage medium.
  • Computer-executable instructions are stored in the computer-readable storage medium.
  • the device executes the steps shown in Figure 4 or Figure 7 Steps in data processing methods.
  • Embodiments of the present application also provide a computer program product.
  • the computer program product includes computer execution instructions, and the computer execution instructions are stored in a computer-readable storage medium; at least one processor of the device can read the instructions from the computer-readable storage medium.
  • the computer executes the instructions, and at least one processor executes the computer executed instructions to cause the device to implement the steps of executing the first SFF node 303 or the second SFF node 304 in the data processing method shown in FIG. 4 or FIG. 7 .
  • the steps of the method or algorithm described in connection with the disclosure of this application can be implemented in hardware or by a processor executing software instructions.
  • Software instructions can be composed of corresponding software modules.
  • Software modules can be stored in random access memory (Random Access Memory, RAM), flash memory, erasable programmable read-only memory (Erasable Programmable ROM, EPROM), electrically erasable and removable memory. Programming in electrically EPROM, EEPROM, register, hard disk, mobile hard disk, compact disc (CD-ROM) or any other form of storage media well known in the art.
  • An exemplary storage medium is coupled to the processor such that the processor can read information from the storage medium and write information to the storage medium.
  • the storage medium can also be an integral part of the processor.
  • the processor and storage media may be located in an ASIC. Additionally, the ASIC can be located in the core network interface device.
  • the processor and the storage medium can also exist as discrete components in the core network interface device.
  • Computer-readable media includes computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. Storage media can be any available media that can be accessed by a general purpose or special purpose computer.

Abstract

一种数据处理方法、装置及系统,该方法包括:在SF节点双归接入第一SFF节点和第二SFF节点的情况下,第一SFF节点在接收到第一段列表后,根据第一报文中第一段标识指示的列表同步操作向第二SFF节点发送第一段列表,使第二SFF节点能够根据第一段列表对SF节点发送的报文进行SRH封装。由此,第二SFF节点未接收到第一报文也能够根据第一SFF节点发送的第一段列表为SF节点发送的报文封装SRH,从而避免第二SFF节点无法基于SRv6协议转发从SF节点接收的报文所导致的报文传输失败,保证了第二SFF节点至SF节点之间的链路稳定性,提高了报文传输的可靠性。

Description

数据处理方法、装置及系统
本申请要求于2022年06月30日提交国家知识产权局、申请号为202210772718.7、申请名称为“数据处理方法、装置及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及一种数据处理方法、装置及系统。
背景技术
基于互联网协议第六版(internet protocol version 6,IPv6)的段路由(segment routing ipv6,SRv6)是新一代互联网协议(internet protocol,IP)承载协议。业务功能链(Service Function Chaining,SFC)是NFV(Network Function Virtualization,网络功能虚拟化)虚拟网络中对流量(例如报文)按需有序进行业务处理的重要手段。通常,SFC包含业务分类(service classifier,SC)节点、业务功能转发(service function forwarder,SFF)节点、业务功能(service function,SF)节点。SC节点用于对进入SFC域的报文进行流量分类,并封装网络服务报头(network service header,NSH)。SFF节点与SF节点通信,用于根据网络服务报头转发报文。SF节点用于提供增值服务功能,用于对收到的报文进行业务功能的处理。
SRv6技术与SFC技术相结合,当不支持SRv6协议的SF节点与两个SFF节点通信时,比如某一SF节点能够与SFF1和SFF2通信,SFF1和SFF2采用动态代理(dynamic proxy)方式实现SF节点的报文传输,由于SFF1节点剥离SRv6报文中段路由头(segment routing header,SRH),则SFF2节点无法获知SRv6报文的SRH,因此,SFF2节点无法根据SRv6协议封装SF节点发送的报文,导致报文传输失败。
发明内容
本申请实施例提供一种数据处理方法、装置及系统,能够解决SF节点双归连接SFF节点的场景下,SFF节点无法根据SRv6协议封装SF节点发送的报文的问题,从而提高报文传输的可靠性。
第一方面,提供一种数据处理方法,由第一SFF节点执行,第一SFF节点与第二SFF节点连接,第一SFF节点和第二SFF节点分别与SF节点连接,该方法包括:第一SFF节点获取第一段标识(Segment Identifier,SID)和第一段列表(Segment List),第一段标识用于指示第一SFF节点与第二SFF节点同步列表,使第一SFF节点向第二SFF节点发送第一段列表,实现第二SFF节点与第一SFF节点的段列表的同步。
如此,在第二SFF节点需要对SF节点处理后的报文进行转发,第一SFF节点剥离了第一报文的SRH导致第二SFF节点无法获知第一报文的SRH时,由于第一SFF节点向第二SFF节点发送第一段列表,使第二SFF节点与第一SFF节点的段列表同步,则第二SFF节点与根据第一段列表为SF节点处理后的报文封装SRH,基于SRv6协议转发从SF节点接收的报文。从而避免报文传输失败,保证了第二SFF节点至SF节点之间的链路稳定性,提高了报文传输的可靠性。
为了使第一SFF节点和第二SFF节点对SF节点发送的报文进行负载分担,SF节点双 归接入第一SFF节点和第二SFF节点。SF节点双归接入第一SFF节点和第二SFF节点后,第一SFF节点和第二SFF节点根据接收到的第一报文向SF节点发送的报文相同,第一SFF节点和第二SFF节点根据接收到的SF节点处理后的报文向下一跳节点发送的报文也相同,SF节点可以将从第一SFF节点接收的报文进行业务功能处理后发送至第二SFF节点进行转发,也可以将从第二SFF节点接收的报文进行业务功能处理后发送至第一SFF节点进行转发。
可选地,第一SFF节点和第二SFF节点各自的本地SID表(local SID table,也称本地段标识列表)中都设置有第一段标识,第一段标识可以是任播段标识(Anycast-SID),则第一SFF节点和第二SFF节点发布相同的地址,使SF节点感知的第一SFF节点和第二SFF节点为同一设备,从而第一SFF节点和第二SFF节点可以对SF节点发送的报文进行负载分担。
作为一种可能的实现方式,上述第一段标识和第一段列表可以是从第一报文中获取。例如,第一报文是业务分类SC节点发送至第一SFF节点,或第一报文是叶脊节点发送至第一SFF节点。
可选地,第一报文为包含SRH的SRv6报文,第一报文包含第一段标识和第一段列表。
例如,第一段标识和第一段列表设置于第一报文的报文头的SRH中。第一段列表是第一报文的SRH包含的段列表。第一段标识是第一报文的SRH中段剩余(segment left,SL)字段指示的段标识。段剩余字段用于指示报文到达目的节点前要访问的中间节点的数量。
又如,第一报文的载荷包含第一段标识和第一段列表,第一SFF节点获取第一报文后可以从第一报文的载荷中读取第一段列表和第一段标识。
此外,第一段标识还可以是第一报文的IPv6报头中的目的地址(destination address,DA)。
本方案对第一段标识和第一段列表在报文中的格式不作限定,提高了数据处理的灵活性。
作为一种可能的实现方式,第一段标识还可以用于指示第一SFF节点保存第一段列表。
可选地,第一段标识指示第一SFF节点在第一报文包含的第一段标识命中本地段标识,且第一SFF节点的高速缓冲存储器(cache)中未保存第一段标识时,向第二SFF节点发送第一段列表。
由此,在第二SFF节点已经保存第一段列表后,第一SFF节点不会在每次接收到包含第一段列表的报文时向第二SFF节点发送第一段列表,减少了对第一SFF节点和第二SFF节点之间的通信资源的浪费。
作为一种可能的实现方式,第一报文可以是第一SFF节点从上一跳节点接收到的报文,上一跳节点可以是SFC中的SFF节点或SC节点。第一报文是SFC中SC节点根据终端发送的业务报文生成的报文,第一报文包含报文头和载荷,报文头包含SRH,载荷包含业务报文。
第一SFF节点在接收到第一报文后,还可以根据第一段标识剥离第一报文的SRH,得到第三报文,并向SF节点发送第三报文。此处,第一段标识还用于指示第一SFF节点剥离第一报文的SRH,得到第三报文,并向SF节点发送第三报文。
作为另一种可能的实现方式,第一报文可以是第一SFF节点从上一跳节点接收到的测 试报文。该测试报文能够模拟对业务报文的转发和处理。测试报文是SFC中SC节点在创建SRv6流量工程策略(segment routing ipv6traffic engineering policy,SRv6TE Policy)时生成的,测试报文包含报文头,可以不携带载荷,报文头包含SRH,使第一SFF节点接收到第一报文,根据第一报文的SRH中的第一段标识同步列表。
基于上述实现方式,第一SFF节点可以在接收到第一报文时与第二SFF节点同步列表,保证了第一报文的传输过程中第二SFF节点的SRv6报文转发能力。第一SFF节点还可以在接收到测试报文时与第二节点同步列表,避免第二SFF节点在从第一SFF节点接收第一段列表之前接收到SF节点发送的报文,所造成的第二SFF节点无法为SF节点发送的报文封装SRH的问题。
作为一种可能的实现方式,第一SFF节点是以报文形式向第二SFF节点发送第一段列表,即第一SFF节点向第二SFF节点发送第二报文,第二报文包含第一段列表。
可选地,第二报文可以是网络层可达性消息(Network Layer Reachability Information,NLRI)报文、冗余用户信息报文或网络多系统链路聚合组(Multichassis Link Aggregation Group,M-LAG)报文。
例如,第二报文为网络层可达性消息报文,第二报文可以包含路由区分符(Route Distinguisher,RD)字段、以太网段(Ethernet Segment Identifier,ESI)字段、以太网标签(Ethernet Tag ID)字段、段列表长度字段、段剩余字段和第一段列表。段列表长度字段用于指示第二报文中第一段列表的长度。路由区分符字段、以太网段字段和以太网标签字段为网络层可达性消息报文中的常见内容,在此不再赘述。
又如,第二报文为网络多系统链路聚合组报文,第二报文可以包含报文头和载荷,报文头为自定义消息头(Msg Header),载荷包含第一SFF节点接收到的第一报文,第一报文包含SRH,SRH包含第一段列表。
由此,本方案中第一SFF节点可以基于不同的报文格式向第二SFF节点发送第一段标识来同步列表,使数据处理方法适用于多种网络传输协议,提高了数据处理方法的适用性和灵活性。
第二方面,提供一种数据处理方法,由第二SFF节点执行,第二SFF节点与第一SFF节点连接,第二SFF节点和第一SFF节点分别与SF节点连接,该方法包括:第二SFF节点接收第一SFF节点发送的第一段列表,并保存第一段列表,实现第二SFF节点与第一SFF节点的段列表的同步。
基于本方案,第二SFF节点从第一SFF节点接收并保存第一段列表,第二SFF节点与第一SFF节点同步列表,使第二SFF节点可以根据第一段列表为SF节点发送来的第一报文封装SRH,由SRH指示报文转发至下一跳,从而避免第二SFF节点无法为从SF节点接收的报文封装SRH,导致报文传输失败,保证了第二SFF节点至SF节点之间的链路稳定性,提高了报文传输的可靠性。
可选地,SF节点双归接入第一SFF节点和第二SFF节点。SF节点双归接入第一SFF节点和第二SFF节点后,第一SFF节点和第二SFF节点根据接收到的第一报文向SF节点发送的报文相同,第一SFF节点和第二SFF节点根据接收到的SF节点处理后的报文向下一跳节点发送的报文也相同,SF节点可以将从第一SFF节点接收的报文进行业务功能处理后发送至第二SFF节点进行转发,也可以将从第二SFF节点接收的报文进行业务功能处 理后发送至第一SFF节点进行转发。
作为一种可能的实现方式,第二SFF节点接收的第一段列表为报文形式,即第二SFF节点接收第一SFF节点发送的第一报文,第一报文包含第一段列表。
可选地,第一报文可以是网络层可达性消息报文、冗余用户信息报文或网络多系统链路聚合组报文。
例如,第一报文为网络层可达性消息报文,第一报文可以包含路由区分符、以太网段字段、以太网标签字段、段列表长度字段、段剩余字段和第一段列表。段列表长度字段用于指示第一报文中第一段列表的长度。路由区分符字段、以太网段字段和以太网标签字段为网络层可达性消息报文中的常见内容,在此不再赘述。
在第一报文为网络层可达性消息报文的情况下,第二SFF节点根据所述段列表长度字段确定第一报文中的第一段列表,对第一段列表进行保存。
又如,第一报文为网络多系统链路聚合组报文,第一报文可以包含报文头和载荷,报文头为自定义消息头,载荷包含第一SFF节点接收到的第二报文,第二报文包含SRH,SRH包含第一段列表。
在第三报文为网络多系统链路聚合组报文的情况下,第二SFF节点利用SRv6功能从第二报文中提取SRH,保存SRH中的第一段列表。
可选地,第二SFF节点还对第一报文中的段剩余字段进行保存,使第二SFF节点在对第一报文进行SRH封装时确定第一报文的下一跳节点的段标识。
由此,本方案中第二SFF节点可以基于不同的报文格式接收第一SFF节点发送的第一段标识来同步列表,使数据处理方法适用于多种网络传输协议,提高了数据处理方法的适用性和灵活性。
第三方面,提供了一种数据处理装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式,或第二方面以及第二方面任一种可能实现方式中的数据处理方法的各个模块。
第四方面,提供了一种业务功能转发设备,业务功能转发设备用于执行第一方面或第一方面任一种可能实现方式,或第二方面以及第二方面任一种可能实现方式中的数据处理方法的操作步骤。
第五方面,提供了一种处理器,当处理器在第四方面的业务功能转发设备中运行时,使业务功能转发设备执行第一方面或第一方面任一种可能实现方式,或第二方面以及第二方面任一种可能实现方式中的数据处理方法的操作步骤。
第六方面,提供了一种系统,系统包括第四方面中的业务功能转发设备,业务功能转发设备用于执行第一方面或第一方面任一种可能实现方式,或第二方面以及第二方面任一种可能实现方式中的数据处理方法的操作步骤。
第七方面,提供一种计算机可读存储介质,包括指令。当指令在计算机上运行时,使得计算机执行如上述第一方面或第二方面提供的数据处理方法。
第八方面,提供一种计算机程序产品。当计算机程序产品在计算机上运行时,使得计算机执行如上述第一方面或第二方面提供的数据处理方法。
本申请中第三方面、第四方面、第五方面、第六方面、第七方面和第八方面的描述,可以参考第一方面与第二方面的详细描述;并且,第三方面、第四方面、第五方面、第六方面、 第七方面和第八方面的有益效果,可以参考第一方面与第二方面的有益效果分析,此处不再赘述。
附图说明
图1为本申请实施例提供的一种SRv6报文的结构示意图;
图2为本申请实施例提供的一种SRv6 SID的结构示意图;
图3为本申请实施例提供的一种系统的示意图;
图4为本申请实施例提供的一种数据处理方法的示意图;
图5为本申请实施例提供的一种NLRI的结构示意图;
图6为本申请实施例提供的一种M-LAG报文的结构示意图;
图7为本申请实施例提供的另一种数据处理方法的示意图;
图8为本申请实施例提供的一种数据处理装置的结构示意图;
图9为本申请实施例提供的另一种数据处理装置的结构示意图;
图10为本申请实施例提供的又一种数据处理装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或,a和b和c,其中a、b和c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。比如,本申请实施例中第一报文的“第一”和第二报文中的“第二”仅用于区分不同的报文。本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例提供的数据处理方法能够应用在分段路由(Segment Routing,SR)领域中业务功能链(也称业务链)的场景中。下面分别对SRv6技术、SFC技术和SR SFC技术分别进行简单的介绍。
SRv6技术就是将SR技术应用于IPv6网络中,即采用现有的IPv6转发技术,通过扩展IPv6报文的报头,对报文实现类似标签转发(例如基于多协议标签交换(Multi-Protocol Label Switching,MPLS)的报文转发)的处理。
SR是一种基于源路由转发模式的隧道技术。SR技术包括IPv6数据面,这称为SRv6。SRv6通常使用SRH携带段列表(SID list,也称segment list或SID列表)。SID list中的一 个或多个SID用于指示SRv6报文的转发路径,转发路径构成SR隧道(SR Tunnel)。SR隧道是指由头节点指定的段列表,并将段列表封装到报头中形成的隧道。其中,隧道泛指两点之间的端到端路径的集合,这两点分别是隧道的起点和终点,隧道的起点为头节点,隧道的终点为尾节点。
以上对SR技术进行了整体介绍,接下来对SRv6技术如何将SR技术应用于IPv6网络中进行介绍。
SRv6的SID使用IPv6地址编码,并封装在SRH中。在转发报文时,支持SRv6的节点会按照报文中的目的地址,查询本地SID表,当报文的目的地址与本地SID表中的任一SID匹配时,确认目的地址命中了本地SID表,则基于该SID对应的拓扑、指令或服务,执行相应的操作。如果报文的目的地址与本地SID表中的每个SID均不匹配,则根据目的地址查询IPv6的路由转发表,根据目的地址在路由转发表中命中的路由转发报文。接收报文的节点在不同的传输路径中可能作为不同功能的节点,对报文的操作不同,因此,节点具有本地SID表,本地SID表中存在不同的SID。
本地SID表为具有SRv6功能的节点维护的表。本地SID表的功能主要有三个。第一,定义本地生成的SID,例如End.X SID。第二,指定绑定到这些SID的指令。第三,存储和这些指令相关的转发信息,例如出接口和下一跳等。
由于SRv6通常使用SRH携带段列表,SRv6报文可以是包含SRH的IPv6报文。IPv6报文包括IPv6报头、扩展头和载荷,SRH是为了基于IPv6转发平面实现SRv6所新增的一种扩展头。SRH中包含段列表,SRH根据段列表指定一个IPv6的显示路径。头节点在IPv6报文增加SRH,中间节点就可以按照SRH指定的显示路径对报文进行转发。通过这样增加扩展头的方式,SR技术与原有IPv6转发平面相结合。
例如,如图1所示,SRv6报文包括IPv6报头、SRH和载荷,其中,IPv6报头包括目的地址,SRH包括段列表、段剩余字段和扩展头长度。各字段的详细解释如下。
(1)段列表
段列表可以包括一个或多个SID,每个SID可以是IPv6地址的形式,因此段列表也可以理解为一个显式的IPv6地址栈。段列表可以记为segment list[n],segment list[n]长度为段长度(segment length)*n比特(bit)。如果段长度为128bit,则segment list[n]长度为128*n比特。segment list是IPv6地址形式。
(2)剩余段
段剩余(segment left,SL)字段用于指示到达目的节点前访问的中间节点数量。SL字段还可以称为剩余节点字段。SL字段的取值可以指明段列表中的活跃SID。SL的长度可以为8比特。例如,段列表包括5个SID,5个SID包括SID0、SID1、SID2、SID3以及SID4,而SL取值为2,则表明报文未访问段列表中两个SID对应的节点,如SID0以及SID1,段列表中当前节点要根据SID2对报文执行操作,报文已访问段列表中两个SID对应的节点,如SID3以及SID4。
(3)扩展头长度(header Extended Length,Hdr Ext Len)
扩展头长度字段用于指明SRH头的长度。SRH头的长度主要是指段列表的长度,例如是从segment list[0]到segment list[n]所占用长度。
除了上述段列表、段剩余字段和扩展头长度字段,SRH还可以包含类型长度值(Type- Length-Value,TLV)字段、下一个报头(Next Header)字段、路由类型(Routing Type)字段、最后一个索引(Last Entry)字段、标志(Flag)字段、标签(Tag)字段和载荷等,各字段的具体作用及格式请参考SRv6协议中对SRH格式的说明,在此不再赘述。
以上对SRv6报文的结构进行了介绍,SID在SRv6报文在转发过程中用于指示SRv6报文的转发操作,接下来结合图2对SRv6 SID进行介绍。
图2为本申请实施例提供的一种SRv6 SID的结构示意图。SID包括定位(Locator)信息以及功能(Function)信息,SID的格式为Locator:Function。可选地,SID还可以包括参数(Arguments)信息,则SID的格式为Locator:Function:Arguments。SRv6 SID生成以后,一方面会加入节点的本地SID表,另一方面也可以通过路由协议对外发布。实际转发时,SRv6 SID里的定位信息用于使网络里的其他节点进行路由寻址,找到SRv6 SID的生成节点,并将SRv6报文转发到该节点。功能信息用于指示SRv6 SID的生成节点进行相应的功能操作。SRv6中的定位信息和功能信息所包含的具体内容可参考SRv6协议中对SRv6SID的描述,在此不再赘述。
将SRv6技术和SFC技术相结合,能够基于SRv6技术实现业务链报文在SFC域中的处理及转发。SFC是一种给应用层提供有序服务的技术。SFC用于将网络设备上的业务功能在逻辑层面上联接起来,从而形成一个有序的服务组合。
下面结合图3示出的一种系统300,对SRv6SFC技术进行说明。系统300是对SRv6SFC的架构的举例说明。系统300包括软件定义网络(Software Defined Networking,SDN)控制器301、终端308和服务器309。SDN控制器301用于进行系统300中的流量控制。例如,SDN控制器301通过边界网关协议链路状态(border gateway protocol-link state,BGP-LS)或路径计算单元通信协议(path computation element communication protocol,PCEP)收集和计算路径的方式建立业务功能路径(service function path,SFP),使终端308向服务器309发送的报文可经过SFC域中的业务功能路径传输至服务器309。终端308可以是手机终端、平板电脑、笔记本电脑、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、混合现实(Mixed Reality,MR)设备、扩展现实(Extended Reality,ER)设备、摄像头或车载终端等,还可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。服务器309用于通过系统300包括的SFC域接收终端308发送的报文,对报文进行业务功能处理,或根据报文向终端308返回终端308请求的数据,例如终端308请求服务器309分配的地址等。
在图3所示的场景中,SFC域包括SC节点302、第一SFF节点303、第二SFF节点304和SF节点305。终端308、SC节点302、第一SFF节点303、第二SFF节点304以及服务器309依次连接。为了使网络中的SFF节点实现负载分担,SF节点可以连接至少两个SFF节点,至少两个SFF节点处理SF节点的报文。例如,SF节点305采用双归连接方式连接第一SFF节点303和第二SFF节点304,即SF节点305连接第一SFF节点303和第二SFF节点304。
SF节点305双归接入第一SFF节点303和第二SFF节点304,是指第一SFF节点303和第二SFF节点304使用相同的通信参数配置(例如:本节点IP地址、Anycast-SID等)与SF节点305进行通信,针对接收到的报文执行相同的操作。例如,第一SFF节点303或第二SFF节点304根据接收到的报文向SF节点305发送报文,根据接收到的SF节点 305处理后的报文向下一跳节点发送相同报文。第一SFF节点303能够替代第二SFF节点304与SF节点305通信,第二SFF节点304也能够替代第一SFF节点303与SF节点305通信,从而支持第一SFF节点303和第二SFF节点304之间的负载均衡或双归链路保护。
SC节点302用于对进入SFC域的报文进行流量分类。例如,SC节点302根据报文包含的五元组(源IP地址、源端口、目的IP地址、目的端口和传输层协议)中的一个或多个元素确定与其对应的隧道标识。隧道标识包括头节点(Headend)标识和目的节点(Endpoint)标识。SC节点302基于包含头节点(Headend)标识和目的节点(Endpoint)标识的SRv6 Policy以及隧道标识,确定与该隧道标识匹配的SRv6 Policy。SRv6 Policy还包括段列表,该段列表对应用于对上述报文进行处理的候选路径。可选地,隧道标识还包括颜色(Color)标识。则SC节点302可根据报文包括的五元组中的一个或多个元素,确定隧道标识,该隧道标识包含头节点(Headend)标识、目的节点(Endpoint)标识和颜色标识。SC节点302基于包含头节点(Headend)标识、目的节点(Endpoint)标识和颜色标识的SRv6 Policy以及隧道标识,确定与该隧道标识匹配的SRv6 Policy。SRv6 Policy还包括段列表,该段列表对应候选路径满足业务需求,该业务需求可通过颜色标识进行区分,比如低延时需求可用数值为100的颜色标识进行标识。第一SFF节点303和第二SFF节点304用于转发接收到的SRv6报文。例如,第一SFF节点303接收SC节点302发送的SRv6报文,并根据SRv6报文包含的SRH向SF节点305转发报文。第一SFF节点303还用于在从SC节点302接收到SRv6报文时,向第二SFF节点304发送第一段列表。第二SFF节点304还用于接收第一SFF节点303发送的第一段列表,以对从SF节点305接收到的报文进行SRH封装,并向服务器309发送封装SRH后的报文。
作为一种可能的实施方式,第一SFF节点303、第二SFF节点304和SF节点305三者之间的通信可以利用SFC Proxy来实现。SFC Proxy包括四种类型,这四种类型也称四种代理模式。具体地,SR proxy包括静态代理(static proxy)、动态代理(dynamic proxy)、伪代理(masquerading proxy)和共享内存代理(shared-memory proxy)。
静态代理的方式基于End.AS SID实现。End.AS SID用于标识SRv6SFC中的一个SF节点。End.AS SID对应的转发动作是:报文从SFF节点发送到SF节点之前,SFF节点先解封装报文,然后根据End.AS SID关联的出接口转发报文;报文从SF节点到SFF节点之后,SFF节点根据报文的入接口或入接口对应的虚拟局域网(Virtual Local Area Network,VLAN)关联的End.AS SID及其配置,重新封装报文。
动态代理的方式基于End.AD SID实现。End.AD SID用于标识SRv6SFC中的一个SF节点。End.AD SID对应的转发动作是:报文从SFF节点发送到SF节点之前,SFF节点从SRv6报文剥离SRH,得到不包含SRH的报文,将不包含SRH的报文发送给SF节点,且SFF节点缓存SRH;SFE节点接收到不包含SRH的报文,对报文进行处理,将处理后的报文返回给SFF节点;SFF节点接收到SF节点返回的不包含SRH的报文后,从缓存中获取SRH,将处理后的报文重新封装SRH,将报文恢复为SRv6报文,再转发SRv6报文。
伪代理的方式基于End.AM SID实现。End.AM SID用于标识SRv6SFC中的一个SF节点。End.AM SID对应的转发动作是:报文从SFF节点发送到SF节点之前,SFF节点先将SRv6报文的目的地址修改为SRH中第一个SID值,然后根据End.AM SID关联的出接口转发。报文从SF节点发送至SFF节点之后,SFF将SRv6报文的目的地址设置为SRH 中SL指示的SID值,按照正常SRv6报文转发流程进行报文转发。
本实施例中以动态代理为例,第一SFF节点303和第二SFF节点304利用SFC Proxy功能向SF节点305转发接收到的报文或转发从SF节点305接收到的报文,转发接收到的报文的操作和转发从SF节点305接收到的报文是端点动态代理SID(End.Ad SID,End表示endpoint,意为端点;d表示dynamic,意为动态)对应的动态代理操作。
可选地,第一SFF节点303和第二SFF节点304配置的End.Ad SID可以是Anycast-SID,即Anycast End.Ad SID,使第一SFF节点303和第二SFF节点304在向SF节点305发送报文或接收SF节点305发送的报文时执行Anycast End.Ad SID对应的同一动态代理操作。在本实施例中,Anycast End.Ad SID对应的动态代理操作还可以包括同步列表的操作,同步列表的操作具体请参见步骤402,在此不再赘述。
SF节点305对用于对报文进行业务功能处理。例如,SF节点305对报文进行的业务功能处理类型可以而不限于是防火墙、负载均衡、应用加速器、合法性拦截、网络地址转换(Network Address Translation,NAT)、带宽控制、病毒检测、云存储、深度包检测(Deep Packet Inspection,DPI)、入侵检测或者入侵防御等。SF节点分为感知SRv6封装的SF(SRv6-aware SF)节点和不感知SRv6封装的SF(SRv6-unaware SF)节点。SRv6-aware SF节点能够识别收到的SRv6报文并对其进行处理,SRv6-unaware SF节点不识别SRv6报文,收到后将其丢弃。本实施例中以SF节点305是SRv6-unaware SF节点为例,SF节点305需要第一SFF节点303和第二SFF节点304使用动态代理功能来实现SF节点305与SFF节点的报文传输。在SFC领域中,SF节点305也称为增值业务设备(Value-added Service,VAS)。在本实施例中,SF节点305对第一SFF节点303发送的报文进行处理后,将处理后的报文发送给第一SFF节点303或第二SFF节点304。
作为一种可能的实施方式,由于叶脊拓扑网络结构的可扩展性强,且能够提高网络通信效率,SFC域还可以基于叶脊拓扑网络结构来进行构建。例如,SFC域还包括叶脊(Spine)节点306和尾端节点(Tail End)307,SC节点302通过叶脊节点306分别与第一SFF节点303、第二SFF节点304和尾端节点307连接,尾端节点307还与服务器309连接。叶脊节点306和尾端节点307属于叶脊拓扑网络结构进行报文转发的节点,不对报文的载荷进行处理,在此不再对叶脊节点306和尾端节点307处理报文的方式进行赘述。
在SFC域基于叶脊拓扑网络结构来进行构建时,SC节点302作为叶脊拓扑网络结构中的入链子叶(Acess Leaf),第一SFF节点303和第二SFF节点304作为叶脊拓扑网络结构中的服务子叶(Server Leaf)。
需要说明的是,本申请实施例对节点的具体形态不予限定,节点可以是一台物理设备或一个虚拟机。例如,SC节点302、第一SFF节点303、第二SFF节点304、叶脊节点306和尾端节点307可以分别是一台物理设备或一个虚拟机,如路由器、交换机等。至少一个节点部署在同一台物理设备上。另外,SF节点305的物理实体可以是一台物理设备或一个虚拟机,如服务器、主机、个人计算机、网络设备或者终端设备等。
在可能的实现方式中,终端308和SC节点302之间、SC节点302和叶脊节点306之间、叶脊节点306与尾端节点307之间以及尾端节点307与服务器309之间还可以包含一个或多个网络设备,本实施例对系统300的具体结构不作限定。
本申请实施例提供一种数据处理方法,与SF节点双归连接的其中一个SFF节点在接 收到SRv6报文时,向与SF节点双归连接但未接收到SRv6报文的SFF节点发送SRv6报文的SRH中的段列表。相对于未接收到SRv6报文的SFF节点没有获知SRv6报文的SRH,不具备对SF节点处理后的报文进行SRH封装的功能,报文传输在SFF节点终止,导致报文传输失败的方案,本实施例提供的数据处理方法使未接收到SRv6报文的SFF节点能够根据段列表为SF节点处理后的报文封装SRH,基于SRv6协议继续传输报文,提高了报文传输的可靠性。
本申请实施例提供的数据处理方法,可以应用于SRv6SFC中SF节点双归接入两个SFF节点的场景,下述实施例以系统300为例进行示例性说明。图4为本申请实施例提供的一种数据处理方法的示意图,该方法可以应用于SRv6SFC中的SFF节点,例如系统300中的第一SFF节点303和第二SFF节点304,该方法包括步骤401-步骤403。
步骤401、第一SFF节点303接收第一段标识和第一段列表。
第一段标识和第一段列表可以是以第一报文的形式发送至第一SFF节点303,第一报文是第一SFF节点303的上一跳节点发送来的SRv6报文,SRv6报文包括报文头和载荷。第一SFF节点303的上一跳节点是叶脊节点306。在另外的实施例中,第一SFF节点303的上一跳节点还可以是叶脊节点306以外的网络设备,例如SC节点302。
报文头包含IPv6报头和SRH,IPv6报头中的目的地址包含第一段标识,例如Anycast End.Ad SID,SRH中包含第一段列表。第一段列表包含的有序排列的段标识用于指示第一报文的传输路径和第一报文在每个节点对应的动态代理操作。例如,第一段列表利用有序排列的段标识指示了第一报文的传输路径为:叶脊节点306—>SF节点305—>叶脊节点306—>尾端节点307—>服务器309。第一段标识用于指示第一SFF节点303进行同步列表的操作。第一段标识对应的同步列表的操作可以包括:第一SFF节点303向第二SFF节点304发送第一段列表,使第二SFF节点304和第一SFF节点303同步列表。
在另外的实施方式,第一段列表可以不设置于SRH中,例如第一报文的载荷包括第一段列表,或者是在第一报文的报文头添加新的扩展头携带第一段列表。
在一些可能的实施方式中,SF节点305将处理后的报文返回至第一SFF节点303,第一SFF节点303需要具有对SF节点305将处理后的报文进行SRH封装的功能。因此,第一段标识对应的动态代理操作还可以包括第一SFF节点303保存第一段列表,使第一SFF节点303也具有根据第一段列表进行SRH封装的能力,能够对SF节点305发送的报文进行转发。例如,第一SFF节点303根据第一段标识将第一段列表缓存至用于保存段列表的高速缓冲存储器中,高速缓冲存储器中缓存的段列表可以称为cahce list。应说明的是,本实施例中的同步列表的操作可以是对第一SFF节点303的cahce list和第二SFF节点304的cahce list进行缓存同步。
步骤402、第一SFF节点303根据第一段标识向第二SFF节点发送第一段列表。
第一SFF节点303根据第一报文的IPv6报头中的目的地址查询本地SID表,若目的地址命中本地SID表中的第一段标识,执行第一段标识对应的动态代理操作,该动态代理操作包括同步列表的操作,即第一SFF节点303根据第一段标识向第二SFF节点304发送第一段列表。
可选地,第一SFF节点303可以在第一SFF节点303的高速缓冲存储器中未保存第一段标识时,向第二SFF节点304发送第一段列表。第一SFF节点303的高速缓冲存储器中 未保存第一段标识,可以是指第一SFF节点303中用于保存段列表的高速缓冲存储器为空,也可以是指高速缓冲存储器保存的cahce list与第一段列表不同。从而避免第二SFF节点304已缓存第一段列表的情况下,第一SFF节点303再次向第二SFF节点304发送第一段列表,减少通信资源的浪费。
作为一种可能的实施方式,第一SFF节点303以报文的形式向第二SFF节点304发送第一段列表。例如,第一SFF节点303根据第一段列表生成第二报文,向第二SFF节点304发送包含第一段列表的第二报文,使第二SFF节点304能够从第二报文中获取第一段列表,对SF节点305发送来的报文封装SRH。
例如,第二报文可以是NLRI报文,即包含NLRI的Update报文。请参考图5,图5为本申请实施例提供的一种NLRI的结构示意图。本实施例新增了一种NLRI类型,该NLRI包括段列表长度字段、段剩余字段和第一段列表。段列表长度用于指示第一段列表的长度。段剩余字段用于指示当前设备,即第一SFF节点303收到的第一报文中的目的地址命中的SID。
由于SRv6的段标识长度通常为128比特(bit),当段标识层数增多时,报头开销较大,将会影响转发效率,在转发SRv6报文时存在对SRH携带的SID进行压缩的情况。可选地,本实施例提供的NLRI中还可以包含压缩类型(compressed type)字段和压缩段剩余(compressed left,CL)字段,使第一SFF节点303能够识别压缩段标识。压缩类型字段用于指示对SRH携带的SID进行压缩所使用的协议(例如G-SRv6协议)。压缩段剩余字段用于指示当前设备(例如:第一SFF节点303)收到的第一报文中的目的地址命中的压缩段标识(例如:G-SID(Generalized SID))。
应说明的是,NLRI还包括路由区分符字段、以太网段字段和以太网标签字段等NLRI携带的常规数据。路由区分符字段用于指示EVPN(Ethernet Virtual Private Network)实例下设置的路由区分符(Route Distinguisher,RD)的值。以太网段字段用于指示与对端,即第二SFF节点304连接的唯一标识。以太网标签字段用于指示当前设备,即第一SFF节点303实际配置的VLAN ID。
可选地,NLRI中的路由区分符、以太网段字段、段列表长度和段剩余字段的长度可以根据报文结构灵活调整。例如路由区分符字段包含8字节,以太网段字段可以包含10字节,段列表长度字段可以包含1字节,段剩余字段可以包含1字节,压缩类型字段可以包含1字节,压缩段剩余字段可以包含2字节。
又如,第二报文可以是M-LAG报文。请参考图6,图6为本申请实施例提供的一种M-LAG报文的结构示意图。本实施例中的M-LAG报文包含第一报文,第一报文包含第一段列表,以使第二SFF节点304接收到M-LAG报文后根据包含第一段列表的第一报文获取第一段列表。
具体地,第一报文包括报文头和载荷,报文头为自定义消息头(Msg Header),载荷包含类型(Type)字段、长度(Length)字段和取值(Value)字段,取值字段包含M-LAG ID和第一报文。上述自定义消息头(Msg Header)、类型字段、长度字段、取值字段和M-LAG ID可参考M-LAG协议中的说明,在此不再赘述。
本实施例不对第二报文的封装格式进行限定,例如第二报文还可以是基于冗余用户信息(Redundancy User Information,RUI)协议封装的报文。RUI协议用于实现设备间的用 户信息的备份,RUI协议承载在传输控制协议(TCP,Transmission Control Protocol)上,规定了在两台设备之间传送哪些用户信息、传送用户信息的格式和数目等。
步骤403、第二SFF节点304保存第一SFF节点发送的第一段列表。
第二SFF节点304从第一SFF节点303接收第一段列表,并保存第一段列表。
第一段列表是第一SFF节点303接收到的第一报文中SRH包含的段列表。作为一种可能实施方式,第一段列表可以是以报文形式发送至第二SFF节点304。
例如,第二报文为NLRI报文,第二SFF节点304根据NLRI报文的NLRI包含的段列表长度确定第二报文中第一段列表的位置,来提取第一段列表,并将第一段列表和段剩余字段保存至高速缓冲存储器中。
又如,第三报文为M-LAG报文,第二SFF节点304可以利用SRv6功能,从M-LAG报文的取值字段包含的第一报文中剥离SRH,将SRH中的第一段列表和段剩余字段保存至高速缓冲存储器中。
第二SFF节点304保存第一段列表,可以是第二SFF节点304将第一段列表以cache list的形式保存至第二SFF节点304用于保存段列表的高速缓冲存储器中。
可选地,第二SFF节点304在保存第一段列表后,接收到SF节点305发送的报文,第二SFF节点304还可以根据第一段列表和段剩余字段为从SF节点305接收的报文封装SRH后进行转发,此步骤请参考后文步骤714中的描述,在此不再赘述。
本申请实施例提供的数据处理方法,在SF节点305双归接入第一SFF节点303和第二SFF节点304时,第一SFF节点303将接收到的SRv6报文的段列表发送至第二SFF节点304,使第一SFF节点303和第二SFF节点304各自用于保存段列表的高速缓冲存储器实现缓存同步。因此,第二SFF节点304在接收到SF节点305处理后的报文时,也能够根据第二SFF节点304的高速缓冲存储器存储的第一段列表为报文封装SRH。从而避免第二SFF节点304无法基于SRv6协议转发从SF节点305接收的报文导致报文传输失败,保证了第二SFF节点304至SF节点305之间的链路稳定性,提高了报文传输的可靠性。
以上结合图4-图6对应用于第一SFF节点303和第二SFF节点304的数据处理方法进行了说明,接下来对系统300中各个节点在数据处理方法中执行的步骤进行示例性地说明。
SC节点302在向第一SFF节点303发送SRv6报文之前,SC节点302还可以在接收到控制器301下发的SRv6 Policy时,向第一SFF节点303发送包含SRH的测试报文,使第一SFF节点303向第二SFF节点304发送SRH中的段列表,完成列表预同步。测试报文可以是双向转发检测协议(Bidirectional Forwarding Detection,BFD)报文。测试报文包含报文头,测试报文与第一报文的区别在于测试报文可以不携带载荷。测试报文的报文头包含SC节点302根据SRv6 Policy确定的SRH。
第一SFF节点303接收到测试报文,测试报文的目的地址命中第一SFF节点303的本地SID表中的段标识,该段标识用于指示执行段标识对应的同步列表的操作,同步列表的操作包括向第二SFF节点304发送段列表。第一SFF节点303根据段标识执行的同步列表的操作在此不再赘述。
下面以图7中的步骤701-步骤704为例,对列表预同步过程中系统300的各个节点处理报文的具体方式进行说明。
步骤701、SC节点302向叶脊节点306发送报文A。
SC节点302接收到控制器301发送的SRv6 Policy,在根据双向转发检测协议成功建立SRv6 Policy包含的段列表所表示的SR隧道之前,生成报文A,并向叶脊节点306发送报文A。SRv6 Policy用于利用段路由的源路由机制,通过在SC节点302为SC节点302接收到的报文封装段列表来指导报文穿越网络。本实施例中SC节点302根据SRv6 Policy包含的段列表为(6::,5::,1::,3::,1::)。6::是服务器309的段标识,5::是尾端节点307的段标识,3::是SFC Proxy的第一段标识,1::是叶脊节点306的段标识。
报文A是SC节点302根据SRv6 Policy生成的测试报文。报文A的IPv6报头包括IPv6 DA=1::,IPv6 DA=1::表示目的地址为叶脊节点306的段标识1::。报文A的SRH包括SRH(SL=4)(6::,5::,1::,3::,1::),SL=4表示段剩余字段的值为4,段列表是(6::,5::,1::,3::,1::)。6::表示服务器309的段标识,5::表示尾端节点307的段标识,3::表示SFC Proxy的第一段标识,1::表示叶脊节点306的段标识。应说明的是,SFC可以不是逐跳强约束路径,报文A的SRH中的段列表可以包含最小集,即指包含SFC Proxy的段标识3::和尾端节点307的段标识5::。
步骤702、叶脊节点306向第一SFF节点303发送报文B。
叶脊节点306接收到报文A后,根据报文A生成报文B,根据报文B的目的地址转发报文B。报文A的目的地址1::命中叶脊节点306的本地SID表中的段标识1::,段标识1::用于指示叶脊节点306将报文A的SRH包含的段剩余字段的值减一,使SL=3,并根据段列表和段剩余字段(值为3)确定下一跳节点即第一SFF节点303的段标识3::,并将段标识3::作为报文B的IPv6报头中的目的地址,以获得报文B。叶脊节点306根据报文B的目的地址3::向第一SFF节点303发送报文B。
步骤703、第一SFF节点303向第二SFF节点304发送段列表。
第一SFF节点303接收到报文B后,报文B的目的地址3::命中第一SFF节点303的本地SID表中的段标识3::,段标识3::用于指示执行段标识3::对应的同步列表的操作。段标识3::对应的同步列表的操作包括:第一SFF节点303从报文B中提取段列表(6::,5::,1::,3::,1::),向第二SFF节点304发送段列表。第一SFF节点303根据第一段标识执行的同步列表的操作可以参考步骤402,在此不再赘述。
可选地,第一SFF节点303封装段列表以报文的形式向第二SFF节点304发送段列表,例如封装为报文C,向第二SFF节点304发送报文C,报文C包含段列表。
步骤704、第二SFF节点304接收并保存段列表。
第二SFF节点304接收并保存段列表的操作可以参考步骤403,在此不再赘述。
由于SC节点302在根据终端308发送的业务报文向SFC域中发送首个报文之前,利用报文A触发第一SFF节点303的同步列表的操作,避免第二SFF节点304在接收到SF节点305返回的报文时尚未保存第一段列表,第二SFF节点304无法为报文封装SRH,无法继续基于SRv6协议转发报文,所导致的报文传输失败的问题。
第一SFF节点303在根据测试报文与第二SFF节点304完成列表预同步后,第一SFF节点303接收到的报文的IPv6报头的目的地址为3::。若该报文携带的段列表与第一SFF节点303的高速缓冲存储器中保存的段列表相同,第一SFF节点303无需再次执行同步列表的操作。若该报文携带的段列表与第一SFF节点303的高速缓冲存储器中保存的段列表 不相同,例如高速缓冲存储器为空或保存的cahce list与第一SFF节点303接收到的报文携带的段列表不同,第一SFF节点303再次执行同步列表的操作。
SC节点302根据终端308发送的业务报文生成SRv6报文,向第一SFF节点303发送SRv6报文。业务报文包含源IP地址、目的IP地址等IP层信息,源IP地址为终端308的IP地址,目的IP地址为服务器309的IP地址,SRv6报文的传输路径为:SC节点302—>叶脊节点306—>SF节点305—>叶脊节点306—>尾端节点307—>服务器309。
由于第一SFF节点303和第二SFF节点304利用SFC Proxy功能与SF节点305通信,则叶脊节点306发送至SF节点303的SRv6报文需经过第一SFF节点303或第二SFF节点304转发。例如,第一SFF节点303剥离SRv6报文的SRH,将剥离SRH后的报文发送至SF节点305,并向第二SFF节点304发送SRH中的段列表。
SF节点305对从第一SFF节点303接收到的剥离SRH后的报文进行业务处理后,将处理后的报文发送至第二SFF节点304。
第二SFF节点304根据第一SFF节点303发送的段列表为处理后的报文进行SRH封装,得到重新封装的SRv6报文,将重新封装的SRv6报文发送至服务器309。
下面以图7中的步骤705-步骤716为例,对系统300的各个节点在根据业务报文同步列表和报文转发的具体方式进行说明。
步骤705、终端308向SC节点302发送业务报文。
业务报文包含五元组,和/或终端308的应用程序日志文件、地理空间服务数据等数据。业务报文的五元组中的源IP地址为终端308的IP地址,目的IP地址为6::,即服务器309的IP地址。
步骤706、SC节点302确定业务报文匹配的SRv6 Policy。
SC节点302根据业务报文的五元组中的一个或多个元素与SRv6 Policy的头节点标识和目的节点标识进行匹配,确定与业务报文匹配的SRv6 Policy。
步骤707、SC节点302根据SRv6 Policy对业务报文进行封装,得到报文D。
SC节点302根据业务报文包含颜色标识确定SRv6 Policy中与业务报文匹配的候选路径包含的段列表,对业务报文进行封装,得到报文D。报文D是SRv6报文,包含IPv6报头、SRH和载荷。报文D的IPv6报头包括IPv6 DA=1::,IPv6 DA=1::表示目的地址为叶脊节点306的段标识1::。报文D的SRH包括SRH(SL=4)(6::,5::,1::,3::,1::),SL=4表示段剩余字段的值为4,段列表是(6::,5::,1::,3::,1::)。
步骤708、SC节点302向叶脊节点306发送报文D。
SC节点302根据报文D的IPv6报头的目的地址1::向叶脊节点306发送报文D。
步骤709、叶脊节点306向第一SFF节点303发送报文E。
叶脊节点306接收到报文D后,根据报文D生成报文E,根据报文E的目的地址转发报文E。
报文D的目的地址命中叶脊节点306的本地SID表中的段标识1::,段标识1::用于指示叶脊节点306将报文D的SRH包含的剩余段字段的值减一,使SL=3,根据第一段列表和剩余段字段(值为3)确定下一跳节点的段标识为3::,即第一SFF节点303的段标识,并将段标识3::作为报文E的IPv6报头中的目的地址,以获得报文E。叶脊节点306根据报文E的目的地址3::向第一SFF节点303发送报文E。
步骤710、第一SFF节点303向第二SFF节点304发送段列表。
第一SFF节点303接收到报文E后,从报文E中提取段列表,向第二SFF节点304发送段列表。第一SFF节点303从报文E中提取段列表为(6::,5::,1::,3::,1::)。可选地,第一SFF节点303以报文F的形式向第二SFF节点304发送段列表,报文F包含段列表。
报文E的目的地址3::命中第一SFF节点303的本地SID表中的段标识3::,段标识3::用于指示第一SFF节点执行段标识3::对应的同步列表的操作,段标识3::对应的同步列表的操作包括向第二SFF节点304发送段列表。第一SFF节点303根据第一段标识执行的列表同步的操作可以参考步骤402,在此不再赘述。
步骤711、第二SFF节点304接收并保存段列表。
第二SFF节点304接收并保存段列表的操作可以参考步骤403,在此不再赘述。
步骤712、第一SFF节点303向SF节点305发送报文G。
第一SFF节点303接收到报文E后,剥离报文E的SRH以得到报文G,将报文G发送至SF节点305。
报文E的目的地址命中第一SFF节点303的本地SID表中的段标识3::,段标识3::还用于指示第一SFF节点303剥离报文E的SRH得到报文G,向SF节点305发送报文G,并缓存报文E的SRH。
步骤713、SF节点305向第二SFF节点304发送报文H。
SF节点305接收到第一SFF节点303发送的报文G后,对报文G进行业务功能(例如:防火墙、负载均衡、应用加速器、合法性拦截、网络地址转换、带宽控制、病毒检测、云存储、深度包检测、入侵检测或者入侵防御)处理,得到处理后的报文H。SF节点305向第二SFF节点304发送报文H。
可选地,SF节点305可以是基于内部网关协议(Interior Gateway Protocol,IGP)实现第一SFF节点303和第二SFF节点304的负载分担,SF节点305可以在第二SFF节点304的空闲算力高于第一SFF节点303确定向第二SFF节点304发送报文H。
步骤714、第二SFF节点304向叶脊节点306发送报文I。
第二SFF节点304接收到SF节点305发送的报文H后,对报文H进行SRH封装得到报文I,向叶脊节点306发送报文I。
第二SFF节点304和第一SFF节点303的本地SID表中配置有相同的段标识3::,段标识3::还用于指示第二SFF节点304对报文H进行SRH封装得到报文I,并向叶脊节点306发送报文I。
第二SFF节点304根据段标识3::,从cahce中提取段列表(6::,5::,1::,3::,1::)为报文H封装SRH得到报文I,报文I包括IPv6 DA=1::,报文I的SRH包括SRH(SL=2)(6::,5::,1::,3::,1::,根据第一段列表和剩余段字段(值为2)确定下一跳节点的段标识,即叶脊节点306的段标识,并将叶脊节点306的段标识1::作为报文I的IPv6报头中的目的地址,以获得报文I。第二SFF节点304根据报文I的目的地址1::向叶脊节点306发送报文I。
步骤715、叶脊节点306向尾端节点307发送报文J。
叶脊节点306接收到第二SFF节点发送的报文I后,根据报文I生成报文J,根据报 文J的目的地址转发报文J。报文I的目的地址命中叶脊节点306的本地SID表中的段标识1::,段标识1::用于指示叶脊节点306将报文I的SRH包含的段剩余字段的值减一,使SL=1,根据第一段列表和段剩余字段(值为1)确定下一跳节点的段标识为5::,即尾端节点307的段标识,并将尾端节点307的段标识5::作为报文J的IPv6报头中的目的地址,以获得报文J。叶脊节点306根据报文J的目的地址5::向尾端节点307发送报文J。
步骤716、尾端节点307向服务器309发送报文K。
尾端节点307接收到叶脊节点306发送的报文J后,根据报文J生成报文K,根据报文K的目的地址转发报文K。
报文J的目的地址命中尾端节点307的本地SID表中的段标识5::,段标识5::用于指示尾端节点307将第五报文的SRH包含的段剩余字段的值减一,使SL=0,根据第一段列表和段剩余字段(值为0)确定下一跳节点的段标识为6::,即服务器309的段标识,并将服务器309的段标识6::作为报文J的IPv6报头中的目的地址,以获得报文K。尾端节点307根据报文K的目的地址6::向服务器309发送报文K。
应说明的是,服务器309接收到报文K后对报文K的处理方式本申请实施例中不作限定。例如,服务器309根据报文K向终端308返回终端308请求的数据。
可以理解的是,为了实现上述实施例中的功能,计算设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图7,详细描述了根据本实施例所提供的数据处理方法,下面将结合图8、图9和图10,描述根据本实施例所提供的数据处理装置。
图8为本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以用于实现上述方法实施例中第一SFF节点303的功能,因此也具有上述方法实施例所具备的有益效果。在本实施例中,该数据处理装置可以是如图3所示的第一SFF节点303,还可以是应用于服务器的模块(如芯片)。
如图8所示,数据处理装置800包括:获取模块801和发送模块802。示例性地,获取模块801用于支持数据处理装置800获取数据。发送模块802用于支持数据处理装置800发送数据。可选的,若数据处理装置800包括存储单元,则数据处理装置800还可以执行存储在存储器中的程序或指令,以实现上述任一实施例所涉及的方法和功能。
示例性的,获取模块801可以用于执行例如图4中的步骤401,和/或用于本文所描述的技术的其它过程。上述发送模块802可以用于执行例如图4中的步骤402,和/或用于本文所描述的技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
示例性的,在硬件实现上,可以由收发器(发送器/接收器)和/或通信接口执行获取模块801、发送模块802的功能。
图9为本申请实施例提供的另一种数据处理装置的结构示意图。该数据处理装置可以用于实现上述方法实施例中第二SFF节点304的功能,因此也具有上述方法实施例所具备的有益效果。在本实施例中,该数据处理装置可以是如图3所示的第二SFF节点304,还 可以是应用于服务器的模块(如芯片)。
如图9所示,数据处理装置900包括:接收模块901和处理模块902。示例性地,接收模块901用于支持数据处理装置900接收报文。处理模块902用于对数据处理装置900的动作进行控制管理。可选的,若数据处理装置900包括存储单元,则处理模块902还可以执行存储在存储器中的程序或指令,以使得数据处理装置900实现上述任一实施例所涉及的方法和功能。
示例性的,接收模块901可以用于执行接收图4中步骤402发送的第一段列表的步骤,和/或用于本文所描述的技术的其它过程。上述处理模块902可以用于执行例如图4中的步骤403,和/或用于本文所描述的技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
示例性的,在硬件实现上,可以由收发器(发送器/接收器)和/或通信接口执行接收模块901的功能,可以由处理器执行处理模块902的功能,其中,处理模块902可以以硬件形式内嵌于或独立于数据处理装置900的处理器中,也可以以软件形式存储于数据处理装置900的存储器中,以便于处理器调用执行以上各个功能单元对应的操作。
如图10所示,本申请实施例还提供又一种数据处理装置1000,该数据处理装置1000包括存储器1001、处理器1002和通信接口1003。所述存储器1001用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述通信接口1003用于收发报文,例如执行上述数据处理装置800中获取模块801的功能。当所述处理器1002执行所述计算机指令时,所述数据处理装置1000执行如上述图4或图7所示的数据处理方法中的第一SFF节点303或第二SFF节点304的步骤,还可以执行上述数据处理装置900中处理模块902的功能。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的至少一个处理器执行该计算机执行指令时,设备执行图4或图7所示的数据处理方法中的步骤。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施执行图4或图7所示的数据处理方法中的第一SFF节点303或第二SFF节点304的步骤。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存 储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

Claims (23)

  1. 一种数据处理方法,其特征在于,该方法由与业务功能SF节点通信的第一业务功能转发SFF节点执行,所述方法包括:
    获取第一段标识和第一段列表,所述第一段标识用于指示同步列表;
    根据所述第一段标识向与所述SF节点通信的第二SFF节点发送所述第一段列表,所述第一段列表用于封装来自所述SF节点的报文。
  2. 根据权利要求1所述的方法,其特征在于,获取第一段标识和第一段列表包括:
    接收来自业务分类SC节点的第一报文,所述第一报文包括所述第一段标识和所述第一段列表;或者
    接收来自叶脊spine节点的第一报文,所述第一报文包括所述第一段标识和所述第一段列表。
  3. 根据权利要求1或2所述的方法,其特征在于,根据所述第一段标识向与所述SF节点通信的第二SFF发送所述第一段列表,包括:
    根据所述第一段标识向所述第二SFF发送第二报文,所述第二报文包含所述第一段列表。
  4. 根据权利要求3所述的方法,其特征在于,所述第二报文的载荷包含所述第一段列表;或者所述第二报文的载荷包含所述第一报文,所述第一报文包含所述第一段列表。
  5. 根据权利要求1-4中任一项所述的方法,其特征在于,所述第二报文为网络层可达性消息报文、冗余用户信息报文或网络多系统链路聚合组报文。
  6. 根据权利要求1-5中任一项所述方法,其特征在于,所述第一报文包括段路由头SRH,所述SRH包括所述第一段标识和所述第一段列表。
  7. 根据权利要求1-6中任一项所述的方法,其特征在于,所述第一段标识还用于指示保存所述第一段列表,所述方法还包括:
    根据所述第一段标识保存所述第一段列表。
  8. 一种数据处理方法,其特征在于,该方法由与业务功能SF节点通信的第二业务功能转发SFF节点执行,所述方法包括:
    接收与所述SF节点通信的第一SFF节点发送的第一段列表;
    保存所述第一段列表,所述第一段列表用于为来自SF节点的报文封装SRH以指导转发至下一跳。
  9. 根据权利要求8所述的方法,其特征在于,接收与所述SF节点通信的第一SFF节点发送的第一段列表,包括:
    接收所述第一SFF节点发送的第一报文,所述第一报文包含所述第一段列表。
  10. 根据权利要求8或9所述的方法,其特征在于,所述第一报文的载荷包含所述第一段列表,或者所述第一报文包括第二报文,所述第二报文的载荷包含所述第一段列表。
  11. 根据权利要求9或10所述的方法,其特征在于,所述第一报文为网络层可达性消息报文、冗余用户信息报文或网络多系统链路聚合报文。
  12. 一种数据处理装置,其特征在于,所述装置设置于与业务功能SF节点通信的第一业务功能转发SFF节点,所述装置包括:
    获取模块,用于获取第一段标识和第一段列表,所述第一段标识用于指示同步列表;
    发送模块,用于根据所述第一段标识向与所述SF节点通信的第二SFF节点发送所述第一段列表,所述第一段列表用于封装来自所述SF节点的报文。
  13. 根据权利要求12所述的装置,其特征在于,所述获取模块具体用于:
    接收来自业务分类SC节点的第一报文,所述第一报文包括所述第一段标识和所述第一段列表;或者
    接收来自叶脊spine节点的第一报文,所述第一报文包括所述第一段标识和所述第一段列表。
  14. 根据权利要求12或13所述的装置,其特征在于,所述发送模块具体用于:
    根据所述第一段标识向所述第二SFF发送第二报文,所述第二报文包含所述第一段列表。
  15. 根据权利要求14所述的装置,其特征在于,所述第二报文的载荷包含所述第一段列表;或者所述第二报文的载荷包含所述第一报文,所述第一报文包含所述第一段列表。
  16. 根据权利要求12-15中任一项所述的装置,其特征在于,所述第二报文为网络层可达性消息报文、冗余用户信息报文或网络多系统链路聚合组报文。
  17. 根据权利要求12-16中任一项所述的装置,其特征在于,所述第一报文包括段路由头SRH,所述SRH包括所述第一段标识和所述第一段列表。
  18. 根据权利要求12-17中任一项所述的装置,其特征在于,所述装置还包括:
    根据所述第一段标识保存所述第一段列表。
  19. 一种数据处理装置,其特征在于,所述装置设置于与业务功能SF节点通信的第二业务功能转发SFF节点,所述装置包括:
    接收模块,用于接收与所述SF节点通信的第一SFF节点发送的第一段列表;
    处理模块,用于保存所述第一段列表,所述第一段列表用于为来自SF节点的报文封装SRH以指导转发至下一跳。
  20. 根据权利要求19所述的装置,其特征在于,所述接收模块具体用于:接收所述第一SFF节点发送的第一报文,所述第一报文包含所述第一段列表。
  21. 根据权利要求19或20所述的装置,其特征在于,所述第一报文的载荷包含所述第一段列表,或者所述第一报文包括第二报文,所述第二报文的载荷包含所述第一段列表。
  22. 根据权利要求20或21所述的装置,其特征在于,所述第一报文为网络层可达性消息报文、冗余用户信息报文或网络多系统链路聚合报文。
  23. 一种系统,其特征在于,所述系统包括如权利要求12-18中任一项所述的数据处理装置,以及如权利要求19-22中任一项所述的数据处理装置。
PCT/CN2023/098698 2022-06-30 2023-06-06 数据处理方法、装置及系统 WO2024001701A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210772718.7A CN117376233A (zh) 2022-06-30 2022-06-30 数据处理方法、装置及系统
CN202210772718.7 2022-06-30

Publications (1)

Publication Number Publication Date
WO2024001701A1 true WO2024001701A1 (zh) 2024-01-04

Family

ID=89382814

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/098698 WO2024001701A1 (zh) 2022-06-30 2023-06-06 数据处理方法、装置及系统

Country Status (2)

Country Link
CN (1) CN117376233A (zh)
WO (1) WO2024001701A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017016254A1 (zh) * 2015-07-30 2017-02-02 中兴通讯股份有限公司 Ipv6报文封装的处理方法和装置
CN110557329A (zh) * 2018-05-30 2019-12-10 中兴通讯股份有限公司 一种报文转发的方法、装置和节点
CN112787921A (zh) * 2019-11-08 2021-05-11 华为技术有限公司 报文传输方法、代理节点及存储介质
CN112787931A (zh) * 2019-11-06 2021-05-11 华为技术有限公司 报文传输方法、代理节点及存储介质
CN114338498A (zh) * 2021-12-28 2022-04-12 中国电信股份有限公司 基于SRv6的报文处理方法、系统、电子设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017016254A1 (zh) * 2015-07-30 2017-02-02 中兴通讯股份有限公司 Ipv6报文封装的处理方法和装置
CN110557329A (zh) * 2018-05-30 2019-12-10 中兴通讯股份有限公司 一种报文转发的方法、装置和节点
CN112787931A (zh) * 2019-11-06 2021-05-11 华为技术有限公司 报文传输方法、代理节点及存储介质
CN112787921A (zh) * 2019-11-08 2021-05-11 华为技术有限公司 报文传输方法、代理节点及存储介质
CN114338498A (zh) * 2021-12-28 2022-04-12 中国电信股份有限公司 基于SRv6的报文处理方法、系统、电子设备及介质

Also Published As

Publication number Publication date
CN117376233A (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
US10757231B2 (en) Providing network efficiencies in forwarding packets among provider networks and applying segment routing policies
CN109218178B (zh) 一种报文处理方法及网络设备
US20220078114A1 (en) Method and Apparatus for Providing Service for Traffic Flow
CN108574616B (zh) 一种处理路由的方法、设备及系统
WO2021089004A1 (zh) 报文传输方法、代理节点及存储介质
WO2021089052A1 (zh) 报文传输方法、代理节点及存储介质
US10432428B2 (en) Automatic resolution of virtual network instance to VLAN mapping conflicts in dual-homed deployments in a dynamic fabric automation network architecture
US11658847B2 (en) Packet communications providing packet processing efficiencies in a network including using a segment routing and tunnel exchange
US8351352B1 (en) Methods and apparatus for RBridge hop-by-hop compression and frame aggregation
CN108632145B (zh) 一种报文转发方法和叶子节点设备
WO2022001835A1 (zh) 发送报文的方法、装置、网络设备、系统及存储介质
US20220255772A1 (en) Packet sending method, apparatus, and system
CN109936492A (zh) 一种通过隧道传输报文的方法、装置和系统
WO2021093463A1 (zh) 报文转发的方法、第一网络设备以及第一设备组
WO2020182085A1 (zh) 报文的传输方法和设备
WO2022117018A1 (zh) 报文传输的方法和装置
WO2024001701A1 (zh) 数据处理方法、装置及系统
CN114221895A (zh) 传输数据的方法、装置及网络设备
CN113497767A (zh) 传输数据的方法、装置、计算设备及存储介质
WO2023125774A1 (zh) 一种vxlan报文传输方法、网络设备及系统
JP7314219B2 (ja) データ伝送方法、装置、およびネットワークデバイス
WO2023040782A1 (zh) 处理报文的方法、系统、设备和存储介质
WO2022242775A1 (zh) 一种报文处理的方法、系统和网络设备
WO2023029627A1 (zh) 报文转发方法、装置、设备及存储介质
WO2022116615A1 (zh) 报文传输的方法、获取对应关系的方法、装置及系统

Legal Events

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

Ref document number: 23829885

Country of ref document: EP

Kind code of ref document: A1