WO2021135420A1 - 业务链的故障保护方法、装置、设备、系统及存储介质 - Google Patents

业务链的故障保护方法、装置、设备、系统及存储介质 Download PDF

Info

Publication number
WO2021135420A1
WO2021135420A1 PCT/CN2020/116612 CN2020116612W WO2021135420A1 WO 2021135420 A1 WO2021135420 A1 WO 2021135420A1 CN 2020116612 W CN2020116612 W CN 2020116612W WO 2021135420 A1 WO2021135420 A1 WO 2021135420A1
Authority
WO
WIPO (PCT)
Prior art keywords
sid
sff
message
network element
destination address
Prior art date
Application number
PCT/CN2020/116612
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 华为技术有限公司
Priority to EP20910256.5A priority Critical patent/EP4075738A4/en
Publication of WO2021135420A1 publication Critical patent/WO2021135420A1/zh
Priority to US17/810,376 priority patent/US20220337514A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • H04L45/037Routes obligatorily traversing service-related nodes
    • H04L45/0377Routes obligatorily traversing service-related nodes for service chaining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Definitions

  • This application relates to the field of communication technology, and in particular to a method, device, equipment, system and storage medium for failing to protect a business chain.
  • Service chain (English: service function chain, referred to as SFC, also called service function chain) is a technology that provides orderly services for the application layer.
  • the SFC will carry service chain path information in the message, and use the service chain path information to specify the path that the message will pass through, so that the message passes through each device in turn according to the specified path. In this way, the services provided by each device can be connected at a logical level to form an orderly service combination.
  • the architecture of SFC includes flow classifier (English: classifier, abbreviation: CF), service function (English: service function, abbreviation: SF), SFC proxy (English: SFC Proxy), service function forwarder (English: Service function Forwarder, Referred to as: SFF) and other nodes.
  • the SFF is used to forward the message received from the network to several SFs associated with the SFF according to the service chain path information carried in the message.
  • SF is used to receive messages from SFF, perform business function processing on the messages, and return the processed messages to the same SFF.
  • the SFC agent is located between the SFF and several associated SFs that are not aware of the service chain path information. The SFC agent can receive the message from the SFF on behalf of the SF, delete the service chain path information, and forward it to the SF. Physically, SFF and SFC agents are usually integrated on the same device.
  • the service chain path information in the SFC technology is usually implemented based on the segment ID (Segment ID, SID) in the SR technology.
  • SID Segment ID
  • the message will include a segment list.
  • the segment list includes an ordered SID.
  • the SID can indicate the node or link the message will pass through.
  • the sequence of the SID can be used to specify the path sequence of the service chain.
  • each SID in the segment list is in the form of an IPv6 address, and the segment list is based on the segment in the message
  • the routing header (English: segment routing header, SRH for short) is carried;
  • multi-protocol label switching (English: Multi-Protocol Label Switching, for short: MPLS) is used as the forwarding plane of the SR, the segment list is the label stack in MPLS.
  • the SF in the service chain is a device that does not support SR (SR-unaware), that is, the SF itself may not be able to recognize the segment list.
  • SFF can play the function of SFC proxy and perform proxy operations for SF. Specifically, the SFF will delete the segment list from the received message, cache the short list in the cache, and then forward the message that does not contain the segment list to the SF through the link between the SFF and the SF.
  • the SF receives a message, even if the SF is an SR-unaware device, since the message received by the SF does not contain SRH, it can also identify the message and perform service function processing.
  • the embodiments of the present application provide a method, device, equipment, system and storage medium for fault protection of a service chain, which can avoid interruption of service traffic due to a fault and improve the reliability of the service chain.
  • the technical solution is as follows:
  • a fault protection method for a service chain receives a first message, and the destination address of the header of the first message
  • the field includes the proxy segment identifier SID corresponding to the first service function SF network element in the service chain, and the first SFF is the SFF accessed by the first SF network element; if the first SFF and the first SFF are The link between the SF network elements fails, the first SFF updates the destination address field of the first message to obtain a second message, and the destination address field of the second message includes the first slave SID, the first subordinate SID is the local SID of the second SFF in the service chain, the second SFF is another SFF in the protection group other than the first SFF, and the protection group includes the first SFF
  • the second message includes the payload of the first message; the first SFF sends the second message.
  • the secondary SID (slave SID) is introduced to change the destination address field of the message header Update to the secondary SID, so that the message is led to other SFFs connected to the SF network element through the secondary SID, so as to realize the link failure protection between the SFF and the SF network element, and avoid traffic interruption due to single-point link failure , which improves the reliability of the business chain.
  • the type of the first subordinate SID is an endpoint End type.
  • the operation of specifying the next hop and outbound interface when configuring the End.X SID can be avoided, thus Avoid that because End.X SID has the functions of both diversion and designated outgoing interface, it replaces the role of the original proxy SID (proxy SID), resulting in the need to configure a large number of secondary SIDs on the first SFF instead of the globally unique secondary SID situation.
  • the first secondary SID is an End type SID, it avoids subsequent major constraints on backup SID planning.
  • the method further includes: the first SFF replaces the proxy SID in the first message with a backup SID, and the backup SID is used to instruct the second SFF not to replace the first SID.
  • the destination address field of the second message is updated to a second subordinate SID, and the second subordinate SID is a local SID of the first SFF.
  • the backup SID (backup SID) is introduced to include the original message
  • the proxy SID is replaced with the backup SID, so that the message can be directed to other SFFs accessed by the SF network element through the secondary SID (subordinate SID), and it can also be used to instruct other SFFs to forward to the SF network element through the backup SID.
  • the backup SID mechanism can prevent traffic loops caused by double-point failures.
  • the protection group is an anycast group
  • the proxy SIDs issued by different SFFs in the anycast group are anycast SIDs.
  • a fault protection method for a service chain receives a second message, and the destination address field of the message header of the second message includes the first A subordinate SID, where the first subordinate SID is a local SID of the second SFF; the second SFF performs local forwarding processing on the second message according to the first subordinate SID to obtain a third message; The second SFF obtains a fourth message according to the third message, where the fourth message includes the payload of the third message and does not include a segment list; the second SFF sends a message to the service chain The first SF network element of sends the fourth message.
  • the secondary SID (slave SID) is introduced to change the destination address field of the message header Update to the secondary SID, so that the message is led to other SFFs connected to the SF network element through the secondary SID, so as to realize the link failure protection between the SFF and the SF network element, and avoid traffic interruption due to single-point link failure , which improves the reliability of the business chain.
  • the type of the first subordinate SID is an endpoint End type.
  • the operation of specifying the next hop and outbound interface when configuring the End.X SID can be avoided, thus Avoid the situation where End.X SID has the functions of both diversion and designated outgoing interface, replacing the original proxy SID role, resulting in a large number of secondary SIDs being configured on the first SFF instead of the globally unique secondary SID.
  • the first secondary SID is an End-type SID, the subsequent planning of backup SID (backup SID) is prevented from causing major constraints.
  • the destination address field of the header of the third message includes the proxy SID corresponding to the first SF network element, and the second SFF sends the first SF network element to the first SF network element.
  • the destination address field of the header of the third message includes a backup SID
  • the backup SID is used to indicate that the second SFF does not update the destination address field of the second message to the second
  • the subordinate SID, the second subordinate SID is the local SID of the first SFF
  • the second SFF sending the fourth message to the first SF network element includes: the second SFF passes through the The outbound interface corresponding to the backup SID sends the fourth message to the first SF network element.
  • the backup SID (backup SID) is introduced to include the original message
  • the proxy SID is replaced with the backup SID, so that the message can be directed to other SFFs accessed by the SF network element through the secondary SID (subordinate SID), and it can also be used to instruct other SFFs to forward to the SF network element through the backup SID.
  • the backup SID mechanism can prevent traffic loops caused by double-point failures.
  • the type of the second subordinate SID is an End type.
  • the destination address field of the header of the third message includes a backup SID
  • the method further includes: if the outbound interface corresponding to the backup SID fails, the second SFF updates the third message The destination address field of the message to obtain the eighth message, the destination address field of the header of the eighth message includes the flow SID, and the flow SID is the local SID of the third SFF; the second SFF is sent The eighth message.
  • bypass SID drainage SID
  • the bypass SID is introduced to update the destination address field of the message header to the bypass SID, so that the message Through the bypass SID, the text is diverted to other SF network elements, such as the backup SF network element outside the original path or the next SF network element in the original path, so as to protect the service through other network elements and realize the service flow Normal forwarding, avoiding traffic interruption due to a single node failure, and improving the reliability of the business chain.
  • the method further includes: if the outbound interface corresponding to the backup SID fails, and there is no drain SID in the local SID table of the second SFF, the second SFF discards the third packet .
  • a fault protection method for a service chain receives a fifth message, and the destination address of the message header of the fifth message Including the proxy segment identifier SID corresponding to the second SF network element in the service chain, the fourth SFF is the SFF accessed by the second SF; if the second SF network element is in a fault state, the first Four SFFs update the destination address field of the fifth packet to obtain a sixth packet.
  • the destination address in the header of the sixth packet includes a flow SID, and the flow SID is the fifth SFF local
  • the fifth SFF is the SFF accessed by the third SF network element, the third SF network element is another SF network element other than the second SF network element, and the sixth message includes all The payload of the fifth message; the fourth SFF sends the sixth message.
  • bypass SID is introduced to update the destination address field of the message header to the bypass SID (drainage SID), so that the message can be drained through the bypass SID
  • drain SID Drainage SID
  • other SF network elements such as the backup SF network element outside the original path or the next SF network element that is diverted to the original path, so as to protect the service through other network elements, realize the normal forwarding of service traffic, and avoid traffic due to The failure of a single node leads to interruption, which improves the reliability of the business chain.
  • the diversion SID is an End type SID; or, the diversion SID is a proxy SID corresponding to the third SF network element.
  • the method further includes: if the outbound interface corresponding to the proxy SID is in an on state and each virtual machine where the second SF network element is located is unreachable, the fourth SFF detects that the second The SF network element is in a fault state, and the proxy SID is used to instruct to perform a proxy operation for the second SF network element; or, if at least one of the outgoing interface corresponding to the backup SID or the outgoing interface corresponding to the proxy SID has a link Failure, the fourth SFF detects that the second SF network element is in a failure state, and the backup SID is used to indicate that the fourth SFF does not update the destination address field of the second message to a third subordinate SID ,
  • the third subordinate SID is the local SID of the fifth SFF
  • the fifth SFF is the SFF other than the fourth SFF in the protection group
  • the protection group includes the SFF accessed by the second SF network element Multiple SFFs.
  • the third subordinate SID is an End type SID.
  • the third SF network element is a backup SF network element of the second SF network element; or, the third SF network element is the next one of the second SF network element in the service chain SF network element.
  • a failure protection method for a service chain receives a sixth message, and the destination address of the message header of the sixth message
  • the field includes the drainage SID, the drainage SID is the local SID of the fifth SFF, the fifth SFF is the SFF accessed by the third service function SF network element; the fifth SFF obtains the seventh according to the sixth message Message, the seventh message includes the payload of the sixth message and does not include the segment list; the fifth SFF sends the seventh message to the third SF network element.
  • bypass SID is introduced to update the destination address field of the message header to the bypass SID (drainage SID), so that the message can be drained through the bypass SID
  • drain SID Drainage SID
  • other SF network elements such as the backup SF network element outside the original path or the next SF network element that is diverted to the original path, so as to protect the service through other network elements, realize the normal forwarding of service traffic, and avoid traffic due to The failure of a single node leads to interruption, which improves the reliability of the business chain.
  • the diversion SID is an End type SID; or, the diversion SID is a proxy SID corresponding to the third SF network element.
  • the fifth SFF obtaining the seventh packet according to the sixth packet includes: the fifth SFF performs local forwarding processing on the sixth packet according to the bypass SID to obtain the eighth packet.
  • the destination address field of the message header of the eighth message includes the proxy SID corresponding to the third SF network element, and the eighth message includes the payload of the sixth message; the fifth The SFF obtains the seventh message according to the eighth message.
  • the third SF network element is a backup SF network element of the second SF network element, and the second SF network element is an SF network element in a fault state; or, the third SF network element is a The next SF network element of the second SF network element in the service chain.
  • an SFF is provided, and the SFF has the function of realizing the failure protection of the service chain in the first aspect or any one of the optional methods of the first aspect.
  • the SFF includes at least one module, and the at least one module is configured to implement the failure protection method of the service chain provided in the first aspect or any one of the optional manners of the first aspect.
  • the type of the first subordinate SID is an endpoint End type.
  • the protection group is an anycast group
  • the proxy SIDs issued by different SFFs in the anycast group are anycast SIDs.
  • an SFF is provided, and the SFF has the function of realizing the failure protection of the service chain in the second aspect or any one of the optional manners of the second aspect.
  • the SFF includes at least one module, and the at least one module is configured to implement the service chain failure protection method provided in the second aspect or any one of the optional manners of the second aspect.
  • the type of the first subordinate SID is End type.
  • the SFF further includes: a discarding module, configured to discard the third packet if the outbound interface corresponding to the backup SID fails and there is no drainage SID in the local SID table.
  • a discarding module configured to discard the third packet if the outbound interface corresponding to the backup SID fails and there is no drainage SID in the local SID table.
  • an SFF is provided, and the SFF has the function of realizing the failure protection of the service chain in the third aspect or any one of the optional manners of the third aspect.
  • the SFF includes at least one module, and at least one module is used to implement the failure protection method of the service chain provided in the third aspect or any one of the optional manners of the third aspect.
  • the diversion SID is an endpoint End type SID; or, the diversion SID is a proxy SID corresponding to the third SF network element.
  • the third SF network element is a backup SF network element of the second SF network element; or, the third SF network element is the next one of the second SF network element in the service chain SF network element.
  • an SFF is provided, and the SFF has the function of realizing the failure protection of the service chain in the foregoing fourth aspect or any of the optional manners of the fourth aspect.
  • the SFF includes at least one module, and at least one module is configured to implement the service chain failure protection method provided in the fourth aspect or any one of the optional manners of the fourth aspect.
  • the diversion SID is an endpoint End type SID; or, the diversion SID is a proxy SID corresponding to the third SF network element.
  • the third SF network element is a backup SF network element of the second SF network element, and the second SF network element is an SF network element in a fault state; or, the third SF network element is a The next SF network element of the second SF network element in the service chain.
  • an SFF is provided.
  • the SFF includes a processor configured to execute instructions so that the SFF executes the failure protection method of the service chain provided in the first aspect or any one of the optional methods of the first aspect. .
  • a processor configured to execute instructions so that the SFF executes the failure protection method of the service chain provided in the first aspect or any one of the optional methods of the first aspect.
  • an SFF is provided.
  • the SFF includes a processor configured to execute instructions so that the SFF executes the service chain failure protection method provided in the second aspect or any one of the optional methods of the second aspect. .
  • a processor configured to execute instructions so that the SFF executes the service chain failure protection method provided in the second aspect or any one of the optional methods of the second aspect.
  • an SFF is provided, and the SFF includes a processor for executing instructions so that the SFF executes the failure protection of the service chain provided in the third aspect or any of the optional methods of the third aspect. method.
  • the SFF includes a processor for executing instructions so that the SFF executes the failure protection of the service chain provided in the third aspect or any of the optional methods of the third aspect. method.
  • an SFF is provided.
  • the SFF includes a processor for executing instructions so that the SFF executes the failure protection of the service chain provided in the fourth aspect or any of the optional manners in the fourth aspect. method.
  • a processor for executing instructions so that the SFF executes the failure protection of the service chain provided in the fourth aspect or any of the optional manners in the fourth aspect. method.
  • a computer-readable storage medium stores at least one instruction, and the instruction is read by a processor to make the SFF execute the first aspect or any one of the optional methods of the first aspect.
  • the failure protection method of the business chain provided.
  • a computer-readable storage medium stores at least one instruction, and the instruction is read by a processor to make the SFF execute the above-mentioned second aspect or any one of the optional manners of the second aspect
  • the failure protection method of the business chain provided.
  • a computer-readable storage medium stores at least one instruction, and the instruction is read by a processor to make the SFF execute the third aspect or any of the optional manners of the third aspect.
  • the failure protection method of the business chain provided.
  • a computer-readable storage medium stores at least one instruction, and the instruction is read by a processor to make the SFF execute the fourth aspect or any of the optional manners of the fourth aspect The failure protection method of the business chain provided.
  • a computer program product is provided.
  • the SFF executes the failure protection method for the service chain provided in the first aspect or any one of the optional methods in the first aspect. .
  • a computer program product is provided.
  • the SFF executes the failure protection method of the service chain provided in the second aspect or any of the optional methods of the second aspect. .
  • a computer program product is provided.
  • the SFF executes the failure protection method of the service chain provided in the third aspect or any of the optional methods of the third aspect. .
  • a computer program product is provided.
  • the SFF executes the service chain failure protection method provided in the fourth aspect or any of the optional methods in the fourth aspect. .
  • a fault protection system for a service chain includes the SFF provided by any of the above-mentioned fifth aspect or the fifth aspect.
  • the fault protection of the service chain The system also includes the SFF provided by the foregoing sixth aspect or any one of the optional manners of the sixth aspect.
  • a fault protection system for a service chain includes the SFF provided in any of the above-mentioned seventh aspect or the seventh aspect.
  • the fault protection of the service chain The system further includes the SFF provided by the foregoing eighth aspect or any one of the optional manners of the eighth aspect.
  • FIG. 1 is a system architecture diagram of an SFC provided by an embodiment of the present application
  • FIG. 2 is a schematic diagram of an SRv6 message provided by an embodiment of the present application.
  • FIG. 3 is a schematic diagram of an SRH provided by an embodiment of the present application.
  • FIG. 4 is a schematic diagram of an SRv6 SID provided by an embodiment of the present application.
  • FIG. 5 is a schematic diagram of an End SID provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of an End SID-based forwarding process provided by an embodiment of the present application.
  • Fig. 7 is a schematic diagram of an End.X SID provided by an embodiment of the present application.
  • FIG. 8 is a schematic diagram of a forwarding process based on End.X SID provided by an embodiment of the present application.
  • FIG. 9 is a schematic diagram of a forwarding process of an SRv6 service chain provided by an embodiment of the present application.
  • FIG. 10 is a schematic diagram of a failure scenario of a service chain provided by an embodiment of the present application.
  • FIG. 11 is a flowchart of a service chain failure protection method provided by an embodiment of the present application.
  • FIG. 12 is a schematic diagram of packet forwarding in a scenario where a link between SFF and SF in a service chain fails according to an embodiment of the present application
  • FIG. 13 is a schematic diagram of the SID of an SFF provided by an embodiment of the present application.
  • FIG. 14 is a schematic diagram of a loop occurring in a dual-link failure scenario in a service chain according to an embodiment of the present application.
  • FIG. 15 is a schematic diagram of the SID of an SFF provided by an embodiment of the present application.
  • FIG. 16 is a flowchart of a failure protection method for a service chain provided by an embodiment of the present application.
  • FIG. 17 is a schematic diagram of packet forwarding in a dual-link failure scenario in a service chain according to an embodiment of the present application.
  • FIG. 18 is a schematic diagram of the SID of an SFF provided by an embodiment of the present application.
  • FIG. 19 is a flowchart of a service chain failure protection method provided by an embodiment of the present application.
  • 20 is a schematic diagram of packet forwarding in a scenario where an SF network element in a service chain fails according to an embodiment of the present application
  • FIG. 21 is a schematic diagram of the SID of an SFF provided by an embodiment of the present application.
  • FIG. 22 is a flowchart of a method for failing to protect a service chain according to an embodiment of the present application.
  • FIG. 23 is a flowchart of a service chain failure protection method provided by an embodiment of the present application.
  • FIG. 24 is a schematic structural diagram of an SFF provided by an embodiment of the present application.
  • FIG. 25 is a schematic structural diagram of an SFF provided by an embodiment of the present application.
  • FIG. 26 is a schematic structural diagram of an SFF provided by an embodiment of the present application.
  • FIG. 27 is a schematic structural diagram of an SFF provided by an embodiment of the present application.
  • FIG. 28 is a schematic structural diagram of a network device provided by an embodiment of the present application.
  • FIG. 29 is a schematic structural diagram of an interface board provided by an embodiment of the present application.
  • FIG. 30 is a schematic structural diagram of a computing device provided by an embodiment of the present application.
  • first, second and other words are used to distinguish the same items or similar items that have basically the same function and function. It should be understood that between “first”, “second” and “nth” There are no logic or timing dependencies, and no restrictions on the number and execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another.
  • the first image may be referred to as a second image, and similarly, the second image may be referred to as a first image. Both the first image and the second image may be images, and in some cases, may be separate and different images.
  • the size of the sequence number of each process does not mean the order of execution.
  • the execution order of each process should be determined by its function and internal logic, and should not correspond to the difference in the embodiments of the present application.
  • the implementation process constitutes any limitation.
  • determining B according to A does not mean that B is determined only according to A, and B can also be determined according to A and/or other information.
  • Service nodes include, but are not limited to, firewalls (FireWall, FW), Load Balancer (LB), Intrusion Prevention System (IPS), etc.
  • the network traffic needs to pass through these services in a predetermined order required by business logic. Node to achieve the required business.
  • strategy diversion is implemented by entering complex command lines on hardware devices, which is difficult to operate, maintain and change, and at the same time places great constraints on the deployment and physical location of VAS servers.
  • SFC service function chain
  • SFC is a technology that provides orderly services to the application layer. SFC is used to connect services on network devices at a logical level to form an orderly service combination. SFC adds service chain path information to the original message to realize that the message passes through the service device in turn according to the specified path.
  • SFC technology uses virtual networks to better integrate service and business, and solves the above-mentioned problems: In view of the large coupling between network devices, the problem of inflexible service deployment, SFC is based on coverage ( Overlay technology is independent of network planning. When the underlying physical network topology changes, it does not affect the deployment and activation of the service node. As long as the bearer network is reachable, the virtual service chain can be mapped to the physical service node.
  • SFC encapsulates the message with Network Service Header (NSH), so that each node on the service chain path can transmit information to each other. With this information, the entire service chain can make dynamic data Flexible strategy processing.
  • NSH Network Service Header
  • the forwarding layer and the service layer in SFC are separated from each other, and users can divide the service equipment into the resource pool. After classification, all data traffic is diverted to multiple service equipment through the business chain, which not only divides the traffic The subsequent data flow reduces the performance requirements for the service equipment's ability to handle peak flows, and realizes the resource sharing of the service equipment.
  • Traffic classifier (English: Service Classifier, SC for short): Located at the boundary entrance of the SFC domain, traffic will be classified first after a message enters the SFC domain. The granularity of the classification is determined by the classifier capability and the SFC policy. The classification rules can be rough or rough. Can be detailed. For example, in a rough situation, all messages on a port meet a certain SFC rule and follow the service chain path 1. In more detail, only messages that meet the five-tuple requirements can meet a certain SFC rule and follow the service chain path 2. .
  • Service function (English: service function, abbreviated as: SF) network element: used to perform service processing on messages.
  • SF network elements can be, but not limited to, firewalls, load balancing, application accelerators, legal interception (LI), network address translation (English: Network Address Translation, abbreviation: NAT), bandwidth control, virus detection, cloud storage, deep Packet inspection (English: Deep Packet Inspection, DPI for short), intrusion detection or intrusion prevention, etc.
  • the physical entity of the SF network element may be a computing device, and the computing device may not be limited to a server, a host, a personal computer, a network device, or a terminal device.
  • the SF network element can be implemented in such a way: a virtual machine or container is running on a general-purpose server of the X86 architecture, and an application program is running in the virtual machine or container, and the application program can be used for business Functional processing.
  • SF is divided into SF (NSH-aware SF) that perceives NSH package and SF (NSH-unaware SF) that does not perceive NSH package.
  • NSH-aware SF can identify the received NSH message and process it.
  • NSH-unaware SF does not recognize the NSH message and discards it after receiving it.
  • Service function forwarder (English: Service function Forwarder, SFF for short): Used to forward the message received from the network to several SFs associated with the SFF, and the basis for forwarding is the information encapsulated by the NSH. After the SF processes, the message is returned to the same SFF, and the SFF finally decides whether to send the message back to the network.
  • the physical entity of the SFF may be a network device, such as a router, a switch, and so on.
  • SFC Proxy Located between the SFF and its associated NSH-unaware SFs, on behalf of the SF, it receives the message from the SFF, deletes the NSH encapsulation information, and sends the message to the NSH-unaware SF through the local logic component. It also receives the message sent back from NSH-unaware SF, re-adds NSH encapsulation information to it, and sends it to SFF for processing. From the perspective of SFF, the SFC agent is equivalent to an NSH-aware SF. Normally, SFC Proxy and SFF are integrated and set on the same hardware device.
  • segment routing (English: Segment Routing, abbreviation: SR) technology
  • segment routing (English: internet protocol version 6 for Segment Routing, abbreviation: SRv6) business chain solution based on Internet Protocol version 6 has become a realization business Excellent solution for the chain.
  • SRv6 internet protocol version 6 for Segment Routing, abbreviation: SRv6
  • Segment Routing (English: Segment Routing, abbreviated as: SR) is a technology designed based on the concept of source routing to forward packets in the network. Segment Routing divides the network path into segments, and assigns segment IDs (Segment IDs, SIDs) to these segments and forwarding nodes in the network. By orderly arranging the SIDs, a segment list (Segment List) can be obtained, and the packet forwarding path can be specified through the segment list. Through the SR technology, you can specify the nodes and paths through which packets carrying the Segment List pass, so as to meet the requirements of traffic tuning.
  • SIDs segment IDs
  • a message can be compared to luggage, and SR can be compared to a label affixed to the luggage. If you want to send luggage from area A to area D, passing through area B and area C, you can send the baggage to area A at the origin Affix a label "first to area B, then to area C, and finally to area D". In this way, each area only needs to identify the tag on the baggage, and forward the baggage from one area to another according to the baggage tag. can.
  • the source node adds a label to the message, and the intermediate node can forward it to the next node according to the label until the message reaches the destination node.
  • SR domain Segment Routing Domain: A collection of SR nodes.
  • the SR domain can be nodes connected to the same physical architecture (such as a service provider network), or remotely interconnected nodes (such as an enterprise virtual private network or overlay).
  • SR Tunnel is a tunnel that encapsulates the Segment List into the header of the message on the head node. It can be manually created by the administrator, or it can be the network configuration (NETCONF) through the controller or the communication protocol of the path calculation unit (Path Computation Element Communication Protocol, PCEP) and other interface protocols are automatically created.
  • An SR tunnel can be used for traffic engineering (Traffic Engineering, TE) applications, operation and maintenance management (Operation Administration and Maintenance, OAM), fast reroute (Fast Reroute, FRR) and other purposes.
  • Segment list (Segment List): an ordered list of segments used to represent the packet forwarding path.
  • the segment list is the label stack.
  • the segment list is an IPv6 address list, which is carried in the segment routing header (English: segment routing header, SRH for short) of the IPv6 message.
  • Segment (also called segment) can be any instruction that instructs the device to process the message, such as forwarding the message to the destination according to the shortest path, forwarding the message through the designated interface, and forwarding the message to the designated application/service Examples etc.
  • the segment may include a global segment (Global Segment) and a local segment (Local Segment).
  • Global segment All SR nodes in the SR domain can recognize commands related to the global segment.
  • the global segment is a globally unique index (index), and the label on each device is [SRGB+index]; in SRv6, the global segment is a globally unique IPv6 address.
  • Local segment Relevant instructions recognized only by the node that generated it.
  • the local segment is a local label outside the SRGB block; in SRv6, the local segment is any IPv6 address that has not been notified of its reachability by any routing protocol.
  • a segment ID (Segment ID, SID) is an identifier of a segment, and is used to identify a unique segment.
  • SID can be mapped to MPLS label.
  • SID can be mapped to an IPv6 address.
  • SID can essentially represent topology, instruction or service.
  • Current working SID It is the currently pending segment in the segment list, which can also be called active SID (active SID), active segment (active segment), currently pending SID, and current working SID.
  • active SID active SID
  • active segment active segment
  • current working SID current working SID
  • the active segment is the outermost label of the label stack.
  • the active segment is the destination address of the IPv6 message carrying SRH.
  • the active segment can be indicated by the value of the SL field.
  • the segment list includes 5 SIDs, namely SID0, SID1, SID2, SID3, and SID4, and the value of SL is 2, it indicates that there are 2 unprocessed SIDs in the segment list, namely SID0 and SID1.
  • the currently processed SID in the list is SID2, and there are 2 processed SIDs in the segment list, namely SID3 and SID4.
  • SID can include multiple types.
  • SID may include node SID (Node SID), prefix SID (Prefix SID), and adjacent SID (Adjacency SID).
  • the Prefix SID can be the offset value within the SRGB range published by the source end, and the receiving end will calculate the actual label value according to its own SRGB to generate the MPLS forwarding entry.
  • SID includes End SID, End.X SID, End.DT4 SID, End.OTP SID, etc.
  • Segment Actions can include insert (PUSH), next (NEXT), and continue (CONTINUE), etc.
  • PUSH refers to inserting a segment at the top of the Segment List.
  • the top of the Segment List refers to the outermost label of the label stack.
  • the top of the Segment List refers to the first IPv6 address in the SRH header.
  • NEXT means that when the current active segment (active segment) is processed, the next segment (the next segment) becomes active segment.
  • CONTINUE The current active segment has not been processed yet, and it continues to remain active.
  • the CONTINUE operation is equivalent to the switch (SWAP) operation.
  • the CONTINUE operation is an operation in which IPv6 packets are forwarded based on the IPv6 destination address.
  • SR technology includes segment routing (Segment Routing Multi-Protocol for Label Switching, SR MPLS) technology and SRv6 technology.
  • segment routing Segment Routing Multi-Protocol for Label Switching, SR MPLS
  • SRv6 Segment Routing Multi-Protocol for Label Switching
  • SRv6 technology refers to the application of SR technology in IPv6 networks.
  • the SID of SRv6 uses IPv6 address (128bits) encoding and is encapsulated in the SRv6 extension header (SRH).
  • SRH SRv6 extension header
  • a node that supports SRv6 will query the local SID table (local SID table) according to the destination address (Destination Address, DA) of the message header in the message.
  • DA Destination Address
  • the destination address of the message header is When any SID in the local SID table matches, it is confirmed that the destination address hits the local SID table, and the corresponding operation is performed based on the topology, instruction, or service corresponding to the SID; if the destination address of the message matches every item in the local SID table If none of the SIDs match, the IPv6 routing and forwarding table is queried according to the destination address, and the packet is forwarded according to the routing and forwarding table that the destination address hits in the routing and forwarding table.
  • the local SID table (local SID table, also known as the local SID table) is a table maintained by SRv6-enabled nodes.
  • the local SID table contains the SRv6 SID generated by the node.
  • the SRv6 forwarding table FIB can be generated according to the local SID table.
  • the command can carry the parameter end to specify to view the local SID table of SRv6 End.
  • This command can carry the parameter End.X to specify to view the local SID table of SRv6 End.X.
  • This command can carry the parameter end-dt4 to specify to view the local SID table of SRv6 end-dt4.
  • SRv6 adds an SRH to the IPv6 message and uses the SRH to record segment-related information. By adding an extension header in this way, it smoothly integrates with the original IPv6 forwarding plane.
  • FIG. 2 is a schematic diagram of an SRv6 message provided by an embodiment of the present application.
  • the SRv6 message can include IPv6 header, SRH, and payload. The following uses (1) to (3) to introduce each part of the SRv6 message.
  • the IPv6 header in the SRv6 message may include a source address (source address, SA) and a destination address (destination address, DA).
  • IPv6 DA is fixed.
  • IPv6DA identifies the next node of the current message.
  • the SR node can continuously update the destination address to complete hop-by-hop transmission.
  • the SID carried in the destination address in the IPv6 header can be called an active SID.
  • SRH is an IPv6 extension header. SRH is used to implement SRv6 based on the IPv6 forwarding plane. Refer to FIG. 3, which is a schematic diagram of an SRH provided by an embodiment of the present application. SRH can include the following parts (2.1) to (2.9).
  • 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 abstracted into the following format.
  • ⁇ Segment List[0],SegmentList[1],SegmentList[2],...,SegmentList[n]> is the segment list of Rv6 packets, similar to the MPLS label stack information in SRMPLS, Generated at the ingress node.
  • Segment List[0] is the first Segment List to be processed on the SRv6 path
  • Segment List[1] is the second
  • Segment List[2] is the third
  • ..., Segment List[n] is the nth +1.
  • n is a positive integer or 0.
  • SRv6 every time an SRv6 node passes through, the value of the SL field is reduced by 1, and the IPv6 DA information is changed once.
  • the SL field and the Segments List field jointly determine the IPv6 DA information.
  • the IPv6 DA value is the value of Segments List[0].
  • the IPv6 DA value is the value of Segments List[1].
  • the IPv6 DA value is the value of Segments List[2].
  • the IPv6 DA value is the value of Segments List[n].
  • SL can indicate the active SID in the segment list.
  • the SR node can update the active SID by executing the operation of offsetting the address stack.
  • TLV is an encoding format.
  • TLV includes type, length, and value.
  • the SRH can include one TLV or multiple TLVs. Different TLVs in the SRH can have a parallel relationship or a nested relationship.
  • SRH may also include the following fields.
  • Next header type (next header): SRv6 message can also include one or more extension headers or one or more higher layer headers after the extension header. Next header is used to indicate the extension header in the message. The type of extended header or high-level header. The length of the next header can be 1 byte.
  • the length of the extension header (English: header Extended Length, abbreviated as Hdr Ext Len): used to indicate the length of the extension header.
  • the length indicated by Hdr Ext Len may not include the first 8 bytes of the extension header.
  • the payload in the SRv6 message can be the original message.
  • the original message may be an IPv4 message, an IPv6 message, or an Ethernet (English: Ethernet) frame.
  • the SRv6 SID may include 128 bits. SRv6 SID can be in hexadecimal data format. The format of SRv6 SID can be X:X:X:X:X:X:X. Please refer to FIG. 4, which is a schematic diagram of an SRv6 SID provided by an embodiment of this application.
  • the SID may include location information (locator) and function information (function), and the format of the SID is locator: function.
  • the SID may also include parameter information (Arguments), and the format of the SID is locator:function:Arguments.
  • the locator occupies the high bits of the SID.
  • the locator field corresponds to the ipv6-prefix ipv6-address parameter, and the length is determined by the prefix-length parameter.
  • the locator itself is an IPv6 network segment, and all IPv6 addresses under this network segment can be allocated as SRv6 SIDs.
  • the system After the node is configured with a locator, the system will generate a locator network segment route, and the node can be located through the locator network segment route. At the same time, all SIDs issued by the node can also be reached through the locator network segment route.
  • the locator of SRv6 can be released through SRv6locator TLV. After receiving the TLV, other SRv6 capable IS-IS devices will deliver the corresponding locator to the local forwarding table. Those without SRv6 capability will not be delivered to the forwarding table.
  • the function occupies the lower bits of the SID.
  • the function field is also called an operation code (Operate Code, opcode), which can be dynamically allocated through the IGP protocol or statically configured through the opcode command.
  • opcode Opera Code
  • SRv6 can define the actions corresponding to each segment through function.
  • Arguments are optional in SRv6 SID and are determined by command configuration.
  • the SRv6 SID After the SRv6 SID is generated, it will be added to the local SID table of the machine on the one hand, and it can also be advertised to the outside through the routing protocol on the other hand.
  • the locator part in SRv6 SID is used to help other nodes in the network to perform routing addressing, find the SRv6 SID generation node, and forward the SRv6 message to this node, and the function part is used to indicate the generation of SRv6 SID
  • the node performs corresponding functional operations.
  • SRv6 SID can include End SID, End. X SID, End. DT4 SID, End. OTP SID, etc.
  • End in SID stands for endpoint.
  • the End SID is the Endpoint SID, and the End SID is used to identify a certain destination address prefix (Prefix) in the network.
  • the End SID in SRv6 is similar to the Prefix SID in SR MPLS.
  • SRv6 End SID can be released through SRv6 End SID sub-TLV.
  • SRv6 End SID can be spread to other network elements based on the IGP protocol.
  • SRv6 End SID sub-TLV is a kind of sub-TLV used to publish SRv6 End SID with Endpoint function.
  • FIG. 5 is a schematic diagram of an End SID provided in an embodiment of the present application.
  • the End SID of node A can be A::.
  • the End SID of node B can be B::.
  • the End SID of node C can be C::.
  • the forwarding operation based on End SID may include the following steps 1 to 5.
  • Step 1 The SR node receives the message.
  • Step 2 The SR node queries the local SID table according to the destination address in the IPv6 header of the message.
  • Step 3 The SR node judges that the type of the active SID (FuncType) is the End type according to the local SID table.
  • Step 4 The SR node continues to query the IPv6 FIB table.
  • Step 5 Forward the message according to the outgoing interface and next hop found in the IPv6 routing and forwarding table.
  • IPv6 DA of the message is 10:1::1:0/128, when the SR node receives the SRv6 message, it will look up Table 1 and judge 10:1::1:0/ according to the IPv6 DA of the SRv6 message. If the FuncType of 128 is End, continue to query the IPv6 routing and forwarding table according to 10:1::1:0/128, and according to 10:1::1:0/128 in the IPv6 routing and forwarding table hits the outgoing interface and the next Jump, forward the message.
  • the header My Local-SID End Forwarding Table of Table 1 represents the local SID table of SRv6 End.
  • FuncType represents the function type. Flavor represents a characteristic, for example, it may be the penultimate segment POP of the SRH (PSP for short).
  • the locator ID represents the identifier (Identity, ID) allocated by the locator.
  • Figure 6 is a schematic diagram of an End SID-based forwarding process provided by an embodiment of the application.
  • the forwarding process includes: a message is pushed into the SRH at node A, and the path information in the SRH is ⁇ Z:: ,F::,D::,B::>, the destination address in the IPv6 header of the message is B::.
  • the intermediate node Whenever a message passes through an intermediate node, such as node B and node D, the intermediate node will query the local SID table according to the IPv6 DA of the message.
  • the intermediate node will continue to query the IPv6 FIB table, according to IPv6 FIB
  • the next hop of the outgoing interface found in the table is sent, and the SL is reduced by 1, and the IPv6 DA is transformed once.
  • node F queries the local SID table according to the destination address in the IPv6 header of the message, determines the end type, then continues to query the IPv6 FIB table, and forwards it according to the outbound interface found in the IPv6 FIB table.
  • SL is reduced to 0, and IPv6 DA becomes Z::.
  • the path information ⁇ Z::,F::,D::,B::> has no actual value, so node F uses the PSP feature to remove SRH , And then forward the message with SRH removed to node Z.
  • End SID introduces the End SID and the process of forwarding packets in the SR tunnel based on the End SID.
  • the following introduces End.X SID and the forwarding process based on End.X SID.
  • End.X The X in the SID stands for crossing. End.X SID represents the Endpoint SID of the three-layer cross-connect. Each End.X SID of an SR node is used to identify an IP layer link directly connected to the SR node.
  • the End.X SID in SRv6 is similar to the Adjacency SID in SR MPLS. SRv6 End.X SID can be spread to other network elements based on the IGP protocol.
  • FIG. 7, is a schematic diagram of an End.X SID provided by an embodiment of the present application.
  • the End SID of node A can be A::.
  • node A includes 3 End.X SIDs.
  • the End.X SID corresponding to the directly connected link 1 on node A is A::1, the End.X SID corresponding to the directly connected link 2 on node A is A::2, the directly connected link on node A
  • the corresponding End.X SID of 3 is A::3.
  • the forwarding operation based on End X SID may include the following steps 1 to 4.
  • Step 1 The SR node receives the message.
  • Step 2 The SR node queries the local SID table according to the destination address in the IPv6 header of the message.
  • Step 3 The SR node judges that the active SID is End.X SID according to the local SID table.
  • Step 4 The SR node directly sends a message according to the outbound interface and the next hop bound to the End X SID in the local SID table.
  • the IPv6 DA of the SRv6 message is 222::4:101:0:1/128, when the SR node receives the SRv6 message, it will query Table 2 according to the IPv6 DA to determine 222::4:101:0:1/
  • the FuncType of 128 is End.X, and it is determined that the outbound interface hit by 222::4:101:0:1/128 in Table 2 is GE2/0/0, and 222::4:101:0:1/128 is in
  • the next hop hit in Table 2 is FE80::3A00:10FF:FE03:1, and the SR node forwards the packet according to GE2/0/0 and FE80::3A00:10FF:FE03:1.
  • the header My Local-SID End.X Forwarding Table of Table 2 represents the local SID table of SRv6 End.X.
  • FuncType represents the function type. Flavor represents a characteristic, for example, it may be the penultimate segment POP of the SRH (PSP for short).
  • NextHop represents the next hop address.
  • Interface represents the outgoing interface.
  • Exit Index indicates the outgoing interface index.
  • Figure 8 is a schematic diagram of an End.X SID-based forwarding process provided by an embodiment of the application.
  • the forwarding process includes: the message is pressed into the SRH at the head node A, and the path information in the SRH is ⁇ Z: :,F::1,B::1>, the destination address in the IPv6 header of the message is B::1.
  • the intermediate node B queries the local SID table according to IPv6 DA, determines that it is of the End.X type, and forwards it according to the next hop and outbound interface corresponding to End.X SID in the local SID table, and the SL is reduced. 1. IPv6 DA is transformed into F::1.
  • node D queries the local SID table according to IPv6 DA information F::1. If no matching SID is found, it continues to use F::1 to query the matching IPv6 FIB table, and then forwards information according to the IPv6FIB table , Forward this message to F.
  • the tail node F queries the local SID table according to IPv6 DA and judges that it is of the End.X type, so the tail node F directly forwards it according to the next hop and outbound interface corresponding to End.X SID in the local SID table, and at the same time SL is reduced to 0, and IPv6 DA is transformed to Z::.
  • the SRH carrying path information ⁇ Z::,F::1,B::1> has no practical value, so the tail node F uses the PSP feature to remove the SRH , And then forward the message with SRH removed to node Z. At this time, the message flows out of the SR tunnel.
  • two or more SR nodes can form anycast group by issuing anycast SID.
  • the following is an introduction to anycast and anycast SID.
  • Anycast also known as anycast, anycast, or anycast, is a communication method of IPv6, which refers to identifying a group of nodes that provide the same or corresponding services through the same address.
  • the anycast SID is used to identify a group of SR nodes. These SR nodes publish anycast SIDs, and the anycast SIDs published by each SR node are the same. These SR nodes can be called an Anycast Group (Anycast Group). Each device in the same anycast group can be configured with the same locator to ensure that when one of the nodes fails, it can quickly switch to another node through the anycast fast re-route (FRR) method.
  • FRR fast re-route
  • the SRv6 technology is introduced above, and the SRV6 business chain technology is introduced below.
  • the SRV6 service chain can use the tuning capabilities of SRV6 and the SDN global network management capabilities to globally orchestrate the SRV6 SID path through the controller. Please refer to Figure 9 below to supplement the description of the functions of each network element in the SRV6 service chain:
  • the SC may be the head node of the SRv6 tunnel, and the SC is used to complete packet encapsulation according to the SR label stack issued by the controller.
  • the original message can be pressed into the SRH at the SC, and the segment list in the SRH indicates the forwarding path of the message in the service chain.
  • the controller may be a management node in Network Function Virtualization (English: Network Function Virtualization, referred to as: NFV), such as a Network Function Virtualization Manager (English: Network Functions Virtualization Manager, referred to as: VNFM), etc.
  • the controller may be an SDN controller (English: SDN controller) in a software defined network (English: Software Defined Network, SDN for short).
  • the SR label stack can be a segment list.
  • the SFF Proxy
  • the SFF After the SFF receives the SRv6 message, it can obtain the outgoing interface and the corresponding behavior according to the SID in the label stack. If it is determined that the behavior pops out of the label stack, the SRH of the message is stripped off, for example, SR is executed. In the pop operation, SRH is popped from the message, and the message that does not contain SRH is sent to SF; in addition, SFF can save the cache information of the service chain, and complete the service again when the SF message returns The SR message encapsulation of the chain. After the SF network element returns a message to the Proxy, the Proxy can query the SRH from the cache according to the inbound interface, and use the SRH to complete the SR encapsulation of the message.
  • SF network element Perform business processing based on the original message, and get the processed message.
  • the SF network element can query the route and forward the message to the Proxy. Or, the SF network element can send the message to the Proxy through the default outgoing interface.
  • load sharing can be formed based on IGP routing.
  • SRV6 static service chain refers to the way that SFF obtains the cache list through static configuration.
  • SRV6 dynamic service chain refers to the way that SFF dynamically learns the cache list based on traffic.
  • the failure scenarios of the business chain may specifically include multiple scenarios, such as scenario 1 to scenario 4.
  • SFF1 may malfunction.
  • the link from SFF1 to SF1 may fail.
  • VM1 where SF1 is located may fail.
  • SF1 can fail.
  • this embodiment provides a fault protection scheme in the SRV6 service chain scenario, which can effectively protect in a variety of fault scenarios.
  • the embodiments of the present application define many new SIDs, including but not limited to dependent SIDs, backup SIDs, drainage SIDs, etc. These new SIDs can be used to implement normal traffic forwarding in a service chain failure scenario.
  • the secondary SID is referred to as the secondary SID
  • the backup SID is referred to as the backup SID
  • the drainage SID is referred to as the bypass SID as an example for description.
  • the proxy SID is called proxy SID.
  • SIDs are only an example, and these SIDs may also have other titles. For example, these SIDs may have different names in different scenarios. For example, different manufacturers use different names, or different standards use different names. The naming of SIDs is not used to limit the scope of protection of this application.
  • the SID provided in the embodiment of the present application can be configured on multiple nodes.
  • the function of the SID configured on different nodes can be the same, and the function of the SID configured on different nodes can also be different.
  • the same SID can be configured on different nodes with anycast relationship in the service chain to perform load sharing.
  • the words "first" and "second" are used to distinguish the SIDs configured on different nodes.
  • the secondary SID configured on the first SFF is called the first secondary SID
  • the secondary SID configured on the second SFF is called the second secondary SID.
  • the number of SIDs and the working sequence of the SIDs are not limited.
  • the first SID is not necessarily the SID that works first
  • the second SID is not necessarily the SID that works later.
  • the working sequence of the first SID and the second SID can be determined according to the sequence of the two SIDs in the SRH mid-segment list.
  • the SID provided in the embodiment of the present application is the SID used to identify the segment in the SR technology.
  • the SID provided in the embodiment of the present application may not be limited to the SRv6 SID, and the format of the SID provided in the embodiment of the present application may be as shown in FIG. It should be understood that the SID described in the following embodiments can implement the functions of the SID described above.
  • the message carrying the SID provided in the embodiment of the present application may be an SR message transmitted in the SR network.
  • the message provided by the embodiment of the present application may not be limited to an SRv6 message.
  • the format of the message provided in the embodiment of the present application may be as shown in FIG. 2. It should be understood that the message described in the following embodiments can implement the functions of the SRv6 message described above.
  • the SID provided in the embodiment of the present application may be carried in the destination address of the IPv6 header of the message and the SRH.
  • the format of the SRH in the message provided in the embodiment of the present application may be as shown in FIG. 3.
  • IPv6 header and SRH please refer to the above introduction.
  • the message carrying the SID provided in the embodiment of the present application may be an SR message transmitted in the SR network.
  • the message provided by the embodiment of the present application may not be limited to an SRv6 message.
  • the format of the message provided in the embodiment of the present application may be as shown in FIG. 2, and the details of the message may refer to the introduction to the SRv6 message above.
  • the message provided by the embodiment of the present application may include an IPv6 header, an SRH, and a payload, and the SID is carried by the destination address of the IPv6 header and the SRH.
  • the format of SRH can be shown in Figure 3.
  • IPv6 header and SRH please refer to the above introduction.
  • each node (such as SFF, SF network element, SC, etc.) involved in the embodiments of the present application may be a node in a service chain (SFC), and the functions and physical entities of each node can be referred to the relevant introduction above, for the sake of brevity. It will not be repeated in the following method embodiments.
  • SFC service chain
  • the embodiments of this application can be applied to the failure protection scenarios of a variety of service chains, including but not limited to: protection in the link failure scenario between SFF and SF network elements, loop prevention in the dual link failure scenario, and SF network elements Protect under failure.
  • the method may include the following steps 1101 to 1108.
  • Step 1101 The first SFF in the service chain receives the first message, and the destination address field of the header of the first message includes the proxy SID corresponding to the first SF network element in the service chain.
  • the first SFF may be an SFF with SRv6 enabled in the service chain.
  • FIG. 12 is a schematic diagram of packet forwarding in a scenario where a link between SFF and SF in a service chain fails according to an embodiment of the present application.
  • the first SFF may be SFF1 in FIG. 12.
  • the first SF network element is the SF network element accessed by the first SFF in the service chain.
  • the first SF network element may be SF1 accessed by SFF1 in Fig. 12.
  • the first message may include IPv6 header, SRH, and payload.
  • the payload in the first message may be the original message to be processed by the SF network element.
  • the IPv6 header in the first message includes a DA field, and the value of the DA field is the proxy SID corresponding to the first SF network element.
  • the SRH in the first message includes the segment list and SL. This list includes the proxy SID and other SIDs corresponding to the first SF network element.
  • the value of SL may indicate that the currently working SID in the segment list is the proxy SID corresponding to the first SF network element.
  • the proxy SID is the SID of a proxy function.
  • the proxy SID corresponding to the first SF network element is used to instruct to perform a proxy operation for the first SF network element.
  • the proxy SID is SRv6 SID, which can be End.X SID specifically.
  • the proxy SID included in the destination address field of the first message may be the SID of the first SFF.
  • the proxy SID can be configured on the first SFF in advance.
  • the proxy SID may be pre-stored in the local SID table of the first SFF.
  • the first SFF may pre-publish the proxy SID.
  • the locator of the proxy SID is the locator configured on the first SFF.
  • the locator of the proxy SID is used to locate the first SFF.
  • the function of the proxy SID is used to indicate the proxy operation for the first SF network element.
  • the next hop bound by the proxy SID may be the first SF network element, and the outgoing interface bound by the proxy SID may be used to establish a link with the first SF network element.
  • the SF can be dual-homed to the first SFF and the second SFF, and the local SID table of the second SFF also includes the proxy SID, so as to form load sharing based on the anycast relationship.
  • sid2 is pre-configured on SFF1, and sid2 is also pre-configured on SFF2.
  • the sid2 on SFF1 is the proxy SID corresponding to SF1
  • the sid2 on SFF2 is also the proxy SID corresponding to SF1.
  • the sid2 of SFF1 and sid2 of SFF2 form an anycast SID relationship.
  • the first message can come from SC.
  • the SC can be the head node of the SR tunnel.
  • the SC can press the SRH into the original message, obtain the first message carrying the SRH, and send the first message.
  • the first message can be routed and forwarded to the first SFF through the locator of the proxy SID, and the first SFF will receive the first message.
  • traffic enters from SC, SC sends a message, and the message is directed to SFF1 according to the SF1 proxy SID, and SFF1 receives the message.
  • the destination address field of the message received by the inbound interface of SFF 1 includes the SF1 proxy SID.
  • Step 1102 If the link between the first SFF and the first SF network element fails, the first SFF updates the destination address field of the first packet to obtain a second packet.
  • the destination address field of the second packet includes the first A secondary SID.
  • the second message is a message obtained after the first SFF processes the first message according to the first secondary SID.
  • the second message may include IPv6 header, SRH, and payload.
  • the IPv6 header in the second packet includes a DA field, and the value of the DA field is the first secondary SID.
  • the SRH in the second message includes the segment list and SL. This list includes the first secondary SID and other SIDs.
  • the segment list may include the proxy SID corresponding to the first SF network element.
  • the value of SL can indicate that the currently working SID in the segment list is the first secondary SID.
  • the payload in the second message may be the original message to be processed by the SF network element.
  • the second message may include the load of the first message. For example, the load in the second message may be the same as the load in the first message.
  • the secondary SID and the proxy SID can form a protection relationship between primary and backup backups. Specifically, if the current working SID is the proxy SID and the outbound interface corresponding to the proxy SID has a link failure, the SFF can insert the secondary SID into the message to update the destination address of the message from the proxy SID to the secondary SID. In this way, the message is switched from the tunnel corresponding to the proxy SID to the tunnel corresponding to the secondary SID, so as to achieve the purpose of diverting the message to other SFFs in the same pair of protection groups. In addition, in some embodiments, it may be planned that the locator of the secondary SID and the locator of the proxy SID do not overlap.
  • the first secondary SID may be the secondary SID configured on the first SFF.
  • the first secondary SID may be a local SID of the second SFF.
  • the first secondary SID may be pre-stored in the local SID table of the second SFF.
  • the locator of the first secondary SID is used for routing to the second SFF.
  • the locator of the first secondary SID may be a locator pre-released by the second SFF.
  • SFF1 contains SFF2 secondary SID.
  • the SFF2 secondary SID is the local SID of SFF2, and the locator of the SFF2 secondary SID can be located to SFF2.
  • SFF1 inserts SFF2 secondary SID in the message, refreshes the destination address field of the message header, and sends the message through the locator route corresponding to SFF2 secondary SID.
  • the article is drained to SFF2. In this way, SFF1 switches the traffic to the secondary SID tunnel.
  • the first SFF can update the destination address field of the message header from the proxy SID to the first secondary SID by performing the operation of updating the destination address field, so that the currently working SID in the second message is the first secondary SID so that the second
  • the SFF uses the destination address to query the local SID table, and then executes the operation corresponding to the first secondary SID.
  • the first message may be in a form similar to an IP in IP (Mobile IP Data Encapsulation and Tunneling) message, including the outer IPv6 header and the original inner message.
  • the updating of the destination address field mentioned here may refer to updating the destination address field of the outer IPv6 header, rather than updating the destination address field of the original message of the inner layer.
  • the outer layer of the first message is an IPv6 header
  • the inner layer is an IPv6 message.
  • the first SFF can update the outer IPv6 header The DA field.
  • the type of the first secondary SID may be an endpoint (End) type.
  • End endpoint
  • the value of the Func Type of the first secondary SID may be End.
  • the operation of specifying the next hop and outbound interface when configuring the End.X SID can be avoided, thus Avoid the situation where End.X SID has the functions of both diversion and designated outgoing interface, replacing the original proxy SID role, resulting in a large number of secondary SIDs being configured on the first SFF instead of the globally unique secondary SID.
  • the first secondary SID is an End type SID, it avoids subsequent major constraints on backup SID planning.
  • the second SFF is an SFF other than the first SFF in the protection group.
  • the protection group includes multiple SFFs accessed by the first SF network element.
  • the protection group may include 2 SFF nodes, and these 2 SFF nodes are two nodes that are dual-homed to the SF.
  • the protection group may include 3 or more SFF nodes, and these SFF nodes are nodes for SF multi-homing access.
  • SF1 is dual-homed to SFF1 and SFF2. If the first SFF is SFF1, the second SFF can be SFF2.
  • the protection group can be implemented based on redundant protection technology.
  • the protection group is an anycast group, and the proxy SIDs issued by different SFFs in the anycast group are anycast SIDs.
  • the SFF in the protection group can assume the role of an equivalent gateway, and on the network side, the SFF in the protection group can issue the same proxy SID.
  • Each SFF in the protection group can be understood as an equivalent node for load sharing. In terms of physical topology, different SFFs in the same protection group can have direct links with reachable IP routables as bypass protection.
  • the second SFF may be a bypass SFF of the first SFF. For example, referring to FIG.
  • SFF1 and SFF2 may have a direct link with reachable IP routing, and SFF2 is the bypass SFF of SFF1.
  • a secondary SID can be configured on each SFF belonging to the same protection group.
  • the function of the secondary SID configured on each SFF may be the same.
  • the secondary SID configured on one SFF is the local End type SID of the other SFF.
  • SFF1 and SFF2 form a pair of protection groups, and SFF failure protection is achieved through anycast SID.
  • the secondary SID configured in SFF1 is the SID of the local End type of SFF2.
  • the locator of the secondary SID configured on SFF1 is used for routing to SFF2.
  • the locator of the secondary SID configured on SFF2 is used to route to SFF1, and the secondary SID configured on SFF2 is a local End SID on SFF1.
  • the functions of the secondary SID configured by SFF1 and the secondary SID configured by SFF2 are the same. Therefore, the actions performed by SFF1 according to the local secondary SID and the actions performed by SFF2 according to the local secondary SID are symmetric actions.
  • the first SFF can insert the first secondary SID into the SRH of the first message, and update the SL in the SRH of the first message so that the SL points to the first secondary SID, thereby indicating that the first secondary SID is the current working in the SRH SID.
  • the SL of the second message generated by the first SFF will be greater than the SL of the first message received.
  • the SL in the SRH of the SRv6 message is usually used to identify the number of SIDs to be processed, so by modifying the value of SL, it can indicate that the second message sent by the first SFF is compared to the first SFF received
  • the SRH contains more SIDs to be processed, and the first SFF performs the action of inserting SIDs into the SRH.
  • Step 1103 The first SFF sends the second message.
  • the second message Since the destination address field of the message header of the second message includes the first secondary SID, and the locator route of the first secondary SID is the locator route of the second SFF, the second message will pass through after being sent from the first SFF
  • the first secondary SID is drained to the second SFF. For example, see the bold black line at the bottom of the SFF1 block diagram in Figure 12. After SFF1 inserts the SFF2 secondary SID into the traffic, the traffic is routed to SFF2 through the SFF2 secondary SID.
  • Step 1104 The second SFF in the service chain receives the second message, and the destination address field of the second message includes the first secondary SID.
  • Step 1105 The second SFF locally forwards the second message according to the first secondary SID to obtain the third message.
  • the destination address field of the header of the third message includes the proxy SID corresponding to the first SF network element .
  • the third message refers to a message obtained after the second message is locally forwarded according to the first secondary SID.
  • the first secondary SID configured on the second SFF can be understood as a local forwarding identifier. After the second SFF receives the message, it can query the local SID table according to the destination address of the header of the second message. The second SFF determines that the type of the first secondary SID (Func Type) is End, and the second SFF presses The secondary SID behavior is to perform local forwarding processing on the second message.
  • Unc Type the type of the first secondary SID
  • the second SFF can update the destination address field of the header of the second message, thereby updating the destination address field of the header of the second message from the first secondary SID to the proxy SID, so that the currently working SID is changed from The first secondary SID is updated to proxy SID.
  • the second SFF may pop the first secondary SID from the SRH in the second message.
  • the second SFF may update the SL in the SRH of the second message, so that the SL points to the proxy SID corresponding to the first SF network element, thereby indicating that the proxy SID is the currently working SID in the SRH.
  • Step 1106 The second SFF obtains a fourth message according to the third message, where the fourth message includes the payload of the third message and does not include the segment list.
  • the second SFF After the second SFF processes the message according to the secondary SID behavior, it can continue to process the message according to the proxy SID behavior, strip the SRH of the third message, and obtain the fourth message.
  • Step 1107 The second SFF sends the fourth message to the first SF network element in the service chain through the outgoing interface corresponding to the proxy SID.
  • the outgoing interface corresponding to the proxy SID refers to the outgoing interface to the SF that has a binding relationship with the proxy SID. After sending the fourth packet through the outgoing interface, the fourth packet will reach the first SF network element.
  • Step 1108 The first SF network element receives the fourth message, and performs service function processing on the fourth message.
  • the first SF network element can still process the message.
  • the technology related to the SRv6 service chain has not yet defined a protection scheme under the link failure between the SF network element and the SFF. Once the link between the SF network element and the SFF fails, business traffic will be interrupted.
  • the secondary SID is introduced to change the destination address field of the message header Update to the secondary SID, so that the message is led to other SFFs connected to the SF network element through the secondary SID, so as to realize the link failure protection between the SFF and the SF network element, and avoid traffic interruption due to single-point link failure , which improves the reliability of the business chain.
  • the above describes the protection method under the link failure scenario between the SFF and the SF network element. Based on the above-mentioned embodiment, the following describes the method for preventing loops in the SRv6 service chain in the dual-link failure scenario.
  • a double-point failure of a pair of leaf nodes may occur in the service chain, that is, a link failure occurs in each leaf in a pair of leaf nodes.
  • the link between SFF1 and SF1 is faulty, and the link between SFF2 and SF1 is also faulty.
  • SFF1 will insert SFF2 secondary SID into the traffic. After that, the traffic flows to SFF2 through SFF2 secondary SID.
  • SFF2 receives traffic, it inserts SFF1 secondary SID into the traffic because it senses a link failure. After that, the traffic flows back to SFF1 through the SFF1 secondary SID, causing a loop of traffic between SFF1 and SFF2.
  • the leaf node is a term in a leaf-spine topology network, and the leaf node is used to serve as the access layer of the network.
  • the leaf node can be connected to the host and spine node (spine node).
  • the spine node is used to act as the convergence layer of the network.
  • the physical entity of the leaf node can be, but is not limited to, a switch in the data center.
  • this embodiment provides a method for preventing loops in a scenario where a dual-link failure occurs in a service chain, which is introduced in the following through the embodiment of FIG. 16.
  • a scenario in which the link between the first SFF and the first SF network element fails, and the link between the second SFF and the first SF network element also fails, is taken as an example for description.
  • the embodiment in FIG. 16 focuses on the differences from the embodiment in FIG. 11, and for steps that are the same as the embodiment in FIG. 11, please refer to the embodiment in FIG. 11, and details are not described in the embodiment in FIG.
  • the method may include the following steps 1601 to 1608.
  • Step 1601 The first SFF in the service chain receives a first message, and the destination address field of the first message includes the proxy SID corresponding to the first service function SF network element in the service chain.
  • Step 1602 if the link between the first SFF and the first SF network element fails, the first SFF replaces the proxy SID in the first message with the backup SID, and the first SFF updates the header of the first message To obtain the second message, the destination address field of the second message includes the first secondary SID.
  • the second message is a message obtained by the first SFF after processing the first message according to the first secondary SID and the backup SID.
  • the SRH in the second message includes the segment list and SL.
  • the segment list includes the first secondary SID and the backup SID, and the segment list does not include the proxy SID corresponding to the first SF network element original of the first message.
  • the value of SL in the second message may indicate that the currently working SID in the segment list is the first secondary SID.
  • the backup SID may be a backup of the proxy SID corresponding to the first SF network element on the first SFF.
  • the backup SID can be B-sid2 included in SFF1.
  • B-sid2 is the backup of sid2
  • this sid2 is the proxy SID corresponding to SF1.
  • the outbound interface and next hop bound to sid2 are used to go to SF1.
  • the proxy SID of the first SFF and the proxy SID of the second SFF may be an anycast SID
  • the backup SID may also be a backup of the proxy SID corresponding to the first SF network element on the second SFF.
  • the backup SID may also be B-sid2 included in SFF2.
  • B-sid2 is the backup of sid2
  • this sid2 is the proxy SID corresponding to SF1.
  • the outbound interface and next hop bound to sid2 are also used to go to SF1.
  • the backup SID may be an End.X-type SID, or may also be an End-type SID, which is not limited in this embodiment.
  • the backup SID is used to indicate that the second SFF does not use the second secondary SID to forward the second packet. In a possible implementation, it can be configured on the second SFF in advance. If the currently working SID is the backup SID, then forwarding to the first SF network element is performed without entering the secondary SID process. For example, referring to Figure 17, SFF2 contains "B-sid2". If the current working SID in the message is B-sid2, SFF2 may not use SFF1secondary SID to enter the secondary SID process, but perform forwarding to SF1.
  • the second secondary SID may be the secondary SID configured on the second SFF.
  • the second secondary SID may be a local SID of the first SFF.
  • the second secondary SID may be pre-stored in the local SID table of the first SFF.
  • the locator of the second secondary SID is used for routing to the first SFF.
  • the locator of the second secondary SID may be a locator pre-released by the first SFF.
  • SFF2 contains "SFF1 secondary SID".
  • the SFF1 secondary SID is the local SID of SFF1, and the locator of the SFF1 secondary SID can be located to SFF1.
  • the type of the second secondary SID may be the End type.
  • the value of Func Type of the second secondary SID may be End.
  • a binding relationship between the backup SID and the outbound interface may be established on the second SFF, and the outbound interface corresponding to the backup SID is used to establish a link with the first SF network element, and the backup SID corresponds to The outgoing interface of and the outgoing interface corresponding to the proxy SID can be different.
  • backup SID and proxy SID can be the same.
  • function of the backup SID configured on the first SFF and the function of the backup SID configured on the second SFF may be the same.
  • updating the destination address and replacing the proxy SID can be performed sequentially. For example, the destination address can be updated first, and then the proxy SID can be replaced; or the proxy SID can be replaced first, and then the destination address can be updated. In other embodiments, updating the destination address and replacing the proxy SID can also be performed in parallel, that is, updating the destination address and replacing the proxy SID can be performed at the same time.
  • Step 1603 The first SFF sends the second message.
  • the second packet After the second packet is sent from the outgoing interface of the first SFF, the second packet will be diverted to the second SFF through the first secondary SID.
  • the link between SFF1 and SF2 (the link corresponding to sid2) fails and traffic enters the SFF2 secondary SID tunnel
  • SFF1 first replaces the original SF1 proxy SID in the traffic with the backup proxy SID, and then SFF1 presses SFF2 secondary SID into the traffic, so that the traffic is drained to SFF2 through SFF2 secondary SID.
  • Step 1604 The second SFF in the service chain receives the second message, the destination address of the header of the second message includes the first secondary SID, and the first secondary SID is the local SID of the second SFF, for example, the first secondary SID SID of End type.
  • Step 1605 The second SFF locally forwards the second message according to the first secondary SID to obtain the third message.
  • the destination address of the header of the third message includes the backup SID.
  • the third message may be a message obtained after the second message is locally forwarded according to the first secondary SID.
  • Step 1606 The second SFF obtains a fourth message according to the third message, where the fourth message includes the payload of the third message and does not include the segment list.
  • This step may include: the second SFF queries the local SID table according to the destination address field of the header of the third packet, determines that the destination address of the third packet matches the backup SID, and then executes the instruction corresponding to the backup SID to obtain the first Four messages. Among them, the process of executing the instruction corresponding to the backup SID can be called the backup SID behavior.
  • the fourth message may be a message obtained after processing the third message according to the backup SID.
  • SFF2 After SFF2 receives the message, because SFF1 secondary SID is in the outer layer and backup SID is in the inner layer, SFF2 will first process the message according to the secondary SID behavior, and then continue to process the message according to the backup SID behavior .
  • SFF1 secondary SID For example, please refer to the arrow inside SFF2 in Figure 17.
  • the arrow points from SFF1 secondary SID to B-sid2, and then from B-sid2 to VM2 where SF1 is located.
  • the sid2 behavior after processing the packet, forwards it to VM2 where SF1 is located.
  • the second SFF will perform the function of the proxy SID according to the backup SID, strip the SRH of the third packet, and obtain the fourth packet.
  • Step 1607 The second SFF sends a fourth packet to the first SF network element in the service chain through the outbound interface corresponding to the backup SID.
  • Step 1608 The first SF network element receives the fourth message, and performs service function processing on the fourth message.
  • the second SFF will insert the second secondary SID into the message and refresh the message.
  • the destination address field of the header through the locator route corresponding to the second secondary SID, diverts the message back to the first SFF, causing a loop.
  • the second SFF will not enter the secondary SID process, but only point to the second SID. The forwarding of an SF network element breaks the loop.
  • the backup SID is introduced to reduce the original content of the message.
  • the proxy SID is replaced with the backup SID, so that the message can be diverted to other SFFs accessed by the SF network element through the secondary SID, or the backup SID can be used to instruct other SFFs to forward to the SF network element without entering The secondary SID process, thus avoiding traffic loops caused by other SFFs entering the secondary SID process. Therefore, the backup SID mechanism can prevent traffic loops caused by double-point failures.
  • the failure scenario of the SRV6 static service chain also includes a node failure scenario, such as a failure of an SF overall network element.
  • this embodiment provides a method for protecting the SF network element in the service chain in the event of a failure scenario, which is introduced in the following through the embodiment in FIG. 19.
  • a failure of the second SF network element is taken as an example for description. It should be understood that the embodiment in FIG. 19 focuses on the differences from the foregoing embodiment, and for steps similar to the foregoing embodiment, please refer to the foregoing embodiment, and details are not described in the embodiment in FIG. 19.
  • the method may include the following steps 1901 to 1907.
  • Step 1901 The fourth SFF in the service chain receives the fifth message, and the destination address field of the header of the fifth message includes the proxy SID corresponding to the second SF network element in the service chain.
  • the fourth SFF may be the first SFF in the embodiment of FIG. 11.
  • the fourth SFF may also be the second SFF in the embodiment of FIG. 11.
  • the fourth SFF may not be the first SFF or the second SFF, but other SFFs in the service chain, which is not limited in this embodiment.
  • the second SF network element is the SF network element accessed by the fourth SFF in the service chain. For example, if the fourth SFF is the first SFF or the second SFF in the embodiment of FIG. 11, the second SF network element may be the first SF network element in the embodiment of FIG. 11.
  • Step 1902 if the second SF network element is in a fault state, the fourth SFF updates the destination address field of the header of the fifth packet to obtain a sixth packet, and the destination address field of the sixth packet includes the bypass SID.
  • the sixth message is a message obtained after the fourth SFF processes the fifth message according to the bypass SID.
  • the IPv6 header in the sixth message includes the DA field, and the value of the DA field is bypass SID.
  • the SRH in the sixth message includes a segment list and SL. This list includes bypass SID and other SIDs. The value of SL can indicate that the currently working SID in the segment list is bypass SID.
  • the payload in the sixth message may be the original message to be processed by the SF network element.
  • the sixth packet may include the payload of the fifth packet, for example, the payload in the sixth packet may be the same as the payload in the fifth packet.
  • the bypass SID is used to divert traffic to other SF network elements other than the SF network element in a fault state, so as to realize normal forwarding of service traffic.
  • the second SF network element fails, and in addition to the second SF network element, there is a third SF network element in the service chain, and the third SF network element is connected to the third SF network element.
  • Five SFF the bypass SID may be the SID configured on the fifth SFF.
  • the bypass SID may be the local SID of the fifth SFF.
  • the bypass SID may be pre-stored in the local SID table of the fifth SFF.
  • the locator of the bypass SID is used for routing to the fifth SFF.
  • the locator of the bypass SID may be a locator pre-released by the fifth SFF.
  • SFF2 contains "Bypass SID".
  • the bypass SID is the local sid3 of SFF3, and the locator of the bypass SID can be located to SFF3.
  • the type of bypass SID may be an End type.
  • the value of Func Type of the bypass SID may be End.
  • the bypass SID specifically includes multiple implementation manners. When the bypass SID is implemented in different manners, the actions of the fourth SFF may be different. In the following, method one and method two are used as examples.
  • the bypass SID may be an End type SID separately defined on the fifth SFF.
  • the fourth SFF may also insert a bypass SID into the SRH of the fifth message, and update the destination address field of the message header of the fifth message to obtain the sixth message.
  • the bypass SID is the proxy SID corresponding to the third SF network element.
  • the bypass SID may also reuse the proxy SID corresponding to the SF network element to be jumped, that is, the proxy SID corresponding to the third SF network element.
  • the third SF network element may not insert the bypass SID into the SRH of the fifth message, but directly update For the value of the SL field in the SRH, offset the currently working SID to the proxy SID corresponding to the third SF network element, and update the destination address field of the header of the fifth message, and then forward it.
  • the third SF network element is another SF network element other than the second SF network element.
  • the third SF network element may be an SF network element to be hopped after the designated second SF network element fails.
  • the third SF network element specifically includes a variety of situations, which will be illustrated below through situations (1) to (2).
  • the third SF network element is a backup SF network element of the second SF network element.
  • the backup SF network element serves as a backup for the third SF network element.
  • the backup SF network element is a service network element.
  • the service function provided by the backup SF network element and the service function provided by the third SF network element may be the same.
  • the backup SF network element and the third SF network element may be in a dual-system hot backup relationship, the third SF network element is the master, and the backup SF network element is the slave. After the element fails, the backup SF network element can replace the third SF network element to perform service function processing.
  • the third SF network element is the next SF network element of the second SF network element in the service chain.
  • the third SF network element may be SF2.
  • the proxy SID corresponding to the third SF network element will be the first The next proxy SID of the proxy SID corresponding to the second SF network element, then the third SF network element can offset the currently working SID in the fifth message to the next proxy SID, for example, reduce the value of the SL field by one, and then Update the destination address field of the message header of the fifth message to obtain the sixth message, and forward the sixth message.
  • Method 1 If the outgoing interface corresponding to the proxy SID is in the up state and each VM where the second SF network element is located is unreachable, the fourth SFF detects that the second SF network element is in a fault state.
  • the iface-out interface bound to sid2 on SFF2 is in a physical UP state, and VM1 and VM2 running SF1 are all unreachable, then SFF2 can determine that SF1 is faulty.
  • the second mode can be, but is not limited to, the following modes 2.1 to 2.2.
  • the proxy SID and backup SID are configured on the fourth SFF.
  • the fourth SFF detects that the outgoing interface corresponding to the backup SID is in the down state, and the outgoing interface corresponding to the proxy SID is also in the down state, the fourth SFF can determine that each link with the second SF network element has been Disconnected, so the fourth SFF can determine that the second SF network element is in a fault state.
  • the backup SID on the fourth SFF can be used to prevent the traffic between the fourth SFF and the fifth SFF from generating loops.
  • the backup SID on the fourth SFF may be used to indicate that the fourth SFF does not use the third secondary SID to forward the fifth packet.
  • the third secondary SID is the local SID of the fifth SFF.
  • the relationship between the fifth SFF and the fourth SFF may be an anycast relationship.
  • the fifth SFF may be other SFFs other than the fourth SFF in the protection group, and the protection group includes multiple SFFs accessed by the second SF network element.
  • the fourth SFF there is an outbound interface to the second SF network element on the fourth SFF, and the outbound interface establishes a binding relationship with the proxy SID. If the fourth SFF detects that the outbound interface corresponding to the proxy SID is in the down state, the fourth SFF can determine that the links with the second SF network element are all disconnected, so the fourth SFF can determine that the second SF network element is in failure status.
  • Step 1903 The fourth SFF sends the sixth message.
  • the sixth message After the sixth message is sent from the outgoing interface of the fourth SFF, the sixth message will be drained to the fifth SFF through the bypass SID.
  • Step 1904 The fifth SFF in the service chain receives the sixth message.
  • Step 1905 The fifth SFF obtains the seventh message according to the sixth message, where the seventh message includes the payload of the sixth message and does not include the segment list.
  • the fifth SFF uses the destination address field to query the local SID table, and then performs the operation corresponding to the bypass SID.
  • bypass SID the actions of the fifth SFF may be different.
  • methods 1 and 2 are used as examples.
  • the action of the fifth SFF may include the following steps 1 to 2.
  • Step 1 The fifth SFF performs local forwarding processing on the sixth packet according to the bypass SID to obtain the eighth packet.
  • the destination address field of the message header of the eighth message includes the proxy SID corresponding to the third SF network element, and the eighth message may include the payload of the sixth message.
  • Step 2 The fifth SFF obtains the seventh message according to the eighth message.
  • the fifth SFF when the fifth SFF receives the sixth message, it can first query the local SID table according to the bypass SID, and determine whether the bypass SID is of the End type. Type SID action to query the IPv6 routing and forwarding table for local forwarding. After that, the fifth SFF will continue to process the message and forward it according to the proxy SID behavior.
  • the bypass SID is the proxy SID corresponding to the third SF network element.
  • the fifth SFF can directly process and forward the message according to the proxy SID behavior.
  • the fifth SFF will strip the SRH first and then send it to the third SF network element. After the third SF network element returns a message to the fifth SFF, the fifth SFF will follow the cachelist Repackage SRH.
  • Step 1906 The fifth SFF sends the seventh packet to the third SF network element through the outgoing interface corresponding to the proxy SID.
  • Step 1907 The third SF network element receives the seventh message, and performs service function processing on the seventh message.
  • the bypass SID is introduced to update the destination address field of the message header to the bypass SID, so that the message passes the bypass SID , Be diverted to other SF network elements, such as the backup SF network element outside the original path or be diverted to the next SF network element in the original path, so as to protect the business through other network elements and realize the normal forwarding of business traffic. Avoid traffic interruption due to a single node failure, and improve the reliability of the business chain.
  • the fault protection method of the service chain may include the following steps 2201 to 2209.
  • Step 2201 The first SFF in the service chain receives the first message, and the destination address of the header of the first message includes the proxy SID corresponding to the first SF network element in the service chain.
  • Step 2202 if the link between the first SFF and the first SF network element fails, the first SFF updates the destination address of the first message, and the first SFF replaces the proxy SID in the first message with the backup SID, The second message is obtained, and the destination address of the message header of the second message includes the first secondary SID.
  • Step 2203 The first SFF sends the second message.
  • Step 2204 The second SFF in the service chain receives the second message, and the destination address of the message header of the second message includes the first secondary SID.
  • the first secondary SID is the local SID of the second SFF, where the first secondary SID may be an End type SID.
  • Step 2205 The second SFF locally forwards the second message according to the first secondary SID to obtain the third message, and the destination address of the header of the third message includes the backup SID.
  • Step 2206 If the outbound interface corresponding to the backup SID fails, the second SFF updates the destination address of the third packet to obtain the eighth packet, and the destination address of the header of the eighth packet includes the bypass SID.
  • the backup SID is used to indicate that the second SFF does not update the destination address field of the message header of the second message to the second secondary SID, and the second secondary SID is the local SID of the first SFF.
  • the second secondary SID can be an End type SID; when the message carries a backup SID, it can indicate that the link between the first SFF and the first SF network element is faulty, and the second secondary SID cannot be used to enter the secondary process .
  • the second SFF can determine whether the outgoing interface corresponding to the backup SID is in the up state. If the outgoing interface corresponding to the backup SID is in the up state, the second SFF can send to the first SF network element through the outgoing interface corresponding to the backup SID. Send the message. If the outbound interface corresponding to the backup SID is also in the down state, the second SFF can enter the bypass SID process by performing the following steps.
  • the bypass SID is the local SID of the third SFF.
  • the bypass SID can be an End type SID.
  • the value of FuncType of the bypass SID may be End.
  • the third SFF is the SFF accessed by the fourth SF network element.
  • the fourth SF network element may include the following cases (1) to (2).
  • the fourth SF network element is a backup SF network element of the first SF network element.
  • the fourth SF network element is the next SF network element of the first SF network element in the service chain.
  • Step 2207 The second SFF sends the eighth message to the third SFF.
  • Step 2208 The third SFF receives the eighth message, obtains the ninth message according to the eighth message, and sends the ninth message to the fourth SF network element through the outbound interface corresponding to the proxy SID.
  • the ninth message includes the first The payload of eight packets does not include the segment list.
  • Step 2209 The fourth SF network element receives the ninth message, and performs service function processing on the ninth message.
  • the second SFF implements normal forwarding of service traffic through the bypass SID.
  • the packet can be discarded. For details, refer to the following method embodiments.
  • the method may include the following steps 2301 to 2306.
  • Step 2301 The first SFF in the service chain receives the first message, and the destination address field of the header of the first message includes the proxy SID corresponding to the first SF network element in the service chain.
  • Step 2302 if the link between the first SFF and the first SF network element fails, the first SFF updates the destination address field of the first message, and the first SFF replaces the proxy SID in the first message with the backup SID , The second message is obtained, and the destination address field of the message header of the second message includes the first secondary SID.
  • Step 2303 The first SFF sends the second message.
  • Step 2304 The second service function forwarding device SFF in the service chain receives the second message, and the destination address field of the message header of the second message includes the first secondary SID.
  • Step 2305 The second SFF performs local forwarding processing on the second packet according to the first secondary SID to obtain the third packet, and the destination address field of the packet header of the third packet includes the backup SID.
  • the backup SID is used to indicate that the second SFF does not update the destination address field of the second message to the second secondary SID, and the second secondary SID is the local SID of the first SFF.
  • the second secondary SID may be an End type SID.
  • Step 2306 If the outbound interface corresponding to the backup SID fails, and there is no bypass SID in the local SID table of the second SFF, the second SFF discards the third packet.
  • FIG. 24 is a schematic structural diagram of an SFF provided by an embodiment of the present application.
  • the SFF includes: a receiving module 2401 for performing step 1101, step 1601, step 2201, or step 2301; and an update module 2402 for performing step 1101, step 1601, step 2201, or step 2301; After performing step 1102, step 1602, step 2202, or step 2302; the sending module 2403 is used to perform step 1103, step 1603, step 2203, or step 2303.
  • the SFF further includes: a replacement module for replacing the proxy SID with the backup SID.
  • the SFF provided in the embodiment of FIG. 24 corresponds to the first SFF in the foregoing method embodiment, and each module and the foregoing other operations and/or functions in the embodiment of FIG. 24 are implemented to implement the first SFF in the method embodiment.
  • each module and the foregoing other operations and/or functions in the embodiment of FIG. 24 are implemented to implement the first SFF in the method embodiment.
  • details of the various steps and methods please refer to the above method embodiments. For brevity, details are not repeated here.
  • the SFF provided in the embodiment of FIG. 24 performs fault protection on the service chain
  • only the division of the above-mentioned functional modules is used as an example for illustration.
  • the above-mentioned function allocation can be completed by different functional modules as required. That is, the internal structure of the SFF is divided into different functional modules to complete all or part of the functions described above.
  • the SFF provided by the foregoing embodiment belongs to the same concept as the embodiment of the service chain failure protection method in the embodiment of FIG. 11, the embodiment of FIG. 16, the embodiment of FIG. 22, or the embodiment of FIG. 23.
  • the specific implementation process please refer to the method implementation. For example, I won’t repeat them here.
  • FIG 25 is a schematic structural diagram of an SFF provided by an embodiment of the present application.
  • the SFF includes: a receiving module 2501 for executing step 1104, step 1604, step 2204 or step 2304; a processing module 2502, For executing step 1105 and step 1106, or for executing step 1605 and step 1606, or for executing step 2205 and step 2206, or for executing step 2305; sending module 2503, for executing step 1107, step 1607, or step 2207 .
  • the SFF further includes: a discarding module, configured to perform step 2306.
  • the SFF provided in the embodiment of FIG. 25 corresponds to the first SFF in the foregoing method embodiment, and each module and the foregoing other operations and/or functions in the embodiment of FIG. 25 are implemented to implement the second SFF in the method embodiment.
  • each module and the foregoing other operations and/or functions in the embodiment of FIG. 25 are implemented to implement the second SFF in the method embodiment.
  • the SFF provided in the embodiment of FIG. 25 performs fault protection on the service chain
  • only the division of the above-mentioned functional modules is used as an example.
  • the above-mentioned function allocation can be completed by different functional modules as required. That is, the internal structure of the SFF is divided into different functional modules to complete all or part of the functions described above.
  • the SFF provided by the foregoing embodiment belongs to the same concept as the embodiment of the service chain failure protection method in the embodiment of FIG. 11, the embodiment of FIG. 16, the embodiment of FIG. 22, or the embodiment of FIG. 23.
  • the specific implementation process please refer to the method implementation. For example, I won’t repeat them here.
  • FIG. 26 is a schematic structural diagram of an SFF provided by an embodiment of the present application.
  • the SFF includes: a receiving module 2601, configured to perform step 1901; an update module 2602, configured to perform step 1902; and a sending module 2603, Used to perform step 1903.
  • the SFF further includes: a detection module for detecting that the second SF network element is in a fault state if the outgoing interface corresponding to the proxy SID is in the on state and each virtual machine where the second SF network element is located is unreachable Or, if at least one of the outgoing interface corresponding to the backup SID or the outgoing interface corresponding to the proxy SID has a link failure, it is detected that the second SF network element is in a failure state.
  • the SFF provided in the embodiment of FIG. 26 corresponds to the third SFF in the foregoing method embodiment, and each module and the foregoing other operations and/or functions in the embodiment of FIG. 26 are implemented to implement the third SFF in the method embodiment.
  • each module and the foregoing other operations and/or functions in the embodiment of FIG. 26 are implemented to implement the third SFF in the method embodiment.
  • the SFF provided in the embodiment of FIG. 26 performs fault protection on the service chain
  • only the division of the above-mentioned functional modules is used as an example for illustration.
  • the above-mentioned function allocation can be completed by different functional modules as required. That is, the internal structure of the SFF is divided into different functional modules to complete all or part of the functions described above.
  • the SFF provided by the above-mentioned embodiment belongs to the same concept as the embodiment of the service chain failure protection method in the embodiment of FIG. 19, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.
  • FIG. 27 is a schematic structural diagram of an SFF provided by an embodiment of the present application. As shown in FIG. 27, the SFF includes: a receiving module 2701 for performing step 1904; a processing module 2702 for performing step 1905; and a sending module 2703, Used to perform step 1907.
  • the processing module 2702 is configured to perform local forwarding processing on the sixth packet according to the bypass SID to obtain the eighth packet; and obtain the seventh packet according to the eighth packet.
  • the SFF provided in the embodiment of FIG. 27 corresponds to the fourth SFF in the foregoing method embodiment, and each module and the foregoing other operations and/or functions in the embodiment of FIG. 27 are implemented to implement the fourth SFF in the method embodiment.
  • each module and the foregoing other operations and/or functions in the embodiment of FIG. 27 are implemented to implement the fourth SFF in the method embodiment.
  • the SFF provided in the embodiment of FIG. 27 performs fault protection on the service chain
  • only the division of the above-mentioned functional modules is used as an example for illustration.
  • the above-mentioned function allocation can be completed by different functional modules as required. That is, the internal structure of the SFF is divided into different functional modules to complete all or part of the functions described above.
  • the SFF provided by the above-mentioned embodiment belongs to the same concept as the embodiment of the service chain failure protection method in the embodiment of FIG. 19, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.
  • the embodiment of the present application provides an SFF, the SFF includes a processor, and the processor is configured to execute instructions so that the SFF executes the service chain failure protection method provided by the foregoing various method embodiments.
  • the processor may be a network processor (Network Processor, NP for short), a central processing unit (CPU), an application-specific integrated circuit (ASIC), or a solution used to control the application.
  • NP Network Processor
  • CPU central processing unit
  • ASIC application-specific integrated circuit
  • the processor can be a single-CPU processor or a multi-CPU processor. The number of processors can be one or more.
  • the SFF may also include a memory.
  • the memory can be read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (RAM), or other types that can store information and instructions
  • the dynamic storage device can also be electrically erasable programmable read-only memory (electrically erasable progra business chain failure protectionable read-only memory, EEPROM), compact disc read-only Memory, CD-ROM or other Optical disc storage, optical disc storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store desired programs in the form of instructions or data structures Code and any other medium that can be accessed by the computer, but not limited to this.
  • the memory and the processor can be set separately, and the memory and the processor can also be integrated.
  • the SFF may also include a transceiver.
  • the transceiver is used to communicate with other devices or communication networks, and the way of network communication can be but not limited to Ethernet, wireless access network (RAN), wireless local area networks (WLAN), etc.
  • RAN wireless access network
  • WLAN wireless local area networks
  • the foregoing SFF or SF network element may be implemented as a network device, and a network processor in the network device may execute each step of the foregoing method embodiment.
  • the network device can be a router, a switch, or a firewall, and of course, it can also be other network devices that support the message forwarding function.
  • FIG. 28 shows a schematic structural diagram of a network device provided by an exemplary embodiment of the present application, and the network device may be configured as an SFF.
  • the network device 2800 includes: a main control board 2810, an interface board 2830, a switching network board 2820, and an interface board 2840.
  • the main control board 2810 is used to perform functions such as system management, equipment maintenance, and protocol processing.
  • the switching network board 2820 is used to complete data exchange between various interface boards (interface boards are also called line cards or service boards).
  • the interface boards 2830 and 2840 are used to provide various service interfaces (for example, an Ethernet interface, a POS interface, etc.), and implement data packet forwarding.
  • the main control board 2810, the interface boards 2830 and 2840, and the switching network board 2820 are connected to the system backplane through the system bus to achieve intercommunication.
  • the central processing unit 2831 on the interface board 2830 is used to control and manage the interface board and communicate with the central processing unit 2811 on the main control board 2810.
  • the physical interface card 2833 receives the first message and sends it to the network processor 2832, and the network processor 2832 updates the destination address field to obtain the second message. According to the information such as the outgoing interface, it will complete the chain After the path layer encapsulation, the second message is sent from the physical interface card 2833, so that the second message is transmitted to the second SFF.
  • the network processor 2832 replaces the proxy SID in the first message with the backup SID.
  • the physical interface card 2833 receives the second packet and sends it to the network processor 2832.
  • the network processor 2832 performs local forwarding processing on the second packet according to the first subordinate SID; Three messages get the fourth message.
  • the fourth packet is sent from the physical interface card 2833, so that the fourth packet is transmitted to the first SF network element.
  • the physical interface card 2833 receives the fifth message and sends it to the network processor 2832, and the network processor 2832 updates the destination address field to obtain the sixth message. According to the outgoing interface and other information, After the link layer encapsulation is completed, the sixth message is sent from the physical interface card 2833, so that the sixth message is transmitted to the fifth SFF.
  • the physical interface card 2833 receives the sixth packet and sends it to the network processor 2832, and the network processor 2832 obtains the seventh packet according to the sixth packet. According to the information such as the outgoing interface, after the link layer encapsulation is completed, the seventh message is sent from the physical interface card 2833, so that the seventh message is transmitted to the third SF network element.
  • the operations on the interface board 2840 in this embodiment are consistent with the operations on the interface board 2830, and will not be repeated for the sake of brevity.
  • the network device 2800 of this embodiment may correspond to the SFF in the foregoing method embodiments, and the main control board 2810, interface board 2830, and/or 2840 in the network device 2800 may implement the SFF in the foregoing method embodiments. For the sake of brevity, the functions and/or various steps implemented will not be repeated here.
  • main control boards there may be one or more main control boards, and when there are more than one, it may include the main main control board and the standby main control board.
  • the switching network board may not exist, or there may be one or more. When there are more than one, the load sharing and redundant backup can be realized together. Under the centralized forwarding architecture, the network equipment may not need to switch the network board, and the interface board undertakes the processing function of the business data of the entire system.
  • the network device can have at least one switching network board, and data exchange between multiple interface boards is realized through the switching network board, providing large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of network equipment with a distributed architecture are greater than those with a centralized architecture.
  • the form of the network device may also have only one board, that is, there is no switching network board, and the functions of the interface board and the main control board are integrated on the one board.
  • the central processing unit and the main control board on the interface board The central processing unit on the board can be combined into a central processing unit on the same board to perform the functions of the two superimposed.
  • This type of equipment has low data exchange and processing capabilities (for example, low-end switches or routers and other networks) equipment).
  • the specific architecture used depends on the specific networking deployment scenario, and there is no restriction here.
  • FIG. 29 is a schematic structural diagram of the interface board 2830 in the above-mentioned network device shown in FIG. 28 provided by an embodiment of the present application.
  • the network device where the interface board 2830 is located can be any node in the system architecture embodiment in the above figure, such as It can be SFF or SF network element, etc.
  • the interface board 2830 may include a physical interface card (PIC) 2930, a network processor (NP) 2910, and a traffic management module (traffic management) 2920.
  • PIC physical interface card
  • NP network processor
  • traffic management traffic management
  • PIC is a physical interface card (physical interface card), used to realize the docking function of the physical layer, the original traffic enters the interface board of the network device from this, and the processed message is sent from the PIC card.
  • the network processor NP 2910 is used to implement message forwarding processing.
  • the processing of uplink messages includes: processing of the inbound interface of the message, forwarding table lookup (such as the related content of the first forwarding table or the second forwarding table in the above embodiment); the processing of downlink messages: forwarding table Search (for example, related content related to the first forwarding table or the second forwarding table in the above embodiment) and so on.
  • Traffic Management TM 2920 is used to implement QoS, wire-speed forwarding, large-capacity buffering, queue management and other functions.
  • upstream traffic management includes: upstream QoS processing (such as congestion management and queue scheduling, etc.) and slicing processing;
  • downstream traffic management includes: packet processing, multicast replication, and downstream QoS processing (such as congestion management and queue scheduling, etc.) ).
  • the multiple interface boards 2830 can communicate through the switching network 2940.
  • FIG. 29 only shows a schematic processing flow or module inside the NP, and the processing sequence of each module in a specific implementation is not limited to this, and other modules or processing flows can be deployed as needed in practical applications. The embodiment of the application does not limit this.
  • the foregoing SFF may be implemented as a computing device, and a central processing unit in the computing device may execute each step of the foregoing method embodiment.
  • the computing device may be a host, a server, a personal computer, or the like.
  • the computing device can be realized by a general bus architecture.
  • FIG. 30 shows a schematic structural diagram of a computing device provided by an exemplary embodiment of the present application.
  • the computing device may be any device involved in all or part of the content described in the method embodiment, for example, an SFF or SF network element.
  • the computing device includes at least one processor 3001, communication bus 3002, memory 3003, and at least one communication interface 3004.
  • the processor 3001 may be a general-purpose central processing unit (central processing unit, CPU), network processor (NP), microprocessor, or may be one or more integrated circuits used to implement the solution of the present application, for example, a dedicated integrated circuit Circuit (application-specific integrated circuit, ASIC), programmable logic device (progra service chain failure protectionable logic device, PLD) or a combination thereof.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • PLD programmable logic device
  • the above-mentioned PLD can be a complex programmable logic device (complex progra service chain fail-safe logic device, CPLD), field-progra service chain fail-safe gate array (FPGA), general-purpose array logic ( generic array logic, GAL) or any combination thereof.
  • the communication bus 3002 is used to transfer information between the above-mentioned components.
  • the communication bus 3002 can be divided into an address bus, a data bus, a control bus, and so on. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.
  • the memory 3003 can be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, or it can be a random access memory (RAM) or can store information and instructions
  • Other types of dynamic storage devices can also be electrically erasable programmable read-only memory (electrically erasable progra business chain failure protectionable read-only Memory, EEPROM), compact disc read-only memory, CD- ROM) or other optical disc storage, optical disc storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store instructions or data structures And any other medium that can be accessed by the computer in the form of desired program code, but is not limited to this.
  • the memory 3003 may exist independently and is connected to the processor 3001 through the communication bus 3002.
  • the memory 3003 may also be integrated with the processor 3001.
  • the communication interface 3004 uses any device such as a transceiver for communicating with other devices or communication networks.
  • the communication interface 3004 includes a wired communication interface, and may also include a wireless communication interface.
  • the wired communication interface may be, for example, an Ethernet interface.
  • the Ethernet interface can be an optical interface, an electrical interface, or a combination thereof.
  • the wireless communication interface may be a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof.
  • WLAN wireless local area network
  • the processor 3001 may include one or more CPUs, such as CPU0 and CPU1 as shown in FIG. 30.
  • the computing device may include multiple processors, such as a processor 3001 and a processor 3005 as shown in FIG. 30.
  • processors can be a single-core processor (single-CPU) or a multi-core processor (multi-CPU).
  • the processor here may refer to one or more devices, circuits, and/or processing cores for processing data (such as computer program instructions).
  • the computer device may also include an output device and an input device.
  • the output device communicates with the processor 3001 and can display information in a variety of ways.
  • the output device may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector (projector).
  • the input device communicates with the processor 3001 and can receive user input in a variety of ways.
  • the input device can be a mouse, a keyboard, a touch screen device, or a sensor device.
  • the memory 3003 is used to store the program code 3010 for executing the solution of the present application, and the processor 3001 can execute the program code 3010 stored in the memory 3003. That is, the computing device can implement the service chain failure protection method provided by the method embodiment through the processor 3001 and the program code 3010 in the memory 3003.
  • the computing device in the embodiments of the present application may correspond to the SFF in the foregoing method embodiments, and the processor 3010, transceiver 3020, etc. in the computing device may implement the functions and/or functions of the SFF in the foregoing method embodiments. Or the various steps and methods implemented. For the sake of brevity, I will not repeat them here.
  • the above-mentioned SFF may be implemented as a virtualized device.
  • the virtualization device may be a virtual machine (English: Virtual Machine, VM) running a program for sending a message function, and the virtual machine is deployed on a hardware device (for example, a physical server).
  • a virtual machine refers to a complete computer system with complete hardware system functions that is simulated by software and runs in a completely isolated environment.
  • the virtual machine can be configured as SFF.
  • SFF can be implemented based on a general physical server combined with Network Functions Virtualization (NFV) technology.
  • NFV Network Functions Virtualization
  • SFF is a virtual host, virtual router or virtual switch. Those skilled in the art can combine NFV technology to virtualize an SFF with the above-mentioned functions on a general physical server by reading this application. I won't repeat them here.
  • the virtualization device may be a container, and the container is an entity used to provide an isolated virtualization environment.
  • the container may be a docker container.
  • the container can be configured as SFF.
  • SFF can be created through the corresponding image.
  • two container instances can be created for proxy-container through the image of proxy-container (a container that provides proxy services), namely, the container instance proxy-container1, the container instance proxy- container2, providing the container instance proxy-container1 as the first SFF, and providing the container instance proxy-container2 as the fourth SFF.
  • SFF can run using the kernel of a physical machine, and multiple SFFs can share the operating system of the physical machine. Different SFFs can be isolated through container technology.
  • the containerized SFF can run in a virtualized environment, for example, it can run in a virtual machine, and the containerized SFF can also run directly in a physical machine.
  • the virtualization device can be a Pod, and the Pod is Kubernetes (Kubernetes is a container orchestration engine open sourced by Google, referred to as K8s in English) as the basic unit for deploying, managing, and orchestrating containerized applications.
  • Pod can include one or more containers. Each container in the same Pod is usually deployed on the same host, so each container in the same Pod can communicate through the host, and can share the storage resources and network resources of the host.
  • Pod can be configured as SFF.
  • a container as a service can be instructed to create a Pod, and provide the Pod as an SFF.
  • SFF can also be other virtualization devices, so I won't list them all here.
  • the above-mentioned SFF may also be implemented by a general-purpose processor.
  • the form of the general-purpose processor may be a chip.
  • a general-purpose processor that implements SFF includes a processing circuit and an input interface and an output interface that are internally connected and communicated with the processing circuit.
  • the processing circuit is used to execute the message generation steps in the foregoing method embodiments through the input interface.
  • the processing circuit is configured to execute the receiving steps in the foregoing method embodiments through the input interface, and the processing circuit is configured to execute the sending steps in the foregoing method embodiments through the output interface.
  • the general-purpose processor may further include a storage medium, and the processing circuit is configured to execute the storage steps in each of the foregoing method embodiments through the storage medium.
  • the storage medium may store instructions executed by the processing circuit, and the processing circuit is configured to execute the instructions stored in the storage medium to execute the foregoing method embodiments.
  • the SFF in the embodiment of this application can also be implemented by using the following: one or more field programmable gate arrays (full English name: field-progra service chain failure protectionable gate array, English Abbreviation: FPGA), programmable logic device (English full name: progra business chain failure protectionable logic device, English abbreviation: PLD), controller, state machine, gate logic, discrete hardware components, any other suitable circuits, or Any combination of circuits that perform the various functions described throughout this application.
  • field programmable gate arrays full English name: field-progra service chain failure protectionable gate array, English Abbreviation: FPGA
  • programmable logic device English full name: progra business chain failure protectionable logic device, English abbreviation: PLD
  • controller state machine
  • gate logic discrete hardware components
  • the above-mentioned SFF may also be implemented using a computer program product.
  • an embodiment of the present application provides a computer program product, which when the computer program product runs on a first SFF, causes the first SFF to execute the service chain failure protection method in the foregoing method embodiment.
  • the embodiment of the present application also provides a computer program product, which when the computer program product runs on the second SFF, causes the second SFF to execute the failure protection method of the service chain in the foregoing method embodiment.
  • the embodiment of the present application provides a computer program product. When the computer program product runs on the fourth SFF, the fourth SFF executes the failure protection method of the service chain in the foregoing method embodiment.
  • the embodiment of the present application also provides a computer program product, which when the computer program product runs on the fifth SFF, causes the fifth SFF to execute the failure protection method of the service chain in the foregoing method embodiment.
  • the disclosed system, device, and method can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the unit is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components may be combined or may be Integrate into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.
  • the unit described as a separate component may or may not be physically separated, and the component displayed as a unit may or may not be a physical unit, that is, it may be located in one place, or may also be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments of the present application.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium.
  • the technical solution of this application is essentially or the part that contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium. It includes several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disks or optical disks and other media that can store program codes. .
  • the above embodiments it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof.
  • software it can be implemented in the form of a computer program product in whole or in part.
  • the computer program product includes one or more computer program instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer program instructions can be passed from a website, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a digital video disc (DVD), or a semiconductor medium (for example, a solid state hard disk).

Landscapes

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

Abstract

本申请提供了一种业务链的故障保护方法、装置、设备、系统及存储介质,属于通信技术领域。本申请在SRV6静态业务链场景下,当SF网元与接入的一个SFF之间的链路故障时,通过引入secondary SID(从属SID),将报文的报文头的目的地址字段更新为secondary SID,使得报文通过secondary SID,被引流至该SF网元接入的其他SFF,从而实现SFF与SF网元之间的链路故障保护,避免流量由于单点链路故障导致中断,提升了业务链的可靠性。

Description

业务链的故障保护方法、装置、设备、系统及存储介质
本申请要求于2020年01月03日提交的申请号为202010004825.6、发明名称为“业务链的故障保护方法、装置、设备、系统及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别涉及一种业务链的故障保护方法、装置、设备、系统及存储介质。
背景技术
业务链(英文:service function chain,简称:SFC,也称业务功能链)是一种为应用层提供有序服务的技术。SFC会在报文中携带业务链路径信息,通过业务链路径信息,指明报文待经过的路径,以使报文按照指定的路径依次经过各个设备。如此,可以将各个设备提供的服务在逻辑层面上联接起来,从而形成一个有序的服务组合。
SFC的架构包括流分类器(英文:classifier,简称:CF)、业务功能(英文:service function,简称:SF)、SFC代理(英文:SFC Proxy)、业务功能转发设备(英文:Service function Forwarder,简称:SFF)等节点。其中,SFF用于根据报文中携带的业务链路径信息,将从网络中收到的报文转发到SFF关联的若干个SF上。SF用于从SFF接收报文,对报文进行业务功能处理,将处理后的报文返回给同一个SFF。在逻辑上,SFC代理位于SFF及其关联的若干个不感知业务链路径信息的SF之间,SFC代理可以代表SF接收来自SFF的报文,删除业务链路径信息,转发给SF。在物理上,SFF和SFC代理通常集成在同一设备上。
时下,随着分段路由(英文:segment routing,简称:SR)的不断演进,SFC技术中的业务链路径信息通常基于SR技术中的段标识(Segment ID,SID)实现。具体地,使用SR技术传输SFC中的报文时,报文中会包括段列表(segment list),该段列表包括有序排列的SID,通过SID可以指明报文要经过的节点或链路,通过SID的排列顺序可以指明业务链的路径顺序。其中,在使用互联网协议第6版(英文:internet protocol version 6,简称:IPv6)作为SR的转发面时,段列表中的每个SID的形式为IPv6地址,段列表通过报文中的分段路由头(英文:segment routing header,简称:SRH)携带;在使用多协议标签交换(英文:Multi-Protocol Label Switching,简称:MPLS)作为SR的转发面时,段列表为MPLS中的标签栈。
在很多场景下,业务链中的SF是不支持SR(SR-unaware)的设备,即,SF本身可能无法识别段列表。考虑到这种情况,若SFF接收到待发往SF的报文,SFF可以发挥SFC代理的功能,为SF执行代理操作。具体的,SFF会从接收到的报文中删除段列表,在缓存(cache)中缓存短列表,再通过SFF与SF之间的链路,将不包含段列表的报文转发给SF。而SF接收到报文时,即使SF是SR-unaware的设备,由于SF接收到的报文已经不包含SRH,因此 也可以识别报文并进行业务功能处理。
在目前的业务链技术中,当SFF接收到待发往SF的报文时,若SFF与SF之间的链路发生故障,那么报文就会无法到达SF,导致流量中断。
发明内容
本申请实施例提供了一种业务链的故障保护方法、装置、设备、系统及存储介质,能够避免业务流量由于故障而中断,提升业务链的可靠性。所述技术方案如下:
第一方面,提供了一种业务链的故障保护方法,在该方法中,业务链中的第一业务功能转发设备SFF接收第一报文,所述第一报文的报文头的目的地址字段包括所述业务链中第一业务功能SF网元对应的代理段标识SID,所述第一SFF是所述第一SF网元接入的SFF;若所述第一SFF与所述第一SF网元之间的链路发生故障,所述第一SFF更新所述第一报文的所述目的地址字段,得到第二报文,所述第二报文的目的地址字段包括第一从属SID,所述第一从属SID为所述业务链中的第二SFF本地的SID,所述第二SFF为保护组中所述第一SFF之外的其他SFF,所述保护组包括所述第一SF网元接入的多个SFF,所述第二报文包括所述第一报文的载荷;所述第一SFF发送所述第二报文。
通过该方法,在SRV6静态业务链场景下,当SF网元与接入的一个SFF之间的链路故障时,通过引入secondary SID(从属SID),将报文的报文头的目的地址字段更新为secondary SID,使得报文通过secondary SID,被引流至该SF网元接入的其他SFF,从而实现SFF与SF网元之间的链路故障保护,避免流量由于单点链路故障导致中断,提升了业务链的可靠性。
可选地,所述第一从属SID的类型为端点End类型。
通过选择End类型的SID作为第一secondary SID,相对于选择End.X类型的SID作为第一secondary SID的方式而言,可以避免配置End.X SID时指定下一跳和出接口的操作,从而避免由于End.X SID由于兼具引流和指定出接口的功能,替代了原有的代理SID(proxy SID)的角色,导致要在第一SFF上配置大量的secondary SID,而不是全局唯一的secondary SID的情况。另外,也由于第一secondary SID为End类型的SID,避免后续对backup SID的规划造成较大约束。
可选地,所述方法还包括:所述第一SFF将所述第一报文中的所述代理SID替换为备份SID,所述备份SID用于指示所述第二SFF不将所述第二报文的目的地址字段更新为第二从属SID,所述第二从属SID为所述第一SFF本地的SID。
通过这种可选方式,在SRV6静态业务链场景下,即使SF网元与双归接入的两个SFF之间的链路均故障,通过引入backup SID(备份SID),将报文原本包含的proxy SID替换为backup SID,使得报文既可以通过secondary SID(从属SID),被引流至该SF网元接入的其他SFF,又可以通过backup SID,指示其他SFF作指向SF网元的转发,而不再进入secondary SID流程,因此避免了其他SFF进入secondary SID流程后造成的流量环路。因此,通过backup SID机制,可以防止双点故障引起的流量环路。
可选地,所述保护组为任播组,所述任播组中不同SFF发布的代理SID为任播SID。
第二方面,提供了一种业务链的故障保护方法,在该方法中,业务链中的第二SFF接收第二报文,所述第二报文的报文头的目的地址字段包括第一从属SID,所述第一从属SID为所述第二SFF本地的SID;所述第二SFF根据所述第一从属SID,对所述第二报文进行本地 转发处理,得到第三报文;所述第二SFF根据所述第三报文得到第四报文,所述第四报文包括所述第三报文的载荷且不包括段列表;所述第二SFF向所述业务链中的第一SF网元发送所述第四报文。
通过该方法,在SRV6静态业务链场景下,当SF网元与接入的一个SFF之间的链路故障时,通过引入secondary SID(从属SID),将报文的报文头的目的地址字段更新为secondary SID,使得报文通过secondary SID,被引流至该SF网元接入的其他SFF,从而实现SFF与SF网元之间的链路故障保护,避免流量由于单点链路故障导致中断,提升了业务链的可靠性。
可选地,所述第一从属SID的类型为端点End类型。
通过选择End类型的SID作为第一secondary SID,相对于选择End.X类型的SID作为第一secondary SID的方式而言,可以避免配置End.X SID时指定下一跳和出接口的操作,从而避免由于End.X SID由于兼具引流和指定出接口的功能,替代了原有的proxy SID的角色,导致要在第一SFF上配置大量的secondary SID,而不是全局唯一的secondary SID的情况。另外,也由于第一secondary SID为End类型的SID,避免后续对backup SID(备份SID)的规划造成较大约束。
可选地,所述第三报文的报文头的所述目的地址字段包括所述第一SF网元对应的代理SID,所述第二SFF向所述第一SF网元发送所述第四报文,包括:所述第二SFF通过所述代理SID对应的出接口,向所述第一SF网元发送所述第四报文。
可选地,所述第三报文的报文头的目的地址字段包括备份SID,所述备份SID用于指示所述第二SFF不将所述第二报文的目的地址字段更新为第二从属SID,所述第二从属SID为所述第一SFF本地的SID,所述第二SFF向所述第一SF网元发送所述第四报文,包括:所述第二SFF通过所述备份SID对应的出接口,向所述第一SF网元发送所述第四报文。
通过这种可选方式,在SRV6静态业务链场景下,即使SF网元与双归接入的两个SFF之间的链路均故障,通过引入backup SID(备份SID),将报文原本包含的proxy SID替换为backup SID,使得报文既可以通过secondary SID(从属SID),被引流至该SF网元接入的其他SFF,又可以通过backup SID,指示其他SFF作指向SF网元的转发,而不再进入secondary SID流程,因此避免了其他SFF进入secondary SID流程后造成的流量环路。因此,通过backup SID机制,可以防止双点故障引起的流量环路。
可选地,所述第二从属SID的类型为End类型。
可选地,所述第三报文的报文头的目的地址字段包括备份SID,所述方法还包括:若所述备份SID对应的出接口故障,所述第二SFF更新所述第三报文的所述目的地址字段,得到第八报文,所述第八报文的报文头的目的地址字段包括引流SID,所述引流SID为第三SFF本地的SID;所述第二SFF发送所述第八报文。
通过这种可选方式,在SRV6静态业务链场景下,当SF网元发生故障时,通过引入bypass SID(引流SID),将报文的报文头的目的地址字段更新为bypass SID,使得报文通过bypass SID,被引流至其他SF网元,比如原有路径外的备份SF网元或被引流至原有路径内的下一个SF网元,从而通过其他网元进行业务保护,实现业务流量的正常转发,避免流量由于单个节点故障而导致中断,提升了业务链的可靠性。
可选地,所述方法还包括:若所述备份SID对应的出接口故障,且所述第二SFF的本地SID表中没有所述引流SID,所述第二SFF丢弃所述第三报文。
第三方面,提供了一种业务链的故障保护方法,在该方法中,业务链中的第四业务功能转发设备SFF接收第五报文,所述第五报文的报文头的目的地址包括所述业务链中的第二SF网元对应的代理段标识SID,所述第四SFF是所述第二SF接入的SFF;若所述第二SF网元处于故障状态,所述第四SFF更新所述第五报文的所述目的地址字段,得到第六报文,所述第六报文的报文头的所述目的地址包括引流SID,所述引流SID为第五SFF本地的SID,所述第五SFF为第三SF网元接入的SFF,所述第三SF网元为所述第二SF网元之外的其他SF网元,所述第六报文包括所述第五报文的载荷;所述第四SFF发送所述第六报文。
在SRV6静态业务链场景下,当SF网元发生故障时,通过引入bypass SID,将报文的报文头的目的地址字段更新为bypass SID(引流SID),使得报文通过bypass SID,被引流至其他SF网元,比如原有路径外的备份SF网元或被引流至原有路径内的下一个SF网元,从而通过其他网元进行业务保护,实现业务流量的正常转发,避免流量由于单个节点故障而导致中断,提升了业务链的可靠性。
可选地,所述引流SID为End类型的SID;或者,所述引流SID为所述第三SF网元对应的代理SID。
可选地,所述方法还包括:若代理SID对应的出接口处于开启状态,且所述第二SF网元所在的每个虚拟机均不可达,所述第四SFF检测到所述第二SF网元处于故障状态,所述代理SID用于指示为所述第二SF网元执行代理操作;或,若备份SID对应的出接口或代理SID对应的出接口中的至少一项发生链路故障,所述第四SFF检测到所述第二SF网元处于故障状态,所述备份SID用于指示所述第四SFF不将所述第二报文的目的地址字段更新为第三从属SID,所述第三从属SID为第五SFF本地的SID,所述第五SFF为保护组中所述第四SFF之外的其他SFF,所述保护组包括所述第二SF网元接入的多个SFF。
可选地,所述第三从属SID为End类型的SID。
可选地,所述第三SF网元为所述第二SF网元的备份SF网元;或,所述第三SF网元为所述业务链中所述第二SF网元的下一个SF网元。
第四方面,提供了一种业务链的故障保护方法,在该方法中,业务链中的第五业务功能转发设备SFF接收第六报文,所述第六报文的报文头的目的地址字段包括引流SID,所述引流SID为第五SFF本地的SID,所述第五SFF是第三业务功能SF网元接入的SFF;所述第五SFF根据所述第六报文得到第七报文,所述第七报文包括所述第六报文的载荷且不包括段列表;所述第五SFF向所述第三SF网元发送所述第七报文。
在SRV6静态业务链场景下,当SF网元发生故障时,通过引入bypass SID,将报文的报文头的目的地址字段更新为bypass SID(引流SID),使得报文通过bypass SID,被引流至其他SF网元,比如原有路径外的备份SF网元或被引流至原有路径内的下一个SF网元,从而通过其他网元进行业务保护,实现业务流量的正常转发,避免流量由于单个节点故障而导致中断,提升了业务链的可靠性。
可选地,引流SID为End类型的SID;或,引流SID为所述第三SF网元对应的代理SID。
可选地,所述第五SFF根据所述第六报文得到第七报文,包括:所述第五SFF根据所述bypass SID,对所述第六报文进行本地转发处理,得到第八报文,所述第八报文的报文头的目的地址字段包括所述第三SF网元对应的代理SID,所述第八报文包括所述第六报文的载荷;所述第五SFF根据所述第八报文得到所述第七报文。
可选地,所述第三SF网元为第二SF网元的备份SF网元,所述第二SF网元为处于故障状态的SF网元;或,所述第三SF网元为所述业务链中所述第二SF网元的下一个SF网元。
第五方面,提供了一种SFF,该SFF具有实现上述第一方面或第一方面任一种可选方式中业务链的故障保护的功能。该SFF包括至少一个模块,至少一个模块用于实现上述第一方面或第一方面任一种可选方式所提供的业务链的故障保护方法。
可选地,所述第一从属SID的类型为端点End类型。
可选地,所述保护组为任播组,所述任播组中不同SFF发布的代理SID为任播SID。
第五方面提供的SFF的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第六方面,提供了一种SFF,该SFF具有实现上述第二方面或第二方面任一种可选方式中业务链的故障保护的功能。该SFF包括至少一个模块,至少一个模块用于实现上述第二方面或第二方面任一种可选方式所提供的业务链的故障保护方法。
可选地,所述第一从属SID的类型为End类型。
可选地,所述SFF还包括:丢弃模块,用于若所述备份SID对应的出接口故障,且本地SID表中没有所述引流SID,丢弃所述第三报文。
第六方面提供的SFF的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第七方面,提供了一种SFF,该SFF具有实现上述第三方面或第三方面任一种可选方式中业务链的故障保护的功能。该SFF包括至少一个模块,至少一个模块用于实现上述第三方面或第三方面任一种可选方式所提供的业务链的故障保护方法。
可选地,所述引流SID为端点End类型的SID;或者,所述引流SID为所述第三SF网元对应的代理SID。
可选地,所述第三SF网元为所述第二SF网元的备份SF网元;或,所述第三SF网元为所述业务链中所述第二SF网元的下一个SF网元。
第七方面提供的SFF的具体细节可参见上述第三方面或第三方面任一种可选方式,此处不再赘述。
第八方面,提供了一种SFF,该SFF具有实现上述第四方面或第四方面任一种可选方式中业务链的故障保护的功能。该SFF包括至少一个模块,至少一个模块用于实现上述第四方面或第四方面任一种可选方式所提供的业务链的故障保护方法。
可选地,所述引流SID为端点End类型的SID;或者,所述引流SID为所述第三SF网元对应的代理SID。
可选地,所述第三SF网元为第二SF网元的备份SF网元,所述第二SF网元为处于故障状态的SF网元;或,所述第三SF网元为所述业务链中所述第二SF网元的下一个SF网元。
第八方面提供的SFF的具体细节可参见上述第四方面或第四方面任一种可选方式,此处不再赘述。
第九方面,提供了一种SFF,该SFF包括处理器,该处理器用于执行指令,使得该SFF执行上述第一方面或第一方面任一种可选方式所提供的业务链的故障保护方法。第九方面提供的SFF的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第十方面,提供了一种SFF,该SFF包括处理器,该处理器用于执行指令,使得该SFF 执行上述第二方面或第二方面任一种可选方式所提供的业务链的故障保护方法。第十方面提供的SFF的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第十一方面,提供了一种SFF,该SFF包括处理器,该处理器用于执行指令,使得该SFF执行上述第三方面或第三方面任一种可选方式所提供的业务链的故障保护方法。第十一方面提供的SFF的具体细节可参见上述第三方面或第三方面任一种可选方式,此处不再赘述。
第十二方面,提供了一种SFF,该SFF包括处理器,该处理器用于执行指令,使得该SFF执行上述第四方面或第四方面任一种可选方式所提供的业务链的故障保护方法。第十二方面提供的SFF的具体细节可参见上述第四方面或第四方面任一种可选方式,此处不再赘述。
第十三方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使SFF执行上述第一方面或第一方面任一种可选方式所提供的业务链的故障保护方法。
第十四方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使SFF执行上述第二方面或第二方面任一种可选方式所提供的业务链的故障保护方法。
第十五方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使SFF执行上述第三方面或第三方面任一种可选方式所提供的业务链的故障保护方法。
第十六方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使SFF执行上述第四方面或第四方面任一种可选方式所提供的业务链的故障保护方法。
第十七方面,提供了一种计算机程序产品,当该计算机程序产品在SFF上运行时,使得SFF执行上述第一方面或第一方面任一种可选方式所提供的业务链的故障保护方法。
第十八方面,提供了一种计算机程序产品,当该计算机程序产品在SFF上运行时,使得SFF执行上述第二方面或第二方面任一种可选方式所提供的业务链的故障保护方法。
第十九方面,提供了一种计算机程序产品,当该计算机程序产品在SFF上运行时,使得SFF执行上述第三方面或第三方面任一种可选方式所提供的业务链的故障保护方法。
第二十方面,提供了一种计算机程序产品,当该计算机程序产品在SFF上运行时,使得SFF执行上述第四方面或第四方面任一种可选方式所提供的业务链的故障保护方法。
第二十一方面,提供了一种业务链的故障保护系统,该业务链的故障保护系统包括上述上述第五方面或第五方面任一种可选方式提供的SFF,该业务链的故障保护系统还包括上述上述第六方面或第六方面任一种可选方式提供的SFF。
第二十二方面,提供了一种业务链的故障保护系统,该业务链的故障保护系统包括上述上述第七方面或第七方面任一种可选方式提供的SFF,该业务链的故障保护系统还包括上述上述第八方面或第八方面任一种可选方式提供的SFF。
附图说明
图1是本申请实施例提供的一种SFC的系统架构图;
图2是本申请实施例提供的一种SRv6报文的示意图;
图3是本申请实施例提供的一种SRH的示意图;
图4是本申请实施例提供的一种SRv6 SID的示意图;
图5是本申请实施例提供的一种End SID的示意图;
图6是本申请实施例提供的一种基于End SID的转发流程示意图;
图7是本申请实施例提供的一种End.X SID的示意图;
图8是本申请实施例提供的一种基于End.X SID的转发流程示意图;
图9是本申请实施例提供的一种SRv6业务链的转发流程示意图;
图10是本申请实施例提供的一种业务链的故障场景的示意图;
图11是本申请实施例提供的一种业务链的故障保护方法的流程图;
图12是本申请实施例提供的一种业务链中SFF至SF之间的链路故障场景下转发报文的示意图;
图13是本申请实施例提供的一种SFF的SID的示意图;
图14是本申请实施例提供的一种业务链中双链路故障场景下出现环路的示意图;
图15是本申请实施例提供的一种SFF的SID的示意图;
图16是本申请实施例提供的一种业务链的故障保护方法的流程图;
图17是本申请实施例提供的一种业务链中双链路故障场景下转发报文的示意图;
图18是本申请实施例提供的一种SFF的SID的示意图;
图19是本申请实施例提供的一种业务链的故障保护方法的流程图;
图20是本申请实施例提供的一种业务链中SF网元故障场景下转发报文的示意图;
图21是本申请实施例提供的一种SFF的SID的示意图;
图22是本申请实施例提供的一种业务链的故障保护方法的流程图;
图23是本申请实施例提供的一种业务链的故障保护方法的流程图;
图24是本申请实施例提供的一种SFF的结构示意图;
图25是本申请实施例提供的一种SFF的结构示意图;
图26是本申请实施例提供的一种SFF的结构示意图;
图27是本申请实施例提供的一种SFF的结构示意图;
图28是本申请实施例提供的一种网络设备的结构示意图;
图29是本申请实施例提供的一种接口板的结构示意图;
图30是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一图像可以被称为第二图像,并且类似地,第二图像可以被称为第一图像。第一图像和第二图像都可以是图像,并且在某些情况下,可以是单独且不同的图像。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。
应理解,在本文中对各种示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”、“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
首先,对本申请涉及的一些技术术语进行介绍。
传统电信网络的业务链:数据报文在网络中传递时,往往需要经过各种各样的服务节点,从而保证网络能够按照预先的规划为用户提供安全、快速、稳定的服务。这些服务节点包括而不限于防火墙(Fire Wall,FW)、负载均衡(Load Balancer,LB)、入侵防御系统(Intrusion Prevention System,IPS)等,网络流量需要按照业务逻辑所要求的既定顺序经过这些服务节点,来实现所需要的业务。而传统电信网络的业务链中,通过硬件设备上输入复杂的命令行进行策略引流实现,难于运维及变化,同时对VAS服务器的部署和物理位置约束很大。而业务功能链(英文:service function chain,简称:SFC,也称业务链)的出现,有效地解决了传 统电信网络中业务链的问题。
SFC是一种给应用层提供有序服务的技术。SFC用来将网络设备上的服务在逻辑层面上联接起来,从而形成一个有序的服务组合。SFC通过在原始报文中添加业务链路径信息来实现报文按照指定的路径依次经过服务设备。在传统的网络架构下,SFC技术利用虚拟网络将服务业务更好的融合进来,很好的解决了上述问题:针对网络设备之间耦合性大,导致业务部署不灵活的问题,SFC基于覆盖(Overlay)技术独立于网络规划,底层物理网络拓扑改变时,不影响服务节点的部署与激活,只要承载网路由可达就可以将虚拟的业务链映射到物理服务节点。针对转发效率低的问题,SFC通过对报文进行网络服务报头(Network Service Header,NSH)封装,使得业务链路径上的各个节点能够相互传递信息,有了这些信息整个服务链可以对数据做动态灵活的策略处理。针对服务设备无法共享的问题,SFC中转发层面和服务层面相互分离,用户就可以将服务设备划分在资源池中,所有数据流量经过分类后通过业务链引流到多个服务设备上,这样不仅分流后的数据流量降低了对服务设备处理峰值流量能力的性能要求,而且实现了服务设备的资源共享。
以下,结合图1,对SFC中的网元进行介绍。
流分类器(英文:Service Classifier,简称:SC):位于SFC域的边界入口,报文进入SFC域后会首先进行流量分类,分类的粒度由分类器能力和SFC策略决定,分类规则可以粗略也可以详细。例如粗略情况下,一个端口上的所有报文都满足某个SFC规则,走业务链路径1;详细情况下,只有满足五元组要求的报文才能满足某个SFC规则,走业务链路径2。
业务功能(英文:service function,简称:SF)网元:用于对报文进行业务处理。例如,SF网元可以而不限于是防火墙、负载均衡、应用加速器、合法性拦截(LI)、网络地址转换(英文:Network Address Translation,简称:NAT)、带宽控制、病毒检测、云存储、深度包检测(英文:Deep Packet Inspection,简称:DPI)、入侵检测或者入侵防御等。SF网元的物理实体可以是一种计算设备,该计算设备可以而不限于是服务器、主机、个人计算机、网络设备或者终端设备。在一些可能的实施例中,SF网元可以采用这样的方式实现:X86架构的通用服务器上运行有虚拟机或容器,该虚拟机或容器中运行有应用程序,该应用程序可以用于进行业务功能处理。根据是否可以感知NSH封装,SF分为感知NSH封装的SF(NSH-aware SF)和不感知NSH封装的SF(NSH-unaware SF)。NSH-aware SF能够识别收到的NSH报文并对其进行处理,NSH-unaware SF不识别NSH报文,收到后将其丢弃。
业务功能转发设备(英文:Service function Forwarder,简称:SFF):用于将从网络中收到的报文转发到SFF关联的若干个SF上,转发的依据就是NSH封装的信息。SF处理后,将报文再返回给同一个SFF,该SFF最终决定是否将报文发回网络中。SFF的物理实体可以是网络设备,例如可以是路由器、交换机等。
SFC代理(SFC Proxy):位于SFF及其关联的若干个NSH-unaware SF之间,代表SF接收来自SFF的报文,删除NSH封装信息,通过本地逻辑组件将报文发给NSH-unaware SF,也接收从NSH-unaware SF发回的报文,重新为之添加NSH封装信息,再发给SFF进行处理。从SFF角度看,SFC代理相当于一个NSH-aware SF。通常情况下,SFC Proxy和SFF会集成设置在同一硬件设备上。
随着分段路由(英文:Segment Routing,简称:SR)技术的推演,基于互联网协议第6版的分段路由(英文:internet protocol version 6 for Segment Routing,简称:SRv6)业务链 方案成为实现业务链的优秀方案。为便于理解,在介绍SRV6业务链技术之前,首先对SRv6技术进行介绍。
分段路由(英文:Segment Routing,简称:SR)是基于源路由的理念而设计的在网络中转发报文的一种技术。Segment Routing将网络路径分成一个个段,并且为这些段和网络中的转发节点分配分段标识(Segment ID,SID)。通过对SID进行有序排列,可以得到段列表(Segment List),通过段列表可以指明报文的转发路径。通过SR技术,可以指定携带了Segment List的报文经过的节点以及路径,从而满足流量调优的要求。做一个类比,报文可以比作行李,SR可以比作行李上贴的标签,如果要将行李从A地区发送到D地区,途径B地区和C地区,则可以在始发地A地区给行李贴上一个标签“先到B地区,再到C地区,最后到D地区”,这样一来,各个地区只需识别行李上的标签,依据行李的标签将行李从一个地区转发至另一个地区即可。在SR技术中,源节点会向报文添加标签,中间节点可以根据标签转发至下一个节点,直至报文到达目的节点。例如在报文的包头中,插入<SID1,SID2,SID3>,则报文会首先转发给SID1对应的节点,之后转发给SID2对应的节点,之后转发给SID3对应的节点。
SR域(Segment Routing Domain):SR节点的集合。SR域中可以是连接到相同物理架构的节点(如服务提供商网络)、也可以是远端互联的节点(如企业虚拟专用网络或overlay)。
SR隧道(SR Tunnel)为在头节点上将Segment List封装到报文头中的隧道,可以由管理员手工创建,也可以是控制器通过的网络配置(NETCONF)或路径计算单元通信协议(Path Computation Element Communication Protocol,PCEP)等接口协议自动创建。一个SR隧道既可用于流量工程(Traffic Engineering,TE)应用,也可用于操作维护管理(Operation Administration and Maintenance,OAM)、快速重路由(Fast Reroute,FRR)等目的。
段列表(Segment List):用来表示报文转发路径的一个有序的Segment列表。在SR MPLS中,段列表为标签栈。在SRv6中,段列表为IPv6地址列表,携带在IPv6报文的、分段路由头(英文:segment routing header,简称:SRH)中。
段(Segment,也称分段)可以是是指导设备处理报文的任何指令,如:根据最短路径转发报文到目的地、通过指定接口转发报文、将报文转发到指定的应用/业务实例等。段可以包括全局段(Global Segment)和本地段(Local Segment)。
全局段:SR域内的所有SR节点都能识别全局段相关的指令。在SR MPLS中,全局段是一个全局唯一的索引(index),每个设备上的标签为[SRGB+index];在SRv6中,全局段是一个全局唯一的IPv6地址。
本地段:只被生成它的节点所识别的相关指令。在SR MPLS中本地段是SRGB块外的本地标签;在SRv6中,本地段是未被任何路由协议通告过其可达性的任意IPv6地址。
段标识(Segment ID,SID)是Segment的标识,用来标识唯一的段。在SR MPLS的转发层面,SID可以映射为MPLS标签。在SRv6的转发层面,SID可以映射为IPv6地址。SID在实质上能够表示拓扑、指令或服务。
当前工作的SID:为段列表中当前待处理的段,也可以称为活跃SID(active SID)、活跃段(active segment)、当前待处理的SID、当前工作的SID。当SR节点收到报文时,会对活跃段进行处理。在SR MPLS中,活跃段为标签栈的最外层标签。在SRv6中,活跃段为携带有SRH的IPv6报文的目的地址。此外,活跃段可以通过SL字段的取值指明。例如,如果段 列表包括5个SID,分别是SID0、SID1、SID2、SID3以及SID4,而SL取值为2,则表明段列表中未被处理的SID有2个,分别是SID0以及SID1,段列表中当前要被处理的SID是SID2,段列表中已被处理的SID有2个,分别是SID3以及SID4。
SID可以包括多种类型。在SR MPLS中,SID可以包括节点SID(Node SID)、前缀SID(Prefix SID)、邻接SID(Adjacency SID)。Prefix SID可以是源端发布的SRGB范围内的偏移值,接收端会根据自己的SRGB计算实际标签值用于生成MPLS转发表项。在SRv6中,SID包括End SID、End.X SID、End.DT4 SID、End.OTP SID等等类型。
分段操作(Segment Actions):可以包括插入(PUSH)、下一个(NEXT)以及继续(CONTINUE)等。PUSH是指在Segment List的顶部插入一个segment。在SR MPLS中Segment List的顶部是指标签栈的最外层标签。在SRv6中Segment List的顶部是指SRH头中的第一个IPv6地址。NEXT是指当前的活跃段(active segment)处理完时,下一个段(the next segment)变为active segment。CONTINUE:当前的active segment还没有处理完,还继续保持active状态。在SR MPLS中,CONTINUE操作相当于交换(SWAP)操作。在SRv6中,CONTINUE操作为IPv6报文依据IPv6目的地址转发的操作。
SR技术包括多协议标签交换分段路由(Segment Routing Multi-Protocol for Label Switching,SR MPLS)技术以及SRv6技术。以下,对SRv6技术具体进行介绍。
SRv6技术是指将SR技术应用在IPv6网络中。SRv6的SID使用IPv6地址(128bits)编码,并封装在SRv6扩展头(SRH)中。在转发报文时,支持SRv6的节点会按照报文中的报文头的目的地址(Destination Address,DA),查询本地SID表(local SID table),当报文的报文头的目的地址与本地SID表中的任一SID匹配时,确认目的地址命中了本地SID表,则基于该SID对应的拓扑、指令或服务,执行相应的操作;如果报文的目的地址与本地SID表中的每个SID均不匹配,则根据目的地址查询IPv6的路由转发表,根据目的地址在路由转发表中命中的路由转发表转发报文。
本地SID表(local SID table,也称local SID表)为使能SRv6的节点维护的表。本地SID表包含本节点生成的SRv6 SID。根据本地SID表可以生成SRv6转发表FIB。本地SID表的功能主要有三个。第一,定义本地生成的SID,例如End.X SID。第二,指定绑定到这些SID的指令。第三,存储和这些指令相关的转发信息,例如出接口和下一跳等。在一些实施例中,输入命令display segment-routing ipv6 local-sid后,可以查看设备上配置的SRv6的local SID表。其中,该命令可以携带参数end,以指定查看SRv6 End的local SID表。该命令可以携带参数End.X,以指定查看SRv6 End.X的local SID表。该命令可以携带参数end-dt4,以指定查看SRv6 end-dt4的local SID表。
SRv6通过向IPv6报文增加一个SRH,使用SRH来记录Segment相关信息,通过这样增加扩展头的方式,与原有IPv6转发平面平滑融合。参见图2,图2是本申请实施例提供的一种SRv6报文的示意图。SRv6报文可以包括IPv6头、SRH及载荷。以下通过(1)至(3),对SRv6报文的每个部分进行介绍。
(1)SRv6报文中的IPv6头
SRv6报文中的IPv6头可以包括源地址(source address,SA)以及目的地址(destination address,DA)。在普通IPv6报文里,IPv6 DA是固定不变的。在SRv6中,在SRv6中,IPv6DA标识当前报文的下一个节点,在SR隧道中,SR节点可以对该目的地址不断进行更新, 来完成逐跳转发。IPv6头中的目的地址携带的SID可以称为active SID。
(2)SRv6报文中的SRH
SRH为一种IPv6扩展头。SRH用于基于IPv6转发平面实现SRv6。参见图3,图3是本申请实施例提供的一种SRH的示意图。SRH可以包括以下部分(2.1)至(2.9)。
(2.1)段列表
段列表可以包括一个或多个SID,每个SID可以是IPv6地址的形式,因此段列表也可以理解为一个显式的IPv6地址栈。段列表可以抽象为以下格式。
SRH(SL=n)
<Segment List[0],Segment List[1],Segment List[2],...,Segment List[n]>。
其中,<Segment List[0],Segment List[1],Segment List[2],...,Segment List[n]>为Rv6报文的段列表,类似于SR MPLS中的MPLS标签栈信息,在入节点生成。Segment List[0]是SRv6路径上第一个需要处理的Segment List,Segment List[1]是第二个,Segment List[2]是第三个,...,Segment List[n]是第n+1个。其中,n为正整数或0。
需要说明的一点是,在表达IPv6报文里的SRH时,可以采用逆序的形式表达,即表达为(Segment List[2],Segment List[1],Segment List[0])这种形式。
在SRv6中,每经过一个SRv6节点,SL字段的取值减1,IPv6 DA信息变换一次。SL字段和Segments List字段共同决定IPv6 DA信息。
如果SL值是n(n-0),则IPv6 DA取值就是Segments List[0]的值。
如果SL值是n-1,则IPv6 DA取值就是Segments List[1]的值。
如果SL值是n-2,则IPv6 DA取值就是Segments List[2]的值。
依次类推,如果SL值是0(n-n=0),则IPv6 DA取值就是Segments List[n]的值。
(2.2)SL
SL可以指明段列表中的活跃SID。在SR隧道中,SR节点以通过执行偏移地址栈的操作来更新活跃SID。用于指示达到目前节点还应当访问的分段端节点的数量(Segment Left,SL)的字段,该字段还可以称为剩余节点字段。例如,如果段列表包括5个SID,分别是SID0、SID1、SID2、SID3以及SID4,而SL取值为2,则表明段列表中未被处理的SID有2个,分别是SID0以及SID1,段列表中当前要被处理的SID是SID2,段列表中已被处理的SID有2个,分别是SID3以及SID4。
(2.3)一个或多个TLV
TLV是一种编码格式,TLV包括类型(type)、长度(length)和值(value)。SRH中可以包括一个TLV,也可以包括多个TLV。SRH中的不同TLV可以具有并列关系,也可以具有嵌套关系。
此外,如图3所示,SRH还可以包括以下字段。
(2.4)下一个报文头类型(next header):SRv6报文在扩展头之后还可以包括一个或多个扩展头或一个或多个高层头,next header用于指明报文中扩展头之后的扩展头或高层头的类型。next header的长度可以为1字节。
(2.5)扩展头的长度(英文:header Extended Length,简称:Hdr Ext Len):用于指明扩展头的长度。Hdr Ext Len指示的长度可以不包括扩展头的前8字节。
(2.6)用于指示路由类型(Routing Type)的字段。
(2.7)用于指示最后一个元素的索引(Last Entry)的字段。
(2.8)用于指示数据包的一些标识(Flags)的字段。
(2.9)用于指示同组数据包(Tag)的字段。
(3)SRv6报文中的载荷。
SRv6报文中的载荷可以是原始报文。该原始报文可以是IPv4报文,也可以是IPv6报文,也可以是以太网(英文:Ethernet)帧。
以上介绍了SRv6报文的结构,以下对SRv6 SID进行介绍。
SRv6 SID可以包括128个比特。SRv6 SID可以是16进制的数据形式。SRv6 SID的格式可以为X:X:X:X:X:X:X:X。请参见图4,图4为本申请实施例提供的一种SRv6 SID的示意图。SID可以包括定位信息(locator)以及功能信息(function),SID的格式为locator:function。可选地,SID还可以包括参数信息(Arguments),则SID的格式为locator:function:Arguments。
locator占据SID的高比特位。locator字段对应ipv6-prefix ipv6-address参数,长度由prefix-length参数决定。locator本身是一个IPv6网段,该网段下的所有IPv6地址都可以做为SRv6 SID分配。节点配置locator之后,系统会生成一条locator网段路由,通过locator网段路由就可以定位到本节点,同时本节点发布的所有SID也都可以通过该条locator网段路由到达。SRv6的locator可通过SRv6locator TLV发布出去,其他SRv6能力的IS-IS设备接收到TLV以后,下发对应的locator到本机转发表中,没有SRv6能力的则不下发到转发表。
function占据SID的低比特位。function字段也称为操作码(Operate Code,opcode),可以通过IGP协议动态分配,也可以通过opcode命令静态配置。SRv6可以通过function定义每个Segment对应的动作。
Arguments在SRv6 SID里是可选的,由命令配置决定。
SRv6 SID生成以后,一方面会加入本机的local SID表,另一方面也可以通过路由协议对外发布。实际转发时,SRv6 SID里的locator部分用来帮助网络里的其他节点进行路由寻址,找到SRv6 SID的生成节点,并将SRv6报文转发到该节点,而function部分用于指示SRv6 SID的生成节点进行相应的功能操作。
以上介绍了SRv6 SID。SRv6 SID可以包括End SID、End.X SID、End.DT4 SID、End.OTP SID等等类型。以下结合SRv6 SID的具体类型,对基于SRv6 SID的转发流程进行介绍:
End SID中的End表示endpoint。End SID即为Endpoint SID,End SID用于标识网络中的某个目的地址前缀(Prefix)。SRv6中的End SID类似于SR MPLS中的Prefix SID。SRv6 End SID可通过SRv6 End SID sub-TLV发布。SRv6 End SID可以基于IGP协议扩散到其他网元。SRv6 End SID sub-TLV是一种子TLV,用于发布具有Endpoint功能的SRv6 End SID。例如,请参见图5,图5是本申请实施例提供的一种End SID的示意图。节点A的End SID可以为A::。节点B的End SID可以为B::。节点C的End SID可以为C::。
基于End SID的转发操作可以包括以下步骤一至步骤五。
步骤一、SR节点接收报文。
步骤二、SR节点根据报文的IPv6头中的目的地址,查询local SID表。
步骤三、SR节点根据local SID表,判断活跃SID的类型(FuncType)为End类型。
步骤四、SR节点继续查询IPv6 FIB表。
步骤五、根据IPv6路由转发表中查询到的出接口和下一跳,转发报文。
例如,参见下表1,表1为本地SID表的示意。如果报文的IPv6 DA为10:1::1:0/128,SR节点接收到SRv6报文时,会根据SRv6报文的IPv6 DA,查询表1,判断10:1::1:0/128的FuncType为End,则根据10:1::1:0/128继续查询IPv6的路由转发表,根据10:1::1:0/128在IPv6的路由转发表命中的出接口和下一跳,转发报文。
表1
Figure PCTCN2020116612-appb-000001
其中,表1的表头My Local-SID End Forwarding Table表示SRv6 End的本地SID表。FuncType表示function类型。Flavor表示特性,例如可以是SRH倒数第二段弹出(penultimate segment POP of the SRH,简称PSP)。locator ID表示为locator分配的标识符(Identity,ID)。
请参见图6,图6为本申请实施例提供的一种基于End SID的转发流程示意图,该转发流程包括:报文在节点A被压入SRH,该SRH中的路径信息是<Z::,F::,D::,B::>,报文的IPv6头中的目的地址是B::。每当报文经过一个中间节点,例如节点B和节点D,中间节点会根据报文的IPv6 DA查询local SID表,中间节点判断是End类型,则中间节点会继续查询IPv6 FIB表,根据IPv6 FIB表查到的出接口下一跳转发,同时对SL减1,将IPv6 DA变换一次。当报文到节点F时,节点F根据报文中IPv6头的目的地址查询local SID表,判断是End类型,然后继续查询IPv6 FIB表,根据IPv6 FIB表查到的出接口转发。同时SL减为0,IPv6 DA变为Z::,此时路径信息<Z::,F::,D::,B::>已无实际价值,因此节点F利用PSP特性,将SRH去除,然后把去除了SRH的报文转发到节点Z。
以上介绍了End SID以及基于End SID在SR隧道中转发报文的流程。以下对End.X SID以及基于End.X SID的转发流程进行介绍。
End.X SID中的X表示crossing。End.X SID表示三层交叉连接的Endpoint SID。SR节点的每个End.X SID用于标识该SR节点直连的一条IP层链路。SRv6中的End.X SID类似于SR MPLS中的Adjacency SID。SRv6 End.X SID可以基于IGP协议扩散到其他网元。例如,请参见图7,图7是本申请实施例提供的一种End.X SID的示意图。节点A的End SID可以为A::。此外,节点A包括3个End.X SID。节点A上直连的链路1对应的End.X SID为A::1,节点A上直连的链路2对应的End.X SID为A::2,节点A上直连的链路3对应的End.X SID为A::3。
基于End X SID的转发操作可以包括以下步骤一至步骤四。
步骤一、SR节点接收到报文。
步骤二、SR节点根据报文的IPv6头中的目的地址,查询local SID表。
步骤三、SR节点根据local SID表,判断活跃SID为End.X SID。
步骤四、SR节点直接根据local SID表中End X SID绑定的出接口和下一跳转发报文。
例如,参见下表2,表2为本地SID表的示意。如果SRv6报文的IPv6 DA为 222::4:101:0:1/128,SR节点接收到SRv6报文时,会根据IPv6 DA查询表2,判断222::4:101:0:1/128的FuncType为End.X,并确定222::4:101:0:1/128在表2中命中的出接口为GE2/0/0,222::4:101:0:1/128在表2中命中的下一跳为FE80::3A00:10FF:FE03:1,则SR节点根据GE2/0/0和FE80::3A00:10FF:FE03:1转发报文。
表2
Figure PCTCN2020116612-appb-000002
其中,表2的表头My Local-SID End.X Forwarding Table表示SRv6 End.X的本地SID表。FuncType表示function类型。Flavor表示特性,例如可以是SRH倒数第二段弹出(penultimate segment POP of the SRH,简称PSP)。NextHop表示下一跳地址。Interface表示出接口。Exit Index表示出接口索引。
请参见图8,图8为本申请实施例提供的一种基于End.X SID的转发流程示意图,该转发流程包括:报文在头节点A压入SRH,SRH中的路径信息是<Z::,F::1,B::1>,报文的IPv6头中的目的地址是B::1。当报文到达中间节点B时,中间节点B根据IPv6 DA查询local SID表,判断是End.X类型,根据local SID表中End.X SID对应的下一跳和出接口进行转发,同时SL减1,IPv6 DA变换为F::1。当报文到达节点D时,节点D根据IPv6 DA信息F::1查询local SID表,查询不到匹配的SID,则继续使用F::1查询匹配IPv6 FIB表,然后根据IPv6FIB表的转发信息,将此报文转发到F。到达尾节点F时,尾节点F根据IPv6 DA查询local SID表,判断是End.X类型,所以尾节点F直接根据local SID表中End.X SID对应的下一跳和出接口进行转发,同时SL减为0,IPv6 DA变换为Z::,此时携带路径信息<Z::,F::1,B::1>的SRH已无实际价值,因此尾节点F利用PSP特性将SRH去除,然后把去除了SRH的报文转发到Z节点,此时,报文流出SR隧道。
在SRv6技术中,两个或两个以上的SR节点可以通过发布anycast SID形成任播组。以下,对任播以及anycast SID进行介绍。
任播(Anycast)又称选播、泛播或任意播,为IPv6的一种通信方式,是指通过同一个地址来标识一组提供相同或相应服务的节点。
anycast SID用以标识一组SR节点。这些SR节点发布anycast SID,且每个SR节点发布的anycast SID相同。这些SR节点可以称为一个任播组(Anycast Group)。同一任播组的每个设备上可以配置相同的locator,以保证当其中一个节点故障时,能通过anycast快速重路由(Fast Re-Route,FRR)方式快速切换到另一个节点。当根据anycast SID进行转发时,可以从到达任播组内每个SR节点的路径中,选择最短路径,按照最短路径转发。
以上介绍了SRv6技术,以下对SRV6业务链技术进行介绍。
SRV6业务链可以利用SRV6的调优能力和SDN全局网络管理能力,通过控制器全局编排SRV6 SID路径,以下,请参见图9,对SRV6业务链中各个网元的功能进行补充说明:
SC可以是SRv6隧道的头节点,SC用于根据控制器下发的SR标签栈,完成报文封装。原始报文在SC处可以被压入SRH,该SRH中的段列表指明了报文在业务链中的转发路径。控制器可以是网络功能虚拟化(英文:Network function Virtualization,简称:NFV)中的管理节点,比如网络功能虚拟化管理器(英文:Network functions Virtualisation Manager,简称:VNFM)等。该控制器可以是软件定义网络(英文:Software Defined Network,简称:SDN)中的SDN控制器(英文:SDN controller)。该SR标签栈可以是段列表。
对于不支持SR的SF网元而言,接入该SF网元的SFF(Proxy)可以为其代理处理SRH。
具体而言,SFF接收到SRv6报文后,可以根据标签栈中的SID,获取出接口和对应的行为(behavior),若确定该行为弹出标签栈,则将报文的SRH剥离,例如执行SR中的弹出(pop)操作,将SRH从报文中弹出,将不包含SRH的报文发送给SF;另外,SFF可以在保存该业务链的cache信息,在SF报文返回时,重新完成业务链的SR报文封装。当SF网元向Proxy返回报文后,Proxy可以根据入接口,从缓存(cache)中查询到SRH,使用SRH完成报文的SR封装。
SF网元:基于原始报文进行业务处理,得到处理后的报文。SF网元可以查询路由,将报文转发至Proxy。或者,SF网元可以通过默认的出接口,将报文发送至Proxy。另外,如果SF网元双归接入到两台proxy,可以基于IGP路由形成负载分担。
SRV6静态业务链:是指SFF通过静态配置得到cache list的方式。
SRV6动态业务链:是指SFF根据流量动态学习cache list的方式。
时下,业务链中如何进行故障保护已成为业务链技术的关键。
请参见图10,业务链的故障场景具体可以包括多种,例如场景1至场景4。
场景1、SFF发生故障。
例如,参见图10中的①,SFF1可以发生故障。
场景2、SFF与SF网元之间的链路发生故障。
例如,参见图10中的②,SFF1去往SF1的链路可以发生故障。
场景3、VM发生故障。
例如,参见图10中的③,SF1所在的VM1可以发生故障。
场景4、SF网元发生故障。
例如,参见图10中的④,SF1可以发生故障。
面临上述场景,本实施例提供了SRV6业务链场景下的故障保护方案,可以在多种故障场景下进行有效保护。
具体而言,本申请实施例定义了很多新的SID,包括而不限于是从属SID、备份SID、引流SID等等,可以利用这些新的SID,在业务链故障场景下实现流量的正常转发。在下述方法实施例中,以从属SID称为secondary SID,备份SID称为backup SID,引流SID称为bypass SID为例进行说明。另外,将代理SID称为proxy SID。
应理解,这些SID的命名仅是示例,这些SID也可以具有其他的称谓。例如,这些SID在不同场景下可能有不同名称,如不同厂商采用不同名称,或不同标准采用不同名称,SID的命名并不用以限制本申请的保护范围。
此外,本申请实施例提供的SID可以在多个节点上配置。不同节点上配置的SID的function可以相同,不同节点上配置的SID的function也可以不同。在一些可能的实施例中,可以在业务链中具有任播关系的不同节点上,配置相同的SID,从而进行负载分担。为了区分描述,采用“第一”“第二”等字样,对不同节点上配置的SID进行区分。比如,将第一SFF上配置的secondary SID称为第一secondary SID,将第二SFF上配置的secondary SID称为第二secondary SID。应理解,“第一”、“第二”等字样之间不具有逻辑或时序上的依赖关系,也不对SID的数量和SID的工作顺序进行限定。例如,对于分别叫做第一SID和第二SID的两个SID而言,第一SID并不一定是先工作的SID,第二SID并不一定是后工作的SID。第一SID和第二SID的工作顺序,可以依据这2个SID在SRH中段列表的排列顺序确定。
此外,本申请实施例提供的SID为SR技术中用于标识分段的SID。例如,本申请实施例提供的SID可以而不限于是SRv6 SID,本申请实施例提供的SID的格式可以如图4所示。应理解,下述实施例描述的SID可以实现上文描述的SID所具有的功能。
此外,本申请实施例提供的携带SID的报文可以为SR网络中传输的SR报文。例如,本申请实施例提供的报文可以而不限于是SRv6报文。示意性地,本申请实施例提供的报文的格式可以如图2所示。应理解,下述实施例描述的报文可以实现上文描述的SRv6报文所具有的功能。
此外,本申请实施例提供的SID可以携带在报文的IPv6头的目的地址以及SRH中。示意性地,本申请实施例提供的报文中SRH的格式可以如图3所示。IPv6头、SRH的细节可以参见上文的介绍。
此外,本申请实施例提供的携带SID的报文可以为SR网络中传输的SR报文。例如,本申请实施例提供的报文可以而不限于是SRv6报文。示意性地,本申请实施例提供的报文的格式可以如图2所示,报文的细节可以参见上文对SRv6报文的介绍。其中,本申请实施例提供的报文可以包括IPv6头、SRH以及载荷,通过IPv6头的目的地址以及SRH携带SID。其中,SRH的格式可以如图3所示。IPv6头、SRH的细节可以参见上文的介绍。
此外,通过SID转发报文的方法的基本原理可以参见图6、图8以及上文相关的介绍。在下述方法实施例中,将侧重描述与上文的区别之处,而与上文同理的步骤还请参见图6、图8以及上文相关的介绍,为了描述简洁,在下述方法实施例中将不做赘述。
此外,本申请实施例涉及的各个节点(例如SFF、SF网元、SC等)可以是业务链(SFC)中的节点,各个节点的功能以及物理实体可以参见上文相关的介绍,为了描述简洁,在下述方法实施例中将不做赘述。
本申请实施例可以应用在多种业务链的故障保护场景,包括而不限于:SFF与SF网元之间的链路故障场景下进行保护、双链路故障场景下防止环路、SF网元故障下进行保护。
以下,首先介绍SFF与SF网元之间的链路故障场景下进行保护的方法实施例。在该方法实施例中,以第一SFF与第一SF网元之间的链路发生故障为例进行说明。
参见图11,该方法可以包括以下步骤1101至步骤1108。
步骤1101、业务链中的第一SFF接收第一报文,第一报文的报文头的目的地址字段包括业务链中第一SF网元对应的proxy SID。
第一SFF可以是业务链中使能了SRv6的一个SFF。例如,请参见图12,图12是本申请实施例提供的一种业务链中SFF至SF之间的链路故障场景下转发报文的示意图,第一SFF 可以是图12中的SFF1。
第一SF网元为业务链中第一SFF接入的SF网元。例如,请参见图12,第一SF网元可以是图12中SFF1接入的SF1。
第一报文可以包括IPv6头、SRH以及载荷。第一报文中的载荷可以是待通过SF网元处理的原始报文。第一报文中的IPv6头包括DA字段,该DA字段的取值为第一SF网元对应的proxy SID。第一报文中的SRH包括段列表以及SL。该段列表包括第一SF网元对应的proxy SID以及其他SID。SL的取值可以指明段列表中当前工作的SID为第一SF网元对应的proxy SID。
proxy SID为一种代理功能的SID。第一SF网元对应的proxy SID用于指示为第一SF网元进行代理操作。proxy SID为SRv6 SID,具体可以是End.X SID。
第一报文的目的地址字段包括的proxy SID可以是第一SFF的SID。可以预先在第一SFF上配置proxy SID。该proxy SID可以预先存储在第一SFF的本地SID表中。第一SFF可以预先发布该proxy SID。其中,proxy SID的locator为第一SFF上配置的locator。proxy SID的locator用于定位到第一SFF。proxy SID的function用于指示为第一SF网元进行代理操作。在第一SFF上的本地SID表中,proxy SID绑定的下一跳可以为第一SF网元,proxy SID绑定的出接口可以用于与第一SF网元建立链路。
此外,在一些实施例中,SF可以双归接入第一SFF和第二SFF,则第二SFF的本地SID表中也包括该proxy SID,以便基于任播关系形成负载分担。
例如,请参见图12和图13,SFF1上预先配置了sid2,SFF2上也预先配置了sid2。SFF1上的sid2为SF1对应的proxy SID,SFF2上的sid2也为SF1对应的proxy SID。SFF1的sid2和SFF2的sid2形成了anycast SID的关系。
第一报文可以来自于SC。SC可以是SR隧道的头节点。SC可以向原始报文压入SRH,得到携带SRH的第一报文,发送第一报文。第一报文可以通过proxy SID的locator,路由转发至第一SFF,则第一SFF会接收到第一报文。例如,请参见图12,流量从SC进入,SC发送报文,报文根据SF1 proxy SID引流至SFF1,SFF1接收到了报文。SFF 1的入接口收到的报文的目的地址字段包括SF1 proxy SID。
步骤1102、若第一SFF与第一SF网元之间的链路发生故障,第一SFF更新第一报文的目的地址字段,得到第二报文,第二报文的目的地址字段包括第一secondary SID。
第二报文为第一SFF根据第一secondary SID对第一报文进行处理后得到的报文。第二报文可以包括IPv6头、SRH以及载荷。第二报文中的IPv6头包括DA字段,该DA字段的取值为第一secondary SID。第二报文中的SRH包括段列表以及SL。该段列表包括第一secondary SID以及其他SID。可选地,该段列表可以包括第一SF网元对应的proxy SID。SL的取值可以指明段列表中当前工作的SID为第一secondary SID。第二报文中的载荷可以是待通过SF网元处理的原始报文。第二报文可以包括第一报文的载荷,例如,第二报文中的载荷可以和第一报文中的载荷相同。
secondary SID可以和proxy SID形成主备备份的保护关系。具体而言,若当前工作的SID为proxy SID,而proxy SID对应的出接口发生链路故障时,SFF可以通过向报文插入secondary SID,将报文的目的地址从proxy SID更新为secondary SID,从而将报文从proxy SID对应的隧道切换至secondary SID对应的隧道,实现将报文引流至同一对保护组中的其他SFF的目的。 此外,在一些实施例中,可以规划secondary SID的locator和proxy SID的locator不重复。
第一secondary SID可以是第一SFF上配置的secondary SID。第一secondary SID可以为第二SFF本地的SID。第一secondary SID可以预先存储在第二SFF的本地SID表中。第一secondary SID的locator用于路由至第二SFF。第一secondary SID的locator可以为第二SFF预先发布的locator。
例如,请参见图12和图13,SFF1中包含SFF2 secondary SID。该SFF2 secondary SID为SFF2本地的SID,该SFF2 secondary SID的locator可以定位至SFF2。通过在SFF1上配置SFF2 secondary SID,当SFF1去往SF1的链路故障时,SFF1在报文中插入SFF2 secondary SID,刷新报文头的目的地址字段,通过SFF2 secondary SID对应的locator路由,将报文引流至SFF2。如此,SFF1将流量切换至secondary SID隧道。
第一SFF通过执行更新目的地址字段的操作,能够将报文头的目的地址字段从proxy SID更新为第一secondary SID,使得第二报文中当前工作的SID为第一secondary SID,以便第二SFF接收到第二报文时,使用目的地址查询本地SID表后,会执行第一secondary SID对应的操作。应理解,第一报文可以类似于IP in IP(移动IP数据封装和隧道)报文的形式,包含外层的IPv6头以及内层的原始报文。这里所说的更新目的地址字段,可以是指更新外层的IPv6头的目的地址字段,而非更新内层的原始报文的目的地址字段。比如说,如果原始报文本身就是一个IPv6报文,则第一报文的外层为IPv6头,内层为IPv6报文,那么在本步骤中,第一SFF可以更新外层的IPv6头中的DA字段。
在一些实施例中,第一secondary SID的类型可以为端点(End)类型。例如,在第二SFF的本地SID表中,第一secondary SID的Func Type的取值可以是End。
通过选择End类型的SID作为第一secondary SID,相对于选择End.X类型的SID作为第一secondary SID的方式而言,可以避免配置End.X SID时指定下一跳和出接口的操作,从而避免由于End.X SID由于兼具引流和指定出接口的功能,替代了原有的proxy SID的角色,导致要在第一SFF上配置大量的secondary SID,而不是全局唯一的secondary SID的情况。另外,也由于第一secondary SID为End类型的SID,避免后续对backup SID的规划造成较大约束。
第二SFF为保护组中第一SFF之外的其他SFF。该保护组包括第一SF网元接入的多个SFF。例如,保护组中可以包括2个SFF节点,这2个SFF节点是SF双归接入的两个节点。或者,保护组中可以包括3个或3个以上的SFF节点,这些SFF节点是SF多归接入的节点。例如,请参见图12,SF1双归接入至SFF1和SFF2,若第一SFF为SFF1,第二SFF可以为SFF2。
保护组可以基于冗余保护技术实现。在一些实施例中,保护组为任播组,任播组中不同SFF发布的proxy SID为任播SID。在SF侧,保护组中的SFF可以承担等价网关的角色,在网络侧,保护组中的SFF可以发布相同的proxy SID。保护组中的每个SFF可以理解为负载分担的等价节点。在物理拓扑上,同一保护组中的不同SFF之间可以具有IP路由可达的直连链路,作为旁路保护。第二SFF可以是第一SFF的旁路SFF。例如,请参见图12,若第一SFF为SFF1,SFF1和SFF2通过Anycast SID组成了任播关系,则第二SFF为SFF2,第一secondary SID为SFF2本地的End SID。SFF1和SFF2之间可以具有IP路由可达的直连链路,SFF2为SFF1的旁路SFF。
在一些实施例中,属于同一个保护组的每个SFF上均可以配置secondary SID。每一个SFF上配置的secondary SID的function可以是相同的。对于同一对SFF而言,一个SFF上配置的secondary SID为另一个SFF本地的End类型SID。例如,请参见图12,SFF1和SFF2形成一对保护组,通过任播SID实现SFF故障保护。SFF1配置的secondary SID是SFF2本地的End类型的SID。SFF1上配置的secondary SID的locator用于路由至SFF2。同理,SFF2上配置的secondary SID的locator用于路由至SFF1,SFF2配置的secondary SID在SFF1上是一个本地的End SID。SFF1配置的secondary SID和SFF2配置的secondary SID的function是相同的,因此,SFF1根据本地的secondary SID执行的动作和SFF2根据本地的secondary SID执行的动作属于对称动作。
此外,第一SFF可以向第一报文的SRH插入第一secondary SID,更新第一报文的SRH中的SL,以使SL指向第一secondary SID,从而指明第一secondary SID为SRH中当前工作的SID。通过执行更新SL的步骤,第一SFF生成的第二报文的SL会大于接收到的第一报文的SL。在SRv6网络中,SRv6报文的SRH中的SL通常用来标识待处理的SID的数量,那么通过修改SL的取值,能够指明第一SFF发出的第二报文相对于第一SFF接收到的第一报文而言,SRH包含了更多的待处理的SID,第一SFF执行了向SRH插入SID的动作。
步骤1103、第一SFF发送第二报文。
由于第二报文的报文头的目的地址字段包括第一secondary SID,而第一secondary SID的locator路由为第二SFF的locator路由,因此第二报文从第一SFF发送出去后,会通过第一secondary SID引流至第二SFF。例如,请参见图12中SFF1框图下侧的加粗黑线,SFF1向流量插入SFF2 secondary SID后,流量通过SFF2 secondary SID路由至SFF2。
步骤1104、业务链中的第二SFF接收第二报文,第二报文的目的地址字段包括第一secondary SID。
步骤1105、第二SFF根据第一secondary SID,对第二报文进行本地转发处理,得到第三报文,第三报文的报文头的目的地址字段包括第一SF网元对应的proxy SID。
第三报文是指根据第一secondary SID对第二报文进行本地转发处理后得到的报文。
第二SFF上配置的第一secondary SID可以理解为一个本地转发标识。第二SFF接收到报文后,可以根据第二报文的报文头的目的地址,查询本地SID表,第二SFF判断第一secondary SID的类型(Func Type)为End,则第二SFF按secondary SID行为,对第二报文进行本地转发处理。
其中,第二SFF可以更新第二报文的报文头的目的地址字段,从而将第二报文的报文头的目的地址字段从第一secondary SID更新为proxy SID,使得当前工作的SID从第一secondary SID更新为proxy SID。此外,第二SFF可以从第二报文的SRH中,弹出第一secondary SID。此外,第二SFF可以更新第二报文的SRH中的SL,以使SL指向第一SF网元对应的proxy SID,从而指明该proxy SID为SRH中当前工作的SID。
步骤1106、第二SFF根据第三报文得到第四报文,第四报文包括第三报文的载荷且不包括段列表。
第二SFF按照secondary SID行为处理报文后,可以继续按照proxy SID行为处理报文,剥离第三报文的SRH,得到第四报文。
步骤1107、第二SFF通过proxy SID对应的出接口,向业务链中的第一SF网元发送第 四报文。
proxy SID对应的出接口是指与proxy SID存在绑定关系的去向SF的出接口。通过该出接口发送第四报文后,第四报文会到达第一SF网元。
步骤1108、第一SF网元接收第四报文,对第四报文进行业务功能处理。
由于第一SF网元接收到的报文已经不包含SRH,因此即使第一SF网元为SR-unaware节点,第一SF网元也能够处理报文。
时下,SRv6业务链相关的技术中还没有定义SF网元与SFF之间的链路故障下的保护方案。一旦SF网元与SFF之间的链路发生故障,就会出现业务流量中断。
而本实施例提供的方法,在SRV6静态业务链场景下,当SF网元与接入的一个SFF之间的链路故障时,通过引入secondary SID,将报文的报文头的目的地址字段更新为secondary SID,使得报文通过secondary SID,被引流至该SF网元接入的其他SFF,从而实现SFF与SF网元之间的链路故障保护,避免流量由于单点链路故障导致中断,提升了业务链的可靠性。
以上介绍了SFF与SF网元之间的链路故障场景下进行保护的方法。由上述实施例引申,以下介绍SRv6业务链在双链路故障场景下防止环路的方法。
为便于理解,首先对双链路故障场景下出现环路的情况进行说明。
业务链中可以出现一对leaf节点(叶节点)双点故障的情况,即,一对leaf节点中的每个leaf均发生链路故障。例如,请参见图14和图15,SFF1与SF1之间的链路故障,SFF2与SF1之间的链路也发生故障。在这种场景下,SFF1会向流量插入SFF2 secondary SID。之后,流量通过SFF2 secondary SID引流至SFF2。而SFF2接收到流量时,由于感知到链路故障,向流量插入SFF1 secondary SID。之后,流量通过SFF1 secondary SID引流回到SFF1,造成流量在SFF1和SFF2之间发生环路。其中,leaf节点是叶脊(leaf-spine)拓扑网络中的术语,leaf节点用于充当网络的接入层。leaf节点可以和主机与spine节点(脊节点)连接。spine节点用于充当网络的汇聚层。leaf节点的物理实体可以而不限于是数据中心的交换机。
有鉴于此,本实施例提供了一种业务链发生双链路故障场景下防止环路的方法,以下通过图16实施例进行介绍。在图16实施例中,以第一SFF与第一SF网元之间的链路发生故障、第二SFF与第一SF网元之间的链路也发生故障的场景为例进行说明。应理解,图16实施例侧重描述与图11实施例的区别之处,而与图11实施例同理的步骤还请参见图11实施例,在图16实施例中不做赘述。
参见图16,该方法可以包括以下步骤1601至步骤1608。
步骤1601、业务链中的第一SFF接收第一报文,第一报文的目的地址字段包括业务链中第一业务功能SF网元对应的代理SID。
步骤1602、若第一SFF与第一SF网元之间的链路发生故障,第一SFF将第一报文中的proxy SID替换为backup SID,第一SFF更新第一报文的报文头的目的地址字段,得到第二报文,第二报文的目的地址字段包括第一secondary SID。
本实施例中,第二报文为第一SFF根据第一secondary SID和backup SID对第一报文进行处理后得到的报文。第二报文中的SRH包括段列表以及SL。该段列表包括第一secondary SID以及backup SID,且该段列表不包括第一报文原有的第一SF网元对应的proxy SID。第二报文中SL的取值可以指明段列表中当前工作的SID为第一secondary SID。
backup SID可以为第一SFF上第一SF网元对应的proxy SID的备份。例如,请参见图17和图18,backup SID可以是SFF1包含的B-sid2。在SFF1中,B-sid2为sid2的备份,该sid2为SF1对应的proxy SID。在SFF1中,sid2绑定的出接口和下一跳用于去往SF1。此外,第一SFF的proxy SID和第二SFF的proxy SID可以是任播SID的关系,则backup SID可以也是第二SFF上第一SF网元对应的proxy SID的备份。例如,请参见图17和图18,backup SID可以也是SFF2包含的B-sid2。在SFF2中,B-sid2为sid2的备份,该sid2为SF1对应的proxy SID。在SFF2中,sid2绑定的出接口和下一跳也用于去往SF1。backup SID可以是End.X类型的SID,或者也可以是End类型的SID,本实施例对此不做限定。
backup SID用于指示第二SFF不使用第二secondary SID转发第二报文。在一种可能的实现中,可以预先在第二SFF上进行配置,若当前工作的SID为backup SID,则执行指向第一SF网元的转发,不进入secondary SID的流程。例如,请参见图17,SFF2中包含“B-sid2”,若报文中当前工作的SID为B-sid2,SFF2可以不使用SFF1secondary SID进入secondary SID流程,而是执行指向SF1的转发。
其中,该第二secondary SID可以是第二SFF上配置的secondary SID。第二secondary SID可以为第一SFF本地的SID。第二secondary SID可以预先存储在第一SFF的本地SID表中。第二secondary SID的locator用于路由至第一SFF。第二secondary SID的locator可以为第一SFF预先发布的locator。例如,请参见图17和图18,SFF2中包含“SFF1 secondary SID”。该SFF1secondary SID为SFF1本地的SID,该SFF1 secondary SID的locator可以定位至SFF1。
在一些实施例中,第二secondary SID的类型可以为End类型。例如,在第一SFF的本地SID表中,第二secondary SID的Func Type的取值可以是End。
在一些实施例中,第二SFF上可以建立backup SID与出接口之间的绑定关系,该backup SID对应的出接口用于建立与第一SF网元之间的链路,该backup SID对应的出接口与proxy SID对应的出接口可以不同。
此外,backup SID和proxy SID的function可以相同。另外,第一SFF上配置的backup SID的function和第二SFF上配置的backup SID的function可以相同。
应理解,本实施例对更新目的地址与替换proxy SID这两种步骤的时序不做限定。在一些实施例中,更新目的地址与替换proxy SID可以顺序执行。例如,可以先执行更新目的地址,再执行替换proxy SID;也可以先执行替换proxy SID,再执行更新目的地址。在另一些实施例中,更新目的地址与替换proxy SID也可以并行执行,即,可以同时执行更新目的地址以及替换proxy SID。
步骤1603、第一SFF发送第二报文。
第二报文从第一SFF的出接口发送出去后,第二报文会通过第一secondary SID引流至第二SFF。例如,请参见图17,在SFF1与SF2之间的链路(sid2对应的链路)故障,流量进入SFF2 secondary SID隧道时,SFF1先将流量中原有的SF1 proxy SID替换为backup proxy SID,然后SFF1向流量压入SFF2 secondary SID,以使流量通过SFF2 secondary SID引流至SFF2。
步骤1604、业务链中的第二SFF接收第二报文,第二报文的报文头的目的地址包括第一secondary SID,第一secondary SID为第二SFF本地的SID,例如第一secondary SID为End类型的SID。
步骤1605、第二SFF根据第一secondary SID,对第二报文进行本地转发处理,得到第三 报文,第三报文的报文头的目的地址包括backup SID。
第三报文可以是根据第一secondary SID对第二报文进行本地转发处理后得到的报文。
步骤1606、第二SFF根据第三报文得到第四报文,第四报文包括第三报文的载荷且不包括段列表。
本步骤可以包括:第二SFF按照第三报文的报文头的目的地址字段,查询本地SID表,确定第三报文的目的地址与backup SID匹配,则执行backup SID对应的指令,得到第四报文。其中,执行backup SID对应的指令的过程可以称为backup SID行为。第四报文可以是根据backup SID对第三报文进行处理后得到的报文。
例如,请参见图17和图18,SFF2接收到报文后,由于SFF1 secondary SID在外层,backup SID在内层,SFF2会先按照secondary SID行为处理报文,再继续按照backup SID行为处理报文。比如请参见图17中SFF2内部的箭头,该箭头从SFF1 secondary SID指向B-sid2,再从B-sid2指向SF1所在的VM2,含义是先按照SFF1 secondary SID行为,处理报文,再按照B-sid2行为,处理报文后转发给SF1所在的VM2。
此外,由于backup SID和proxy SID的function相同,第二SFF根据backup SID,会行使proxy SID的功能,剥离第三报文的SRH,得到第四报文。
步骤1607、第二SFF通过backup SID对应的出接口,向业务链中的第一SF网元发送第四报文。
步骤1608、第一SF网元接收第四报文,对第四报文进行业务功能处理。
如果第二SFF与第一SF网元之间的链路发生故障,且报文中仍携带proxy SID,而未携带backup SID,则第二SFF会在报文中插入第二secondary SID,刷新报文头的目的地址字段,通过第二secondary SID对应的locator路由,将报文引流回第一SFF,造成环路。而通过将报文中的proxy SID替换为backup SID,由于backup SID指示第二SFF不使用第二secondary SID转发第二报文,因此第二SFF不会进入secondary SID流程,而是仅作指向第一SF网元的转发,由此打破环路。
综上,本实施例提供的方法,在SRV6静态业务链场景下,即使SF网元与双归接入的两个SFF之间的链路均故障,通过引入backup SID,将报文原本包含的proxy SID替换为backup SID,使得报文既可以通过secondary SID,被引流至该SF网元接入的其他SFF,又可以通过backup SID,指示其他SFF作指向SF网元的转发,而不再进入secondary SID流程,因此避免了其他SFF进入secondary SID流程后造成的流量环路。因此,通过backup SID机制,可以防止双点故障引起的流量环路。
以上介绍了SFF与SF网元之间的链路故障场景下进行保护的方法以及防止流量环路的方法。SRV6静态业务链的故障场景除了上述实施例描述的链路故障场景之外,也包括节点故障场景,例如SF整体网元故障。有鉴于此,本实施例提供了一种业务链中SF网元发生故障场景下进行保护的方法,以下通过图19实施例进行介绍。在图19实施例中,以第二SF网元发生故障为例进行说明。应理解,图19实施例侧重描述与上述实施例的区别之处,而与上述实施例同理的步骤还请参见上述实施例,在图19实施例中不做赘述。
参见图19,该方法可以包括以下步骤1901至步骤1907。
步骤1901、业务链中的第四SFF接收第五报文,第五报文的报文头的目的地址字段包括业务链中的第二SF网元对应的proxy SID。
第四SFF可以是图11实施例中的第一SFF。第四SFF也可以是图11实施例中的第二SFF。第四SFF还可以不是第一SFF或第二SFF,而是业务链中的其他SFF,本实施例对此不做限定。第二SF网元为业务链中第四SFF接入的SF网元。例如,如果第四SFF是图11实施例中的第一SFF或第二SFF,则第二SF网元可以是图11实施例中的第一SF网元。
步骤1902、若第二SF网元处于故障状态,第四SFF更新第五报文的报文头的目的地址字段,得到第六报文,第六报文的目的地址字段包括bypass SID。
第六报文为第四SFF根据bypass SID对第五报文进行处理后得到的报文。第六报文中的IPv6头包括DA字段,该DA字段的取值为bypass SID。第六报文中的SRH包括段列表以及SL。该段列表包括bypass SID以及其他SID。SL的取值可以指明段列表中当前工作的SID为bypass SID。第六报文中的载荷可以是待通过SF网元处理的原始报文。第六报文可以包括第五报文的载荷,例如,第六报文中的载荷可以和第五报文中的载荷相同。
bypass SID用于引流至处于故障状态的SF网元之外的其他SF网元,以实现业务流量的正常转发。在本实施例中,以这样的场景举例说明:第二SF网元故障,而业务链中除了第二SF网元之外还具有第三SF网元,该第三SF网元接入了第五SFF。在这一场景中,bypass SID可以是第五SFF上配置的SID。bypass SID可以为第五SFF本地的SID。bypass SID可以预先存储在第五SFF的本地SID表中。bypass SID的locator用于路由至第五SFF。bypass SID的locator可以为第五SFF预先发布的locator。例如,请参见图20和图21,SFF2中包含“Bypass SID”。该bypass SID为SFF3本地的sid3,该bypass SID的locator可以定位至SFF3。
在一些实施例中,bypass SID的类型可以为End类型。例如,在第五SFF的本地SID表中,bypass SID的Func Type的取值可以是End。
bypass SID具体包括多种实现方式,采用不同方式实现bypass SID时,第四SFF的动作可以具有区别。以下,通过方式一和方式二举例说明。
方式一、bypass SID可以单独定义。
bypass SID可以是第五SFF上单独定义的End类型的SID。在这种方式下,第四SFF可以还向第五报文的SRH中插入bypass SID,并更新第五报文的报文头的目的地址字段,得到第六报文。
方式二、bypass SID为第三SF网元对应的proxy SID。
bypass SID也可以复用待跳转的SF网元对应的proxy SID,即第三SF网元对应的proxy SID。在这种方式下,由于第五报文的SRH中已经包括第三SF网元对应的proxy SID,第三SF网元可以不向第五报文的SRH中插入bypass SID,而是直接通过更新SRH中SL字段的取值,将当前工作的SID偏移至第三SF网元对应的proxy SID,并更新第五报文的报文头的目的地址字段,进行转发即可。
第三SF网元为第二SF网元之外的其他SF网元。第三SF网元可以是指定的第二SF网元故障后要跳转的SF网元。第三SF网元具体包括多种情况,以下通过情况(1)至情况(2)举例说明。
情况(1)第三SF网元为第二SF网元的备份SF网元。
备份SF网元用于充当第三SF网元的备份。备份SF网元为业务网元.备份SF网元提供的业务功能和第三SF网元提供的业务功能可以相同。例如,在一种可能的实现中,备份SF网元和第三SF网元可以是双机热备的关系,第三SF网元为主机,备份SF网元为从机,当 第三SF网元故障后,备份SF网元可以代替第三SF网元进行业务功能处理。
情况(2)第三SF网元为业务链中第二SF网元的下一个SF网元。
例如,请参见图12,如果第二SF网元为SF1,第三SF网元可以是SF2。
其中,如果第三SF网元为情况(2),由于相邻的两个SF网元对应的proxy SID在SRH的段列表中可以相邻,那么第三SF网元对应的proxy SID会是第二SF网元对应的proxy SID的下一个proxy SID,那么第三SF网元可以将第五报文中当前工作的SID偏移至下一个proxy SID,比如将SL字段的取值减一,再更新第五报文的报文头的目的地址字段,得到第六报文,转发第六报文。
判定SF网元处于故障状态的方式可以有多种,以下通过方式一和方式二举例说明。
方式一、若proxy SID对应的出接口处于开启(UP)状态,且第二SF网元所在的每个VM均不可达,第四SFF检测到第二SF网元处于故障状态。
例如,请参见图20,SFF2上与sid2绑定的iface-out接口处于物理UP状态,且运行有SF1的VM1和VM2全部不可达,则SFF2可以判定SF1故障。
方式二、若backup SID对应的出接口或proxy SID对应的出接口中的至少一项发生链路故障,第四SFF检测到第二SF网元处于故障状态。
具体地,方式二可以而不限于是下述方式2.1至方式2.2。
方式2.1、第四SFF上配置了proxy SID和backup SID。
在方式2.1中,第四SFF上有两个去向第二SF网元的出接口,一个出接口与proxy SID建立了绑定关系,另一个出接口与backup SID建立了绑定关系。若第四SFF检测到backup SID对应的出接口处于关闭(down)状态,proxy SID对应的出接口也处于down状态,第四SFF可以确定与第二SF网元之间的每条链路均已断开,因此第四SFF可以判定第二SF网元处于故障状态。
其中,第四SFF上的backup SID可以用于防止第四SFF和第五SFF之间的流量产生环路。第四SFF上的backup SID可以用于指示第四SFF不使用第三secondary SID转发第五报文。该第三secondary SID为第五SFF本地的SID。该第五SFF可以和第四SFF之间的关系可以为任播关系。第五SFF可以为保护组中第四SFF之外的其他SFF,保护组包括第二SF网元接入的多个SFF。
方式2.2、第四SFF上仅配置了proxy SID,而未配置backup SID。
在方式2.2中,第四SFF上有一个去向第二SF网元的出接口,该出接口与proxy SID建立了绑定关系。若第四SFF检测到proxy SID对应的出接口处于down状态,第四SFF可以确定与第二SF网元之间的链路均已断开,因此第四SFF可以判定第二SF网元处于故障状态。
步骤1903、第四SFF发送第六报文。
第六报文从第四SFF的出接口发送出去后,第六报文会通过bypass SID引流至第五SFF。
步骤1904、业务链中的第五SFF接收第六报文。
步骤1905、第五SFF根据第六报文得到第七报文,第七报文包括第六报文的载荷且不包括段列表。
由于第四SFF将报文头的目的地址字段更新为bypass SID,第五SFF使用目的地址字段查询本地SID表后,会执行bypass SID对应的操作。
根据bypass SID的实现方式的不同,第五SFF的动作可以具有区别。以下,通过方式一 和方式二举例说明。
方式一、bypass SID可以单独定义。
方式一下第五SFF的动作可以包括以下步骤一至步骤二。
步骤一、第五SFF根据bypass SID,对第六报文进行本地转发处理,得到第八报文。
其中,第八报文的报文头的目的地址字段包括第三SF网元对应的proxy SID,第八报文可以包括第六报文的载荷。
步骤二、第五SFF根据第八报文得到第七报文。
在方式一下,由于bypass SID在外层,proxy SID在内层,第五SFF接收到第六报文时,可以先根据bypass SID,查询本地SID表,判断bypass SID的类型为End类型,则根据End类型SID动作,查询IPv6路由转发表进行本地转发。之后,第五SFF会按照proxy SID行为继续处理报文并进行转发。
方式二、bypass SID为第三SF网元对应的proxy SID。
在方式二下,第五SFF可以直接按照proxy SID行为处理报文并进行转发。
应理解,在方式一和方式二下,第五SFF均会将SRH先剥掉再发送给第三SF网元,第三SF网元向第五SFF返回报文后,第五SFF会根据cachelist重新封装SRH。
步骤1906、第五SFF通过proxy SID对应的出接口,向第三SF网元发送第七报文。
步骤1907、第三SF网元接收第七报文,对第七报文进行业务功能处理。
本实施例提供的方法,在SRV6静态业务链场景下,当SF网元发生故障时,通过引入bypass SID,将报文的报文头的目的地址字段更新为bypass SID,使得报文通过bypass SID,被引流至其他SF网元,比如原有路径外的备份SF网元或被引流至原有路径内的下一个SF网元,从而通过其他网元进行业务保护,实现业务流量的正常转发,避免流量由于单个节点故障而导致中断,提升了业务链的可靠性。
以上描述了通过bypass SID实现SF网元故障场景进行保护的方法。应理解,上述各个实施例中不同实施例出现的特征可以相互结合,产生其他情况。以下示例性介绍另外两种情况下的方法实施例。
参见图22,业务链的故障保护方法可以包括以下步骤2201至步骤2209。
步骤2201、业务链中的第一SFF接收第一报文,第一报文的报文头的目的地址包括业务链中第一SF网元对应的proxy SID。
步骤2202、若第一SFF与第一SF网元之间的链路发生故障,第一SFF更新第一报文的目的地址,第一SFF将第一报文中的proxy SID替换为backup SID,得到第二报文,第二报文的报文头的目的地址包括第一secondary SID。
步骤2203、第一SFF发送第二报文。
步骤2204、业务链中的第二SFF接收第二报文,第二报文的报文头的目的地址包括第一secondary SID。
第一secondary SID为第二SFF本地的SID,其中,第一secondary SID可以为End类型的SID。
步骤2205、第二SFF根据第一secondary SID,对第二报文进行本地转发处理,得到第三报文,第三报文的报文头的目的地址包括backup SID。
步骤2206、若backup SID对应的出接口故障,第二SFF更新第三报文的目的地址,得 到第八报文,第八报文的报文头的目的地址包括bypass SID。
其中,该backup SID用于指示第二SFF不将第二报文的报文头的目的地址字段更新为第二secondary SID,第二secondary SID为第一SFF本地的SID。其中,第二secondary SID可以为End类型的SID;当报文中携带backup SID时,可以表明第一SFF与第一SF网元之间的链路发生故障,不可使用第二secondary SID进入secondary流程。此时,第二SFF可以判断backup SID对应的出接口是否处于打开(up)状态,若backup SID对应的出接口处于up状态,第二SFF可以通过backup SID对应的出接口向第一SF网元发送报文。若backup SID对应的出接口也处于down状态,第二SFF可以通过执行下述步骤,进入bypass SID的流程。
bypass SID为第三SFF本地的SID。其中,bypass SID可以为End类型的SID。例如,在第三SFF的local SID表中,bypass SID的FuncType的取值可以是End。第三SFF为第四SF网元接入的SFF。该第四SF网元可以包括以下情况(1)至(2)。
(1)第四SF网元为第一SF网元的备份SF网元。
(2)第四SF网元为业务链中第一SF网元的下一个SF网元。
步骤2207、第二SFF向第三SFF发送第八报文。
步骤2208、第三SFF接收第八报文,根据第八报文,得到第九报文,通过proxy SID对应的出接口,向第四SF网元发送第九报文,第九报文包括第八报文的载荷且不包括段列表。
步骤2209、第四SF网元接收第九报文,对第九报文进行业务功能处理。
在上述方法实施例中,第二SFF通过bypass SID实现了业务流量的正常转发。在另一些实施例中,如果第二SFF上没有预先配置bypass SID,可以丢弃报文,具体参见下述方法实施例。
参见图23,该方法可以包括以下步骤2301至步骤2306。
步骤2301、业务链中的第一SFF接收第一报文,第一报文的报文头的目的地址字段包括业务链中第一SF网元对应的代理SID。
步骤2302、若第一SFF与第一SF网元之间的链路发生故障,第一SFF更新第一报文的目的地址字段,第一SFF将第一报文中的代理SID替换为backup SID,得到第二报文,第二报文的报文头的目的地址字段包括第一secondary SID。
步骤2303、第一SFF发送第二报文。
步骤2304、业务链中的第二业务功能转发设备SFF接收第二报文,第二报文的报文头的目的地址字段包括第一secondary SID。
步骤2305、第二SFF根据第一secondary SID,对第二报文进行本地转发处理,得到第三报文,第三报文的报文头的目的地址字段包括backup SID。
backup SID用于指示第二SFF不将第二报文的目的地址字段更新为第二secondary SID,第二secondary SID为第一SFF本地的SID。其中,第二secondary SID可以为End类型的SID。
步骤2306、若backup SID对应的出接口故障,且第二SFF的本地SID表中没有bypass SID,第二SFF丢弃第三报文。
以上介绍了本申请实施例的业务链的故障保护方法,以下介绍本申请实施例的SFF,应理解,该应用于SFF其具有上述方法中SFF的任意功能。
图24是本申请实施例提供的一种SFF的结构示意图,如图24所示,该SFF包括:接收模块2401,用于执行步骤1101、步骤1601、步骤2201或步骤2301;更新模块2402,用于 执行步骤1102、步骤1602、步骤2202或步骤2302;发送模块2403,用于执行步骤1103、步骤1603、步骤2203或步骤2303。
可选地,SFF还包括:替换模块,用于将代理SID替换为备份SID。
应理解,图24实施例提供的SFF对应于上述方法实施例中的第一SFF,图24实施例中各模块和上述其他操作和/或功能分别为了实现方法实施例中的第一SFF所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
应理解,图24实施例提供的SFF在对业务链进行故障保护时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将SFF的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的SFF与上述图11实施例、图16实施例、图22实施例或图23实施例中业务链的故障保护方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图25是本申请实施例提供的一种SFF的结构示意图,如图25所示,该SFF包括:接收模块2501,用于执行步骤1104、步骤1604、步骤2204或步骤2304;处理模块2502,用于执行步骤1105和步骤1106,或用于执行步骤1605和步骤1606,或用于执行步骤2205和步骤2206,或用于执行步骤2305;发送模块2503,用于执行步骤1107、步骤1607或步骤2207。
可选地,SFF还包括:丢弃模块,用于执行步骤2306。
应理解,图25实施例提供的SFF对应于上述方法实施例中的第一SFF,图25实施例中各模块和上述其他操作和/或功能分别为了实现方法实施例中的第二SFF所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
应理解,图25实施例提供的SFF在对业务链进行故障保护时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将SFF的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的SFF与上述图11实施例、图16实施例、图22实施例或图23实施例中业务链的故障保护方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图26是本申请实施例提供的一种SFF的结构示意图,如图26所示,该SFF包括:接收模块2601,用于执行步骤1901;更新模块2602,用于执行步骤1902;发送模块2603,用于执行步骤1903。
可选地,SFF还包括:检测模块,用于若代理SID对应的出接口处于开启状态,且第二SF网元所在的每个虚拟机均不可达,检测到第二SF网元处于故障状态;或,若备份SID对应的出接口或代理SID对应的出接口中的至少一项发生链路故障,检测到第二SF网元处于故障状态。
应理解,图26实施例提供的SFF对应于上述方法实施例中的第三SFF,图26实施例中各模块和上述其他操作和/或功能分别为了实现方法实施例中的第三SFF所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
应理解,图26实施例提供的SFF在对业务链进行故障保护时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将SFF的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的SFF与上述图19实施例中业务链的故障保护方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图27是本申请实施例提供的一种SFF的结构示意图,如图27所示,该SFF包括:接收模块2701,用于执行步骤1904;处理模块2702,用于执行步骤1905;发送模块2703,用于执行步骤1907。
可选地,处理模块2702,用于根据bypass SID,对第六报文进行本地转发处理,得到第八报文;根据第八报文得到第七报文。
应理解,图27实施例提供的SFF对应于上述方法实施例中的第四SFF,图27实施例中各模块和上述其他操作和/或功能分别为了实现方法实施例中的第四SFF所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
应理解,图27实施例提供的SFF在对业务链进行故障保护时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将SFF的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的SFF与上述图19实施例中业务链的故障保护方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
以上介绍了本申请实施例的SFF,以下介绍SFF可能的产品形态。
应理解,但凡具备上述SFF的特征的任何形态的产品,都落入本申请的保护范围。还应理解,以下介绍仅为举例,不限制本申请实施例的SFF的产品形态仅限于此。
本申请实施例提供了一种SFF,该SFF包括处理器,该处理器用于执行指令,使得该SFF执行上述各个方法实施例提供的业务链的故障保护方法。
作为示例,该处理器可以是网络处理器(Network Processor,简称NP)、中央处理器(central processing unit,CPU)、特定应用集成电路(application-specific integrated circuit,ASIC)或用于控制本申请方案程序执行的集成电路。该处理器可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。该处理器的数量可以是一个,也可以是多个。
在一些可能的实施例中,该SFF还可以包括存储器。
存储器可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable progra 业务链的故障保护able read-only memory,EEPROM)、只读光盘(compact disc read-only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。
存储器和处理器可以分离设置,存储器和处理器也可以集成在一起。
在一些可能的实施例中,该SFF还可以包括收发器。
收发器用于与其它设备或通信网络通信,网络通信的方式可以而不限于是以太网,无线接入网(RAN),无线局域网(wireless local area networks,WLAN)等。
在一些可能的实施例中,上述SFF或SF网元可以实现为网络设备,该网络设备中的网络处理器可以执行上述方法实施例的各个步骤。例如,该网络设备可以是路由器、交换机或防火墙,当然也可以是其他支持报文转发功能的网络设备。
参见图28,图28示出了本申请一个示例性实施例提供的网络设备的结构示意图,该网络设备可以配置为SFF。
网络设备2800包括:主控板2810、接口板2830、交换网板2820和接口板2840。主控板2810用于完成系统管理、设备维护、协议处理等功能。交换网板2820用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2830和2840用于提供各种业务接口(例如,以太网接口、POS接口等),并实现数据包的转发。主控板2810、接口板2830和2840,以及交换网板2820之间通过系统总线与系统背板相连实现互通。接口板2830上的中央处理器2831用于对接口板进行控制管理并与主控板2810上的中央处理器2811进行通信。
如果网络设备2800被配置为SFF,物理接口卡2833接收第一报文,发送给网络处理器2832,网络处理器2832更新目的地址字段,得到第二报文,根据出接口等信息,在完成链路层封装后,将第二报文从物理接口卡2833发送出去,使得第二报文传输至第二SFF。
在一个实施例中,网络处理器2832将第一报文中的代理SID替换为备份SID。
如果网络设备2800被配置为第二SFF,物理接口卡2833接收第二报文,发送给网络处理器2832,网络处理器2832根据第一从属SID,对第二报文进行本地转发处理;根据第三报文得到第四报文。根据出接口等信息,在完成链路层封装后,将第四报文从物理接口卡2833发送出去,使得第四报文传输至第一SF网元。
如果网络设备2800被配置为第四SFF,物理接口卡2833接收第五报文,发送给网络处理器2832,网络处理器2832更新目的地址字段,得到第六报文,根据出接口等信息,在完成链路层封装后,将第六报文从物理接口卡2833发送出去,使得第六报文传输至第五SFF。
如果网络设备2800被配置为第五SFF,物理接口卡2833接收第六报文,发送给网络处理器2832,网络处理器2832根据第六报文得到第七报文。根据出接口等信息,在完成链路层封装后,将第七报文从物理接口卡2833发送出去,使得第七报文传输至第三SF网元。
应理解,本实施例中接口板2840上的操作与接口板2830的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备2800可对应于上述各个方法实施例中的SFF,该网络设备2800中的主控板2810、接口板2830和/或2840可以实现上述各个方法实施例中的SFF所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
图29是本申请实施例提供的一种上述图28所示网络设备中的接口板2830的结构示意图,该接口板2830所在的网络设备可以为上述图系统架构实施例中的任一节点,比如可以为SFF或SF网元等。该接口板2830可以包括物理接口卡(physical interface card,PIC)2930,网 络处理器(network processor,NP)2910,以及流量管理模块(traffic management)2920。
其中,PIC为物理接口卡(physical interface card),用于实现物理层的对接功能,原始的流量由此进入网络设备的接口板,以及处理后的报文从该PIC卡发出。
网络处理器NP 2910用于实现报文的转发处理。具体而言,上行报文的处理包括:报文入接口的处理,转发表查找(如上述实施例中涉及第一转发表或第二转发表的相关内容);下行报文的处理:转发表查找(如上述实施例中涉及第一转发表或第二转发表的相关内容)等等。
流量管理TM 2920,用于实现QoS、线速转发、大容量缓存,队列管理等功能。具体而言,上行流量管理包括:上行Qos处理(如拥塞管理和队列调度等)以及切片处理;下行流量管理包括:组包处理,多播复制,以及下行Qos处理(如拥塞管理和队列调度等)。
可以理解的是,若网络设备有多个接口板2830的情况下,多个接口板2830之间可以通过交换网2940通信。
需要说明的是,图29仅示出了NP内部的示意性处理流程或模块,具体实现中各模块的处理顺序不限于此,而且实际应用中可以根据需要部署其他模块或者处理流程。本申请实施例对此不做限制。
在一些可能的实施例中,上述SFF可以实现为计算设备,该计算设备中的中央处理器可以执行上述方法实施例的各个步骤。例如,该计算设备可以是主机、服务器或个人计算机等。该计算设备可以由一般性的总线体系结构来实现。
参见图30,图30示出了本申请一个示例性实施例提供的计算设备的结构示意图。计算设备可以是方法实施例全部或部分描述的内容中涉及的任一设备,比如,SFF或SF网元等。计算设备包括至少一个处理器3001、通信总线3002、存储器3003以及至少一个通信接口3004。
处理器3001可以是一个通用中央处理器(central processing unit,CPU)、网络处理器(NP)、微处理器、或者可以是一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(progra业务链的故障保护able logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex progra业务链的故障保护able logic device,CPLD),现场可编程逻辑门阵列(field-progra业务链的故障保护able gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线3002用于在上述组件之间传送信息。通信总线3002可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器3003可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable progra业务链的故障保护able read-only Memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器3003可以是独立存在,并通过通信总线3002与处理器3001相连接。存储器3003也可以和处理器3001集成在一起。
通信接口3004使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口3004包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器3001可以包括一个或多个CPU,如图30中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,计算设备可以包括多个处理器,如图30中所示的处理器3001和处理器3005。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备和输入设备。输出设备和处理器3001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器3001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器3003用于存储执行本申请方案的程序代码3010,处理器3001可以执行存储器3003中存储的程序代码3010。也即是,计算设备可以通过处理器3001以及存储器3003中的程序代码3010,来实现方法实施例提供的业务链的故障保护方法。
本申请实施例的计算设备可对应于上述各个方法实施例中的SFF,并且,该计算设备中的处理器3010、收发器3020等可以实现上述各个方法实施例中的SFF所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
在一些可能的实施例中,上述SFF可以实现为虚拟化设备。
例如,虚拟化设备可以是运行有用于发送报文功能的程序的虚拟机(英文:Virtual Machine,VM),虚拟机部署在硬件设备上(例如,物理服务器)。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。可以将虚拟机配置为SFF。例如,可以基于通用的物理服务器结合网络功能虚拟化(Network functions Virtualization,NFV)技术来实现SFF。SFF为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本申请即可结合NFV技术在通用物理服务器上虚拟出具有上述功能的SFF。此处不再赘述。
例如,虚拟化设备可以是容器,容器是一种用于提供隔离的虚拟化环境的实体,例如,容器可以是docker容器。可以将容器配置为SFF。例如,可以通过对应的镜像来创建出SFF,例如可以通过proxy-container(提供代理服务的容器)的镜像,为proxy-container创建2个容器实例,分别是容器实例proxy-container1、容器实例proxy-container2,将容器实例proxy-container1提供为第一SFF,将容器实例proxy-container2提供为第四SFF。采用容器技术实现时,SFF可以利用物理机的内核运行,多个SFF可以共享物理机的操作系统。通过容器技术可以将不同的SFF隔离开来。容器化的SFF可以在虚拟化的环境中运行,例如可以在虚拟机中运行,容器化的SFF可也可以直接在物理机中运行。
例如,虚拟化设备可以是Pod,Pod是Kubernetes(Kubernetes是谷歌开源的一种容器编排引擎,英文简称为K8s)为部署、管理、编排容器化应用的基本单位。Pod可以包括一个或多个容器。同一个Pod中的每个容器通常部署在同一主机上,因此同一个Pod中的每个容 器可以通过该主机进行通信,并且可以共享该主机的存储资源和网络资源。可以将Pod配置为SFF。例如,具体地,可以指令容器即服务(英文全称:container as a service,英文简称:CaaS,是一种基于容器的PaaS服务)来创建Pod,将Pod提供为SFF。
当然,SFF还可以是其他虚拟化设备,在此不做一一列举。
在一些可能的实施例中,上述SFF也可以由通用处理器来实现。例如,该通用处理器的形态可以是一种芯片。具体地,实现SFF的通用处理器包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口,该处理电路用于通过输入接口执行上述各个方法实施例中的报文的生成步骤,该处理电路用于通过输入接口执行上述各个方法实施例中的接收步骤,该处理电路用于通过输出接口执行上述各个方法实施例中的发送步骤。可选地,该通用处理器还可以包括存储介质,该处理电路用于通过存储介质执行上述各个方法实施例中的存储步骤。存储介质可以存储处理电路执行的指令,该处理电路用于执行存储介质存储的指令以执行上述各个方法实施例。
作为一种可能的产品形态,本申请实施例中的SFF,还可以使用下述来实现:一个或多个现场可编程门阵列(英文全称:field-progra业务链的故障保护able gate array,英文简称:FPGA)、可编程逻辑器件(英文全称:progra业务链的故障保护able logic device,英文简称:PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
在一些可能的实施例中,上述SFF还可以使用计算机程序产品实现。具体地,本申请实施例提供了一种计算机程序产品,当该计算机程序产品在第一SFF上运行时,使得第一SFF执行上述方法实施例中的业务链的故障保护方法。本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在第二SFF上运行时,使得第二SFF执行上述方法实施例中的业务链的故障保护方法。本申请实施例提供了一种计算机程序产品,当该计算机程序产品在第四SFF上运行时,使得第四SFF执行上述方法实施例中的业务链的故障保护方法。本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在第五SFF上运行时,使得第五SFF执行上述方法实施例中的业务链的故障保护方法。
应理解,上述各种产品形态的SFF,分别具有上述方法实施例中SFF的任意功能,此处不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相 互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上描述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (31)

  1. 一种业务链的故障保护方法,其特征在于,所述方法包括:
    业务链中的第一业务功能转发设备SFF接收第一报文,所述第一报文的报文头的目的地址字段包括所述业务链中第一业务功能SF网元对应的代理段标识SID,所述第一SFF是所述第一SF网元接入的SFF;
    若所述第一SFF与所述第一SF网元之间的链路发生故障,所述第一SFF更新所述第一报文的所述目的地址字段,得到第二报文,所述第二报文的目的地址字段包括第一从属SID,所述第一从属SID为所述业务链中的第二SFF本地的SID,所述第二SFF为保护组中所述第一SFF之外的其他SFF,所述保护组包括所述第一SF网元接入的多个SFF,所述第二报文包括所述第一报文的载荷;
    所述第一SFF发送所述第二报文。
  2. 根据权利要求1所述的方法,其特征在于,所述第一从属SID的类型为端点End类型。
  3. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    所述第一SFF将所述第一报文中的所述代理SID替换为备份SID,所述备份SID用于指示所述第二SFF不将所述第二报文的目的地址字段更新为第二从属SID,所述第二从属SID为所述第一SFF本地的SID。
  4. 根据权利要求1所述的方法,其特征在于,所述保护组为任播组,所述任播组中不同SFF发布的代理SID为任播SID。
  5. 一种业务链的故障保护方法,其特征在于,所述方法包括:
    业务链中的第二业务功能转发设备SFF接收第二报文,所述第二报文的报文头的目的地址字段包括第一从属段标识SID,所述第一从属SID为所述第二SFF本地的SID;
    所述第二SFF根据所述第一从属SID,对所述第二报文进行本地转发处理,得到第三报文;
    所述第二SFF根据所述第三报文得到第四报文,所述第四报文包括所述第三报文的载荷且不包括段列表;
    所述第二SFF向所述业务链中的第一SF网元发送所述第四报文。
  6. 根据权利要求5所述的方法,其特征在于,所述第一从属SID的类型为端点End类型。
  7. 根据权利要求5所述的方法,其特征在于,所述第三报文的报文头的目的地址字段包括所述第一SF网元对应的代理SID,所述第二SFF向所述业务链中的第一SF网元发送所述第四报文,包括:
    所述第二SFF通过所述代理SID对应的出接口,向所述第一SF网元发送所述第四报文。
  8. 根据权利要求5所述的方法,其特征在于,所述第三报文的报文头的目的地址字段包括备份SID,所述备份SID用于指示所述第二SFF不将所述第二报文的目的地址字段更新为第二从属SID,所述第二从属SID为所述第一SFF本地的SID,所述第二SFF向所述业务链中的第一SF网元发送所述第四报文,包括:
    所述第二SFF通过所述备份SID对应的出接口,向所述第一SF网元发送所述第四报文。
  9. 根据权利要求5至8中任一项所述的方法,其特征在于,所述第三报文的报文头的目的地址字段包括备份SID,所述方法还包括:
    若所述备份SID对应的出接口故障,所述第二SFF更新所述第三报文的所述目的地址字段,得到第八报文,所述第八报文的报文头的目的地址字段包括引流SID,所述引流SID为第三SFF本地的SID;
    所述第二SFF发送所述第八报文。
  10. 根据权利要求9所述的方法,其特征在于,所述方法还包括:
    若所述备份SID对应的出接口故障,且所述第二SFF的本地SID表中没有所述引流SID,所述第二SFF丢弃所述第三报文。
  11. 一种业务链的故障保护方法,其特征在于,所述方法包括:
    业务链中的第四业务功能转发设备SFF接收第五报文,所述第五报文的报文头的目的地址包括所述业务链中的第二SF网元对应的代理段标识SID,所述第四SFF是所述第二SF接入的SFF;
    若所述第二SF网元处于故障状态,所述第四SFF更新所述第五报文的所述目的地址字段,得到第六报文,所述第六报文的报文头的所述目的地址包括引流SID,所述引流SID为第五SFF本地的SID,所述第五SFF为第三SF网元接入的SFF,所述第三SF网元为所述第二SF网元之外的其他SF网元,所述第六报文包括所述第五报文的载荷;
    所述第四SFF发送所述第六报文。
  12. 根据权利要求11所述的方法,其特征在于,
    所述引流SID为端点End类型的SID;或者,
    所述引流SID为所述第三SF网元对应的代理SID。
  13. 根据权利要求11所述的方法,其特征在于,所述第四SFF更新所述第五报文的所述目的地址字段,得到第六报文之前,所述方法还包括:
    若代理SID对应的出接口处于开启状态,且所述第二SF网元所在的每个虚拟机均不可达,所述第四SFF检测到所述第二SF网元处于故障状态,所述代理SID用于指示为所述第二SF网元执行代理操作;或,
    若备份SID对应的出接口或代理SID对应的出接口中的至少一项发生链路故障,所述第四SFF检测到所述第二SF网元处于故障状态,所述备份SID用于指示所述第四SFF不将所述第二报文的目的地址字段更新为第三从属SID,所述第三从属SID为第五SFF本地的SID,所述第五SFF为保护组中所述第四SFF之外的其他SFF,所述保护组包括所述第二SF网元接入的多个SFF。
  14. 根据权利要求11至13中任一项所述的方法,其特征在于,
    所述第三SF网元为所述第二SF网元的备份SF网元;或,
    所述第三SF网元为所述业务链中所述第二SF网元的下一个SF网元。
  15. 一种业务链的故障保护方法,其特征在于,所述方法包括:
    业务链中的第五业务功能转发设备SFF接收第六报文,所述第六报文的报文头的目的地址字段包括引流SID,所述引流SID为第五SFF本地的SID44,所述第五SFF是第三业务功能SF网元接入的SFF;
    所述第五SFF根据所述第六报文得到第七报文,所述第七报文包括所述第六报文的载荷且不包括段列表;
    所述第五SFF向所述第三SF网元发送所述第七报文。
  16. 根据权利要求15所述的方法,其特征在于,
    所述引流SID的端点End类型的SID;或者,
    所述引流SID为所述第三SF网元对应的代理SID。
  17. 根据权利要求15所述的方法,其特征在于,所述第五SFF根据所述第六报文得到第七报文,包括:
    所述第五SFF根据所述引流SID,对所述第六报文进行本地转发处理,得到第八报文,所述第八报文的报文头的目的地址字段包括所述第三SF网元对应的代理SID,所述第八报文包括所述第六报文的载荷;
    所述第五SFF根据所述第八报文得到所述第七报文。
  18. 根据权利要求15至17中任一项所述的方法,其特征在于,
    所述第三SF网元为第二SF网元的备份SF网元,所述第二SF网元为处于故障状态的SF网元;或,
    所述第三SF网元为所述业务链中所述第二SF网元的下一个SF网元。
  19. 一种业务功能转发设备SFF,所述SFF是网络中的第一SFF,网络中包括多个SFF,其特征在于,所述第一SFF包括:
    接收模块,用于接收第一报文,所述第一报文的报文头的目的地址字段包括所述业务链中第一业务功能SF网元对应的代理段标识SID,所述第一SFF是所述第一SF网元接入的SFF;
    更新模块,用于若所述第一SFF与所述第一SF网元之间的链路发生故障,更新所述第一报文的所述目的地址字段,得到第二报文,所述第二报文的目的地址字段包括第一从属SID,所述第一从属SID为所述业务链中的第二SFF本地的SID,所述第二SFF为保护组中所述第一SFF之外的其他SFF,所述保护组包括所述第一SF网元接入的多个SFF,所述第二报文包括所述第一报文的载荷;
    发送模块,用于发送所述第二报文。
  20. 根据权利要求19所述的SFF,其特征在于,所述第一SFF还包括:
    替换模块,用于将所述第一报文中的所述代理SID替换为备份SID,所述备份SID用于指示所述第二SFF不将所述第二报文的目的地址字段更新为第二从属SID,所述第二从属SID为所述第一SFF本地的SID。
  21. 一种业务功能转发设备SFF,所述SFF是网络中的第二SFF,网络中包括多个SFF,其特征在于,所述第二SFF包括:
    接收模块,用于接收第二报文,所述第二报文的报文头的目的地址字段包括第一从属段标识SID,所述第一从属SID为所述第二SFF本地的SID;
    处理模块,用于根据所述第一从属SID,对所述第二报文进行本地转发处理,得到第三报文;根据所述第三报文得到第四报文,所述第四报文包括所述第三报文的载荷且不包括段列表;
    发送模块,用于向所述业务链中的第一SF网元发送所述第四报文。
  22. 根据权利要求21所述的SFF,其特征在于,所述第三报文的报文头的所述目的地址 字段包括所述第一SF网元对应的代理SID,所述发送模块,用于通过所述代理SID对应的出接口,向所述第一SF网元发送所述第四报文。
  23. 根据权利要求21所述的SFF,其特征在于,所述第三报文的报文头的目的地址字段包括备份SID,所述备份SID用于指示所述第二SFF不将所述第二报文的目的地址字段更新为第二从属SID,所述第二从属SID为所述第一SFF本地的SID,所述发送模块,用于通过所述备份SID对应的出接口,向所述第一SF网元发送所述第四报文。
  24. 根据权利要求21至23中任一项所述的SFF,其特征在于,所述第三报文的报文头的目的地址字段包括备份SID;
    所述更新模块,还用于若所述备份SID对应的出接口故障,更新所述第三报文的所述目的地址字段,得到第八报文,所述第八报文的报文头的目的地址字段包括引流SID,所述引流SID为第三SFF本地的SID;
    所述发送模块,还用于发送所述第八报文。
  25. 一种业务功能转发设备SFF,所述SFF是网络中的第四SFF,网络中包括多个SFF,其特征在于,所述第四SFF包括:
    接收模块,用于接收第五报文,所述第五报文的报文头的目的地址包括所述业务链中的第二SF网元对应的代理段标识SID,所述第四SFF是所述第二SF接入的SFF;
    更新模块,用于若所述第二SF网元处于故障状态,更新所述第五报文的所述目的地址字段,得到第六报文,所述第六报文的报文头的所述目的地址包括引流SID,所述引流SID为第五SFF本地的SID,所述第五SFF为第三SF网元接入的SFF,所述第三SF网元为所述第二SF网元之外的其他SF网元,所述第六报文包括所述第五报文的载荷;
    发送模块,用于发送所述第六报文。
  26. 根据权利要求24所述的SFF,其特征在于,所述第四SFF还包括:
    检测模块,用于若代理SID对应的出接口处于开启状态,且所述第二SF网元所在的每个虚拟机均不可达,检测到所述第二SF网元处于故障状态,所述代理SID用于指示为所述第二SF网元执行代理操作;或,若备份SID对应的出接口或代理SID对应的出接口中的至少一项发生链路故障,检测到所述第二SF网元处于故障状态,所述备份SID用于指示所述第四SFF不将所述第二报文的目的地址字段更新为第三从属SID,所述第三从属SID为第五SFF本地的端点SID,所述第五SFF为保护组中所述第四SFF之外的其他SFF,所述保护组包括所述第二SF网元接入的多个SFF。
  27. 一种业务功能转发设备SFF,所述SFF是网络中的第五SFF,网络中包括多个SFF,其特征在于,所述第五SFF包括:
    接收模块,用于接收第六报文,所述第六报文的报文头的目的地址字段包括引流SID,所述引流SID为第五SFF本地的SID,所述第五SFF是第三业务功能SF网元接入的SFF;
    处理模块,用于根据所述第六报文得到第七报文,所述第七报文包括所述第六报文的载荷且不包括段列表;
    发送模块,用于向所述第三SF网元发送所述第七报文。
  28. 根据权利要求26所述的SFF,其特征在于,所述处理模块,用于根据所述引流SID,对所述第六报文进行本地转发处理,得到第八报文,所述第八报文的报文头的目的地址字段包括所述第三SF网元对应的代理SID,所述第八报文包括所述第六报文的载荷;根据所述第 八报文得到所述第七报文。
  29. 一种业务功能转发设备SFF,其特征在于,所述SFF包括处理器,所述处理器用于执行指令,使得所述SFF执行如权利要求1至权利要求18中任一项所述的方法。
  30. 一种业务链的故障保护系统,其特征在于,所述系统包括如权利要求19至20中任一项所述的SFF以及如权利要求21至24中任一项所述的SFF;或,
    所述系统包括如权利要求25至26中任一项所述的SFF以及如权利要求27至28中任一项所述的SFF。
  31. 一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器读取以使业务功能转发设备SFF执行如权利要求1至权利要求18中任一项所述的方法。
PCT/CN2020/116612 2020-01-03 2020-09-21 业务链的故障保护方法、装置、设备、系统及存储介质 WO2021135420A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20910256.5A EP4075738A4 (en) 2020-01-03 2020-09-21 FAILURE PROTECTION METHOD FOR A CHAIN OF SERVICE FUNCTION, DEVICE, APPARATUS, SYSTEM, AS WELL AS RECORDING MEDIA
US17/810,376 US20220337514A1 (en) 2020-01-03 2022-07-01 Service Chain Fault Protection Method, Apparatus, Device and System, and Storage Medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010004825.6 2020-01-03
CN202010004825.6A CN113079089A (zh) 2020-01-03 2020-01-03 业务链的故障保护方法、装置、设备、系统及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/810,376 Continuation US20220337514A1 (en) 2020-01-03 2022-07-01 Service Chain Fault Protection Method, Apparatus, Device and System, and Storage Medium

Publications (1)

Publication Number Publication Date
WO2021135420A1 true WO2021135420A1 (zh) 2021-07-08

Family

ID=76608419

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/116612 WO2021135420A1 (zh) 2020-01-03 2020-09-21 业务链的故障保护方法、装置、设备、系统及存储介质

Country Status (4)

Country Link
US (1) US20220337514A1 (zh)
EP (1) EP4075738A4 (zh)
CN (1) CN113079089A (zh)
WO (1) WO2021135420A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114143380A (zh) * 2022-01-04 2022-03-04 烽火通信科技股份有限公司 解决SRv6尾节点掉电场景OAM和业务不一致的方法和系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113472900B (zh) * 2021-09-01 2022-02-22 阿里云计算有限公司 报文处理方法、设备、存储介质及计算机程序产品
CN115865769A (zh) * 2021-09-23 2023-03-28 华为技术有限公司 报文处理方法、网络设备及系统
CN116074243A (zh) * 2021-11-03 2023-05-05 华为技术有限公司 一种报文传输方法、装置及设备
CN116261166A (zh) * 2021-12-09 2023-06-13 中兴通讯股份有限公司 链路检测方法、公网节点和存储介质
CN117917886A (zh) * 2022-10-21 2024-04-23 中国移动通信有限公司研究院 报文处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160173366A1 (en) * 2014-12-16 2016-06-16 Cisco Technology, Inc. Node protection for segment routing adjacency segments
US20170026417A1 (en) * 2015-07-23 2017-01-26 Cisco Technology, Inc. Systems, methods, and devices for smart mapping and vpn policy enforcement
US20180077051A1 (en) * 2016-09-15 2018-03-15 Cisco Technology, Inc. Reroute Detection in Segment Routing Data Plane
US20190097908A1 (en) * 2017-09-26 2019-03-28 Zte Corporation Residence time measurement for traffic engineered network
CN109873760A (zh) * 2017-12-01 2019-06-11 华为技术有限公司 处理路由的方法和装置、以及数据传输的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106330714B (zh) * 2015-07-02 2020-05-29 中兴通讯股份有限公司 一种实现业务功能链的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160173366A1 (en) * 2014-12-16 2016-06-16 Cisco Technology, Inc. Node protection for segment routing adjacency segments
US20170026417A1 (en) * 2015-07-23 2017-01-26 Cisco Technology, Inc. Systems, methods, and devices for smart mapping and vpn policy enforcement
US20180077051A1 (en) * 2016-09-15 2018-03-15 Cisco Technology, Inc. Reroute Detection in Segment Routing Data Plane
US20190097908A1 (en) * 2017-09-26 2019-03-28 Zte Corporation Residence time measurement for traffic engineered network
CN109873760A (zh) * 2017-12-01 2019-06-11 华为技术有限公司 处理路由的方法和装置、以及数据传输的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
P. SARKAR, ED. ARRCUS, INC. H. GREDLER RTBRICK INC. C. FILSFILS CISCO SYSTEMS, INC. S. PREVIDI INDIVIDUAL B. DECRAENE ORANGE M. HO: "Anycast Segments in MPLS based Segment Routing; draft-ietf-spring-mpls-anycast-segments-02.txt", ANYCAST SEGMENTS IN MPLS BASED SEGMENT ROUTING; DRAFT-IETF-SPRING-MPLS-ANYCAST-SEGMENTS-02.TXT; INTERNET-DRAFT: SPRING WORKING GROUP, INTERNET ENGINEERING TASK FORCE, IETF; STANDARDWORKINGDRAFT, INTERNET SOCIETY (ISOC) 4, RUE DES FALAISES CH- 1205 GE, no. 02, 29 January 2018 (2018-01-29), Internet Society (ISOC) 4, rue des Falaises CH- 1205 Geneva, Switzerland, pages 1 - 19, XP015125456 *
See also references of EP4075738A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114143380A (zh) * 2022-01-04 2022-03-04 烽火通信科技股份有限公司 解决SRv6尾节点掉电场景OAM和业务不一致的方法和系统
CN114143380B (zh) * 2022-01-04 2023-06-09 烽火通信科技股份有限公司 解决SRv6尾节点掉电场景OAM和业务不一致的方法和系统

Also Published As

Publication number Publication date
CN113079089A (zh) 2021-07-06
US20220337514A1 (en) 2022-10-20
EP4075738A4 (en) 2023-06-14
EP4075738A1 (en) 2022-10-19

Similar Documents

Publication Publication Date Title
WO2021135420A1 (zh) 业务链的故障保护方法、装置、设备、系统及存储介质
US11283707B2 (en) Segment routing with fast reroute for container networking
US10225179B2 (en) Virtual port channel bounce in overlay network
EP4040743B1 (en) Message transmission method and proxy node
US10333836B2 (en) Convergence for EVPN multi-homed networks
WO2021169258A1 (zh) 转发报文的方法、发布路由信息的方法、装置及系统
US8913613B2 (en) Method and system for classification and management of inter-blade network traffic in a blade server
WO2021233267A1 (zh) SRv6业务链中转发报文的方法、SFF及SF设备
EP4044528B1 (en) Packet transmission method, proxy node, and storage medium
US10237179B2 (en) Systems and methods of inter data center out-bound traffic management
US11165693B2 (en) Packet forwarding
WO2021196952A1 (zh) 报文处理方法、设备、系统及存储介质
WO2022078415A1 (zh) 报文转发方法以及网络设备
WO2022012689A1 (zh) 一种路由通告方法及相关设备
WO2022105927A1 (zh) 一种通告网络设备处理能力的方法、设备和系统
WO2022222750A1 (zh) 报文转发方法、装置、网络设备及存储介质
WO2022088685A1 (zh) 一种语义名称获取方法、装置、设备及存储介质
WO2022012690A1 (zh) 一种路由通告方法及相关设备
CN114025025B (zh) SRv6 SID的发布方法及网络设备
WO2022252569A1 (zh) 报文处理方法、装置及系统
US20230224245A1 (en) Packet Transmission Method and Apparatus
JP2024520119A (ja) パケット処理方法、装置、及びシステム

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: 20910256

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020910256

Country of ref document: EP

Effective date: 20220712

NENP Non-entry into the national phase

Ref country code: DE