A SFC path changing method based on SRV6
Dynamically adjusting the SRv6 SFC path through END-SL SID and END-CD SID, the problem of resource waste and service quality decline caused by path static in the existing technology is solved, and flexible path management and resource optimization are achieved.
Patent Information
- Application Number
- CN202411334617.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-24
- Publication Date
- 2025-09-02
- Estimated Expiration
- 2044-09-24
AI Technical Summary
The existing combination of SRv6 and SFC lacks flexibility and cannot dynamically adjust service paths according to real-time network status or business needs, resulting in unbalanced resource utilization and degraded service quality.
Introduce END-SL SID and END-CD SID, dynamically adjust the SFC path of the service function chain through the processing results of the service function node SF, including adding or deleting service function nodes, and updating the information in the Segment Routing Header (SRH).
The service function chain dynamically adjusts the path according to real-time conditions, improves the flexibility of the network and resource utilization efficiency, and ensures the best performance in different scenarios.
Smart Images

Figure CN119155244B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technology, and in particular to an SRV6-based SFC path changing method. Background Art
[0002] To ensure security and stability, network data packets typically need to pass through multiple service nodes, such as firewalls, intrusion prevention systems, application accelerators, and network address translation, in accordance with predetermined business logic. SRv6 Service Function Chaining (SFC) embeds SRv6 path information in the original packet, ensuring that the packet passes through these service nodes in sequence according to the predetermined path, effectively meeting these business requirements.
[0003] The combination of SRv6 and SFC provides a flexible and efficient approach for implementing network service function chains. By mapping service function nodes to SRv6 Segment Identifiers (SIDs), network operators can flexibly define and dynamically adjust service paths. This approach not only simplifies network management but also significantly reduces the protocol overhead associated with traditional service chaining deployments.
[0004] Currently, the combination of SRv6 and SFC usually adopts static service chain configuration, that is, when a data packet enters the network, the service function node path it passes through has been pre-defined. Figure 1 Figure 2 shows an SRv6 SFC example for a service chain static proxy. After receiving an original IPv4 packet from the user network, the source node (SC) directs the traffic into the SRv6 TE policy. The SC encapsulates the packet according to the SRv6 TE policy. The destination address of the IPv6 packet is the End.AS SID of the SFF node. The Segment Routing Header (SRH) contains the path information of the SRv6 TE policy and the End.DT4 SID of the egress node. When the SFF node receives the packet, it searches its local SID table to find that the destination address is the local End.AS SID and records the current Segment Left (SL) value. The SFF node then performs the operations corresponding to the End.AS SID, decapsulates the packet, removes the IPv6 header, and sends the original packet through the configured outbound interface to the service function (SF) node for processing. After processing, the SF node returns the packet to the SFF node.
[0005] The SFF node searches the configuration based on the packet's inbound interface and VLAN information and re-encapsulates the SRv6 packet according to the SID list. In the encapsulated packet, the SID list in the SRH remains consistent with the SRv6 TE policy path on the source node SC, and the SL value is decremented by 1. The SRv6 packet's destination address is updated to the SID next to the local End.AS SID, namely, Device C's End. The SFF node then searches its IPv6 routing table based on the packet's destination IPv6 address and forwards the packet. After receiving the packet, Device C searches its local SID table and finds that the destination address is the local End. It then processes the packet according to the SRv6 forwarding process. After processing, the destination address is replaced with D1 (the egress node's End.SID), and the SL value is decremented by 1. Device C then searches its IPv6 routing table and continues forwarding the packet. After receiving the packet, the egress node searches its local SID table and finds that the destination address D1 is a local SID. It replaces it with D2 (the egress node's End.DT4 SID) and sets the SL value to 0. The egress node performs the operation corresponding to the End.DT4 SID, decapsulates the SRv6 packet, and forwards the original packet to the corresponding VPN or public network.
[0006] SRv6-based SFC has two proxy modes: service chain static proxy and service chain pseudo proxy. Both modes are based on a series of SID paths determined by the SC head node. This approach lacks flexibility and cannot dynamically adjust service paths based on real-time network status, traffic load, or specific service requirements. This static nature limits the network's ability to handle complex and changing traffic, potentially leading to uneven resource utilization and degraded service quality.
[0007] In existing service function chains (SFs), SC service classification nodes select paths based on predefined rules and lack the ability to dynamically respond to real-time conditions or processing results. This limitation can lead to unnecessary path delays or resource waste when faced with varying service scenarios or processing requirements. For example, if a SF node fails or requires additional processing, the packet's path cannot be dynamically adjusted, reducing the overall efficiency of the service chain.
[0008] like Figure 2 As shown in the figure, if a new service node (labeled "new SF") needs to be added to the service function chain, the existing path configuration must be manually modified or the entire service function chain must be reconfigured. This not only increases configuration complexity but can also lead to misconfiguration or service interruption. Furthermore, packets are restricted to a fixed path through a designated service function node. This fixed path selection cannot be dynamically adjusted based on real-time network conditions (such as traffic and latency), potentially causing some paths to become overloaded and others to become idle. Summary of the Invention
[0009] The purpose of the present invention is to overcome the above problems or at least partially solve the above problems, and to propose an SFC path changing method based on SRV6.
[0010] To achieve the above object, the present invention provides the following technical solution: a method for changing an SFC path based on SRV6, characterized by comprising the following steps:
[0011] S1, the service function node SF processes the data packet and returns it to the service function forwarder SFF;
[0012] S2 and SFF determine whether the service function chain SFC path needs to be adjusted based on the processing results of SF;
[0013] S3. If the path needs to be adjusted, the SFF performs path adjustment operations, including adding or deleting service function nodes;
[0014] S4 and SFF update the information in the Segment Routing Header (SRH), including the Segment List (SID list) and Segments Left (SL) values;
[0015] S5 and SFF forward the data packet to the next node in the new path based on the updated SRH information.
[0016] In a preferred embodiment, the path adjustment operation includes at least one of the following:
[0017] Adding a service function node: The SFF adds the SID corresponding to the new service function node to the Segment List and updates the SRH information;
[0018] Delete service function node: SFF deletes the SID corresponding to the specified service function node from the Segment List and updates the SRH information.
[0019] In a preferred embodiment, the path adjustment operation is triggered by one of the following two new SID actions or a combination thereof:
[0020] END-SL SID: used to select whether to add a new service function node to the existing path based on the processing result of the service function node SF.
[0021] END-CD SID: Used to dynamically select the next SFC path and modify the SRH based on the processing result of the service function node SF.
[0022] In a preferred embodiment, the actions of the END-SL SID include:
[0023] Check conditions: SFF checks the processing results of the SF node and decides whether to add a new service function node based on the matching conditions;
[0024] Path adjustment: If the conditions for adding a new service function node are met, the SFF adds the SID corresponding to the new service function node to the Segment List and updates the SRH information. If the conditions for not adding a new service function node are met, the SFF does not make any path adjustment and the data packet continues to be forwarded according to the original Segment List.
[0025] Forwarding operation: Based on the updated Segment List, the SFF selects the appropriate outbound interface and sends the data packet to the new service forwarding node.
[0026] In a preferred embodiment, the actions of the END-CD SID include:
[0027] Check conditions: The SFF checks the processing results of the SF node and decides whether to adjust the path based on the matching conditions. The conditions include:
[0028] Condition 1: The processing result of SF meets the predefined conditions for continuing the original path;
[0029] Condition 2: The processing result of SF meets the predefined conditions for adding a new service function node;
[0030] Condition 3: The processing result of SF meets the predefined condition for deleting the next service function node in the current path;
[0031] Path adjustment:
[0032] If condition 1 is met, continue with the original path without modifying the SRH;
[0033] If condition 2 is met, the SFF adds the SID corresponding to the new service function node to the Segment List and updates the SRH information;
[0034] If condition three is met, the SFF deletes the SID corresponding to the specified service function node from the Segment List and updates the SRH information;
[0035] Forwarding operation: Based on the updated Segment List and SRH information, the SFF searches the local SID table, selects the appropriate outbound interface, and sends the data packet to the next node in the updated path.
[0036] In a preferred embodiment, the path adjustment operation further includes dynamically obtaining path instructions: the SFF obtains new path instructions through a network controller or local calculation, and adjusts the Segment List according to the instructions.
[0037] Compared with the existing technology, the present invention has the following beneficial effects: the service function chain can dynamically adjust the path and nodes according to the processing results of the service function node on the datagram, so as to better respond to changing business needs and significantly improve the flexibility and adaptability of the network; through intelligent path selection and node management, resource utilization can be optimized and resource waste can be avoided; dynamic adjustment of paths and service function nodes ensures that the network can always maintain optimal performance in different scenarios. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] Figure 1 This is an instance of the SRv6 SFC service chain static proxy mode.
[0039] Figure 2 Add new service node instances to the SRv6 SFC service chain;
[0040] Figure 3 This is a schematic diagram of the application of END-SL SID and END-CD SID in the service chain static proxy mode of the present invention;
[0041] Figure 4 This is a schematic diagram of the combination of END-SL SID and END-CD SID of the present invention;
[0042] Figure 5 This is the END-SL SID flow chart of the present invention;
[0043] Figure 6 This is the END-CD SID flow chart of the present invention;
[0044] Figure 7 This is a specific example of the combined use of END-SL SID and END-CD SID of the present invention;
[0045] Figure 8 for Figure 7 Instance continuation diagram of . DETAILED DESCRIPTION
[0046] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0047] See also Figure 3-Figure 8 ,The present invention provides two new SID designs and actions, ,which enrich the SFC processing methods in different scenarios, ,so as to improve the scalability and flexibility of SFC.
[0048] 1. END-SL SID
[0049] definition:
[0050] SID name: END-SELECT SID;
[0051] Function: Based on the processing result of the service function node SF, choose whether to add a new SF as a normal or conditional node.
[0052] action:
[0053] Check conditions: After the message passes through the application service function node SF to the forwarding node SFF, the SFF checks the processing result of the SF node and follows the original path or adds a node based on the matching conditions 1 / 2.
[0054] Path adjustment:
[0055] If condition 1 is met: the original path is continued without modifying the SRH header. The original SRH header, SL-1, is added and the packet is forwarded based on the outbound interface associated with the END.SL SID.
[0056] Condition 2 is met: The SFF adds the SID of the new SF node to the Segment List, adds the modified SRH, leaves the SL value unchanged, and searches the local SID table for the new node SID outbound interface for forwarding.
[0057] The following steps are involved:
[0058] Step S1: When the service function node SF processes the data packet and returns it to the application forwarding node SFF, the SFF starts to process the returned message;
[0059] Step S2: SFF first analyzes the message returned from SF and determines whether it is necessary to add a new service function node to the existing service function chain based on the processing result of SF;
[0060] Step S3: If a new node needs to be added: the process continues and goes to the next step; if a new node does not need to be added: the data packet is directly sent to the predetermined next node according to the forwarding operation of the local SID table and the END-SL SID binding interface;
[0061] Step S4: SFF checks whether a new path instruction has been obtained from the network controller or through local calculation;
[0062] Step S5: Obtain a new service function node SID through the network controller or local calculation, add the newly calculated service function node SID to the Segment List, and change the SRH information, such as Segments Left (SL). Note: Here, the END-SL SID node performs a function similar to that of the SC, that is, adding a new SRH.
[0063] Step S6: Based on the updated Segment List, the SFF selects a suitable outbound interface and sends the data packet to the new service forwarding node.
[0064] 2. END-CD SID
[0065] definition:
[0066] SID name: END.CONDITION SID;
[0067] Function: Dynamically select the next SFC path based on the processing result of the service function node SF and modify the SRH.
[0068] action:
[0069] Check conditions: After the packet passes from the application service function node SF to the forwarding node SFF, the SFF checks the processing result of the SF node and takes subsequent actions based on the matching conditions 1 / 2 / 3 (which can be placed in the Option TLV).
[0070] Path adjustment:
[0071] If condition 1 is met: continue the original path, do not modify the SRH, add the original SRH header, SL-1, and forward according to the outbound interface associated with END.CDSID;
[0072] If condition 2 is met: the SFF adds the SIDs of the new SF nodes to the Segment List, adds the modified SRH, changes the SL value based on the number of added nodes, and searches the local SID table for the new SID outbound interface for forwarding;
[0073] If condition 3 is met: the SFF deletes the SID corresponding to the node SL=[x-1] (that is, deletes the original next SFF), adds the modified SRH, SL-1, and searches for the outbound interface for forwarding based on the local SID table.
[0074] The following steps are involved:
[0075] Step S1: When the service function node SF processes the data packet and returns it to the service function forwarder SFF, the SFF takes different actions according to the processing result of SF;
[0076] Step S21: If the SF processing result meets condition 1, the SFF does not need to modify the current path, so the data packet will continue to be forwarded according to the original segment list;
[0077] Step S22: The SFF sends the data packet to the next service function node through the outbound interface associated with the END-CD SID;
[0078] Step S31: If the SF processing result meets condition 2, the SFF will add a new service function node SF;
[0079] Step S32: SFF adds the SID of the new SF node to the existing SegmentList according to pre-configuration or active calculation. Note: END-CD SID may add more than one service function node SF, which is different from END-SL SID;
[0080] Step S33: After adding the new SF node, the SFF updates the basic information in the SRH to ensure that the data packet can be correctly forwarded according to the new Segment List;
[0081] Step S34: Based on the updated Segment List and SRH information, the SFF searches the local SID table, selects the appropriate outbound interface, and sends the data packet to the newly added service function node;
[0082] Step S41: If the SF processing result meets condition 3, the SFF deletes the next service function node in the current path and deletes the corresponding SID (SL=[x-1] node) in the Segment List to simplify the path;
[0083] Step S42: After deleting the SID, the SFF updates the SL and other information in the SRH to ensure that the data packet continues to be transmitted according to the modified Segment List;
[0084] Step S5: The SFF searches the local SID table based on the new Segment List and SRH, selects a suitable outbound interface, and sends the data packet to the next node in the updated path.
[0085] The following are explanations of the operating procedures and actions of END-SL SID and END-CD SID respectively: To highlight the role of the two new SIDs, the listed examples are all performed in the service chain static proxy mode, that is, SF cannot identify SRv6 messages; without loss of generality, it is assumed that both END-SL SID and END-CD SID can realize the function of END.AS SID, that is, 1. Before the message is sent from the forwarding node SFF to the application service function node SF, the SFF first decapsulates the message and then forwards the message according to the outbound interface associated with the End.AS SID; 2. After the message is sent from the application service function node SF to the forwarding node SFF, the SFF re-encapsulates the message according to the inbound interface of the message or the End.AS SID associated with the inbound interface and VLAN and its configuration.
[0086] To more clearly distinguish the difference between the two in the service function node result processing impact path, such as Figure 3 and Figure 4 As shown in the figure, the application scenarios and functional differences of the two are respectively demonstrated. The combination of the two can be applied to more complex scenarios. END-SLSID emphasizes the selection function, emphasizing the addition of an SF node to process the business flow, which is suitable for simple scenarios. END-CD SID emphasizes the conditional function, emphasizing different processing according to different conditions, and can realize the functions of adding multiple SF nodes and deleting path nodes, which is suitable for complex scenarios. Figure 4 The combined use of the two is demonstrated for more complex scenarios. By adding a conditional point CD.SID to SL.SID, it is equivalent to implementing the process of going to a new node for result processing to determine the subsequent path. By combining the two, the business processing logic in most complex scenarios can be solved, effectively improving the flexibility of SFC.
[0087] END-SL SID is mainly used to decide whether to add a new service function node to the existing service chain based on the processing results of the service function node SF. For example, if the processing result of a certain SF node indicates that further security inspection or traffic analysis is required, the corresponding new node can be added through END-SL SID. It highlights a selection function, emphasizing the addition of new nodes without changing the existing path to adapt to specific business needs. END-CD SID is used for more complex conditional judgment and path adjustment. It dynamically determines the next path of SFC according to different conditions (such as business traffic characteristics, security policies, etc.), and can perform operations such as adding and deleting service function nodes. For example, if a certain SF node fails to process or needs to reselect the path based on the real-time network status, END-CD SID can flexibly adjust the Segment List, delete useless nodes or add new nodes. This method can realize multi-conditional path adjustment in complex scenarios, which is a more conditional and flexible operation.
[0088] The difference between the two SIDs lies in the triggering conditions and methods for handling path adjustment: END-SL SID focuses more on selection operations, while END-CD SID emphasizes flexible handling of conditional judgments. By combining the two, selection can be used in simple scenarios, while conditional judgments can be used in complex scenarios. This allows for more flexible and diverse path adjustment strategies, thereby improving network service quality and resource utilization efficiency.
[0089] Example 1: Combination of END-SL SID and END-CD SID
[0090] The original initial path of the SFC in this embodiment is as follows: Figure 7 As shown in (D2, D1, C, B, A), the SFC constructed by the source node SC is taken as an example to illustrate the solution of the present invention.
[0091] like Figure 7 As shown, after the source node SC constructs the initial path, the source node A performs the following operations:
[0092] 1) Source node A encapsulates the SRv6 path information in the SRH, specifies the SID of the BC, C-D1 link, and also encapsulates SID D2 published by point D (this SID corresponds to an IPv4 VPN at node E). For a total of four SIDs, they are pushed into the SID sequence in reverse order. At this time, SL (Segment Left) = 3. The segment list value is copied to the destination address DA field, and the IPv6 routing table is searched according to the longest match principle to forward it to node B.
[0093] After receiving the SRv6 message from node A, node B performs the following operations:
[0094] 1) After receiving the packet, SFF1 searches the Local SID table and finds that the destination address is the local End.SL SID. It then decapsulates the packet, removes the IPv6 header, and sends the original packet to SF1 through the configured outbound interface for processing.
[0095] 2) After SF1 processes the message, it sends it back to SFF1.
[0096] 3) Based on SF1's processing results, SFF1 first determines whether to add a node. If not, SFF1 maintains the current Segment List (D2, D1, C, B) and forwards the packet directly to the next designated node, C, using the outbound interface bound to the End.SL SID.
[0097] 4) If the processing results require the addition of a new service function node (for example, if additional traffic analysis or security checks are required under specific conditions), SFF1 inserts service forwarding node E into the Segment List. The new Segment List becomes (D2, D1, C, E, B), and the Segments Left field is updated to 3. SFF1 then searches the local SID table to determine the next hop to which the packet should be forwarded. It then selects the appropriate outbound interface based on the updated Segment List for forwarding.
[0098] After receiving the SRv6 message from node B, node E performs the following operations:
[0099] 1) After receiving the message, SFF3 searches the Local SID table and finds that the destination address is the local End.SL SID. It then decapsulates the message, removes the IPv6 header, and sends the original message to SF3 through the configured outbound interface for processing.
[0100] 2) After SF3 processes the message, it sends it back to SFF3.
[0101] 3) Based on the processing result of SF3, if condition 1 is met, SFF3 determines that the current path does not need to be modified (for example, all business functions can be completed), and keeps the Segment List (D2, D1, C, E, B) unchanged and continues to forward the data packet.
[0102] 4) If condition 2 is met, a new service function node (such as F, G, or H) needs to be added. SFF3 updates the SegmentList to include the new node. The updated Segment List might become (D2, D1, C, H, G, F, E, B), and the Segments Left field is adjusted accordingly.
[0103] 5) If condition 3 is met, the next node in the original path, DA=SL[x-1] (for example, C), needs to be deleted. SFF3 removes these nodes from the Segment List and updates the Segment List to (D2, D1, E, B) and SegmentsLeft=1 to ensure that the data packet can be transmitted along the modified path.
[0104] After receiving the SRv6 message from node E, node C performs the following operations:
[0105] 1) After receiving the message, SFF2 searches the Local SID table and finds that the destination address is the local End.AS SID. It then decapsulates the message, removes the IPv6 header, and sends the original message to SF2 through the configured outbound interface for processing.
[0106] 2) After SF2 processes the message, it sends it back to SFF2.
[0107] 3) After the message is sent from the application service node SF2 to the forwarding node SFF2, SFF2 re-encapsulates the message based on the associated End.AS SID and its configuration, and forwards the message based on the destination IPv6 address of the message by searching the IPv6 routing table.
[0108] After receiving the SRv6 message from node C, node D performs the following operations:
[0109] 1) After receiving the packet, the egress node searches the Local SID table and finds that destination address D1 is a local SID. It then replaces the destination address with D2 (the egress node's End.DT4 SID), and SL-1 becomes 0. The egress node executes the instructions corresponding to the End.DT4 SID, decapsulating the SRv6 packet and forwarding the original packet to the corresponding VPN or public network.
[0110] While embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that various changes, modifications, substitutions, and variations may be made to these embodiments without departing from the principles and spirit of the invention, and that the scope of the invention is defined by the appended claims and their equivalents.
Claims
1. A SFC path changing method based on SRV6, characterized in that: The following steps are involved: S1, the service function node SF processes the data packet and returns it to the service function forwarder SFF; S2 and SFF determine whether the service function chain SFC path needs to be adjusted based on the processing results of SF; S3. If the path needs to be adjusted, the SFF performs path adjustment operations, including adding or deleting service function nodes; S4 and SFF update the information in the Segment Routing Header (SRH), including the Segment List (SID list) and Segments Left (SL) values; S5 and SFF forward the data packet to the next node in the new path based on the updated SRH information; The path adjustment operation is triggered by one or a combination of the following two new SID actions: END-SL SID: used to select whether to add a new service function node to the existing path based on the processing result of the service function node SF; END-CD SID: Used to dynamically select the next SFC path and modify the SRH based on the processing result of the service function node SF.
2. The SFC path changing method based on SRV6 according to claim 1, characterized in that: The path adjustment operation includes at least one of the following: Adding a service function node: The SFF adds the SID corresponding to the new service function node to the Segment List and updates the SRH information; Delete service function node: SFF deletes the SID corresponding to the specified service function node from the Segment List and updates the SRH information.
3. The SFC path changing method based on SRV6 according to claim 1, characterized in that: The actions of the END-SLSID include: Check conditions: SFF checks the processing results of the SF node and decides whether to add a new service function node based on the matching conditions; Path adjustment: If the conditions for adding a new service function node are met, the SFF adds the SID corresponding to the new service function node to the Segment List and updates the SRH information. If the conditions for not adding a new service function node are met, the SFF does not make any path adjustment and the data packet continues to be forwarded according to the original Segment List. Forwarding operation: Based on the updated Segment List, the SFF selects the appropriate outbound interface and sends the data packet to the new service forwarding node.
4. The SFC path changing method based on SRV6 according to claim 1, characterized in that: The actions of the END-CDSID include: Check conditions: The SFF checks the processing results of the SF node and decides whether to adjust the path based on the matching conditions. The conditions include: Condition 1: The processing result of SF meets the predefined conditions for continuing the original path; Condition 2: The processing result of SF meets the predefined conditions for adding a new service function node; Condition 3: The processing result of SF meets the predefined condition for deleting the next service function node in the current path; Path adjustment: If condition 1 is met, continue with the original path without modifying the SRH; If condition 2 is met, the SFF adds the SID corresponding to the new service function node to the Segment List and updates the SRH information; If condition three is met, the SFF deletes the SID corresponding to the specified service function node from the Segment List and updates the SRH information; Forwarding operation: Based on the updated Segment List and SRH information, the SFF searches the local SID table, selects the appropriate outbound interface, and sends the data packet to the next node in the updated path.
5. The SFC path changing method based on SRV6 according to claim 1, characterized in that: The path adjustment operation further includes dynamically obtaining path instructions: the SFF obtains new path instructions through a network controller or local calculation, and adjusts the Segment List according to the instructions.
Citation Information
Patent Citations
Service function chain load balancing method, device and system
CN106034087A
System and method for security service collaboration
CN109417556A