WO2020010557A1 - Implementation of service function chain on basis of software-defined network - Google Patents

Implementation of service function chain on basis of software-defined network Download PDF

Info

Publication number
WO2020010557A1
WO2020010557A1 PCT/CN2018/095336 CN2018095336W WO2020010557A1 WO 2020010557 A1 WO2020010557 A1 WO 2020010557A1 CN 2018095336 W CN2018095336 W CN 2018095336W WO 2020010557 A1 WO2020010557 A1 WO 2020010557A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
network
network node
function chain
service
Prior art date
Application number
PCT/CN2018/095336
Other languages
French (fr)
Chinese (zh)
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 PCT/CN2018/095336 priority Critical patent/WO2020010557A1/en
Priority to CN201880095531.XA priority patent/CN112385185B/en
Priority to US17/259,493 priority patent/US11616718B2/en
Priority to EP18925914.6A priority patent/EP3823222A4/en
Publication of WO2020010557A1 publication Critical patent/WO2020010557A1/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/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Definitions

  • Embodiments of the present disclosure generally relate to the field of networking, and in particular, to the implementation of a service function chain (SFC) based on a software-defined network (SDN).
  • SFC service function chain
  • SDN software-defined network
  • SDN Network Function Virtualization
  • SDN Software Defined Networking
  • SFC Service Function Chain
  • SDN technology and SFC technology are deployed separately.
  • a control plane SFC controller needs to be deployed in the network, and a classifier for managing the business function chain for packets and a classifier for forwarding packets to corresponding business functions need to be deployed in the data plane.
  • Service Function Repeater SFF
  • an SDN controller in the control plane needs to be deployed, and a switch to support packet forwarding is deployed in the data plane.
  • a method implemented at a business function chain controller includes creating a business function chain for a packet, the business function chain including an ordered set of business functions to be used to process the packet; and directly or indirectly configuring a forwarding rule associated with the business function chain to a plurality of software-defined networks For network nodes, the forwarding rule instructs multiple network nodes how to forward packets to a set of ordered business functions in a business function chain.
  • a method is provided that is implemented at a network node in a software-defined network.
  • the method includes: receiving a packet from an upstream node in a software-defined network; obtaining a forwarding rule associated with a packet's business function chain from a business function chain controller, the business function chain including an ordered set of business functions to be used to process the packet And the forwarding rule instructs the network node how to forward the packet to a business function in a group of ordered business functions; and based on the forwarding rule, the packet is forwarded to a downstream node that is communicatively coupled with the business function in a group of ordered business functions.
  • a method is provided that is implemented at a software-defined network controller.
  • the method includes receiving, from a business function chain controller, a corresponding forwarding rule associated with a business function chain created for a packet, the business function chain including an ordered set of business functions to be used to process the packet, and the corresponding forwarding rule instructs the software-defined network How multiple network nodes in a group forward packets to a set of ordered business functions in a business function chain; and provide corresponding forwarding rules to multiple network nodes.
  • a communication device in a fourth aspect, includes a processor; and a memory storing instructions that, when executed by the processor, cause the device to perform a method according to the first aspect, the second aspect, or the third aspect.
  • a computer-readable storage medium having stored thereon a computer program that, when executed by a processor, implements a method according to the first aspect, the second aspect, or the third aspect.
  • FIG. 1 shows an exemplary architecture diagram of a typical system for providing SFC
  • FIG. 2 illustrates an exemplary architecture diagram of a system implementing SFC based on SDN according to an embodiment of the present disclosure
  • FIG. 3 shows an example structure diagram of a flow table for forwarding a packet based on a label protocol in an SDN network
  • 4A and 4B illustrate an example structure diagram of a flow table used for packet forwarding in the system of FIG. 2 according to an embodiment of the present disclosure
  • 4C illustrates an example of a processing action defined in a flow entry according to an embodiment of the present disclosure
  • FIG. 5 illustrates an example structure of a path label according to an embodiment of the present disclosure
  • FIG. 6 illustrates an example of an SDN-based SFC system according to an embodiment of the present disclosure
  • FIG. 7A to 7N illustrate example structural diagrams of a flow table used in the example of FIG. 6;
  • FIG. 8 illustrates a flowchart of a method implemented at an SFC controller according to an embodiment of the present disclosure
  • FIG. 9 illustrates a flowchart of a method implemented at a network node in an SDN network according to an embodiment of the present disclosure
  • FIG. 10 illustrates a flowchart of a method implemented at an SDN controller according to an embodiment of the present disclosure.
  • FIG. 11 illustrates a schematic block diagram of an example device that can be used to implement embodiments of the present disclosure.
  • FIG. 1 illustrates an exemplary architecture diagram of a typical system 100 for providing SFC.
  • the system 100 may include one or more controllers in a control plane, which may be distributed across one or more physical hosts and / or virtual hosts.
  • the system 100 may include a service function chain (SFC) controller 110.
  • SFC service function chain
  • the SFC controller 110 can communicate with each node on the data plane and configure each node on the data plane.
  • the data plane may include a classifier 120, one or more service function repeaters (SFF) 130-1, 130-2, 130-3, 130-4 (collectively referred to as SFF 130 for ease of description), and corresponding Service functions (SF) 140-1, 140-2, 140-3, 140-4, etc. (For ease of description, they are collectively referred to as SF 140).
  • the classifier 120 provides a classification function to classify packets into matching business function chains (SFCs). Classification policies can be user-specific, network-specific, or business-specific.
  • the classifier 120 may include a classification table 121 for determining a match of the packet to the SFC.
  • SF 140 is used to perform specific processing on the received packet.
  • SF 140 may be a logic element, which may be implemented as a virtual element in a physical network device or embedded therein.
  • SF 140 can provide general network service functions or application-specific functions. Examples of SF140 can include, but are not limited to, firewalls, access control, entity authentication, unified threat management (UTM), intrusion detection system (IDS), intrusion prevention system (IPS), virtual private network (VPN), security gateway, deep packet Detection (DPI), lawful interception (LI), traffic cleaning, data integrity verification, data confidentiality protection, data desensitization, data encryption, data decryption, etc.
  • UPM unified threat management
  • IDS intrusion detection system
  • IPS intrusion prevention system
  • VPN virtual private network
  • LI deep packet Detection
  • traffic cleaning data integrity verification
  • confidentiality protection data desensitization
  • data encryption data decryption, etc.
  • SFF 130 is used to forward packets to SF 140 connected to it, and to receive processed packets from SF 140.
  • SFF 130 may include service function path (SFP) tables 150-1, 150-2, 150-3, and 150-4 (for ease of description, usually SFP table 150).
  • SFP table 150 The SFF 130 determines how to forward a packet based on the SFP table 150.
  • SFF 130 can be implemented as a virtual element in a physical network device or embedded in it.
  • the SFC controller 110 may create a business function chain (SFC) for a packet.
  • SFC can sometimes be referred to as the service chain (SC) for short, and each SFC includes an ordered set of SFs 140. Packets classified into a specific SFC will be processed by the SF 140 involved in the chain. If the SFs in the SFC all involve data security functions, the SFC can also be referred to as the Security Service Chain (SSC).
  • SC service chain
  • SSC Security Service Chain
  • SFPs 161 and 162 of which SFP 161 involves: host 170-1-> classifier 120-> SFF 130-1-> SF 140-1-> SFF 130-1-> SFF 130-2 -> SF 140-2-> SFF 130-2-> SFF 130-4-> SF 140-4-> SFF 130-4-> Host 170-2.
  • SFP 162 involves: host 170-1-> classifier 120-> SFF 130-1-> SFF 130-3-> SF 140-3-> SFF 130-3-> host 170-3.
  • the packets from host 170-1 to host 170-2 are processed by an SFC composed of an ordered set of SFs 140-1, 140-2, 140-3, and 140-4.
  • packets from the host 170-1 to the host 170-3 are processed by the SFC composed of the SF 140-3.
  • system 100 may include more components, fewer components, or different components.
  • SDN software-defined network
  • the SDN controller controls the forwarding of the packet by the switch according to the specified control protocol, so that the switch can transmit the packet from the source address to the destination address.
  • the core of the SDN network is to separate the control plane and data plane of the network equipment to achieve flexible control of network traffic and make the network more intelligent as a pipe.
  • SDN technology and SFC technology are deployed separately.
  • the SFC controller and the SDN controller separately control the data plane components to achieve the corresponding functions. It is expected that the network equipment in the SDN network can be used to implement SFC, so that the advantages brought by the two technologies can be obtained.
  • an SFC component (such as a classifier, SFF) for supporting SFC is implemented as a forwarding rule of a network node in an SDN network, such as a flow table.
  • the forwarding rule instructs the network node how to forward the packet to the SF of the corresponding SFC.
  • the SFC controller can communicate with the SDN controller or the network node to configure such forwarding rules to the network node.
  • FIG. 2 illustrates an example structural diagram of a system 200 for implementing SFC based on SDN according to an embodiment of the present disclosure.
  • the control plane includes an SFC controller 210 for controlling the SFC of a packet.
  • the control plane also includes an SDN controller 212 for controlling network nodes (such as network nodes 220-1, 220-2, etc.) in the SDN network.
  • the network nodes 220-1, 220-2 may be collectively referred to as the network node 220, which is responsible for packet forwarding.
  • the network node 220 may also be referred to as a network device, a switch, a switching device, or the like.
  • Network node 220-2 is also connected to SF 240-1.
  • SF 240-1 is used to process packets to provide specific business functions.
  • system 200 may further include more network nodes and more SFs, and each network node may be connected to more than one SF.
  • the SDN controller 212 and the network node 220 in the SDN network can interact with various control protocols.
  • An example of a control protocol is the OpenFlow protocol. Under this protocol, the network node 220 may also be referred to as an OpenFlow switch, and the SDN controller 212 may be referred to as an OpenFlow controller.
  • Other protocols that support interaction between the control and data planes can also be used, such as the Virtual Extended Local Area Network (VXLAN) protocol.
  • VXLAN Virtual Extended Local Area Network
  • the embodiments of the present disclosure are described using the OpenFlow protocol as an example, but it should be understood that these embodiments can also be applied to the case where the SDN controller 212 and the network node 220 use other communication protocols. It should also be noted that, in communication based on the OpenFlow protocol, communication to a packet can also be referred to as communication to a data flow.
  • the SFC controller 210 creates an SFC for the packet, which SFC includes an ordered set of SFs (SF 240-1 in the example of Figure 2) to be used to process the packets.
  • SFC can be user-specific, application-specific, network-specific, and so on.
  • packets from a specific user or a specific application or packets transmitted in a specific network will be processed by the SF in the SFC.
  • the SFC controller 210 configures a corresponding forwarding rule associated with the created SFC to the network node 220 in the SDN.
  • the forwarding rule instructs the network node 220 how to forward the packet to each SF in the created SFC.
  • the forwarding rule associated with the created SFC may involve the forwarding of multiple network nodes, so the SFC controller 210 may configure the corresponding forwarding rule to each network node 220, and the forwarding rule obtained by each network node 220 specifies the network node 220 itself forwards the packet.
  • a packet for the SFC will be classified by the classifier into the SFC and provided to the corresponding SFF, and then forwarded to the corresponding SF for processing via the SFF.
  • the delivery of a packet to an SFC by a classifier and SFF is configured as a forwarding rule of a network node in SDN. After being configured with such a forwarding rule, the network node 220 will forward the packet based on the forwarding rule so that the packet can be correctly transmitted to the SF involved in the SFC created by the SFC controller 210.
  • the network node 220-1 may receive a packet from an upstream node.
  • the upstream node that provides the packet to the network node 220-1 may be a host device or other user equipment that generates the packet.
  • the network node 220-1 forwards the packet to the downstream network node 220-2 (also referred to as the next hop) based on the forwarding rule 202-1 configured by the SFC controller 210.
  • Network node 220-2 is connected to SF 240-1. Based on the configured forwarding rule 202-2, the network node 220-2 can provide the packet to SF 240-1 for processing and forward the packet to the downstream node, also known as the next hop (for example, the next network node or the purpose of the packet Ground equipment).
  • the SFC controller 210 may directly or indirectly configure a forwarding rule to the network node 220.
  • the SFC controller 210 may directly transmit the forwarding rules to the network node 220.
  • the SFC controller 210 may communicate directly with the network node 220 using, for example, an extended NETCONF protocol to transmit a forwarding rule to the network node 220.
  • the communication protocol between the SDN controller 212 and the network node 220 may not be changed.
  • the SFC controller 210 may provide the forwarding rules to the network node 220 via the SDN controller 212.
  • the SDN controller 212 acts as a communication intermediary between the SFC controller 210 and the network node 220 to achieve indirect configuration of the forwarding rules.
  • the SDN controller 212 may include an SFC implementation module 214 for supporting communication with the SFC controller 210.
  • the SFC controller 210 transmits the forwarding rule to the SDN controller 212 (for example, the SFC implementation module 214 therein). After obtaining the forwarding rule, the SDN controller 212 transmits the forwarding rule to the network node 220 according to a communication protocol (for example, the OpenFlow protocol) with the network node 220.
  • a communication protocol for example, the OpenFlow protocol
  • the conventional communication between the SDN controller 212 and the network node 220 will be changed to support the transmission of forwarding rules.
  • the message configuration for transmission between the SDN controller 212 and the network node 220 needs to be updated to support the transmission of forwarding rules associated with the SFC.
  • the SFC controller 210 in order to create an SFC and generate a forwarding rule, the SFC controller 210 also requests the SDN controller 212 for network related information, such as network topology information.
  • the network topology information indicates the topology between the network nodes 220 in the system 200, between the network nodes 220 and the host devices that initiate and receive packets, and between the network nodes 220 and the SF 240-1.
  • the SFC controller 210 sends a request for the network topology information to the SDN controller 212.
  • the SDN controller 212 transmits the network topology information to the SFC controller 210.
  • the SFC controller 210 may create an SFC based on such network topology information.
  • the network topology information can indicate the deployment of SF in the network, the network nodes connected to it, and so on, which can promote the SFC controller 210 to generate SFC.
  • the SFC controller 210 may also refer to the obtained network topology information, for example, so that the forwarding rule may indicate which network node how to forward packets to which SFs.
  • the communication related to the SFC controller 210 may be implemented by the SFC implementation module 214 in the SDN controller 212.
  • the SFC controller 210 may also request information about the deployment status and operation status of the network node 220 and / or SF 240-1 to support the configuration of SFC creation and forwarding rules.
  • the deployment status of the network node 220 and / or SF 240-1 may be obtained from a device such as Management and Orchestration (MANO).
  • the MANO device (not shown in Figure 2) is responsible for performing management, maintenance, and provisioning of virtual machine (VM) management and virtualized network functions in the SDN network.
  • the MANO device can provide the SFC controller 210 with the deployment status and operation status of the network nodes 220 and / or SF 240-1, such as the throughput, latency, IP address, flexibility and availability of running business functions, and so on.
  • the SFC controller 210 configures the forwarding rules so that the network node 220 can forward the packets to the corresponding SFs that make up a particular SFC.
  • a classification function is needed to achieve the classification of packets into corresponding SFCs.
  • Service Function Forwarding (SFF) is also required to realize the transmission of packets classified to the corresponding SFC in the SFP, and to provide the packets to the corresponding SF for processing.
  • SFF Service Function Forwarding
  • both the classification function and the SFF function are configured as forwarding rules in the network node 220.
  • the network node 220 performs packet forwarding based on a flow table.
  • the flow table is configured by the SDN controller.
  • a flow table includes one or more flow entries, each flow entry indicating an action to be performed on a packet by a network node. After receiving the packet, the network node 220 looks up the flow table to determine the flow entry that matches the packet and performs corresponding actions based on the flow entry, such as encapsulation or decapsulation of the packet header, multipath forwarding, and output to one or several Ports, go to other flow tables to continue processing, and so on.
  • FIG. 3 shows an example structure of a flow entry 300 for forwarding a label protocol-based flow table in an SDN network.
  • the flow entry 300 includes a matching field in which information (also referred to as matching information) for packet matching is recorded. If a packet contains information that matches one or more of the information in the matching field of a flow entry, the packet matches the flow entry.
  • the matching fields include an input port, an input label, and a destination Internet Protocol (IP) address.
  • IP Internet Protocol
  • the input port indicates a port to which a packet is input to a network node.
  • the input label indicates the label of the switched path from which the network node received the packet in the case where the SDN controller instructs the forwarding of the network node according to the path label service.
  • the path label may include, for example, a multiprotocol label switching (MPLS) label, a general routing encapsulation (GRE) label, a virtual extended local area network-generic path encapsulation (VXLAN-GRE) label, and the like.
  • the input label may further indicate the input path of the packet.
  • the destination IP address in the match field indicates the IP address of the destination to which the packet will be forwarded. Although multiple fields are included, one or more of the matching fields of the flow entry 300 may not be configured with corresponding information depending on the actual forwarding needs.
  • the matching field may also include other information used for matching, such as the source IP address, source port number, destination IP address, destination port number, protocol type adopted by the packet, input port, and so on.
  • the flow entry 300 further includes an output label field, which is used to instruct the network node to output the path label of the packet in the case that the SDN controller instructs the forwarding of the network node according to the path label service.
  • the flow entry 300 also includes an instruction field indicating the corresponding operation to be performed by the network node.
  • the "application action" part of the instruction field may include an "update packet header” field, which indicates a corresponding operation on the header of the packet, such as inserting specific information, removing specific information, and the like.
  • the "application action” section may also include an "output port” field, which instructs the network node to output a packet from the output port indicated by this field.
  • the instruction field of the flow entry 300 may also include a field "to the flow table". This field is usually used when the network node includes multiple flow tables. If the network node includes multiple flow tables, the network node may need to perform pipeline processing of the flow table. That is, after processing a packet based on a flow entry of a flow table, if the "to flow table" field of the flow entry indicates the next flow table, the network node also continues to process the packet according to the matching flow entry in the next flow table. .
  • flow entries of the flow table shown in FIG. 3 are just an example illustration. According to the OpenFlow protocol, flow entries can also have other variations.
  • the SFC controller configures the forwarding rules associated with the SFC created for the packet as a flow entry in a network node.
  • the flow entries in the flow table need to be expanded or modified. An example of the flow entry for supporting classification and SFP forwarding required for supporting SFC is described below in conjunction with the examples of FIGS. 4A and 4B.
  • the SDN controller 212 is going to expand the flow table of the network node 220 to support such flow entries.
  • FIG. 4A shows a classified flow entry 410 for SFC.
  • the flow entry 410 includes a new Network Service Header (NSH) field to indicate the NSH of the packet.
  • NSH Network Service Header
  • the format of the NSH may be, for example, a header format defined in an SFC-related protocol, such as a header defined in the IETF RFC8300 protocol.
  • the NSH may include an identifier of the SFC, such as a service path identifier (SPI), a service index (SI), and the like.
  • SPI service path identifier
  • SI service index
  • the NSH may also include a "next protocol" field indicating the protocol type of the data (payload) encapsulated by the packet.
  • the NSH may also optionally include a "context header" field indicating the metadata (ie, context data) of the SFC.
  • NSH has different types, and the structure of NSH shown in FIG. 4A is only an example. According to the definition of the SFC related protocol, the NSH may include more information, different information, or less information (for example, the next protocol field and the context message field may be omitted).
  • the flow entry 410 may also include a new "next hop” field indicating the next SF in a group of ordered SFs to which the packet is to be forwarded, for example, it may include the address of the next SF.
  • the indication of the "next hop” field is usually based on the next hop position in the service packet path (SFP) of the SFC, which is indicated based on the SPI and SI.
  • the "next hop” field may also be consistent with the packet transfer in the SFC as defined in the SFC-related protocol, such as defined in the IETF RFC8300 protocol.
  • the "next hop” of the SFC can be used to transmit packets encapsulated with NSH in a transmission path established based on the underlying network protocol.
  • the "next hop" field in the flow entry 410 indicates the first SF in a set of ordered SFs of the SFC.
  • a forwarding path such as a label switched path (LSP)
  • LSP label switched path
  • Some SFCs may need to build multiple LSPs (eg if multiple SFs are included). Multiple LSPs can constitute the forwarding of packets throughout the network.
  • the flow entry 410 may also indicate some specific processing actions on the packet.
  • the regular flow entry includes an "instruction" field, where the "application action” section defines the processing action that the network node needs to perform on the packet.
  • the processing actions to be performed by network nodes can be extended.
  • the flow entry 410 may indicate a processing action associated with an SFC-related header (ie, an NSH header).
  • the action field of the "update packet header" of the flow entry 410 can be extended to indicate the following processing action: insert NSH into the packet. The insertion of NSH is usually performed when classifying packets into the path of the SFC.
  • the "application action" of the flow entry 410 may further include an additional action field "Update Header Matching Field" to indicate a processing action of replacing the destination address of the packet with the address of the SF indicated by the next hop. By applying this processing action, the destination address of the packet is replaced in order to support the establishment of an LSP with the next hop.
  • the matching field of flow entry 410 is in addition to the matching information of a conventional flow table (such as the source IP address, source port number, destination IP address, destination port of the packet Number, protocol type, input port, etc.), it can also include additional matching information in SFC scenarios. Examples of such additional matching information may include the application type of the packet, indicating what type of application the payload in the packet belongs to. The additional matching information may also include user information of the group, indicating related information of the user or the host device of the user who initiated the group. One or more of these matching information can be configured. Therefore, the flow entries in the general flow table of SDN are expanded to include the above field types for carrying these additional configuration information.
  • a conventional flow table such as the source IP address, source port number, destination IP address, destination port of the packet Number, protocol type, input port, etc.
  • additional matching information may include the application type of the packet, indicating what type of application the payload in the packet belongs to.
  • the additional matching information may also include user information of the group, indicating related information of the user
  • the flow entry 410 if the flow entry 410 is set in a network node with multiple flow tables, the flow entry 410 also includes a "to flow table" field, which is used to indicate the processing in the pipeline of the flow table of the network node. Next class table. In some embodiments, in the pipeline processing of the flow table of the network node, the flow table containing the flow entry 410 may be the second flow table in the pipeline processing.
  • FIG. 4A shows an example structure of a classified flow entry for SFC.
  • the SFC controller 210 creates the SFC, it can configure the created SFC and the flow entries used for the classification of the SFC into the flow table of the corresponding network node.
  • a flow table configured with flow entries for classification as exemplarily illustrated in FIG. 4A may be used in the pipeline processing of the flow table together with other flow tables.
  • FIG. 4B shows SFP forwarded flow entries 420 for SFC.
  • SFP forwarding is usually implemented by components such as SFF.
  • the SFF forwarding function is implemented as a flow entry in a flow table of a network node.
  • the flow entry 420 is used to cause the network node 220 to forward the packet to the corresponding SF for processing, and further forward the packet returned by the SF processing to the next node.
  • the flow entry 420 indicates an identifier of the SFC, which may be included in the matching field of the flow entry 420 as matching information.
  • the identifier of the SFC may include SPI and / or SI.
  • the received packet is usually encapsulated with an NSH header, which contains the identifier of the SFC (ie, SPI and / or SI). Therefore, in the match field of the flow entry, whether the packet matches the entry can be determined by the identifier of the SFC.
  • the matching field of the flow entry 420 may include other matching information in addition to the identifier of the SFC, such as the matching information described above with respect to FIG. 3 or FIG. 4A.
  • the flow entries in the general flow table of SDN are expanded to include the above field types for carrying these additional configuration information.
  • flow entry 420 may also include a new "next hop” field indicating the next SF in a group of ordered SFs to which the packet is to be forwarded, for example, it may include the next The address of SF.
  • the "next hop” field may also be consistent with the definition in the SFC-related protocol, such as defined in the IETF RFC8300 protocol.
  • the "next hop” of the SFC can be used to transmit packets encapsulated with NSH in a transmission path established based on the underlying network protocol.
  • the "next hop” field in the flow entry 420 indicates some intermediate SF or the last SF in a set of ordered SFs of the SFC.
  • a forwarding path such as a label switched path (LSP) may be established between the current network node and a node associated with the "next hop” according to the "next hop” indication.
  • LSP label switched path
  • the flow entry 420 may also indicate some specific processing actions on the packet.
  • the flow entry 420 may indicate a processing action associated with an SFC-related header (ie, an NSH header).
  • an SFC-related header ie, an NSH header
  • the action field of "Update Packet Header" of the flow entry 410 may be extended to indicate the following processing action: Remove NSH from the packet. The removal of the NSH header is usually when the SF to be provided for packet processing does not support SFC, or when the packet is to be provided to the destination device, or the next hop of the network does not support SFC, or when the packet is about to leave the SFC domain Be executed.
  • the "application action" of the flow entry 420 may also include an additional action field "Update Header Matching Field” to indicate a processing action of replacing the destination address of the packet with the address of the SF indicated by the next hop. By applying this processing action, the destination address of the packet is replaced in order to support the establishment of an LSP with the next hop.
  • the flow entry 420 if the flow entry 420 is set in a network node having multiple flow tables, the flow entry 420 further includes a "to flow table" field, which is used to indicate that in the pipeline processing of the flow table of the network node Next class table.
  • the flow table containing the flow entry 420 in the pipeline processing of the flow table of the network node, may be the second flow table in the pipeline processing.
  • the flow entry will also indicate NSH-related processing actions. These actions are summarized in table 430 in FIG. 4C. As shown in FIG. 4C, the flow entry may include an action label of "Push NSH header" or "Remove NSH header", respectively, indicating that a new NSH header is inserted into the packet and an NSH header is removed from the packet. Table 430 also indicates the type of data associated with the action tag "Push NSH header", such as the Ethernet data type.
  • the SDN controller 212 may control the network nodes to implement packet forwarding according to the path labels.
  • the SDN controller 212 may create a forwarding path of the SDN for transmission of packets in the SDN based on the forwarding rules. For example, the SDN controller 212 may map a path (ie, SFP) of the SFC created for the SFC controller 210 to a multiprotocol label switching path (ie, MPLS) in the SDN.
  • a path ie, SFP
  • MPLS multiprotocol label switching path
  • the SDN controller 212 may include an MPLS management module and a path calculation element (PCE) server (control element) for determining a MPLS label switched path (LSP) between the network nodes 220.
  • the network node 220 may include a PCE client for supporting MPLS-based switching path forwarding.
  • the network node 220 may perform packet forwarding based on the input or output tags of the packet.
  • the SDN controller 212 and the network node 220 may support a PCE communication protocol, such as the protocol specifications defined in IETF RFC4665, IETF RFC5440.
  • MPLS management can also be implemented according to the corresponding protocol specifications, such as IETF RFC3209.
  • FIG. 5 illustrates an example structure 500 of an MPLS-based path label.
  • the path label 500 includes a label field indicating a label value, and the length may be, for example, 20 bits.
  • the path label 500 may further include a reserved field, also referred to as an experimental use field, which is reserved for experimental use, and may be, for example, 3 bits in length.
  • the path label 500 may further include an S field, which indicates the bottom of the label stack and is 1 bit in length. The S field is used in the case of a label stack (for example, when there are multiple path labels).
  • the path label 500 also includes a time-to-live (TTL) field, which indicates the time-to-live of the path label 500, which may be 8 bits in length.
  • TTL time-to-live
  • an indication of the existence of the NSH header of the packet may be added to the path label.
  • a one-bit portion 510 represented by N
  • N a reserved field in the path label 500 may be used to indicate the presence of an NSH header in the packet. This means that in the forwarding of the network node, the payload of the packet and the NSH header inserted therein need to be forwarded.
  • a packet is first received by the network node 220 in the data plane. If there is no flow entry for forwarding the packet in the network node 220, the network node 220 will determine that no SFC matching the packet is found and cannot be forwarded. In this case, the network node 220 provides an indication to the SFC controller 210 that no SFC matching the packet was found. For example, the network node 220 may directly transmit header information in a packet without a matching SFC to the SFC controller 210 or forward it to the SFC controller 210 via the SDN controller 212.
  • the direct communication between the network node 220 and the SFC controller 210 may be implemented based on the extended NETCONF protocol, for example. If forwarded via the SDN controller 212, packets can be provided from the network node 220 to the SDN controller 212 via a "Packet-in" message. In other implementations, the network node 220 may also provide an indirect indication that a certain packet has no matching SFC and cannot be forwarded.
  • the SFC controller 210 may create an SFC for the packet, and The created SFC-associated forwarding rule is configured to other network nodes 220 involved in obtaining the packet network node 220 from it and implementing the forwarding of the business functions of the packet to the SFC.
  • the SFC controller 210 may update or delete the corresponding SFC depending on the application. In this case, the SFC controller 210 configures the network node 220 with a forwarding rule associated with the updated SFC, and instructs the network node 220 to discard the forwarding rule associated with the old or deleted SFC. This communication between the SFC controller 210 and the network node 220 may also be performed directly or completed via the SDN controller 212.
  • the network node 220 may forward the packet based on the forwarding rule so that the packet can be forwarded to the corresponding SF involved in the SFC to For processing. It should be understood that in the process of packet forwarding by the network node 220, in addition to the flow entries of the flow table used for the classification of the SFC and the SFP forwarding function, other flow entries are configured in the network node 220 to implement the network node and the network. Packet forwarding between nodes, network nodes and SF, and network nodes and host devices.
  • a forwarding rule e.g., a flow entry in a flow table
  • the network node 220 Upon flow entry-based forwarding, the network node 220 will extract the header of the packet and determine whether the header contains matching information indicated by the flow entry. If the header contains such matching information, this means that the packet matches the flow entry. In this case, the network node can process the packet based on the matching flow entry. Processing of packets may be performed by information in the instruction field of the flow entry.
  • the network node 220-1 will be configured with forwarding rules related to the classification function of the SFC, such as a flow entry indicating the information as shown in FIG. 4A.
  • the network node 220-1 may determine how to forward a packet based on such a flow entry. Specifically, if the network node 220-1 determines that the header of the packet contains matching information of the flow entry, the processing action indicated by the flow entry is performed on the packet, such as inserting an NSH header into the packet, and / or replacing the destination address of the packet Is the address of the SF indicated by the flow entry.
  • the network node 220-1 may forward a packet to a downstream node (e.g., the network node 220-2) that is communicatively coupled with the SF based on such a destination address.
  • a downstream node e.g., the network node 220-2
  • the network node 220-2 may be configured with forwarding rules related to SFP forwarding, such as a flow entry indicating information as shown in FIG. 4B.
  • the network node 220-2 may determine how to forward packets based on such flow entries. Specifically, if the network node 220-2 determines that the header of the packet contains matching information (such as an identifier of the SFC) of the flow entry, the processing action indicated by the flow entry may be performed on the packet, such as removing the NSH header from the packet, and / Or, the destination address of the packet is replaced with the address of the SF indicated by the flow entry.
  • the network node 220-2 may forward a packet to a downstream node that is communicatively coupled with the SF based on such a destination address.
  • the network node 220-2 can also be configured with another forwarding rule, which instructs the packet to be forwarded Go to SF 240-1 for processing.
  • a rule may also be configured by the SFC controller 210 as a flow entry in the flow table of the network node 220-2.
  • the system 200 includes additional network nodes 620-3, 620-4, and 620-5, which are respectively related to SF640 -2, SF 640-2 and 640-3.
  • These network nodes 620-3, 620-4, and 620-5 function similarly to the network node 220, and can also obtain forwarding rules from the SFC controller 210 for performing packet-to-SF forwarding.
  • the forwarding rules associated with the SFC configured by the SFC controller 210 are implemented as flow entries in the flow table 602 in the network node.
  • Each network node may include multiple flow tables, and pipeline processing of the flow tables needs to be performed to perform packet forwarding.
  • FIG. 6 shows the SFC provided for the group 611 from the host 650-1 to the host 650-2, which involves SF 240-1, SF 640-2, and SF 640-4.
  • Figure 6 also shows the SFC provided for the packet 612 from host 650-1 to host 650-3, which involves SF640-3.
  • the SDN controller 212 maps the SFC into an MPLS path among network nodes.
  • the paths of SFCs involving SF 240-1, SF 640-2, and SF 640-4 are mapped as LSP_1, LSP_2, and LSP_3.
  • the path involving SFC of 640-3 is mapped as LSP_5.
  • the network nodes 220-1 and 220-2 and the network nodes 620-3, 620-4, and 620-5 perform packet forwarding according to the flow tables configured therein.
  • 7A to 7N show examples of flow tables used by these network nodes when forwarding. The following will describe in detail how network nodes forward packets accordingly.
  • the network node 220-1 receives the packet 611 from the host 650-1, for example, via the input port 101.
  • the network node 220-1 performs an operation on the classification of the SFC based on the flow table 710. Specifically, the network node 220-1 extracts a header from the packet, which includes, for example, a source IP address, a destination IP address, a protocol type, an input port, and the like of the packet.
  • the network node 220-1 matches the extracted information with a matching field in a flow entry of the flow table 710 shown in FIG. 7A.
  • the network node 220-1 determines that the flow entry matches the packet 611. The network node 220-1 then performs a processing action on the packet 611 based on the flow entry. Specifically, the network node 220-1 determines that the flow entry indication processing action is "Push NSH header", and therefore inserts the NSH indicated by the flow entry into the packet 611.
  • the network node 220-1 also replaces the destination IP address in the header of the packet with the destination IP address of the next hop indicated by the flow entry (that is, the IP address of SF 240-1: 202.0.0.11), and according to The pipeline processing of the flow table continues to refer to the flow table 12 to process the packet 611.
  • the network node 220-1 may directly transmit the packet 611 to the SFC controller 210 or forward the packet 611 to the SFC controller 210 via the SDN controller 212 according to the NETCONF protocol.
  • the SFC controller 210 may create an SFC for the packet and configure a flow table entry associated with the created SFC to the network node 220-1.
  • the network node 220-1 may also perform an operation on the classification of the SFC based on the flow table 710, and determine that the second flow entry in the flow table 710 matches the packet 612 . Based on the flow entry, the network node 220-1 inserts an NSH header into the packet 612, and modifies the destination IP address of the packet 612 to the destination IP address of the next hop indicated by the matching flow entry (that is, the IP of SF640-3 Address: 202.0.0.13), and continue to refer to the flow table 12 to process the packet 612 according to the pipeline processing of the flow table. If the network node 220-1 was not originally configured with a flow entry that matches the packet 612, the network node 220-1 may or may provide the packet 612 to the SFC controller 210 to obtain the correct flow entry from the SFC controller 210.
  • FIG. 7B shows an example structure 712 of the flow table 612 in the network node 220-1.
  • the network node 220-1 matches the information (for example, input port 101, destination IP address 202.0.0.11) extracted from the header of the packet 611 with the flow entry of the flow table 712.
  • the network node 220-1 sets the output label (MPLS label 1000) of the packet based on the flow entry, and updates the packet header of the packet 611 (That is, push the MPLS label 1000), and forward the packet via the output port 102.
  • MPLS label 1000 the output label of the packet
  • the network node 220-1 matches the information (for example, input port 101, destination IP address 202.0.0.13) extracted from the header of the packet 612 with the flow entry of the flow table 712. If a matching flow entry (for example, a second flow entry) is found from the flow table 712, the network node 220-1 sets the output label (MPLS label 2000) of the packet based on the flow entry, and updates the packet header of the packet 612 ( That is, push the MPLS label 2000), and forward the packet via the output port 102.
  • MPLS label 2000 MPLS label 2000
  • the packets 611 and 612 will be output by the output port 102 of the network node 220-1 and input to the network node 220-2 via the input port 201 of the network node 220-2.
  • the network node 220-2 first performs forwarding of the packets 611 and 612 based on the flow table 720 as shown in FIG. 7C. Specifically, in the network node 220-2, for the packet 611 received from the upstream node 220-1, the network node 220-2 extracts the header of the packet 611 (for example, it includes the input port 201, the input MPLS label 1100, the destination IP Address, NSH header inserted by network node 220-1, etc.).
  • the network node 220-2 matches the extracted information with the flow entry of the flow table 720, and determines that the first flow entry (including the input port 201 and the input MPLS label 1100) in the flow table 720 matches.
  • the network node 220-2 may perform a processing action on the packet 611 based on the flow entry.
  • the network node 220-2 may update the packet header of the packet 611 to take out the MPLS label 1100, and output the packet 611 via the output port 202.
  • Network node 220-2 is communicatively coupled with SF 240-1 via output port 202. Therefore, SF 240-1 can receive packet 611 and perform corresponding processing on packet 611.
  • SF 240-1 uses the context header (e.g., C1) in the NSH header of packet 611 to process packet 611 and reduces the identifier SI in the NSH header of packet 611 (e.g., from 255 to 254) .
  • SF 240-1 returns the packet 611 to the network node 220-2 via the input port 203 of the network node 220-2.
  • the network node 220-2 extracts the header (for example, input port, input MPLS label, SPI and SI in NSH) of the packet 611.
  • the network node 220-2 determines that the packet 611 matches the third flow entry in the flow table 720, which indicates the input port 203. Based on the flow entry, the network node 220-2 will continue to refer to the flow table 1 in the node to process the packet 611.
  • the network node 220-2 can also refer to the flow table 720 to similarly process the packet and determine the flow entry (e.g., the flow table 720) that matches the packet. The second flow entry in), and the processing action indicated by the matching flow entry is performed on the packet 612. Specifically, the network node 220-2 updates the header of the packet 612, that is, switches the MPLS label in the header from 2100 to the MPLS label 2200, and outputs the packet 612 via the output port 205.
  • the network node 220-2 updates the header of the packet 612, that is, switches the MPLS label in the header from 2100 to the MPLS label 2200, and outputs the packet 612 via the output port 205.
  • FIG. 7D shows an example of the flow table 1 in the network node 220-2, that is, the flow table 722.
  • the flow table 722 includes flow entries associated with SFP forwarding.
  • the network node 220-2 matches the information extracted from the header of the packet 611 with the information in the matching field of the flow entry of the flow table 722, and determines that the flow entries indicating the SPI 25 and SI 254 are included in the NSH header of the packet 611 Matches the information.
  • the network node 220-2 determines the IP address of the next hop of the packet 611 (ie, the IP address 202.0.0.12 of 640-2).
  • the network node 220-2 also performs the processing action indicated by the flow entry on the packet 611, that is, the destination address in the header of the packet 611 is replaced with the IP address of the next hop, and then the reference flow is continued according to the pipeline processing of the flow table. Table 23 to process packet 611.
  • the flow table 23 of the network node 220-2 is shown as the flow table 724 in FIG. 7E.
  • the network node 220-2 matches the information extracted from the header of the packet 611 with the information indicated in the matching field in the flow entry of the flow table 724, and determines the flow entry and packet indicating the input port 203 and the destination IP address 202.0.0.12.
  • the information in the header of 611 matches.
  • the network node 220-2 can therefore process the packet 611 based on the flow entry. Specifically, the network node 220-2 sets the output MPLS label of the packet 611 to the output label 1200 indicated by the flow entry, updates the header by inserting the MPLS label 1200 into the header of the packet 611, and outputs the packet via the output port 204.
  • the input port 301 of the network node 620-3 is connected to the output port 204 of the network node 220-2, so the network node 620-3 receives the packet 611.
  • the network node 620-3 may process the packet 611 based on the flow table configured therein. Specifically, the network node 620-3 first looks for a flow entry matching the packet 611 in the flow table 730 shown in FIG. 7F. The network node 620-3 extracts the header information of the packet 611 (for example, input port 301, input MPLS label 1300, NSH header, destination IP address, etc.), and then determines that the extracted information matches the first flow entry in the flow table 730 The information in the fields (indicating that the input port 301 and the input MPLS label 1300) match. Thus, the network node 620-3 performs corresponding processing on the packet 611 based on the flow entry, for example, fetches the MPLS label 1300 in the header of the packet 611, and outputs the packet 611 via the output port 302.
  • Network node 620-3 is communicatively coupled with SF640-2 via output port 302. Therefore, SF640-2 can receive packet 611 and perform corresponding processing on packet 611.
  • SF640-2 utilizes the context header (e.g., C1) in the NSH header of packet 611 to process packet 611 and reduce the identifier SI (e.g., from 254 to 253) .
  • SF640-2 returns packet 611 to network node 620-3 via input port 303 of network node 620-3.
  • the network node 620-3 extracts the header (for example, the input port, the input MPLS label, the SPI and the SI in the NSH) of the packet 611.
  • the network node 620-3 determines that the packet 611 matches the third flow entry of the flow table 730, which indicates the input port 303. Based on the flow entry, the network node 620-3 will continue to refer to the flow table 1 in the node to process the packet 611.
  • FIG. 7G shows an example of the flow table 1 in the network node 620-3, that is, the flow table 732.
  • the flow table 732 includes flow entries associated with SFP forwarding.
  • the network node 620-3 matches the information extracted from the header of the packet 611 with the information in the matching field of the flow entry of the flow table 732, and determines that the flow entries indicating the SPI 25 and SI 253 are included in the NSH header of the packet 611 Matches the information. Based on the matching flow entries, the network node 620-3 then determines the IP address of the next hop of the packet 611 (ie, the IP address 202.0.0.14 of SF640-4).
  • the network node 620-3 also performs the processing action indicated by the flow entry on the packet 611, that is, the destination address in the header of the packet 611 is replaced with the IP address of the next hop, and then the reference flow is continued according to the pipeline processing of the flow table. Table 34 to process packet 611.
  • the flow table 34 of the network node 620-3 is shown as the flow table 734 in FIG. 7H.
  • the network node 620-3 matches the information extracted from the header of the packet 611 with the information indicated in the matching field in the flow entry of the flow table 734, and determines the flow entry and packet indicating the input port 303 and the destination IP address 202.0.0.14.
  • the information in the header of 611 matches.
  • the network node 620-3 can therefore process the packet 611 based on the flow entry. Specifically, the network node 620-3 sets the output MPLS label of the packet 611 to the output label 1400 indicated by the flow entry, updates the header by inserting the MPLS label 1400 into the header of the packet 611, and then outputs the packet via the output port 304.
  • the input port 401 of the network node 620-4 is connected to the output port 304 of the network node 620-3, so the network node 620-4 receives the packet 611.
  • the network node 620-4 may process the packet 611 based on the flow table configured therein. Specifically, the network node 620-4 first finds a flow entry matching the packet 611 in the flow table 740 shown in FIG. 7I.
  • the network node 620-4 extracts the header information of the packet 611 (for example, input port 401, input MPLS label 1500, NSH header, destination IP address, etc.), and then determines that the extracted information matches the first flow entry in the flow table 740 The information in the fields (indicating that the input port 401 and the input MPLS label 1500) match.
  • the network node 620-4 performs a corresponding process on the packet 611 based on the flow entry, for example, takes out an MPLS label 1500 in the header of the packet 611, and outputs the packet 611 via the port 402.
  • the network node 620-4 is communicatively coupled with the SF 640-4 via the output port 402. Therefore, the SF 640-4 can receive the packet 611 and perform corresponding processing on the packet 611.
  • SF640-4 utilizes the context header (e.g., C1) in the NSH header of packet 611 to process packet 611 and reduce the identifier SI in the NSH header of packet 611 (e.g., from 253 to 252) .
  • the packet 611 is returned to the network node 620-4 through the input port 403 of the SF640-4.
  • the network node 620-4 After receiving the packet 611, the network node 620-4 determines that the header information (for example, input port, input MPLS label, SPI and SI in NSH) matches the indicated input port 403 in the flow table 740. Based on the flow entry, the network node 620-4 continues to refer to the flow table 1 in the node (ie, the flow table 742 shown in FIG. 7J) to process the packet 611.
  • the header information for example, input port, input MPLS label, SPI and SI in NSH
  • the network node 620-4 matches the information extracted from the header of the packet 611 with the information in the matching field of the flow entry of the flow table 742, and determines the flow entry indicating SPI 25 and SI 252 and the packet 611. The information contained in the NSH header matches. Based on the matching flow entries, the network node 620-4 then determines the IP address of the next hop of the packet 611 (ie, the IP address of the host 650-2 192.168.0.2).
  • the network node 620-4 also executes the processing action indicated by the flow entry on the packet 611, that is, taking out the NSH header of the packet 611, and replacing the destination address in the header of the packet 611 with the IP address of the next hop, and The pipeline processing of the table continues to refer to the flow table 45 to process the packet 611.
  • the flow table 45 of the network node 620-4 is shown as the flow table 744 in FIG. 7K.
  • the network node 620-4 matches the information extracted from the header of the packet 611 with the information indicated in the matching field in the flow entry of the flow table 744, and determines the flow entry and packet indicating the input port 403 and the destination IP address 192.168.0.2.
  • the information in the header of 611 matches.
  • the network node 620-4 can therefore process the packet 611 based on the flow entry. Specifically, the network node 620-4 outputs the packet 611 via the output port 404. Host 650-2 is connected to. The output port 404 of the network node 620-4, so the packet 611 can be obtained.
  • the packet 612 is output via the output port 205 of the network node 220-1.
  • the network node 620-5 may process the packet 612 based on the flow table configured therein. Specifically, the network node 620-5 looks up a flow entry matching the packet 612 in the flow table 750 shown in FIG. 7L.
  • the network node 620-5 extracts the header information of the packet 612 (for example, input port 501, input MPLS label 2300, NSH header, destination IP address, etc.), and then determines that the extracted information matches the first flow entry in the flow table 750 The information in the fields (indicating that the input port 501 and the input MPLS label 2300) match. Thus, the network node 620-5 performs corresponding processing on the packet 612 based on the flow entry, for example, extracts an MPLS label 2300 in the header of the packet 612, and outputs the packet 612 via the output port 502.
  • the header information of the packet 612 for example, input port 501, input MPLS label 2300, NSH header, destination IP address, etc.
  • Network node 620-5 is communicatively coupled with SF640-3 via output port 502. Therefore, SF640-3 can receive packet 612 and perform corresponding processing on packet 612.
  • SF640-3 utilizes the context header (e.g., C2) in the NSH header of packet 612 to process packet 612 and reduce the identifier SI in the NSH header of packet 612 (e.g., from 224 to 223) .
  • SF640-3 returns the packet 612 to the network node 620-5 via the input port 502 of the network node 620-5.
  • the network node 620-5 extracts the header (for example, the input port, the input MPLS label, the SPI and the SI in the NSH) of the packet 612.
  • the network node 620-5 determines that the packet 612 matches the second flow entry of the flow table 750, which indicates the input port 503. Based on the flow entry, the network node 620-5 will continue to refer to the flow table 1 in the node to process the packet 612.
  • FIG. 7M shows an example of the flow table 1 in the network node 620-5, that is, the flow table 752.
  • the network node 620-5 matches the information extracted from the header of the packet 612 with the information in the matching field of the flow entry of the flow table 752, and determines that the flow entry indicating SPI135 and SI223 is included in the NSH header of the packet 612 Matches the information. Based on the matching flow entries, the network node 620-3 then determines the IP address of the next hop of the packet 611 (ie, the IP address of the host 650-3 192.168.0.3).
  • the network node 620-5 also performs the processing action indicated by the flow entry on the packet 612, that is, takes out the NSH header of the packet 612, and replaces the destination address in the header of the packet 612 with the IP address of the next hop, and then, The pipeline processing of the table continues with reference to the flow table 56 to process the packet 612.
  • the flow table 56 of the network node 620-5 is shown as the flow table 754 in FIG. 7N.
  • the network node 620-5 matches the information extracted from the header of the packet 612 with the information indicated in the matching field in the flow entry of the flow table 754, and determines the flow entry and packet indicating the input port 503 and the destination IP address 192.168.0.3.
  • the information in the header of 612 matches.
  • the network node 620-5 may therefore process the packet 612 based on the flow entry. Specifically, the network node 620-5 outputs the packet 612 via the output port 504. Host 650-3 is connected to.
  • the output port 504 of the network node 620-5 so the packet 612 can be obtained.
  • the packets 611 and 612 can be processed via the SF in the corresponding SFC.
  • an SFC can be implemented in an SDN network.
  • FIG. 8 shows a flowchart of a method 800 for communication according to an embodiment of the present disclosure.
  • the method 800 may be, for example, at the SFC controller 210 shown in FIG. 2.
  • a business function chain is created for a packet, the business function chain including an ordered set of business functions to be used to process the packet.
  • corresponding forwarding rules associated with the business function chain are configured to a plurality of network nodes in the software-defined network. Corresponding forwarding rules indicate how multiple network nodes forward packets to a set of ordered business functions in a business function chain.
  • configuring the corresponding forwarding rule to multiple network nodes includes one of the following: directly transmitting the corresponding forwarding rule to multiple network nodes; or providing the corresponding forwarding rule via a software-defined network controller in a software-defined network To multiple network nodes.
  • configuring the corresponding forwarding rule to multiple network nodes includes: configuring a first flow entry in a first flow table of the first network node, where the first flow entry indicates at least matching information, a packet network service header, The first service function in the group of ordered service functions to which the packet is forwarded and the first processing action to be performed on the packet by the first network node, the first processing action includes inserting a network service header into the packet and a destination address of the packet Replace with at least one of the addresses of the first business function.
  • the network service header includes at least one of the following: an identifier of a service function chain, a protocol type of a payload in a packet, and a context header.
  • the matching information includes at least one of the following: the source address of the packet, the source port number of the packet, the destination address of the packet, the destination port number of the packet, the protocol type of the packet, the input port of the packet, the Application type and grouped user information.
  • configuring the corresponding forwarding rule to multiple network nodes includes: configuring a second flow entry into a second flow table of the second network node, where the second flow entry indicates at least an identifier of the service function chain, A second service function in a group of ordered service functions to which the packet is forwarded and a second processing action to be performed on the packet by the second network node, the second processing action includes removing the network service header from the packet and the purpose of the packet The local address is replaced with at least one of the addresses of the second service function.
  • creating a business function chain includes: sending a request for software topology network topology information to a software-defined network controller in a software-defined network; receiving network topology information from the software-defined network controller; and based on the network topology Information to generate business function chains.
  • creating a business function chain includes: in response to receiving an indication from a network node of a plurality of network nodes that a packet has no matching business function chain and cannot be forwarded, creating a business function chain for the packet.
  • FIG. 9 shows a flowchart of a method 900 for communication according to an embodiment of the present disclosure.
  • the method 900 may be, for example, at the network node 220 shown in FIG. 2 or the network node 620-3, 620-4, or 620-5 shown in FIG.
  • a packet is received from an upstream node in a software-defined network.
  • a forwarding rule associated with the packetized business function chain is obtained from the business function chain controller.
  • the business function chain includes an ordered set of business functions to be used to process packets, and the forwarding rules instruct the network node how to forward packets to business functions in a set of ordered business functions.
  • the packet is forwarded to a downstream node communicatively coupled with a business function in a set of ordered business functions.
  • obtaining a forwarding rule includes one of the following: directly receiving a forwarding rule from a business function chain controller; or receiving a forwarding rule forwarded from a business function chain controller via a software-defined network controller in a software-defined network.
  • the forwarding rule includes a first flow entry in a first flow table.
  • the first flow entry indicates at least matching information, a network service header of the packet, and a first service function in a group of ordered service functions to which the packet is to be forwarded.
  • a first processing action to be performed on the packet by the network node the first processing action includes at least one of inserting a network service header into the packet and replacing a destination address of the packet with an address of the first service function.
  • Forwarding the packet includes: in response to determining that the header of the packet includes matching information, performing a first processing action on the packet; and forwarding the packet to a downstream node that is communicatively coupled with the first service function based on the address of the first service function.
  • the network service header includes at least one of the following: an identifier of a service function chain, a protocol type of a payload in a packet, and a context header.
  • the matching information includes at least one of: a source address of the packet, a destination address of the packet, a protocol type of the packet, an input port of the packet, an application type of the packet, and user information of the packet.
  • the forwarding rule includes a second flow entry in a second flow table, the second flow entry indicating at least an identifier of a service function chain, a second service in a group of ordered service functions to which the packet is to be forwarded A function and a second processing action to be performed on the packet by the network node, the second processing action including at least one of removing a network service header from the packet and replacing a destination address of the packet with an address of the second service function.
  • Forwarding the packet includes: in response to determining that the header of the packet includes the identifier of the business function chain of the second flow entry, performing a second processing action on the packet, and forwarding the packet to communicate with the second business function based on the address of the second business function Coupled downstream nodes.
  • obtaining a forwarding rule includes: in response to determining when a packet is received that the packet has no matching business function chain and cannot be forwarded, providing an indication to the business function chain controller that the packet cannot be forwarded by a network node; and from The business function chain controller obtains the forwarding rule.
  • FIG. 10 shows a flowchart of a method 1000 for communication according to an embodiment of the present disclosure.
  • the method 1000 may be, for example, at the SDN controller 212 shown in FIG. 2.
  • a corresponding forwarding rule associated with the business function chain created for the packet is received from the business function chain controller.
  • the business function chain includes an ordered set of business functions to be used to process packets, and the corresponding forwarding rules instruct multiple network nodes in the software-defined network how to forward packets to an ordered set of business functions in the business function chain.
  • the respective forwarding rules are provided to a plurality of network nodes.
  • the method 1000 further includes: receiving a request for network topology information of the software-defined network from the business function chain controller; and providing the network function information to the business function chain controller in response to the request.
  • the method 1000 further includes: receiving an indication from a network node of the plurality of network nodes that the packet cannot be forwarded by the network node; and providing the indication to the service function chain controller.
  • the method 1000 further includes: mapping a path of the service function chain to a multi-protocol label switching path in the software-defined network for transmission of packets in the software-defined network.
  • the presence of a network service header for the packet is indicated in a label of the multi-protocol label switching path.
  • Some embodiments of the present disclosure also provide a communication device.
  • the communication device includes: a component for creating a business function chain for a packet, the business function chain including an ordered set of business functions to be used to process the packet; and a corresponding forwarding rule associated with the business function chain to configure to software
  • a component that defines multiple network nodes in a network, and the corresponding forwarding rules instruct multiple network nodes how to forward packets to a group of ordered business functions in a business function chain.
  • the communication device may include a service function chain controller.
  • the means for configuring a corresponding forwarding rule to a plurality of network nodes includes one of the following: a means for directly transmitting a corresponding forwarding rule to a plurality of network nodes; or for via a software-defined network
  • the software-defined network controller provides the corresponding forwarding rules to the components of multiple network nodes.
  • the means for configuring the corresponding forwarding rule to multiple network nodes includes: means for configuring a first flow entry in a first flow table of the first network node, where the first flow entry indicates at least matching information, A packet network service header, a first service function in a group of ordered service functions to which the packet is to be forwarded, and a first processing action to be performed by the first network node on the packet.
  • the first processing action includes inserting a network service into the packet. At least one of a header and a destination address of the packet is replaced with an address of the first service function.
  • the network service header includes at least one of the following: an identifier of a service function chain, a protocol type of a payload in a packet, and a context header.
  • the matching information includes at least one of: a source address of the packet, a destination address of the packet, a protocol type of the packet, an input port of the packet, an application type of the packet, and user information of the packet.
  • the means for configuring a corresponding forwarding rule to a plurality of network nodes includes: means for configuring a second flow entry in a second flow table of the second network node, the second flow entry indicating at least The identifier of the service function chain, the second service function in the group of ordered service functions to which the packet is to be forwarded, and the second processing action to be performed on the packet by the second network node, the second processing action includes removing from the packet At least one of a network service header and a destination address of the packet is replaced with an address of the second service function.
  • the means for creating a business function chain includes: means for sending a request for a software-defined network's network topology information to a software-defined network controller in a software-defined network; and for controlling from a software-defined network A component for receiving network topology information; and a component for generating a business function chain based on the network topology information.
  • the means for creating a business function chain includes: creating a service for a packet in response to receiving an indication from a network node of a plurality of network nodes that the packet has no matching business function chain and cannot be forwarded Functional chain components.
  • the communication device includes: a component for receiving a packet from an upstream node in a software-defined network; and a component for obtaining a corresponding forwarding rule associated with a packetized business function chain from a business function chain controller.
  • An ordered set of business functions for processing packets, and the corresponding forwarding rules instruct the network node how to forward packets to a set of ordered business functions; and for forwarding packets to a group of The components of the downstream node in which the business functions are communicatively coupled in the order business functions.
  • the communication device includes a network node in a software-defined network.
  • the means for obtaining the corresponding forwarding rule includes one of the following: means for directly receiving the corresponding forwarding rule from the business function chain controller; or for receiving a software-defined network controller in a software-defined network Parts of the corresponding forwarding rule forwarded from the business function chain controller.
  • the corresponding forwarding rule includes a first flow entry in a first flow table, the first flow entry indicating at least matching information, a network service header of the packet, and a first service in a group of ordered service functions to which the packet is to be forwarded A function and a first processing action to be performed on the packet by the first network node, the first processing action including at least one of inserting a network service header into the packet and replacing a destination address of the packet with an address of the first service function.
  • the means for forwarding a packet includes: means for performing a first processing action on the packet in response to determining that a header of the packet includes matching information; and applying the address based on the first service function to forward the packet to the
  • the first service function is a component of a downstream node communicatively coupled.
  • the network service header includes at least one of the following: an identifier of a service function chain, a protocol type of a payload in a packet, and a context header.
  • the matching information includes at least one of: a source address of the packet, a destination address of the packet, a protocol type of the packet, an input port of the packet, an application type of the packet, and user information of the packet.
  • the corresponding forwarding rule includes a second flow entry in a second flow table, the second flow entry indicating at least an identifier of a business function chain, a second in a group of ordered business functions to which the packet is to be forwarded A service function and a second processing action to be performed on the packet by the second network node, the second processing action including at least one of removing a network service header from the packet and replacing a destination address of the packet with an address of the second service function.
  • the means for forwarding a packet includes means for performing a second processing action on the packet in response to determining that a header of the packet includes an identifier of a service function chain of a second flow entry, and for The address of the second service function is used to forward the packet to a component of a downstream node that is communicatively coupled with the second service function.
  • the means for obtaining a corresponding forwarding rule includes: in response to determining when a packet is received that the packet does not have a matching business function chain and cannot be forwarded to the business function chain controller; providing the packet cannot be provided by a network node Means for forwarding instructions; and means for obtaining corresponding forwarding rules from the business function chain controller.
  • the communication device includes means for receiving a corresponding forwarding rule associated with a business function chain created for a packet from a business function chain controller, the business function chain including an ordered set of business functions to be used to process the packet, and correspondingly Forwarding rules instruct multiple network nodes in a software-defined network how to forward packets to a set of ordered business functions in a business function chain; and means for providing corresponding forwarding rules to multiple network nodes.
  • the communication device includes a software-defined network controller.
  • the communication device further comprises: means for receiving a request for network topology information of the software-defined network from the service function chain controller; and providing network topology information to the service function chain controller in response to the request Of parts.
  • the communication device further comprises: means for receiving an indication from a network node of the plurality of network nodes that the packet cannot be forwarded by the network node; and means for providing the indication to the service function chain controller.
  • the communication device further comprises: means for mapping a path of the service function chain to a multi-protocol label switching path in the software-defined network for transmission of packets in the software-defined network.
  • the presence of a network service header for the packet is indicated in a label of the multi-protocol label switching path.
  • FIG. 11 illustrates a schematic block diagram of an example device 1300 that can be used to implement embodiments of the present disclosure.
  • the device 1100 includes a central processing unit (CPU) 1101, which can be loaded into a computer in a random access memory (RAM) 1103 according to computer program instructions stored in a read only memory (ROM) 1102 or from the storage unit 1108 Program instructions to perform various appropriate actions and processes.
  • RAM random access memory
  • ROM read only memory
  • Program instructions to perform various appropriate actions and processes Program instructions to perform various appropriate actions and processes.
  • various programs and data required for the operation of the device 1100 can also be stored.
  • the CPU 1101, the ROM 1102, and the RAM 1103 are connected to each other through a bus 1104.
  • An input / output (I / O) interface 1105 is also connected to the bus 1104.
  • the I / O interface 1105 Multiple components in the device 1100 are connected to the I / O interface 1105, including: an input unit 1106, such as a keyboard, a mouse, etc .; an output unit 1107, such as various types of displays, speakers, etc .; a storage unit 1108, such as a storage disk, an optical disc Etc .; and a communication unit 1109, such as a network card, a modem, a wireless communication transceiver, and the like.
  • the communication unit 1109 allows the device 1100 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
  • method 800, method 900, and / or 1000 may be performed by the processing unit 1101.
  • method 800, method 900, and / or 1000 may be implemented as a computer software program that is tangibly embodied on a machine-readable medium, such as storage unit 1108.
  • part or all of the computer program may be loaded and / or installed on the device 1100 via the ROM 1102 and / or the communication unit 1109.
  • the computer program is loaded into the RAM 1103 and executed by the CPU 1101, one or more actions of the method 800, method 900, and / or 1000 described above may be performed.
  • the present disclosure may be a method, an apparatus, a system, and / or a computer program product.
  • the computer program product may include a computer-readable storage medium on which computer-readable program instructions for performing various aspects of the present disclosure are uploaded.
  • the computer-readable storage medium may be a tangible device that can hold and store instructions used by the instruction execution device.
  • the computer-readable storage medium may be, for example, but not limited to, an electric storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • Non-exhaustive list of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM) Or flash memory), static random access memory (SRAM), portable compact disc read only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanical encoding device, such as a printer with instructions stored thereon A protruding structure in the hole card or groove, and any suitable combination of the above.
  • RAM random access memory
  • ROM read-only memory
  • EPROM erasable programmable read-only memory
  • flash memory flash memory
  • SRAM static random access memory
  • CD-ROM compact disc read only memory
  • DVD digital versatile disc
  • memory stick floppy disk
  • mechanical encoding device such as a printer with instructions stored thereon A protruding structure in the hole card or groove, and any suitable combination of the above.
  • Computer-readable storage media used herein are not to be interpreted as transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (for example, light pulses through fiber optic cables), or via electrical wires Electrical signal transmitted.
  • the computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to various computing / processing devices, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network.
  • the network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers.
  • the network adapter card or network interface in each computing / processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in each computing / processing device .
  • Computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or in one or more programming languages.
  • the programming languages include object-oriented programming languages such as Smalltalk, C ++, and the like, as well as conventional procedural programming languages such as the "C" language or similar programming languages.
  • Computer-readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer, partly on a remote computer, or entirely on a remote computer or server carried out.
  • the remote computer can be connected to the user's computer through any kind of network, including a local area network (LAN) or wide area network (WAN), or it can be connected to an external computer (such as through the Internet using an Internet service provider) connection).
  • electronic circuits such as programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) are personalized by using state information of computer-readable program instructions.
  • the electronic circuits may Computer-readable program instructions are executed to implement various aspects of the present disclosure.
  • These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, special purpose computer, or other programmable data processing device, thereby producing a machine such that, when executed by a processing unit of a computer or other programmable data processing device , Means for implementing the functions / actions specified in one or more blocks in the flowcharts and / or block diagrams.
  • These computer-readable program instructions may also be stored in a computer-readable storage medium, and these instructions cause a computer, a programmable data processing apparatus, and / or other devices to work in a specific manner.
  • a computer-readable medium storing instructions includes: An article of manufacture that includes instructions to implement various aspects of the functions / acts specified in one or more blocks in the flowcharts and / or block diagrams.
  • Computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other device, so that a series of operating steps can be performed on the computer, other programmable data processing device, or other device to produce a computer-implemented process , So that the instructions executed on the computer, other programmable data processing apparatus, or other equipment can implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
  • each block in the flowchart or block diagram may represent a module, a program segment, or a part of an instruction that contains one or more components for implementing a specified logical function.
  • Executable instructions may also occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved.
  • each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts can be implemented in a dedicated hardware-based system that performs the specified function or action. , Or it can be implemented with a combination of dedicated hardware and computer instructions.

Abstract

The embodiments of the present disclosure relate to the implementation of a service function chain on the basis of a software-defined network (SDN). Provided in some embodiments is a method for implementation at a service function chain controller. The method comprises: creating a service function chain for a packet, the service function chain comprising a group of ordered service functions to be used for processing the packet; and directly or indirectly configuring a corresponding forwarding rule that relates to the service function chain to a plurality of network nodes in an SDN, the corresponding forwarding rule indicating how the plurality of network nodes forward the packet to the group of ordered service functions in the service function chain. By employing the described method, a service function chain may be implemented in a SDN.

Description

基于软件定义网络的业务功能链的实现Implementation of Business Function Chain Based on Software Defined Network 技术领域Technical field
本公开的实施例一般涉及网络领域,并且具体地涉及基于软件定义网络(SDN)的业务功能链(SFC)的实现。Embodiments of the present disclosure generally relate to the field of networking, and in particular, to the implementation of a service function chain (SFC) based on a software-defined network (SDN).
背景技术Background technique
随着网络功能虚拟化(NFV)、软件定义网络(SDN)和业务功能链(SFC)等技术的出现,网络运营者能够进行网络改造以使得网络可编程并且降低成本。因此,基于这些技术能快速和方便地部署各种应用。SDN技术能够实现业务流的网络侧精细控制,因此能够支持自动且动态的应用部署和重新配置。SFC技术使得业务提供方能够动态地提供各种业务功能而无需改变底层网络部署。这样的业务功能包括网络业务功能,诸如移动网络中的移动性管理和会话管理、认证、防火墙、入侵检测系统、深度包检测、传统IP网络地址解译(NAT)等。SFC技术还可以用于提供特定于应用的功能。With the emergence of technologies such as Network Function Virtualization (NFV), Software Defined Networking (SDN), and Service Function Chain (SFC), network operators can transform their networks to make them programmable and reduce costs. Therefore, applications based on these technologies can be deployed quickly and easily. SDN technology enables fine-grained network-side control of service flows, and therefore supports automatic and dynamic application deployment and reconfiguration. SFC technology enables service providers to dynamically provide various business functions without changing the underlying network deployment. Such service functions include network service functions such as mobility management and session management in mobile networks, authentication, firewalls, intrusion detection systems, deep packet inspection, traditional IP network address interpretation (NAT), and the like. SFC technology can also be used to provide application-specific functions.
通常,SDN技术和SFC技术分别被部署。例如,为了提供动态业务功能,需要在网络中部署控制平面的SFC控制器,并且在数据平面中部署用于管理针对分组的业务功能链的分类器以及用于实现分组到相应业务功能的转发的业务功能转发器(SFF)。在基于SDN的网络中,需要部署控制平面中的SDN控制器,并且在数据平面部署用于支持分组转发的交换机。Generally, SDN technology and SFC technology are deployed separately. For example, in order to provide dynamic business functions, a control plane SFC controller needs to be deployed in the network, and a classifier for managing the business function chain for packets and a classifier for forwarding packets to corresponding business functions need to be deployed in the data plane. Service Function Repeater (SFF). In an SDN-based network, an SDN controller in the control plane needs to be deployed, and a switch to support packet forwarding is deployed in the data plane.
发明内容Summary of the invention
下面给出了对各实施例的简要概述,以提供对各种实施例的一些方面的基本理解。注意,发明内容部分并非旨在标识关键元素的要点或描述各种实施例的范围。其唯一目的在于以简化形式呈现一些概念,作为对后述更具体描述的前序。A brief overview of the various embodiments is given below to provide a basic understanding of some aspects of the various embodiments. Note that the summary section is not intended to identify key points of the elements or to describe the scope of the various embodiments. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is described later.
在第一方面,提供了一种在业务功能链控制器处实现的方法。 该方法包括为分组创建业务功能链,业务功能链包括要用于处理分组的一组有序业务功能;以及将与业务功能链相关联的转发规则直接或间接配置到软件定义网络中的多个网络节点,转发规则指示多个网络节点如何将分组转发到业务功能链中的一组有序业务功能。In a first aspect, a method implemented at a business function chain controller is provided. The method includes creating a business function chain for a packet, the business function chain including an ordered set of business functions to be used to process the packet; and directly or indirectly configuring a forwarding rule associated with the business function chain to a plurality of software-defined networks For network nodes, the forwarding rule instructs multiple network nodes how to forward packets to a set of ordered business functions in a business function chain.
在第二方面,提供了一种在软件定义网络中的网络节点处实现的方法。该方法包括:从软件定义网络中的上游节点接收分组;从业务功能链控制器获得与分组的业务功能链相关联的转发规则,业务功能链包括要用于处理分组的一组有序业务功能,并且转发规则指示网络节点如何将分组转发到一组有序业务功能中的业务功能;以及基于转发规则,将分组转发到与一组有序业务功能中的业务功能通信耦合的下游节点。In a second aspect, a method is provided that is implemented at a network node in a software-defined network. The method includes: receiving a packet from an upstream node in a software-defined network; obtaining a forwarding rule associated with a packet's business function chain from a business function chain controller, the business function chain including an ordered set of business functions to be used to process the packet And the forwarding rule instructs the network node how to forward the packet to a business function in a group of ordered business functions; and based on the forwarding rule, the packet is forwarded to a downstream node that is communicatively coupled with the business function in a group of ordered business functions.
在第三方面,提供了一种在软件定义网络控制器处实现的方法。该方法包括从业务功能链控制器接收与为分组创建的业务功能链相关联的相应转发规则,业务功能链包括要用于处理分组的一组有序业务功能,并且相应转发规则指示软件定义网络中的多个网络节点如何将分组转发到业务功能链中的一组有序业务功能;以及将相应转发规则提供给多个网络节点。In a third aspect, a method is provided that is implemented at a software-defined network controller. The method includes receiving, from a business function chain controller, a corresponding forwarding rule associated with a business function chain created for a packet, the business function chain including an ordered set of business functions to be used to process the packet, and the corresponding forwarding rule instructs the software-defined network How multiple network nodes in a group forward packets to a set of ordered business functions in a business function chain; and provide corresponding forwarding rules to multiple network nodes.
在第四方面,提供了一种通信设备。该设备包括处理器;以及存储器,所述存储器存储有指令,所述指令在被所述处理器执行时使所述设备执行根据第一方面、第二方面或第三方面的方法。In a fourth aspect, a communication device is provided. The device includes a processor; and a memory storing instructions that, when executed by the processor, cause the device to perform a method according to the first aspect, the second aspect, or the third aspect.
在第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据第一方面、第二方面或第三方面的方法。In a fifth aspect, there is provided a computer-readable storage medium having stored thereon a computer program that, when executed by a processor, implements a method according to the first aspect, the second aspect, or the third aspect.
应当理解,发明内容部分中所描述的内容并非旨在限定本公开实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。It should be understood that what is described in the Summary section is not intended to limit key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood from the following description.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
从下文的公开内容和权利要求中,本公开的目的、优点和其他 特征将变得更加明显。这里仅出于示例的目的,参考附图来给出优选实施例的非限制性描述,在附图中:The objects, advantages and other features of the present disclosure will become more apparent from the following disclosure and claims. For the purpose of example only, a non-limiting description of a preferred embodiment is given with reference to the drawings, in which:
图1示出用于提供SFC的典型系统的示例性架构图;FIG. 1 shows an exemplary architecture diagram of a typical system for providing SFC;
图2示出根据本公开的实施例的基于SDN实现SFC的系统的示例性架构图;FIG. 2 illustrates an exemplary architecture diagram of a system implementing SFC based on SDN according to an embodiment of the present disclosure; FIG.
图3示出在SDN网络中用于转发基于标签协议的分组的流表的示例结构图;FIG. 3 shows an example structure diagram of a flow table for forwarding a packet based on a label protocol in an SDN network; FIG.
图4A和图4B示出根据本公开的实施例的在图2的系统中用于分组转发的流表的示例结构图;4A and 4B illustrate an example structure diagram of a flow table used for packet forwarding in the system of FIG. 2 according to an embodiment of the present disclosure;
图4C示出了根据本公开的实施例的在流条目中定义的处理动作的示例;4C illustrates an example of a processing action defined in a flow entry according to an embodiment of the present disclosure;
图5示出了根据本公开的实施例的路径标签的示例结构;5 illustrates an example structure of a path label according to an embodiment of the present disclosure;
图6示出根据本公开的实施例的基于SDN的SFC系统的一个示例;6 illustrates an example of an SDN-based SFC system according to an embodiment of the present disclosure;
图7A至图7N示出了在图6的示例中使用的流表的示例结构图;7A to 7N illustrate example structural diagrams of a flow table used in the example of FIG. 6;
图8示出根据本公开的实施例的在SFC控制器处实现的方法的流程图;8 illustrates a flowchart of a method implemented at an SFC controller according to an embodiment of the present disclosure;
图9示出根据本公开的实施例的在SDN网络中的网络节点处实现的方法的流程图;9 illustrates a flowchart of a method implemented at a network node in an SDN network according to an embodiment of the present disclosure;
图10示出根据本公开的实施例的在SDN控制器处实现的方法的流程图;以及10 illustrates a flowchart of a method implemented at an SDN controller according to an embodiment of the present disclosure; and
图11示出可以用来实施本公开的实施例的示例设备的示意性框图。FIG. 11 illustrates a schematic block diagram of an example device that can be used to implement embodiments of the present disclosure.
在各个附图中,相同或对应的标号表示相同或对应的部分。In the drawings, the same or corresponding reference numerals represent the same or corresponding parts.
具体实施方式detailed description
在以下描述中,出于说明的目的而阐述许多细节。然而,本领域普通技术人员将认识到可以在不使用这些具体细节的情况下实现本公开。因此,本公开不旨在于受限于所示实施例、而是将被赋予 与本文描述的原理和特征一致的最宽的范围。In the following description, many details are set forth for the purpose of illustration. However, one of ordinary skill in the art will recognize that the present disclosure may be implemented without the use of these specific details. Therefore, this disclosure is not intended to be limited to the illustrated embodiments, but will be given the broadest scope consistent with the principles and features described herein.
应当理解,术语“第一”、“第二”等仅被用来将一个元素与另一个元素区分开来。而实际上第一元素也能够被称为第二元素,反之亦然。另外还应当理解“包括”,“包含”仅被用来说明所陈述的特征、元素、功能或者部件的存在,然而并不排除存在一个或者多个其他的特征、元素、功能或者部件。It should be understood that the terms "first", "second", etc. are only used to distinguish one element from another. In fact, the first element can also be called the second element, and vice versa. It should also be understood that "including" and "including" are only used to describe the existence of stated features, elements, functions or components, but do not exclude the presence of one or more other features, elements, functions or components.
图1示出了用于提供SFC的典型系统100的示例性架构图。系统100可以包括控制平面中的一个或者多个控制器,该一个或多个控制器可以被分布在一个或者多个物理主机和/或虚拟主机上。如图1所示,系统100可以包括业务功能链(SFC)控制器110。FIG. 1 illustrates an exemplary architecture diagram of a typical system 100 for providing SFC. The system 100 may include one or more controllers in a control plane, which may be distributed across one or more physical hosts and / or virtual hosts. As shown in FIG. 1, the system 100 may include a service function chain (SFC) controller 110.
如图1所示,SFC控制器110可以与数据平面上的各个节点进行通信,并对数据平面上的各个节点进行配置。例如,数据平面可以包括分类器120,一个或多个业务功能转发器(SFF)130-1、130-2、130-3、130-4(为便于描述,统称为SFF 130),以及相应的业务功能(SF)140-1、140-2、140-3、140-4等(为便于描述,统称为SF 140)。As shown in FIG. 1, the SFC controller 110 can communicate with each node on the data plane and configure each node on the data plane. For example, the data plane may include a classifier 120, one or more service function repeaters (SFF) 130-1, 130-2, 130-3, 130-4 (collectively referred to as SFF 130 for ease of description), and corresponding Service functions (SF) 140-1, 140-2, 140-3, 140-4, etc. (For ease of description, they are collectively referred to as SF 140).
在提供SFC的系统100中,分类器120提供分类功能,以将分组分类到匹配的业务功能链(SFC)中。分类策略可以特定于用户、特定于网络或特定于业务。分类器120可以包括分类表121,用于确定分组到SFC的匹配。In the system 100 that provides SFC, the classifier 120 provides a classification function to classify packets into matching business function chains (SFCs). Classification policies can be user-specific, network-specific, or business-specific. The classifier 120 may include a classification table 121 for determining a match of the packet to the SFC.
SF 140用于对接收到的分组执行特定处理。SF 140可以是一个逻辑元件,其可以被实现为物理网络设备中的虚拟元件或者被嵌入其中。SF 140可以提供通用的网络业务功能或者特定于应用的功能。SF 140的示例可以包括但不限于防火墙、访问控制、实体认证、统一威胁管理(UTM)、入侵检测系统(IDS)、入侵预防系统(IPS)、虚拟私人网络(VPN)、安全网关、深度包检测(DPI)、合法监听(LI)、流量清洗、数据完整性验证、数据机密性保护、数据脱敏、数据加密、数据解密等等。SF 140 is used to perform specific processing on the received packet. SF 140 may be a logic element, which may be implemented as a virtual element in a physical network device or embedded therein. SF 140 can provide general network service functions or application-specific functions. Examples of SF140 can include, but are not limited to, firewalls, access control, entity authentication, unified threat management (UTM), intrusion detection system (IDS), intrusion prevention system (IPS), virtual private network (VPN), security gateway, deep packet Detection (DPI), lawful interception (LI), traffic cleaning, data integrity verification, data confidentiality protection, data desensitization, data encryption, data decryption, etc.
SFF 130用于将分组转发到与其通信连接的SF 140,并且从SF 140接收处理后的分组。SFF 130可以分别包括业务功能路径(SFP) 表150-1、150-2、150-3和150-4(为便于描述,通常为SFP表150)。SFF 130基于SFP表150来确定如何转发分组。SFF 130可以被实现为物理网络设备中的虚拟元件或者被嵌入其中。SFF 130 is used to forward packets to SF 140 connected to it, and to receive processed packets from SF 140. SFF 130 may include service function path (SFP) tables 150-1, 150-2, 150-3, and 150-4 (for ease of description, usually SFP table 150). The SFF 130 determines how to forward a packet based on the SFP table 150. SFF 130 can be implemented as a virtual element in a physical network device or embedded in it.
在系统100中,SFC控制器110可以为分组创建业务功能链(SFC)。SFC有时也可被简称为业务链(SC),每个SFC包括一组有序的SF 140。被分类到特定SFC中的分组将由该链中涉及的SF 140处理。如果SFC中的SF均涉及数据安全功能,则SFC还可以被称为安全业务链(SSC)。In the system 100, the SFC controller 110 may create a business function chain (SFC) for a packet. SFC can sometimes be referred to as the service chain (SC) for short, and each SFC includes an ordered set of SFs 140. Packets classified into a specific SFC will be processed by the SF 140 involved in the chain. If the SFs in the SFC all involve data security functions, the SFC can also be referred to as the Security Service Chain (SSC).
在图1的示例中示出了两条SFC,分别用于从主机170-1传输到主机170-2的分组以及从主机170-1传输到主机170-3。两条SFC的路径对应于SFP 161和162,其中SFP 161涉及:主机170-1->分类器120->SFF 130-1->SF 140-1->SFF 130-1->SFF 130-2->SF 140-2->SFF 130-2->SFF 130-4->SF 140-4->SFF 130-4->主机170-2。SFP 162涉及:主机170-1->分类器120->SFF 130-1->SFF 130-3->SF 140-3->SFF 130-3->主机170-3。在SFP 161中,从主机170-1到主机170-2的分组被一组有序的SF 140-1、140-2、140-3和140-4构成的SFC处理。在SFP 162中,从主机170-1到主机170-3的分组被由SF 140-3组成的SFC处理。In the example of FIG. 1, two SFCs are shown, which are used to transmit packets from the host 170-1 to the host 170-2 and from the host 170-1 to the host 170-3, respectively. The paths of the two SFCs correspond to SFPs 161 and 162, of which SFP 161 involves: host 170-1-> classifier 120-> SFF 130-1-> SF 140-1-> SFF 130-1-> SFF 130-2 -> SF 140-2-> SFF 130-2-> SFF 130-4-> SF 140-4-> SFF 130-4-> Host 170-2. SFP 162 involves: host 170-1-> classifier 120-> SFF 130-1-> SFF 130-3-> SF 140-3-> SFF 130-3-> host 170-3. In SFP161, the packets from host 170-1 to host 170-2 are processed by an SFC composed of an ordered set of SFs 140-1, 140-2, 140-3, and 140-4. In the SFP 162, packets from the host 170-1 to the host 170-3 are processed by the SFC composed of the SF 140-3.
应当理解,图1中所示的系统100的架构仅为示例性的。在实际应用中,系统100可以包括更多的组件、更少的组件或者不同的组件。It should be understood that the architecture of the system 100 shown in FIG. 1 is merely exemplary. In practical applications, the system 100 may include more components, fewer components, or different components.
在网络部署中,存在一种基于软件定义网络(SDN)技术实现的网络通信。在SDN网络中存在SDN控制器和一个或多个交换机。SDN控制器根据指定的控制协议来控制交换机对分组的转发,从而使得交换机能够将分组从源地址被传输到目的地地址。SDN网络的核心是通过将网络设备的控制平面与数据平面分离开来,实现了网络流量的灵活控制,使网络作为管道变得更加智能。In network deployment, there is a network communication based on software-defined network (SDN) technology. There are SDN controllers and one or more switches in the SDN network. The SDN controller controls the forwarding of the packet by the switch according to the specified control protocol, so that the switch can transmit the packet from the source address to the destination address. The core of the SDN network is to separate the control plane and data plane of the network equipment to achieve flexible control of network traffic and make the network more intelligent as a pipe.
如以上提及的,SDN技术和SFC技术分别被部署。SFC控制器和SDN控制器分别控制数据平面的元件用以实现相应功能。期望能 够利用SDN网络中的网络设备来实现SFC,从而能够获得两种技术带来的优点。As mentioned above, SDN technology and SFC technology are deployed separately. The SFC controller and the SDN controller separately control the data plane components to achieve the corresponding functions. It is expected that the network equipment in the SDN network can be used to implement SFC, so that the advantages brought by the two technologies can be obtained.
根据本公开的实施例,提出了一种基于SDN来实现SFC的方案。在该方案中,将用于支持SFC的SFC部件(诸如分类器、SFF)实现为SDN网络中的网络节点的转发规则,诸如流表。转发规则指示网络节点如何将分组转发到相应SFC的SF。SFC控制器可以与SDN控制器或网络节点通信,以向网络节点配置这样的转发规则。以下将参考附图来详细说明本公开的实施例。According to an embodiment of the present disclosure, a scheme for implementing SFC based on SDN is proposed. In this scheme, an SFC component (such as a classifier, SFF) for supporting SFC is implemented as a forwarding rule of a network node in an SDN network, such as a flow table. The forwarding rule instructs the network node how to forward the packet to the SF of the corresponding SFC. The SFC controller can communicate with the SDN controller or the network node to configure such forwarding rules to the network node. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings.
图2示出了根据本公开的实施例的基于SDN实现SFC的系统200的示例结构图。在系统200中,控制平面中包括SFC控制器210,用于控制分组的SFC。控制平面中还包括SDN控制器212,用于控制SDN网络中的网络节点(诸如网络节点220-1、220-2等)。网络节点220-1、220-2可以统称为网络节点220,其负责分组的转发。网络节点220有时也可被称为网络设备、交换机、交换设备等。网络节点220-2还连接到SF 240-1。SF 240-1用于处理分组,以提供特定业务功能。FIG. 2 illustrates an example structural diagram of a system 200 for implementing SFC based on SDN according to an embodiment of the present disclosure. In the system 200, the control plane includes an SFC controller 210 for controlling the SFC of a packet. The control plane also includes an SDN controller 212 for controlling network nodes (such as network nodes 220-1, 220-2, etc.) in the SDN network. The network nodes 220-1, 220-2 may be collectively referred to as the network node 220, which is responsible for packet forwarding. The network node 220 may also be referred to as a network device, a switch, a switching device, or the like. Network node 220-2 is also connected to SF 240-1. SF 240-1 is used to process packets to provide specific business functions.
应当理解,图2示出的设备的数目和部署仅是一个示例。在其他情况中,系统200中还可以包括更多的网络节点和更多的SF,每个网络节点可以连接到多于一个的SF。It should be understood that the number and deployment of the devices shown in FIG. 2 is only an example. In other cases, the system 200 may further include more network nodes and more SFs, and each network node may be connected to more than one SF.
SDN网络中的SDN控制器212和网络节点220可以以各种控制协议进行交互。一种控制协议的示例是OpenFlow协议。在这种协议下,网络节点220也可以被称为OpenFlow交换机,SDN控制器212可以被称为OpenFlow控制器。支持控制和数据平面之间的交互的其他协议也可以使用,诸如虚拟扩展局域网(VXLAN)协议等。在下文中,以OpenFlow协议为例来描述本公开的实施例,但应当理解这些实施例也可以适用于SDN控制器212与网络节点220使用其他通信协议的情况。还应注意,在基于OpenFlow协议的通信中,对分组的通信也可以被称为是对数据流的通信。The SDN controller 212 and the network node 220 in the SDN network can interact with various control protocols. An example of a control protocol is the OpenFlow protocol. Under this protocol, the network node 220 may also be referred to as an OpenFlow switch, and the SDN controller 212 may be referred to as an OpenFlow controller. Other protocols that support interaction between the control and data planes can also be used, such as the Virtual Extended Local Area Network (VXLAN) protocol. In the following, the embodiments of the present disclosure are described using the OpenFlow protocol as an example, but it should be understood that these embodiments can also be applied to the case where the SDN controller 212 and the network node 220 use other communication protocols. It should also be noted that, in communication based on the OpenFlow protocol, communication to a packet can also be referred to as communication to a data flow.
在操作中,SFC控制器210为分组创建SFC,该SFC包括要用 于处理分组的一组有序SF(在图2的示例中是SF 240-1)。SFC可以特定于用户、特定于应用、特定于网络,等等。在这种情况下,来自于特定用户或特定应用的分组或者在特定网络(例如系统200)中传输的分组都将由该SFC中的SF处理。SFC控制器210将与所创建的SFC相关联的相应转发规则配置到SDN中的网络节点220。转发规则指示网络节点220如何将分组转发到所创建的SFC中的各个SF。与所创建的SFC相关联的转发规则可能涉及多个网络节点的转发,因此SFC控制器210可以将相应的转发规则配置到各个网络节点220,每个网络节点220获得的转发规则指定该网络节点220本身对分组的转发操作。In operation, the SFC controller 210 creates an SFC for the packet, which SFC includes an ordered set of SFs (SF 240-1 in the example of Figure 2) to be used to process the packets. SFC can be user-specific, application-specific, network-specific, and so on. In this case, packets from a specific user or a specific application or packets transmitted in a specific network (such as the system 200) will be processed by the SF in the SFC. The SFC controller 210 configures a corresponding forwarding rule associated with the created SFC to the network node 220 in the SDN. The forwarding rule instructs the network node 220 how to forward the packet to each SF in the created SFC. The forwarding rule associated with the created SFC may involve the forwarding of multiple network nodes, so the SFC controller 210 may configure the corresponding forwarding rule to each network node 220, and the forwarding rule obtained by each network node 220 specifies the network node 220 itself forwards the packet.
在单纯的SFC实现中,在创建SFC之后,针对该SFC的分组将由分类器分类到该SFC中并提供给相应的SFF,然后经由SFF转发到相应的SF以用于处理。为了在SDN中实现这样的功能,根据本公开的实施例,分类器和SFF对分组到SFC中的传递被配置为SDN中的网络节点的转发规则。在被配置有这样的转发规则之后,网络节点220将基于转发规则来转发分组,以使得分组能够被正确地传送到由SFC控制器210创建的SFC所涉及的SF中。In a pure SFC implementation, after an SFC is created, a packet for the SFC will be classified by the classifier into the SFC and provided to the corresponding SFF, and then forwarded to the corresponding SF for processing via the SFF. In order to implement such a function in SDN, according to an embodiment of the present disclosure, the delivery of a packet to an SFC by a classifier and SFF is configured as a forwarding rule of a network node in SDN. After being configured with such a forwarding rule, the network node 220 will forward the packet based on the forwarding rule so that the packet can be correctly transmitted to the SF involved in the SFC created by the SFC controller 210.
如图2所示,网络节点220-1可以从上游节点接收分组。向网络节点220-1提供分组的上游节点可以是主机设备或者其他生成分组的用户设备。网络节点220-1基于SFC控制器210配置的转发规则202-1将分组转发给下游网络节点220-2(也称为下一跳)。网络节点220-2连接到SF 240-1。基于被配置的转发规则202-2,网络节点220-2可以将分组提供给SF 240-1处理并且将分组转发给下游节点,也称为下一跳(例如,下一网络节点或者分组的目的地设备)。As shown in FIG. 2, the network node 220-1 may receive a packet from an upstream node. The upstream node that provides the packet to the network node 220-1 may be a host device or other user equipment that generates the packet. The network node 220-1 forwards the packet to the downstream network node 220-2 (also referred to as the next hop) based on the forwarding rule 202-1 configured by the SFC controller 210. Network node 220-2 is connected to SF 240-1. Based on the configured forwarding rule 202-2, the network node 220-2 can provide the packet to SF 240-1 for processing and forward the packet to the downstream node, also known as the next hop (for example, the next network node or the purpose of the packet Ground equipment).
SFC控制器210可以将转发规则直接或间接配置到网络节点220。在一些实施例中,SFC控制器210可以将转发规则直接传输给网络节点220。例如,在网络节点220是OpenFlow交换机的示例中,SFC控制器210可以利用诸如扩展NETCONF协议来与网络节点220直接通信,以向网络节点220传输转发规则。在这样的实施例中, 可以不改变SDN控制器212与网络节点220之间的通信协议。The SFC controller 210 may directly or indirectly configure a forwarding rule to the network node 220. In some embodiments, the SFC controller 210 may directly transmit the forwarding rules to the network node 220. For example, in an example where the network node 220 is an OpenFlow switch, the SFC controller 210 may communicate directly with the network node 220 using, for example, an extended NETCONF protocol to transmit a forwarding rule to the network node 220. In such an embodiment, the communication protocol between the SDN controller 212 and the network node 220 may not be changed.
备选地,SFC控制器210可以经由SDN控制器212来将转发规则提供给网络节点220。换言之,由SDN控制器212充当SFC控制器210与网络节点220之间的通信中介,以实现转发规则的间接配置。在这样的实现中,SDN控制器212可以包括一个SFC实现模块214,用于支持与SFC控制器210的通信。SFC控制器210将转发规则传输给SDN控制器212(例如其中的SFC实现模块214)。在获得转发规则后,SDN控制器212根据与网络节点220的通信协议(例如OpenFlow协议)来将转发规则传输给网络节点220。SDN控制器212与网络节点220之间的常规通信将被改变以支持转发规则的传输。例如,SDN控制器212与网络节点220之间的传输的消息配置需要更新,以支持与SFC相关联的转发规则的传输。Alternatively, the SFC controller 210 may provide the forwarding rules to the network node 220 via the SDN controller 212. In other words, the SDN controller 212 acts as a communication intermediary between the SFC controller 210 and the network node 220 to achieve indirect configuration of the forwarding rules. In such an implementation, the SDN controller 212 may include an SFC implementation module 214 for supporting communication with the SFC controller 210. The SFC controller 210 transmits the forwarding rule to the SDN controller 212 (for example, the SFC implementation module 214 therein). After obtaining the forwarding rule, the SDN controller 212 transmits the forwarding rule to the network node 220 according to a communication protocol (for example, the OpenFlow protocol) with the network node 220. The conventional communication between the SDN controller 212 and the network node 220 will be changed to support the transmission of forwarding rules. For example, the message configuration for transmission between the SDN controller 212 and the network node 220 needs to be updated to support the transmission of forwarding rules associated with the SFC.
在一些实施例中,为了创建SFC和生成转发规则,SFC控制器210还向SDN控制器212请求网络相关的信息,诸如网络拓扑信息。网络拓扑信息指示系统200中的网络节点220之间、网络节点220与发起和接收分组的主机设备之间、以及网络节点220与SF 240-1之间的拓扑结构。SFC控制器210向SDN控制器212发送针对网络拓扑信息的请求。响应于该请求,SDN控制器212向SFC控制器210传输网络拓扑信息。SFC控制器210可以基于这样的网络拓扑信息来创建SFC。网络拓扑信息可以指示SF在网络中的部署情况,与之相连接的网络节点等等,这可以促进SFC控制器210对SFC的生成。在配置转发规则时,SFC控制器210也可以参考所获得的网络拓扑信息,例如使得转发规则可以指示哪个网络节点如何将分组转发到哪些SF。与SFC控制器210相关的通信均可以由SDN控制器212中的SFC实现模块214来实现。In some embodiments, in order to create an SFC and generate a forwarding rule, the SFC controller 210 also requests the SDN controller 212 for network related information, such as network topology information. The network topology information indicates the topology between the network nodes 220 in the system 200, between the network nodes 220 and the host devices that initiate and receive packets, and between the network nodes 220 and the SF 240-1. The SFC controller 210 sends a request for the network topology information to the SDN controller 212. In response to the request, the SDN controller 212 transmits the network topology information to the SFC controller 210. The SFC controller 210 may create an SFC based on such network topology information. The network topology information can indicate the deployment of SF in the network, the network nodes connected to it, and so on, which can promote the SFC controller 210 to generate SFC. When configuring a forwarding rule, the SFC controller 210 may also refer to the obtained network topology information, for example, so that the forwarding rule may indicate which network node how to forward packets to which SFs. The communication related to the SFC controller 210 may be implemented by the SFC implementation module 214 in the SDN controller 212.
在一些实施例中,SFC控制器210还可以请求与网络节点220和/或SF 240-1的部署状态和操作状态有关的信息,以用于支持SFC的创建和转发规则的配置。网络节点220和/或SF 240-1的部署状态可以从诸如管理和编排(Management and Orchestration,MANO)设 备获得。MANO设备(在图2中未示出)在SDN网络中负责执行虚拟机(VM)管理和虚拟化网络功能的管理、维护和供应。MANO设备可以向SFC控制器210提供网络节点220和/或SF 240-1的部署状态和操作状态,诸如这些节点的吞吐量、延迟性、IP地址、运行业务功能的灵活度和可用性等等。In some embodiments, the SFC controller 210 may also request information about the deployment status and operation status of the network node 220 and / or SF 240-1 to support the configuration of SFC creation and forwarding rules. The deployment status of the network node 220 and / or SF 240-1 may be obtained from a device such as Management and Orchestration (MANO). The MANO device (not shown in Figure 2) is responsible for performing management, maintenance, and provisioning of virtual machine (VM) management and virtualized network functions in the SDN network. The MANO device can provide the SFC controller 210 with the deployment status and operation status of the network nodes 220 and / or SF 240-1, such as the throughput, latency, IP address, flexibility and availability of running business functions, and so on.
下文将详细讨论SFC控制器210如何配置转发规则,以使得网络节点220能够实现将分组转发到组成特定SFC的相应SF。在SFC的实现中,需要一个分类功能,以实现将分组分类到相对应的SFC中。此外,还需要业务功能转发(SFF),以实现将分类到对应SFC的分组在SFP中的传输,从将分组提供给相应的SF进行处理。在基于SDN的SFC实现中,分类功能和SFF功能都被配置为网络节点220中的转发规则。The following will discuss in detail how the SFC controller 210 configures the forwarding rules so that the network node 220 can forward the packets to the corresponding SFs that make up a particular SFC. In the implementation of SFC, a classification function is needed to achieve the classification of packets into corresponding SFCs. In addition, Service Function Forwarding (SFF) is also required to realize the transmission of packets classified to the corresponding SFC in the SFP, and to provide the packets to the corresponding SF for processing. In the SDN-based SFC implementation, both the classification function and the SFF function are configured as forwarding rules in the network node 220.
在基于OpenFlow协议的SDN网络中,网络节点220基于流表来执行分组的转发。在常规SDN网络中,由SDN控制器来配置流表。一个流表包括一条或多条流条目,每条流条目指示网络节点要对分组执行的动作。在接收到分组后,网络节点220查找流表,以确定与分组相匹配的流条目并且根据该流条目执行相应动作,诸如分组报头的封装或去封装、多路径转发、输出到一个或几个端口、去往其他流表继续处理等等。In an OpenFlow protocol-based SDN network, the network node 220 performs packet forwarding based on a flow table. In a conventional SDN network, the flow table is configured by the SDN controller. A flow table includes one or more flow entries, each flow entry indicating an action to be performed on a packet by a network node. After receiving the packet, the network node 220 looks up the flow table to determine the flow entry that matches the packet and performs corresponding actions based on the flow entry, such as encapsulation or decapsulation of the packet header, multipath forwarding, and output to one or several Ports, go to other flow tables to continue processing, and so on.
图3示出了在SDN网络中用于转发基于标签协议的流表的流条目300的一种示例结构。流表目300包括匹配字段,其中记录用于分组匹配的信息(也称为匹配信息)。如果分组包含与一条流条目的匹配字段中一项或多项信息相匹配的信息,则该分组与该流条目匹配。在图3的示例中,匹配字段包括输入端口、输入标签和目的地互联网协议(IP)地址。输入端口指示分组输入到网络节点的端口。输入标签在SDN控制器根据路径标签服务来指示网络节点的转发的情况中指示网络节点从中接收到分组的交换路径的标签。路径标签诸如可以包括多协议标签交换(MPLS)标签、通用路由封装(GRE)标签、虚拟扩展局域网-通用路径封装(VXLAN-GRE)标 签等。输入标签可以进一步指示分组的输入路径。匹配字段中的目的地IP地址指示分组将被转发到的目的地的IP地址。虽然包括多个字段,但取决于实际转发需要,流条目300的匹配字段中的一项或多项可以不被配置有相应的信息。匹配字段还可以包括其他用于匹配的信息,诸如分组的源IP地址、源端口号、目的地IP地址、目的地端口号、分组所采用的协议类型、输入端口等。FIG. 3 shows an example structure of a flow entry 300 for forwarding a label protocol-based flow table in an SDN network. The flow entry 300 includes a matching field in which information (also referred to as matching information) for packet matching is recorded. If a packet contains information that matches one or more of the information in the matching field of a flow entry, the packet matches the flow entry. In the example of FIG. 3, the matching fields include an input port, an input label, and a destination Internet Protocol (IP) address. The input port indicates a port to which a packet is input to a network node. The input label indicates the label of the switched path from which the network node received the packet in the case where the SDN controller instructs the forwarding of the network node according to the path label service. The path label may include, for example, a multiprotocol label switching (MPLS) label, a general routing encapsulation (GRE) label, a virtual extended local area network-generic path encapsulation (VXLAN-GRE) label, and the like. The input label may further indicate the input path of the packet. The destination IP address in the match field indicates the IP address of the destination to which the packet will be forwarded. Although multiple fields are included, one or more of the matching fields of the flow entry 300 may not be configured with corresponding information depending on the actual forwarding needs. The matching field may also include other information used for matching, such as the source IP address, source port number, destination IP address, destination port number, protocol type adopted by the packet, input port, and so on.
如图3所示,流条目300还包括输出标签字段,用于在SDN控制器根据路径标签服务来指示网络节点的转发的情况中指示网络节点要将分组输出的路径标签。流条目300还包括指令字段,指示要网络节点要执行的相应操作。指令字段的“应用动作”部分可以包括“更新分组报头”字段,其指示对分组的报头的相应操作,诸如插入特定信息、移除特定信息等。“应用动作”部分还可以包括“输出端口”字段,指示将网络节点将分组从该字段指示的输出端口输出。在一些示例中,流条目300的指令字段还可以包括“去往流表”的字段。该字段通常在网络节点包括多个流表的情况下使用。如果网络节点包括多个流表,网络节点可能需要执行流表的流水线处理。也就是说,在根据一个流表的流条目处理分组之后,如果该流条目的“去往流表”字段指示下一个流表,网络节点还根据下一流表中的匹配流条目继续处理该分组。As shown in FIG. 3, the flow entry 300 further includes an output label field, which is used to instruct the network node to output the path label of the packet in the case that the SDN controller instructs the forwarding of the network node according to the path label service. The flow entry 300 also includes an instruction field indicating the corresponding operation to be performed by the network node. The "application action" part of the instruction field may include an "update packet header" field, which indicates a corresponding operation on the header of the packet, such as inserting specific information, removing specific information, and the like. The "application action" section may also include an "output port" field, which instructs the network node to output a packet from the output port indicated by this field. In some examples, the instruction field of the flow entry 300 may also include a field "to the flow table". This field is usually used when the network node includes multiple flow tables. If the network node includes multiple flow tables, the network node may need to perform pipeline processing of the flow table. That is, after processing a packet based on a flow entry of a flow table, if the "to flow table" field of the flow entry indicates the next flow table, the network node also continues to process the packet according to the matching flow entry in the next flow table. .
图3示出的流表的流条目仅仅是一个示例说明。根据OpenFlow协议,流条目还可以具有其他变型。The flow entries of the flow table shown in FIG. 3 are just an example illustration. According to the OpenFlow protocol, flow entries can also have other variations.
在本公开的一些实施例中,为了支持在SDN中实现SFC,SFC控制器将为分组创建的SFC相关联的转发规则配置为网络节点中的流条目。与常规流条目相比,为了支持SFC所需要的分类和SFP转发功能,需要扩展或修改流表中的流条目。下文结合图4A和图4B的示例来描述用于支持SFC所需的分类和SFP转发的流条目的示例。SDN控制器212将要扩展网络节点220的流表,以支持这样的流条目。In some embodiments of the present disclosure, in order to support SFC implementation in SDN, the SFC controller configures the forwarding rules associated with the SFC created for the packet as a flow entry in a network node. Compared with regular flow entries, in order to support the classification and SFP forwarding functions required by SFC, the flow entries in the flow table need to be expanded or modified. An example of the flow entry for supporting classification and SFP forwarding required for supporting SFC is described below in conjunction with the examples of FIGS. 4A and 4B. The SDN controller 212 is going to expand the flow table of the network node 220 to support such flow entries.
图4A示出了针对SFC的分类的流条目410。流条目410中包括 新的网络业务报头(NSH)字段,用于指示分组的NSH。在SFC的分类中,通过在分组分类到所创建的SFC之后,将向该分组封装NSH。NSH的格式诸如可以是与SFC相关的协议中定义的报头格式,诸如在IETF RFC8300协议中定义的报头。通常,NSH可以包括SFC的标识符,诸如业务路径标识符(SPI)、业务索引(SI)等。NSH还可以包括“下一协议”字段,指示分组所封装的数据(有效载荷)的协议类型。NSH还可以可选地包括“上下文报头”字段,指示SFC的元数据(即上下文数据)。NSH具有不同类型,图4A中示出的NSH的结构仅是示例。根据SFC相关协议的定义,NSH可以包括更多信息、不同的信息或者更少的信息(例如,下一协议字段和上下文报文字段均可以被省略)。FIG. 4A shows a classified flow entry 410 for SFC. The flow entry 410 includes a new Network Service Header (NSH) field to indicate the NSH of the packet. In the classification of the SFC, after the group is classified into the created SFC, the group is encapsulated with NSH. The format of the NSH may be, for example, a header format defined in an SFC-related protocol, such as a header defined in the IETF RFC8300 protocol. Generally, the NSH may include an identifier of the SFC, such as a service path identifier (SPI), a service index (SI), and the like. The NSH may also include a "next protocol" field indicating the protocol type of the data (payload) encapsulated by the packet. The NSH may also optionally include a "context header" field indicating the metadata (ie, context data) of the SFC. NSH has different types, and the structure of NSH shown in FIG. 4A is only an example. According to the definition of the SFC related protocol, the NSH may include more information, different information, or less information (for example, the next protocol field and the context message field may be omitted).
流条目410还可以包括新的“下一跳”字段,指示分组要被转发到的一组有序SF中的下一个SF,例如可以包括下一个SF的地址。“下一跳”字段的指示通常根据SFC的业务分组路径(SFP)中的下一跳位置,其根据SPI和SI来指示。“下一跳”字段也可以与SFC相关的协议中定义的SFC中的分组传递相一致,诸如在IETF RFC8300协议中所定义的。SFC的“下一跳”可以用于在基于底层网络协议建立的传输路径中传输被封装有NSH的分组。通常,在分类时,流条目410中的“下一跳”字段指示SFC的一组有序SF中的第一个SF。在一些实施例中,根据“下一跳”的指示,可以在当前网络节点与“下一跳”相关联的节点之间建立转发路径,诸如标签交换路径(LSP)。一些SFC可能需要构建多个LSP(例如如果包括多个SF)。多个LSP可以构成分组在整个网络中的转发。The flow entry 410 may also include a new "next hop" field indicating the next SF in a group of ordered SFs to which the packet is to be forwarded, for example, it may include the address of the next SF. The indication of the "next hop" field is usually based on the next hop position in the service packet path (SFP) of the SFC, which is indicated based on the SPI and SI. The "next hop" field may also be consistent with the packet transfer in the SFC as defined in the SFC-related protocol, such as defined in the IETF RFC8300 protocol. The "next hop" of the SFC can be used to transmit packets encapsulated with NSH in a transmission path established based on the underlying network protocol. Generally, at the time of classification, the "next hop" field in the flow entry 410 indicates the first SF in a set of ordered SFs of the SFC. In some embodiments, a forwarding path, such as a label switched path (LSP), may be established between the current network node and a node associated with the "next hop" according to the "next hop" indication. Some SFCs may need to build multiple LSPs (eg if multiple SFs are included). Multiple LSPs can constitute the forwarding of packets throughout the network.
在一些实施例中,流条目410还可以指示对分组的一些特定处理动作。如关于图3所描述的,常规流条目中包括“指令”字段,其中的“应用动作”部分定义了网络节点需要对分组执行的处理动作。考虑到SFC的实现,可以对网络节点要执行的处理动作进行扩展。在一些实现中,流条目410可以指示与SFC相关的报头(即NSH报头)相关联的处理动作。在分类功能的实现中,流条目410的“更 新分组报头”的动作字段可以被扩展为指示如下的处理动作:向分组插入NSH。NSH的插入通常在将分组分类到SFC的路径中时被执行。In some embodiments, the flow entry 410 may also indicate some specific processing actions on the packet. As described with respect to FIG. 3, the regular flow entry includes an "instruction" field, where the "application action" section defines the processing action that the network node needs to perform on the packet. Considering the implementation of SFC, the processing actions to be performed by network nodes can be extended. In some implementations, the flow entry 410 may indicate a processing action associated with an SFC-related header (ie, an NSH header). In the implementation of the classification function, the action field of the "update packet header" of the flow entry 410 can be extended to indicate the following processing action: insert NSH into the packet. The insertion of NSH is usually performed when classifying packets into the path of the SFC.
流条目410的“应用动作”还可以包括额外的动作字段“更新报头匹配字段”,以指示如下处理动作:将分组的目的地地址替换为下一跳所指示的SF的地址。通过应用该处理动作,分组的目的地地址被替换,以便于支持建立与下一跳的LSP。The "application action" of the flow entry 410 may further include an additional action field "Update Header Matching Field" to indicate a processing action of replacing the destination address of the packet with the address of the SF indicated by the next hop. By applying this processing action, the destination address of the packet is replaced in order to support the establishment of an LSP with the next hop.
在一些实施例中,为了支持对分组的更精细的分类,流条目410的匹配字段除了常规的流表的匹配信息(诸如分组的源IP地址、源端口号、目的地IP地址、目的地端口号、协议类型、输入端口等)之外,还可以包括在SFC场景下的额外匹配信息。这样的额外匹配信息的示例可以包括分组的应用类型,指示生成该分组中的有效载荷的应用属于何种类型。额外的匹配信息还可以包括分组的用户信息,指示发起该分组的用户或用户的主机设备的相关信息。这些匹配信息中的一项或者多项可以被配置。因此,SDN的常规流表中的流条目被扩展为包括上述字段类型,以用于承载这些额外的配置信息。例如,在OpenFlow协议的规范中,匹配字段可以被扩展为包括字段类型“OFPXMT_OFB_APPLICATION_TYPE=xx,/*Application type.*/,”用于指示在匹配字段中承载分组的应用类型。匹配字段还可以被扩展为包括字段类型“OFPXMT_OFB_USER_INFORMATION=xx,/*User information.*/”,用于指示在匹配字段中承载分组的用户信息。In some embodiments, in order to support finer classification of packets, the matching field of flow entry 410 is in addition to the matching information of a conventional flow table (such as the source IP address, source port number, destination IP address, destination port of the packet Number, protocol type, input port, etc.), it can also include additional matching information in SFC scenarios. Examples of such additional matching information may include the application type of the packet, indicating what type of application the payload in the packet belongs to. The additional matching information may also include user information of the group, indicating related information of the user or the host device of the user who initiated the group. One or more of these matching information can be configured. Therefore, the flow entries in the general flow table of SDN are expanded to include the above field types for carrying these additional configuration information. For example, in the specifications of the OpenFlow protocol, the matching field can be extended to include the field type "OFPXMT_OFB_APPLICATION_TYPE = xx, / * Application type. * /" To indicate the application type of the packet carried in the matching field. The matching field can also be extended to include the field type "OFPXMT_OFB_USER_INFORMATION = xx, / * User information. * /", Which is used to indicate that the user information of the packet is carried in the matching field.
在一些实施例中,如果流条目410被设置在具有多个流表的网络节点中,流条目410还包括“去往流表”字段,用于指示在网络节点的流表的流水线处理中的下一流表。在一些实施例中,在网络节点的流表的流水线处理中,包含流条目410的流表可以是流水线处理中的第二个流表。In some embodiments, if the flow entry 410 is set in a network node with multiple flow tables, the flow entry 410 also includes a "to flow table" field, which is used to indicate the processing in the pipeline of the flow table of the network node. Next class table. In some embodiments, in the pipeline processing of the flow table of the network node, the flow table containing the flow entry 410 may be the second flow table in the pipeline processing.
图4A示出了针对SFC的分类的流条目的示例结构。SFC控制器210在创建SFC之后,可以将所创建的SFC,将用于SFC的分类 的流条目配置到相应网络节点的流表中。在网络节点220包括多个流表的情况下,配置有如图4A示例说明的用于分类的流条目的流表可以与其他流表一起在流表的流水线处理中使用。FIG. 4A shows an example structure of a classified flow entry for SFC. After the SFC controller 210 creates the SFC, it can configure the created SFC and the flow entries used for the classification of the SFC into the flow table of the corresponding network node. In the case where the network node 220 includes a plurality of flow tables, a flow table configured with flow entries for classification as exemplarily illustrated in FIG. 4A may be used in the pipeline processing of the flow table together with other flow tables.
图4B示出了针对SFC的SFP转发的流条目420。在常规SFC中,SFP转发通常由SFF这样的组件来实现。在本公开的实施例中,SFF转发功能被实现为网络节点的流表中的流条目。流条目420用于使网络节点220将分组转发到相应的SF进行处理,并且还将由SF处理后返回的分组继续转发到下一节点。FIG. 4B shows SFP forwarded flow entries 420 for SFC. In conventional SFC, SFP forwarding is usually implemented by components such as SFF. In an embodiment of the present disclosure, the SFF forwarding function is implemented as a flow entry in a flow table of a network node. The flow entry 420 is used to cause the network node 220 to forward the packet to the corresponding SF for processing, and further forward the packet returned by the SF processing to the next node.
如图4B所示,流条目420指示SFC的标识符,其可以被包括在流条目420的匹配字段中作为匹配信息。SFC的标识符可以包括SPI和/或SI。在SFP转发中,接收到的分组通常被封装有NSH报头,其中包含SFC的标识符(即SPI和/或SI)。因此,在流条目的匹配字段中,通过SFC的标识符即可确定分组是否匹配该条目。在一些实施例中,流条目420的匹配字段除了SFC的标识符之外还可以包括其他匹配信息,诸如以上关于图3或图4A描述的匹配信息。因此,SDN的常规流表中的流条目被扩展为包括上述字段类型,以用于承载这些额外的配置信息。例如,在OpenFlow协议的规范中,匹配字段可以被扩展为包括字段类型“OFPXMT_OFB_NSH_SPI_LABEL=xx,/*NSH SPI label.*/”,用于指示在匹配字段中承载SFC的SPI标识。匹配字段还可以被扩展为包括字段类型“OFPXMT_OFB_NSH_SI_LABEL=xx,/*NSH SI label.*/”,用于指示在匹配字段中承载SFC的SI标识。As shown in FIG. 4B, the flow entry 420 indicates an identifier of the SFC, which may be included in the matching field of the flow entry 420 as matching information. The identifier of the SFC may include SPI and / or SI. In SFP forwarding, the received packet is usually encapsulated with an NSH header, which contains the identifier of the SFC (ie, SPI and / or SI). Therefore, in the match field of the flow entry, whether the packet matches the entry can be determined by the identifier of the SFC. In some embodiments, the matching field of the flow entry 420 may include other matching information in addition to the identifier of the SFC, such as the matching information described above with respect to FIG. 3 or FIG. 4A. Therefore, the flow entries in the general flow table of SDN are expanded to include the above field types for carrying these additional configuration information. For example, in the specifications of the OpenFlow protocol, the matching field can be extended to include the field type "OFPXMT_OFB_NSH_SPI_LABEL = xx, / * NSH SPI label. * /", Which is used to indicate that the SFC SPI ID is carried in the matching field. The matching field can also be extended to include the field type "OFPXMT_OFB_NSH_SI_LABEL = xx, /*NSHSIlabel.*/", which is used to indicate that the SI identifier of the SFC is carried in the matching field.
在一些实施例中,与流条目410类似,流条目420还可以包括新的“下一跳”字段,指示分组要被转发到的一组有序SF中的下一个SF,例如可以包括下一个SF的地址。“下一跳”字段也可以与SFC相关的协议中的定义相一致,诸如在IETF RFC8300协议中所定义的。SFC的“下一跳”可以用于在基于底层网络协议建立的传输路径中传输被封装有NSH的分组。通常,在SFP转发时,流条目420中的“下一跳”字段指示SFC的一组有序SF中的某个中间SF 或者最后一个SF。在一些实施例中,根据“下一跳”的指示,可以在当前网络节点与“下一跳”相关联的节点之间建立转发路径,诸如标签交换路径(LSP)。In some embodiments, similar to flow entry 410, flow entry 420 may also include a new "next hop" field indicating the next SF in a group of ordered SFs to which the packet is to be forwarded, for example, it may include the next The address of SF. The "next hop" field may also be consistent with the definition in the SFC-related protocol, such as defined in the IETF RFC8300 protocol. The "next hop" of the SFC can be used to transmit packets encapsulated with NSH in a transmission path established based on the underlying network protocol. Generally, when SFP is forwarded, the "next hop" field in the flow entry 420 indicates some intermediate SF or the last SF in a set of ordered SFs of the SFC. In some embodiments, a forwarding path, such as a label switched path (LSP), may be established between the current network node and a node associated with the "next hop" according to the "next hop" indication.
在一些实施例中,流条目420还可以指示对分组的一些特定处理动作。在一些实现中,流条目420可以指示与SFC相关的报头(即NSH报头)相关联的处理动作。在SFP功能的实现中,流条目410的“更新分组报头”的动作字段可以被扩展为指示如下的处理动作:从分组移除NSH。NSH报头的移除通常在要提供用于分组处理的SF不支持SFC时、或者在要将分组提供到目的地设备时、或网络的下一跳不支持SFC时、或分组即将离开SFC域时被执行。In some embodiments, the flow entry 420 may also indicate some specific processing actions on the packet. In some implementations, the flow entry 420 may indicate a processing action associated with an SFC-related header (ie, an NSH header). In the implementation of the SFP function, the action field of "Update Packet Header" of the flow entry 410 may be extended to indicate the following processing action: Remove NSH from the packet. The removal of the NSH header is usually when the SF to be provided for packet processing does not support SFC, or when the packet is to be provided to the destination device, or the next hop of the network does not support SFC, or when the packet is about to leave the SFC domain Be executed.
流条目420的“应用动作”还可以包括额外的动作字段“更新报头匹配字段”,以指示如下处理动作:将分组的目的地地址替换为下一跳所指示的SF的地址。通过应用该处理动作,分组的目的地地址被替换,以便于支持建立与下一跳的LSP。The "application action" of the flow entry 420 may also include an additional action field "Update Header Matching Field" to indicate a processing action of replacing the destination address of the packet with the address of the SF indicated by the next hop. By applying this processing action, the destination address of the packet is replaced in order to support the establishment of an LSP with the next hop.
在一些实施例中,如果流条目420被设置在具有多个流表的网络节点中,流条目420还包括“去往流表”字段,用于指示在网络节点的流表的流水线处理中的下一流表。在一些实施例中,在网络节点的流表的流水线处理中,包含流条目420的流表可以是流水线处理中的第二个流表。In some embodiments, if the flow entry 420 is set in a network node having multiple flow tables, the flow entry 420 further includes a "to flow table" field, which is used to indicate that in the pipeline processing of the flow table of the network node Next class table. In some embodiments, in the pipeline processing of the flow table of the network node, the flow table containing the flow entry 420 may be the second flow table in the pipeline processing.
以上关于图4A和图4B讨论了用于分类的流表和用于SFP转发的流表。在图4A和图4B的示例中,为了支持SFC的实现,流条目还将指示与NSH相关的处理动作。这些动作被总结在图4C中的表430。如图4C所示,流条目可以包含动作标签“推入NSH报头”或“取出NSH报头”的动作标签,分别指示在分组中插入新的NSH报头和从分组中移除NSH报头。表430还指示动作标签“推入NSH报头”相关联的数据的类型,例如为以太网数据类型。The flow table for classification and the flow table for SFP forwarding have been discussed above with respect to FIGS. 4A and 4B. In the examples of FIGS. 4A and 4B, to support the implementation of SFC, the flow entry will also indicate NSH-related processing actions. These actions are summarized in table 430 in FIG. 4C. As shown in FIG. 4C, the flow entry may include an action label of "Push NSH header" or "Remove NSH header", respectively, indicating that a new NSH header is inserted into the packet and an NSH header is removed from the packet. Table 430 also indicates the type of data associated with the action tag "Push NSH header", such as the Ethernet data type.
在一些实施例中,如以上提及的,在网络节点220之间转发时,SDN控制器212可以控制网络节点根据路径标签来实现分组的转发。SDN控制器212可以基于转发规则,创建SDN的一条转发路径以用 于分组在SDN中的传输。例如,SDN控制器212可以将为SFC控制器210创建的SFC的路径(即SFP)映射到SDN中的多协议标签交换路径(即MPLS)。In some embodiments, as mentioned above, when forwarding between the network nodes 220, the SDN controller 212 may control the network nodes to implement packet forwarding according to the path labels. The SDN controller 212 may create a forwarding path of the SDN for transmission of packets in the SDN based on the forwarding rules. For example, the SDN controller 212 may map a path (ie, SFP) of the SFC created for the SFC controller 210 to a multiprotocol label switching path (ie, MPLS) in the SDN.
通常,路径标签的协议,诸如MPLS协议独立于网络层协议。SDN控制器212可以包括MPLS管理模块和路径计算元件(PCE)服务器(控制元件),用于确定MPLS在网络节点220之间的标签交换路径(LSP)。网络节点220可以包括PCE客户端,用于支持基于MPLS的交换路径转发。网络节点220可以基于分组的输入或输出标签来执行分组转发。在这样的实现中,SDN控制器212和网络节点220可以支持PCE通信协议,诸如在IETF RFC4665、IETF RFC5440中定义的协议规范。MPLS管理也可以根据相应协议规范,诸如IETF RFC3209来实现。Generally, protocols for path labels, such as the MPLS protocol, are independent of network layer protocols. The SDN controller 212 may include an MPLS management module and a path calculation element (PCE) server (control element) for determining a MPLS label switched path (LSP) between the network nodes 220. The network node 220 may include a PCE client for supporting MPLS-based switching path forwarding. The network node 220 may perform packet forwarding based on the input or output tags of the packet. In such an implementation, the SDN controller 212 and the network node 220 may support a PCE communication protocol, such as the protocol specifications defined in IETF RFC4665, IETF RFC5440. MPLS management can also be implemented according to the corresponding protocol specifications, such as IETF RFC3209.
在基于路径标签来转发时,如果分组被插入NSH报头,在指示多协议标签交换路径的标签中指示分组中是否存在NSH报头。图5示出了基于MPLS的路径标签的示例结构500。通常,路径标签500包括标签字段,指示标签值,其长度例如可以为20比特。路径标签500还可以包括预留字段,也称为试验使用字段,其被预留用于实验使用,长度例如可以为3比特。路径标签500还可以包括S字段,其指示标签堆栈的底部,长度为1比特。S字段用在标签堆栈的情况中(例如存在多个路径标签时)。路径标签500还包括存活时间(TTL)字段,其指示路径标签500的存活时间,长度可以为8比特。在SFC的实现中,在分组的转发期间,可以在路径标签中增加对分组的NSH报头的存在的指示。例如,可以利用路径标签500中的预留字段中的一比特部分510(由N表示)来指示分组中存在NSH报头。这意味着在网络节点的转发中需要转发分组的有效载荷以及其中插入的NSH报头。When forwarding based on a path label, if a packet is inserted into the NSH header, the label indicating the multi-protocol label switching path indicates whether the NSH header exists in the packet. FIG. 5 illustrates an example structure 500 of an MPLS-based path label. Generally, the path label 500 includes a label field indicating a label value, and the length may be, for example, 20 bits. The path label 500 may further include a reserved field, also referred to as an experimental use field, which is reserved for experimental use, and may be, for example, 3 bits in length. The path label 500 may further include an S field, which indicates the bottom of the label stack and is 1 bit in length. The S field is used in the case of a label stack (for example, when there are multiple path labels). The path label 500 also includes a time-to-live (TTL) field, which indicates the time-to-live of the path label 500, which may be 8 bits in length. In the implementation of SFC, during the forwarding of the packet, an indication of the existence of the NSH header of the packet may be added to the path label. For example, a one-bit portion 510 (represented by N) in a reserved field in the path label 500 may be used to indicate the presence of an NSH header in the packet. This means that in the forwarding of the network node, the payload of the packet and the NSH header inserted therein need to be forwarded.
上文讨论了在SDN中实现SFC时如何配置网络节点的流条目以作为与SFC相关联的转发规则。通常,分组在数据平面中由网络节点220首先接收。如果网络节点220中不存在用于该分组的转发的 流条目,网络节点220将确定没有找到与分组相匹配的SFC,不能被转发。在这种情况下,网络节点220向SFC控制器210提供关于没有找到与分组相匹配的SFC的指示。例如,网络节点220可以将没有相匹配的SFC的分组中的报头信息直接传输给SFC控制器210或者经由SDN控制器212转发给SFC控制器210。网络节点220与SFC控制器210的直接通信例如可以基于扩展的NETCONF协议来实现。如果经由SDN控制器212转发,分组可以经由“Packet-in”消息从网络节点220提供给SDN控制器212。在另外一些实现中,网络节点220也可以提供关于某个分组没有相匹配的SFC从而不能被转发的间接指示。The above discussed how to configure the flow entry of a network node as a forwarding rule associated with SFC when implementing SFC in SDN. Generally, a packet is first received by the network node 220 in the data plane. If there is no flow entry for forwarding the packet in the network node 220, the network node 220 will determine that no SFC matching the packet is found and cannot be forwarded. In this case, the network node 220 provides an indication to the SFC controller 210 that no SFC matching the packet was found. For example, the network node 220 may directly transmit header information in a packet without a matching SFC to the SFC controller 210 or forward it to the SFC controller 210 via the SDN controller 212. The direct communication between the network node 220 and the SFC controller 210 may be implemented based on the extended NETCONF protocol, for example. If forwarded via the SDN controller 212, packets can be provided from the network node 220 to the SDN controller 212 via a "Packet-in" message. In other implementations, the network node 220 may also provide an indirect indication that a certain packet has no matching SFC and cannot be forwarded.
响应于从网络节点220获得分组因为没有相匹配的SFC从而不能被转发的指示(例如不能被转发的分组本身或分组的报头信息),SFC控制器210可以为该分组创建SFC,并且将与所创建的SFC相关联的转发规则配置到从中获得分组网络节点220以及实现分组到SFC中的业务功能的转发所涉及的其他网络节点220。In response to an indication from the network node 220 that the packet cannot be forwarded because there is no matching SFC (such as the packet itself or the header information of the packet that cannot be forwarded), the SFC controller 210 may create an SFC for the packet, and The created SFC-associated forwarding rule is configured to other network nodes 220 involved in obtaining the packet network node 220 from it and implementing the forwarding of the business functions of the packet to the SFC.
以上实施例讨论了如何向网络节点220配置转发规则(例如流表的流条目)。在一些实施例中,根据应用,SFC控制器210可以更新或者删除相应的SFC。在这种情况下,SFC控制器210向网络节点220配置与更新后的SFC相关联的转发规则,指示网络节点220丢弃与旧的或者已被删除的SFC相关联的转发规则。SFC控制器210与网络节点220的这种通信也可以直接执行或者经由SDN控制器212来完成。The above embodiments discussed how to configure a forwarding rule (eg, a flow entry of a flow table) to the network node 220. In some embodiments, the SFC controller 210 may update or delete the corresponding SFC depending on the application. In this case, the SFC controller 210 configures the network node 220 with a forwarding rule associated with the updated SFC, and instructs the network node 220 to discard the forwarding rule associated with the old or deleted SFC. This communication between the SFC controller 210 and the network node 220 may also be performed directly or completed via the SDN controller 212.
在一些实施例中,在被配置转发规则(例如,流表中的流条目)之外,网络节点220可以基于转发规则来转发分组,以使得分组能够被转发到SFC所涉及的相应SF,以供处理。应当理解,在网络节点220对分组的转发过程中,除了用于SFC的分类和SFP转发功能的流表的流条目之外,网络节点220中还被配置其他流条目,以实现网络节点与网络节点、网络节点与SF以及网络节点与主机设备之间的分组转发。In some embodiments, in addition to being configured with a forwarding rule (e.g., a flow entry in a flow table), the network node 220 may forward the packet based on the forwarding rule so that the packet can be forwarded to the corresponding SF involved in the SFC to For processing. It should be understood that in the process of packet forwarding by the network node 220, in addition to the flow entries of the flow table used for the classification of the SFC and the SFP forwarding function, other flow entries are configured in the network node 220 to implement the network node and the network. Packet forwarding between nodes, network nodes and SF, and network nodes and host devices.
在基于流条目的转发时,网络节点220将提取分组的报头,并且确定报头是否包含与流条目所指示的匹配信息。如果报头包含这样的匹配信息,这意味着分组与该流条目相匹配。在这种情况下,网络节点可以基于匹配的流条目来处理分组。对分组的处理可以由流条目的指令字段中的信息来执行。Upon flow entry-based forwarding, the network node 220 will extract the header of the packet and determine whether the header contains matching information indicated by the flow entry. If the header contains such matching information, this means that the packet matches the flow entry. In this case, the network node can process the packet based on the matching flow entry. Processing of packets may be performed by information in the instruction field of the flow entry.
在图2的示例中,网络节点220-1将被配置有与SFC的分类功能相关的转发规则,诸如指示如图4A所示出的信息的流条目。网络节点220-1可以基于这样的流条目来确定如何转发分组。具体地,如果网络节点220-1确定分组的报头包含流条目的匹配信息,则对分组执行流条目所指示的处理动作,诸如向分组中插入NSH报头,和/或将分组的目的地地址替换为流条目所指示的SF的地址。网络节点220-1可以基于这样的目的地地址,将分组转发到与该SF通信耦合的下游节点(例如,网络节点220-2)。In the example of FIG. 2, the network node 220-1 will be configured with forwarding rules related to the classification function of the SFC, such as a flow entry indicating the information as shown in FIG. 4A. The network node 220-1 may determine how to forward a packet based on such a flow entry. Specifically, if the network node 220-1 determines that the header of the packet contains matching information of the flow entry, the processing action indicated by the flow entry is performed on the packet, such as inserting an NSH header into the packet, and / or replacing the destination address of the packet Is the address of the SF indicated by the flow entry. The network node 220-1 may forward a packet to a downstream node (e.g., the network node 220-2) that is communicatively coupled with the SF based on such a destination address.
网络节点220-2可以被配置有与SFP转发相关的转发规则,诸如指示如图4B所示出的信息的流条目。网络节点220-2可以基于这样的流条目来确定如何转发分组。具体地,如果网络节点220-2确定分组的报头包含流条目的匹配信息(诸如SFC的标识符),则可以对分组执行流条目所指示的处理动作,诸如从分组移除NSH报头,和/或将分组的目的地地址替换为流条目所指示的SF的地址。网络节点220-2可以基于这样的目的地地址,将分组转发到与该SF通信耦合的下游节点。The network node 220-2 may be configured with forwarding rules related to SFP forwarding, such as a flow entry indicating information as shown in FIG. 4B. The network node 220-2 may determine how to forward packets based on such flow entries. Specifically, if the network node 220-2 determines that the header of the packet contains matching information (such as an identifier of the SFC) of the flow entry, the processing action indicated by the flow entry may be performed on the packet, such as removing the NSH header from the packet, and / Or, the destination address of the packet is replaced with the address of the SF indicated by the flow entry. The network node 220-2 may forward a packet to a downstream node that is communicatively coupled with the SF based on such a destination address.
由于网络节点220-2与SF 240-1相连(即通信耦合)并且SF 240-1被包括在分组的SFC中,因此网络节点220-2还可以被配置有另外的转发规则,指示将分组转发到SF 240-1进行处理。这样的规则也可以由SFC控制器210配置作为网络节点220-2的流表中的流条目。Because the network node 220-2 is connected to SF 240-1 (that is, communication coupling) and SF 240-1 is included in the packet SFC, the network node 220-2 can also be configured with another forwarding rule, which instructs the packet to be forwarded Go to SF 240-1 for processing. Such a rule may also be configured by the SFC controller 210 as a flow entry in the flow table of the network node 220-2.
以下将参照图6来描述在基于SDN的SFC实现的系统200的一个具体示例,以具体讨论网络节点如何实现分组到SFC的各个SF的转发。在图6的示例中,为了解释说明的目的,除了网络节点220-1、220-2之外,系统200包括另外的网络节点620-3、620-4和620-5, 它们分别与SF 640-2、SF 640-2和640-3。这些网络节点620-3、620-4和620-5的功能与网络节点220类似,并且也可以从SFC控制器210获得转发规则以用于执行分组到SF的转发。在图6的示例中,由SFC控制器210配置的与SFC相关联的转发规则被实现为网络节点中的流表602中的流条目。每个网络节点可以包括多个流表,并且需要执行流表的流水线处理来执行分组转发。A specific example of a system 200 implemented in an SDN-based SFC will be described below with reference to FIG. 6 to specifically discuss how a network node implements packet forwarding to each SF of an SFC. In the example of FIG. 6, for the purpose of explanation, in addition to the network nodes 220-1, 220-2, the system 200 includes additional network nodes 620-3, 620-4, and 620-5, which are respectively related to SF640 -2, SF 640-2 and 640-3. These network nodes 620-3, 620-4, and 620-5 function similarly to the network node 220, and can also obtain forwarding rules from the SFC controller 210 for performing packet-to-SF forwarding. In the example of FIG. 6, the forwarding rules associated with the SFC configured by the SFC controller 210 are implemented as flow entries in the flow table 602 in the network node. Each network node may include multiple flow tables, and pipeline processing of the flow tables needs to be performed to perform packet forwarding.
图6示出了为从主机650-1到主机650-2的分组611提供的SFC,其涉及SF 240-1、SF 640-2和SF 640-4。图6还示出了为从主机650-1到主机650-3的分组612提供的SFC,其涉及SF 640-3。图6的示例中SDN控制器212将SFC映射为网络节点之中的MPLS路径。涉及SF 240-1、SF 640-2和SF 640-4的SFC的路径被映射为LSP_1、LSP_2和LSP_3。涉及640-3的SFC的路径被映射为LSP_5。FIG. 6 shows the SFC provided for the group 611 from the host 650-1 to the host 650-2, which involves SF 240-1, SF 640-2, and SF 640-4. Figure 6 also shows the SFC provided for the packet 612 from host 650-1 to host 650-3, which involves SF640-3. In the example of FIG. 6, the SDN controller 212 maps the SFC into an MPLS path among network nodes. The paths of SFCs involving SF 240-1, SF 640-2, and SF 640-4 are mapped as LSP_1, LSP_2, and LSP_3. The path involving SFC of 640-3 is mapped as LSP_5.
在操作中,网络节点220-1和220-2以及网络节点620-3、620-4和620-5根据其中配置的流表来执行分组的转发。图7A至图7N示出了这些网络节点在转发时所使用的流表的示例。下面将详细描述网络节点如何相应转发分组。In operation, the network nodes 220-1 and 220-2 and the network nodes 620-3, 620-4, and 620-5 perform packet forwarding according to the flow tables configured therein. 7A to 7N show examples of flow tables used by these network nodes when forwarding. The following will describe in detail how network nodes forward packets accordingly.
网络节点220-1从主机650-1接收到分组611,例如经由输入端口101接收。网络节点220-1基于流表710来执行关于SFC的分类的操作。具体地,网络节点220-1从该分组中提取报头,其包括例如分组的源IP地址、目的地IP地址、协议类型、输入端口等。网络节点220-1将所提取的信息与图7A所示的流表710的流条目中的匹配字段进行匹配。如果从分组611提取的信息与流表710中的第一流条目中的匹配字段中的信息(例如源IP地址:192.168.0.1、目的地IP地址:192.168.0.2、协议类型为IPv4、输入端口为101)相匹配,网络节点220-1确定该流条目与分组611相匹配。然后,网络节点220-1基于该流条目来执行对分组611的处理动作。具体地,网络节点220-1确定该流条目指示处理动作为“推入NSH报头”,因此将该流条目指示的NSH插入到分组611。此外,网络节点220-1还将分组的报头中的目的地IP地址替换为该流条目指示的下一跳的目的 地IP地址(即SF 240-1的IP地址:202.0.0.11),并且根据流表的流水线处理而继续去参考流表12来处理分组611。The network node 220-1 receives the packet 611 from the host 650-1, for example, via the input port 101. The network node 220-1 performs an operation on the classification of the SFC based on the flow table 710. Specifically, the network node 220-1 extracts a header from the packet, which includes, for example, a source IP address, a destination IP address, a protocol type, an input port, and the like of the packet. The network node 220-1 matches the extracted information with a matching field in a flow entry of the flow table 710 shown in FIG. 7A. If the information extracted from packet 611 matches the information in the matching field in the first flow entry in flow table 710 (for example, source IP address: 192.168.0.1, destination IP address: 192.168.0.2, protocol type is IPv4, and input port is 101), the network node 220-1 determines that the flow entry matches the packet 611. The network node 220-1 then performs a processing action on the packet 611 based on the flow entry. Specifically, the network node 220-1 determines that the flow entry indication processing action is "Push NSH header", and therefore inserts the NSH indicated by the flow entry into the packet 611. In addition, the network node 220-1 also replaces the destination IP address in the header of the packet with the destination IP address of the next hop indicated by the flow entry (that is, the IP address of SF 240-1: 202.0.0.11), and according to The pipeline processing of the flow table continues to refer to the flow table 12 to process the packet 611.
在一些实施例中,如果网络节点220-1在流表710中没有查找到与分组611相匹配的流条目,网络节点220-1将无法转发分组。在这种情况下,网络节点220-1可以根据NETCONF协议将分组611直接传输给SFC控制器210或者经由SDN控制器212将分组611转发给SFC控制器210。响应于接收到这样的分组,SFC控制器210可以创建该分组的SFC并且将与所创建的SFC相关联的流表条目配置到网络节点220-1。In some embodiments, if the network node 220-1 does not find a flow entry in the flow table 710 that matches the packet 611, the network node 220-1 will not be able to forward the packet. In this case, the network node 220-1 may directly transmit the packet 611 to the SFC controller 210 or forward the packet 611 to the SFC controller 210 via the SDN controller 212 according to the NETCONF protocol. In response to receiving such a packet, the SFC controller 210 may create an SFC for the packet and configure a flow table entry associated with the created SFC to the network node 220-1.
对于从主机650-1接收到分组612,类似地,网络节点220-1也可以基于流表710来执行关于SFC的分类的操作,确定流表710中的第二条流条目与分组612相匹配。基于该流条目,网络节点220-1向分组612插入NSH报头,并且将分组612的目的地IP地址修改为匹配的流条目指示的下一跳的目的地IP地址(即SF 640-3的IP地址:202.0.0.13),并且根据流表的流水线处理而继续去参考流表12来处理分组612。如果网络节点220-1原先未被配置有与分组612相匹配的流条目,网络节点220-1可以也可以将分组612提供给SFC控制器210,以从SFC控制器210获得正确的流条目。For receiving the packet 612 from the host 650-1, similarly, the network node 220-1 may also perform an operation on the classification of the SFC based on the flow table 710, and determine that the second flow entry in the flow table 710 matches the packet 612 . Based on the flow entry, the network node 220-1 inserts an NSH header into the packet 612, and modifies the destination IP address of the packet 612 to the destination IP address of the next hop indicated by the matching flow entry (that is, the IP of SF640-3 Address: 202.0.0.13), and continue to refer to the flow table 12 to process the packet 612 according to the pipeline processing of the flow table. If the network node 220-1 was not originally configured with a flow entry that matches the packet 612, the network node 220-1 may or may provide the packet 612 to the SFC controller 210 to obtain the correct flow entry from the SFC controller 210.
在流表的流水线处理中,网络节点220-1继续参考流表12来处理分组611和612。图7B示出了网络节点220-1中的流表612的示例结构712。针对分组611,网络节点220-1将分组611的报头中提取的信息(例如,输入端口101,目的地IP地址202.0.0.11)与流表712的流条目进行匹配。如果从流表712中查找到相匹配的流条目(例如第一条流条目),网络节点220-1基于该流条目设置分组的输出标签(MPLS标签1000),并且更新分组611的分组报头(即推入MPLS标签1000),并且将分组经由输出端口102转发。In the pipeline processing of the flow table, the network node 220-1 continues to refer to the flow table 12 to process the packets 611 and 612. FIG. 7B shows an example structure 712 of the flow table 612 in the network node 220-1. For the packet 611, the network node 220-1 matches the information (for example, input port 101, destination IP address 202.0.0.11) extracted from the header of the packet 611 with the flow entry of the flow table 712. If a matching flow entry (for example, the first flow entry) is found from the flow table 712, the network node 220-1 sets the output label (MPLS label 1000) of the packet based on the flow entry, and updates the packet header of the packet 611 ( That is, push the MPLS label 1000), and forward the packet via the output port 102.
针对分组612,网络节点220-1将分组612的报头中提取的信息(例如,输入端口101,目的地IP地址202.0.0.13)与流表712的流条目进行匹配。如果从流表712中查找到相匹配的流条目(例如第 二条流条目),网络节点220-1基于该流条目设置分组的输出标签(MPLS标签2000),并且更新分组612的分组报头(即推入MPLS标签2000),并且将分组经由输出端口102转发。For the packet 612, the network node 220-1 matches the information (for example, input port 101, destination IP address 202.0.0.13) extracted from the header of the packet 612 with the flow entry of the flow table 712. If a matching flow entry (for example, a second flow entry) is found from the flow table 712, the network node 220-1 sets the output label (MPLS label 2000) of the packet based on the flow entry, and updates the packet header of the packet 612 ( That is, push the MPLS label 2000), and forward the packet via the output port 102.
经过处理,分组611和612将由网络节点220-1的输出端口102输出,并且经由网络节点220-2的输入端口201输入网络节点220-2。网络节点220-2首先基于如图7C中示出的流表720来执行对分组611和612的转发。具体地,在网络节点220-2中,针对从上游节点220-1接收到的分组611,网络节点220-2提取分组611的报头(例如其包括输入端口201、输入MPLS标签1100、目的地IP地址、由网络节点220-1插入的NSH报头等)。网络节点220-2将提取的信息与流表720的流条目进行匹配,并且确定流表720中的第一流条目(包含输入端口201和输入MPLS标签1100)相匹配。网络节点220-2可以基于该流条目执行对分组611的处理动作。网络节点220-2可以更新该分组611的分组报头,以取出MPLS标签1100,并且将分组611经由输出端口202输出。After processing, the packets 611 and 612 will be output by the output port 102 of the network node 220-1 and input to the network node 220-2 via the input port 201 of the network node 220-2. The network node 220-2 first performs forwarding of the packets 611 and 612 based on the flow table 720 as shown in FIG. 7C. Specifically, in the network node 220-2, for the packet 611 received from the upstream node 220-1, the network node 220-2 extracts the header of the packet 611 (for example, it includes the input port 201, the input MPLS label 1100, the destination IP Address, NSH header inserted by network node 220-1, etc.). The network node 220-2 matches the extracted information with the flow entry of the flow table 720, and determines that the first flow entry (including the input port 201 and the input MPLS label 1100) in the flow table 720 matches. The network node 220-2 may perform a processing action on the packet 611 based on the flow entry. The network node 220-2 may update the packet header of the packet 611 to take out the MPLS label 1100, and output the packet 611 via the output port 202.
网络节点220-2经由输出端口202与SF 240-1通信耦合。因此,SF 240-1可以接收到分组611并且对分组611执行相应的处理。在一些示例中,SF 240-1利用分组611的NSH报头中的上下文报头(例如C1)来处理分组611并且将分组611的NSH报头中的标识符SI减小(例如从255减小到254)。经过处理之后,SF 240-1将分组611经由网络节点220-2的输入端口203返回给网络节点220-2。网络节点220-2接收到分组611之后,提取分组611的报头(例如,输入端口、输入MPLS标签、NSH中的SPI和SI)。网络节点220-2确定分组611与流表720中的第三条流条目(其指示输入端口203)相匹配。基于该流条目,网络节点220-2将继续去参考该节点中的流表1来处理分组611。Network node 220-2 is communicatively coupled with SF 240-1 via output port 202. Therefore, SF 240-1 can receive packet 611 and perform corresponding processing on packet 611. In some examples, SF 240-1 uses the context header (e.g., C1) in the NSH header of packet 611 to process packet 611 and reduces the identifier SI in the NSH header of packet 611 (e.g., from 255 to 254) . After processing, SF 240-1 returns the packet 611 to the network node 220-2 via the input port 203 of the network node 220-2. After receiving the packet 611, the network node 220-2 extracts the header (for example, input port, input MPLS label, SPI and SI in NSH) of the packet 611. The network node 220-2 determines that the packet 611 matches the third flow entry in the flow table 720, which indicates the input port 203. Based on the flow entry, the network node 220-2 will continue to refer to the flow table 1 in the node to process the packet 611.
对于经由输入端口201从上游节点220-1接收到的分组612,网络节点220-2也可以参考流表720来类似地处理该分组,确定与该分组相匹配的流条目(例如,流表720中的第二流条目),并且对分 组612执行由相匹配的流条目指示的处理动作。具体地,网络节点220-2更新分组612的报头,即将报头中的MPLS标签从2100交换为MPLS标签2200,并且将分组612经由输出端口205输出。For the packet 612 received from the upstream node 220-1 via the input port 201, the network node 220-2 can also refer to the flow table 720 to similarly process the packet and determine the flow entry (e.g., the flow table 720) that matches the packet. The second flow entry in), and the processing action indicated by the matching flow entry is performed on the packet 612. Specifically, the network node 220-2 updates the header of the packet 612, that is, switches the MPLS label in the header from 2100 to the MPLS label 2200, and outputs the packet 612 via the output port 205.
对于分组611,如以上提及的,网络节点220-2还需要继续参考流表1来进行处理。图7D示出了网络节点220-2中的流表1的示例,即流表722。流表722包括与SFP转发相关联的流条目。网络节点220-2将从分组611的报头提取的信息与流表722的流条目的匹配字段中的信息进行匹配,并且确定指示SPI 25和SI 254的流条目与分组611的NSH报头中所包含的信息相匹配。网络节点220-2然后确定分组611的下一跳的IP地址(即640-2的IP地址202.0.0.12)。网络节点220-2还对分组611执行该流条目所指示的处理动作,即将分组611的报头中的目的地地址替换为下一跳的IP地址,然后根据流表的流水线处理而继续去参考流表23来处理分组611。For the packet 611, as mentioned above, the network node 220-2 needs to continue to refer to the flow table 1 for processing. FIG. 7D shows an example of the flow table 1 in the network node 220-2, that is, the flow table 722. The flow table 722 includes flow entries associated with SFP forwarding. The network node 220-2 matches the information extracted from the header of the packet 611 with the information in the matching field of the flow entry of the flow table 722, and determines that the flow entries indicating the SPI 25 and SI 254 are included in the NSH header of the packet 611 Matches the information. The network node 220-2 then determines the IP address of the next hop of the packet 611 (ie, the IP address 202.0.0.12 of 640-2). The network node 220-2 also performs the processing action indicated by the flow entry on the packet 611, that is, the destination address in the header of the packet 611 is replaced with the IP address of the next hop, and then the reference flow is continued according to the pipeline processing of the flow table. Table 23 to process packet 611.
网络节点220-2的流表23被示出为图7E中的流表724。网络节点220-2将分组611的报头提取的信息与流表724的流条目中的匹配字段中指示的信息进行匹配,并且确定指示输入端口203和目的地IP地址202.0.0.12的流条目与分组611的报头中的信息相匹配。网络节点220-2因此可以基于该流条目来处理分组611。具体地,网络节点220-2将分组611的输出MPLS标签设置为该流条目所指示的输出标签1200,通过向分组611的报头插入MPLS标签1200来更新报头,然后经由输出端口204输出该分组。The flow table 23 of the network node 220-2 is shown as the flow table 724 in FIG. 7E. The network node 220-2 matches the information extracted from the header of the packet 611 with the information indicated in the matching field in the flow entry of the flow table 724, and determines the flow entry and packet indicating the input port 203 and the destination IP address 202.0.0.12. The information in the header of 611 matches. The network node 220-2 can therefore process the packet 611 based on the flow entry. Specifically, the network node 220-2 sets the output MPLS label of the packet 611 to the output label 1200 indicated by the flow entry, updates the header by inserting the MPLS label 1200 into the header of the packet 611, and outputs the packet via the output port 204.
网络节点620-3的输入端口301与网络节点220-2的输出端口204相连,因此网络节点620-3接收到分组611。网络节点620-3可以基于其中配置的流表来处理分组611。具体地,网络节点620-3首先在如图7F所示的流表730中查找与分组611相匹配的流条目。网络节点620-3提取分组611的报头信息(例如,输入端口301、输入MPLS标签1300、NSH报头、目的地IP地址等),然后确定所提取的信息与流表730中的第一流条目的匹配字段中的信息(指示输入端口301和输入MPLS标签1300)相匹配。由此,网络节点620-3 基于该流条目来对分组611执行相应的处理,例如在分组611的报头中取出MPLS标签1300,并且将分组611经由输出端口302输出。The input port 301 of the network node 620-3 is connected to the output port 204 of the network node 220-2, so the network node 620-3 receives the packet 611. The network node 620-3 may process the packet 611 based on the flow table configured therein. Specifically, the network node 620-3 first looks for a flow entry matching the packet 611 in the flow table 730 shown in FIG. 7F. The network node 620-3 extracts the header information of the packet 611 (for example, input port 301, input MPLS label 1300, NSH header, destination IP address, etc.), and then determines that the extracted information matches the first flow entry in the flow table 730 The information in the fields (indicating that the input port 301 and the input MPLS label 1300) match. Thus, the network node 620-3 performs corresponding processing on the packet 611 based on the flow entry, for example, fetches the MPLS label 1300 in the header of the packet 611, and outputs the packet 611 via the output port 302.
网络节点620-3经由输出端口302与SF 640-2通信耦合。因此,SF 640-2可以接收到分组611并且对分组611执行相应的处理。在一些示例中,SF 640-2利用分组611的NSH报头中的上下文报头(例如C1)来处理分组611并且将分组611的NSH报头中的标识符SI减小(例如从254减小到253)。经过处理之后,SF 640-2将分组611经由网络节点620-3的输入端口303返回给网络节点620-3。网络节点620-3接收到分组611之后,提取分组611的报头(例如,输入端口、输入MPLS标签、NSH中的SPI和SI)。网络节点620-3确定分组611与流表730的第三流条目(其指示输入端口303)相匹配。基于该流条目,网络节点620-3将继续去参考该节点中的流表1来处理分组611。Network node 620-3 is communicatively coupled with SF640-2 via output port 302. Therefore, SF640-2 can receive packet 611 and perform corresponding processing on packet 611. In some examples, SF640-2 utilizes the context header (e.g., C1) in the NSH header of packet 611 to process packet 611 and reduce the identifier SI (e.g., from 254 to 253) . After processing, SF640-2 returns packet 611 to network node 620-3 via input port 303 of network node 620-3. After receiving the packet 611, the network node 620-3 extracts the header (for example, the input port, the input MPLS label, the SPI and the SI in the NSH) of the packet 611. The network node 620-3 determines that the packet 611 matches the third flow entry of the flow table 730, which indicates the input port 303. Based on the flow entry, the network node 620-3 will continue to refer to the flow table 1 in the node to process the packet 611.
图7G示出了网络节点620-3中的流表1的示例,即流表732。流表732包括与SFP转发相关联的流条目。网络节点620-3将从分组611的报头提取的信息与流表732的流条目的匹配字段中的信息进行匹配,并且确定指示SPI 25和SI 253的流条目与分组611的NSH报头中所包含的信息相匹配。基于相匹配的流条目,网络节点620-3然后确定分组611的下一跳的IP地址(即SF 640-4的IP地址202.0.0.14)。网络节点620-3还对分组611执行该流条目所指示的处理动作,即将分组611的报头中的目的地地址替换为下一跳的IP地址,然后根据流表的流水线处理而继续去参考流表34来处理分组611。FIG. 7G shows an example of the flow table 1 in the network node 620-3, that is, the flow table 732. The flow table 732 includes flow entries associated with SFP forwarding. The network node 620-3 matches the information extracted from the header of the packet 611 with the information in the matching field of the flow entry of the flow table 732, and determines that the flow entries indicating the SPI 25 and SI 253 are included in the NSH header of the packet 611 Matches the information. Based on the matching flow entries, the network node 620-3 then determines the IP address of the next hop of the packet 611 (ie, the IP address 202.0.0.14 of SF640-4). The network node 620-3 also performs the processing action indicated by the flow entry on the packet 611, that is, the destination address in the header of the packet 611 is replaced with the IP address of the next hop, and then the reference flow is continued according to the pipeline processing of the flow table. Table 34 to process packet 611.
网络节点620-3的流表34被示出为图7H中的流表734。网络节点620-3将分组611的报头提取的信息与流表734的流条目中的匹配字段中指示的信息进行匹配,并且确定指示输入端口303和目的地IP地址202.0.0.14的流条目与分组611的报头中的信息相匹配。网络节点620-3因此可以基于该流条目来处理分组611。具体地,网络节点620-3将分组611的输出MPLS标签设置为该流条目所指示的 输出标签1400,通过向分组611的报头插入MPLS标签1400来更新报头,然后经由输出端口304输出该分组。The flow table 34 of the network node 620-3 is shown as the flow table 734 in FIG. 7H. The network node 620-3 matches the information extracted from the header of the packet 611 with the information indicated in the matching field in the flow entry of the flow table 734, and determines the flow entry and packet indicating the input port 303 and the destination IP address 202.0.0.14. The information in the header of 611 matches. The network node 620-3 can therefore process the packet 611 based on the flow entry. Specifically, the network node 620-3 sets the output MPLS label of the packet 611 to the output label 1400 indicated by the flow entry, updates the header by inserting the MPLS label 1400 into the header of the packet 611, and then outputs the packet via the output port 304.
网络节点620-4的输入端口401与网络节点620-3的输出端口304相连,因此网络节点620-4接收到分组611。网络节点620-4可以基于其中配置的流表来处理分组611。具体地,网络节点620-4首先在如图7I所示的流表740中查找与分组611相匹配的流条目。网络节点620-4提取分组611的报头信息(例如,输入端口401、输入MPLS标签1500、NSH报头、目的地IP地址等),然后确定所提取的信息与流表740中的第一流条目的匹配字段中的信息(指示输入端口401和输入MPLS标签1500)相匹配。然后,网络节点620-4基于该流条目来对分组611执行相应的处理,例如在分组611的报头中取出MPLS标签1500,将分组611经由端口402输出。The input port 401 of the network node 620-4 is connected to the output port 304 of the network node 620-3, so the network node 620-4 receives the packet 611. The network node 620-4 may process the packet 611 based on the flow table configured therein. Specifically, the network node 620-4 first finds a flow entry matching the packet 611 in the flow table 740 shown in FIG. 7I. The network node 620-4 extracts the header information of the packet 611 (for example, input port 401, input MPLS label 1500, NSH header, destination IP address, etc.), and then determines that the extracted information matches the first flow entry in the flow table 740 The information in the fields (indicating that the input port 401 and the input MPLS label 1500) match. Then, the network node 620-4 performs a corresponding process on the packet 611 based on the flow entry, for example, takes out an MPLS label 1500 in the header of the packet 611, and outputs the packet 611 via the port 402.
网络节点620-4经由输出端口402与SF 640-4通信耦合,因此,SF 640-4可以接收到分组611并且对分组611执行相应的处理。在一些示例中,SF 640-4利用分组611的NSH报头中的上下文报头(例如C1)来处理分组611并且将分组611的NSH报头中的标识符SI减小(例如从253减小到252)。经过处理后,分组611由SF 640-4的输入端口403返回网络节点620-4。网络节点620-4接收到分组611之后,确定报头的信息(例如,输入端口、输入MPLS标签、NSH中的SPI和SI)与流表740中指示输入端口403相匹配。基于该流条目,网络节点620-4继续去参考该节点中的流表1(即图7J中示出的流表742)来处理分组611。The network node 620-4 is communicatively coupled with the SF 640-4 via the output port 402. Therefore, the SF 640-4 can receive the packet 611 and perform corresponding processing on the packet 611. In some examples, SF640-4 utilizes the context header (e.g., C1) in the NSH header of packet 611 to process packet 611 and reduce the identifier SI in the NSH header of packet 611 (e.g., from 253 to 252) . After processing, the packet 611 is returned to the network node 620-4 through the input port 403 of the SF640-4. After receiving the packet 611, the network node 620-4 determines that the header information (for example, input port, input MPLS label, SPI and SI in NSH) matches the indicated input port 403 in the flow table 740. Based on the flow entry, the network node 620-4 continues to refer to the flow table 1 in the node (ie, the flow table 742 shown in FIG. 7J) to process the packet 611.
根据流表742,网络节点620-4将从分组611的报头提取出的信息与流表742的流条目的匹配字段中的信息进行匹配,并且确定指示SPI 25和SI 252的流条目与分组611的NSH报头中所包含的信息相匹配。基于相匹配的流条目,网络节点620-4然后确定分组611的下一跳的IP地址(即主机650-2的IP地址192.168.0.2)。网络节点620-4还对分组611执行该流条目所指示的处理动作,即取出分组611的NSH报头,并将分组611的报头中的目的地地址替换为下一 跳的IP地址,然后根据流表的流水线处理而继续去参考流表45来处理分组611。According to the flow table 742, the network node 620-4 matches the information extracted from the header of the packet 611 with the information in the matching field of the flow entry of the flow table 742, and determines the flow entry indicating SPI 25 and SI 252 and the packet 611. The information contained in the NSH header matches. Based on the matching flow entries, the network node 620-4 then determines the IP address of the next hop of the packet 611 (ie, the IP address of the host 650-2 192.168.0.2). The network node 620-4 also executes the processing action indicated by the flow entry on the packet 611, that is, taking out the NSH header of the packet 611, and replacing the destination address in the header of the packet 611 with the IP address of the next hop, and The pipeline processing of the table continues to refer to the flow table 45 to process the packet 611.
网络节点620-4的流表45被示出为图7K中的流表744。网络节点620-4将分组611的报头提取的信息与流表744的流条目中的匹配字段中指示的信息进行匹配,并且确定指示输入端口403和目的地IP地址192.168.0.2的流条目与分组611的报头中的信息相匹配。网络节点620-4因此可以基于该流条目来处理分组611。具体地,网络节点620-4将分组611经由输出端口404输出。主机650-2连接到。网络节点620-4的输出端口404,因此可以获得该分组611。The flow table 45 of the network node 620-4 is shown as the flow table 744 in FIG. 7K. The network node 620-4 matches the information extracted from the header of the packet 611 with the information indicated in the matching field in the flow entry of the flow table 744, and determines the flow entry and packet indicating the input port 403 and the destination IP address 192.168.0.2. The information in the header of 611 matches. The network node 620-4 can therefore process the packet 611 based on the flow entry. Specifically, the network node 620-4 outputs the packet 611 via the output port 404. Host 650-2 is connected to. The output port 404 of the network node 620-4, so the packet 611 can be obtained.
继续考虑对分组612的处理。如以上所述,分组612经由网络节点220-1的输出端口205输出。网络节点620-5的输入端口501与网络节点220-1的输出端口205,因此网络节点620-5获得分组612。网络节点620-5可以基于其中配置的流表来处理分组612。具体地,网络节点620-5在如图7L所示的流表750中查找与分组612相匹配的流条目。网络节点620-5提取分组612的报头信息(例如,输入端口501、输入MPLS标签2300、NSH报头、目的地IP地址等),然后确定所提取的信息与流表750中的第一流条目的匹配字段中的信息(指示输入端口501和输入MPLS标签2300)相匹配。由此,网络节点620-5基于该流条目来对分组612执行相应的处理,例如在分组612的报头中提取出MPLS标签2300,并且将分组612经由输出端口502输出。Processing of packet 612 continues. As described above, the packet 612 is output via the output port 205 of the network node 220-1. The input port 501 of the network node 620-5 and the output port 205 of the network node 220-1, so the network node 620-5 obtains the packet 612. The network node 620-5 may process the packet 612 based on the flow table configured therein. Specifically, the network node 620-5 looks up a flow entry matching the packet 612 in the flow table 750 shown in FIG. 7L. The network node 620-5 extracts the header information of the packet 612 (for example, input port 501, input MPLS label 2300, NSH header, destination IP address, etc.), and then determines that the extracted information matches the first flow entry in the flow table 750 The information in the fields (indicating that the input port 501 and the input MPLS label 2300) match. Thus, the network node 620-5 performs corresponding processing on the packet 612 based on the flow entry, for example, extracts an MPLS label 2300 in the header of the packet 612, and outputs the packet 612 via the output port 502.
网络节点620-5经由输出端口502与SF 640-3通信耦合。因此,SF 640-3可以接收到分组612并且对分组612执行相应的处理。在一些示例中,SF 640-3利用分组612的NSH报头中的上下文报头(例如C2)来处理分组612并且将分组612的NSH报头中的标识符SI减小(例如从224减小到223)。经过处理之后,SF 640-3将分组612经由网络节点620-5的输入端口502返回给网络节点620-5。网络节点620-5接收到分组612之后,提取分组612的报头(例如,输入端口、输入MPLS标签、NSH中的SPI和SI)。网络节点620-5 确定分组612与流表750的第二流条目(其指示输入端口503)相匹配。基于该流条目,网络节点620-5将继续去参考该节点中的流表1来处理分组612。Network node 620-5 is communicatively coupled with SF640-3 via output port 502. Therefore, SF640-3 can receive packet 612 and perform corresponding processing on packet 612. In some examples, SF640-3 utilizes the context header (e.g., C2) in the NSH header of packet 612 to process packet 612 and reduce the identifier SI in the NSH header of packet 612 (e.g., from 224 to 223) . After processing, SF640-3 returns the packet 612 to the network node 620-5 via the input port 502 of the network node 620-5. After receiving the packet 612, the network node 620-5 extracts the header (for example, the input port, the input MPLS label, the SPI and the SI in the NSH) of the packet 612. The network node 620-5 determines that the packet 612 matches the second flow entry of the flow table 750, which indicates the input port 503. Based on the flow entry, the network node 620-5 will continue to refer to the flow table 1 in the node to process the packet 612.
图7M示出了网络节点620-5中的流表1的示例,即流表752。网络节点620-5将从分组612的报头提取的信息与流表752的流条目的匹配字段中的信息进行匹配,并且确定指示SPI 135和SI 223的流条目与分组612的NSH报头中所包含的信息相匹配。基于相匹配的流条目,网络节点620-3然后确定分组611的下一跳的IP地址(即主机650-3的IP地址192.168.0.3)。网络节点620-5还对分组612执行该流条目所指示的处理动作,即取出分组612的NSH报头,并且将分组612的报头中的目的地地址替换为下一跳的IP地址,然后根据流表的流水线处理而继续去参考流表56来处理分组612。FIG. 7M shows an example of the flow table 1 in the network node 620-5, that is, the flow table 752. The network node 620-5 matches the information extracted from the header of the packet 612 with the information in the matching field of the flow entry of the flow table 752, and determines that the flow entry indicating SPI135 and SI223 is included in the NSH header of the packet 612 Matches the information. Based on the matching flow entries, the network node 620-3 then determines the IP address of the next hop of the packet 611 (ie, the IP address of the host 650-3 192.168.0.3). The network node 620-5 also performs the processing action indicated by the flow entry on the packet 612, that is, takes out the NSH header of the packet 612, and replaces the destination address in the header of the packet 612 with the IP address of the next hop, and then, The pipeline processing of the table continues with reference to the flow table 56 to process the packet 612.
网络节点620-5的流表56被示出为图7N中的流表754。网络节点620-5将分组612的报头提取的信息与流表754的流条目中的匹配字段中指示的信息进行匹配,并且确定指示输入端口503和目的地IP地址192.168.0.3的流条目与分组612的报头中的信息相匹配。网络节点620-5因此可以基于该流条目来处理分组612。具体地,网络节点620-5将分组612经由输出端口504输出。主机650-3连接到。网络节点620-5的输出端口504,因此可以获得该分组612。The flow table 56 of the network node 620-5 is shown as the flow table 754 in FIG. 7N. The network node 620-5 matches the information extracted from the header of the packet 612 with the information indicated in the matching field in the flow entry of the flow table 754, and determines the flow entry and packet indicating the input port 503 and the destination IP address 192.168.0.3. The information in the header of 612 matches. The network node 620-5 may therefore process the packet 612 based on the flow entry. Specifically, the network node 620-5 outputs the packet 612 via the output port 504. Host 650-3 is connected to. The output port 504 of the network node 620-5, so the packet 612 can be obtained.
经过上述过,分组611和612在被传输到目的地主机之前,可以经由相应的SFC中的SF进行处理。根据本公开的实施例,这样的SFC可以在SDN网络中实现。After the above, before being transmitted to the destination host, the packets 611 and 612 can be processed via the SF in the corresponding SFC. According to an embodiment of the present disclosure, such an SFC can be implemented in an SDN network.
图8示出了根据本公开的一个实施例的用于通信的方法800的流程图。方法800可以在例如图2所示的SFC控制器210处。FIG. 8 shows a flowchart of a method 800 for communication according to an embodiment of the present disclosure. The method 800 may be, for example, at the SFC controller 210 shown in FIG. 2.
在框802,为分组创建业务功能链,业务功能链包括要用于处理分组的一组有序业务功能。在框804,将与业务功能链相关联的相应转发规则配置到软件定义网络中的多个网络节点。相应转发规则指示多个网络节点如何将分组转发到业务功能链中的一组有序业务功能。At block 802, a business function chain is created for a packet, the business function chain including an ordered set of business functions to be used to process the packet. At block 804, corresponding forwarding rules associated with the business function chain are configured to a plurality of network nodes in the software-defined network. Corresponding forwarding rules indicate how multiple network nodes forward packets to a set of ordered business functions in a business function chain.
在一些实施例中,将相应转发规则配置到多个网络节点包括以下之一:将相应转发规则直接传输给多个网络节点;或者经由软件定义网络中的软件定义网络控制器将相应转发规则提供给多个网络节点。In some embodiments, configuring the corresponding forwarding rule to multiple network nodes includes one of the following: directly transmitting the corresponding forwarding rule to multiple network nodes; or providing the corresponding forwarding rule via a software-defined network controller in a software-defined network To multiple network nodes.
在一些实施例中,将相应转发规则配置到多个网络节点包括:将第一流条目配置到第一网络节点的第一流表中,第一流条目至少指示匹配信息、分组的网络业务报头、要将分组转发到的一组有序业务功能中的第一业务功能以及要由第一网络节点对分组执行的第一处理动作,第一处理动作包括向分组插入网络业务报头和将分组的目的地地址替换为第一业务功能的地址中的至少一个。In some embodiments, configuring the corresponding forwarding rule to multiple network nodes includes: configuring a first flow entry in a first flow table of the first network node, where the first flow entry indicates at least matching information, a packet network service header, The first service function in the group of ordered service functions to which the packet is forwarded and the first processing action to be performed on the packet by the first network node, the first processing action includes inserting a network service header into the packet and a destination address of the packet Replace with at least one of the addresses of the first business function.
在一些实施例中,网络业务报头包括以下至少一项:业务功能链的标识符、分组中的有效载荷的协议类型以及上下文报头。In some embodiments, the network service header includes at least one of the following: an identifier of a service function chain, a protocol type of a payload in a packet, and a context header.
在一些实施例中,匹配信息包括以下至少一项:分组的源地址、分组的源端口号、分组的目的地地址、分组的目的地端口号、分组的协议类型、分组的输入端口、分组的应用类型以及分组的用户信息。In some embodiments, the matching information includes at least one of the following: the source address of the packet, the source port number of the packet, the destination address of the packet, the destination port number of the packet, the protocol type of the packet, the input port of the packet, the Application type and grouped user information.
在一些实施例中,将相应转发规则配置到多个网络节点包括:将第二流条目配置到第二网络节点的第二流表中,第二流条目至少指示业务功能链的标识符、要将分组转发到的一组有序业务功能中的第二业务功能以及要由第二网络节点对分组执行的第二处理动作,第二处理动作包括从分组移除网络业务报头和将分组的目的地地址替换为第二业务功能的地址中的至少一个。In some embodiments, configuring the corresponding forwarding rule to multiple network nodes includes: configuring a second flow entry into a second flow table of the second network node, where the second flow entry indicates at least an identifier of the service function chain, A second service function in a group of ordered service functions to which the packet is forwarded and a second processing action to be performed on the packet by the second network node, the second processing action includes removing the network service header from the packet and the purpose of the packet The local address is replaced with at least one of the addresses of the second service function.
在一些实施例中,创建业务功能链包括:向软件定义网络中的软件定义网络控制器发送对软件定义网络的网络拓扑信息的请求;从软件定义网络控制器接收网络拓扑信息;以及基于网络拓扑信息来生成业务功能链。In some embodiments, creating a business function chain includes: sending a request for software topology network topology information to a software-defined network controller in a software-defined network; receiving network topology information from the software-defined network controller; and based on the network topology Information to generate business function chains.
在一些实施例中,创建业务功能链包括:响应于从多个网络节点中的网络节点接收到分组没有相匹配的业务功能链从而不能被转发的指示,为分组创建业务功能链。In some embodiments, creating a business function chain includes: in response to receiving an indication from a network node of a plurality of network nodes that a packet has no matching business function chain and cannot be forwarded, creating a business function chain for the packet.
图9示出了根据本公开的一个实施例的用于通信的方法900的流程图。方法900可以在例如图2所示的网络节点220或图6所示的网络节点620-3、620-4或620-5处。FIG. 9 shows a flowchart of a method 900 for communication according to an embodiment of the present disclosure. The method 900 may be, for example, at the network node 220 shown in FIG. 2 or the network node 620-3, 620-4, or 620-5 shown in FIG.
在框902,从软件定义网络中的上游节点接收分组。在框904,从业务功能链控制器获得与分组的业务功能链相关联的转发规则。业务功能链包括要用于处理分组的一组有序业务功能,并且转发规则指示网络节点如何将分组转发到一组有序业务功能中的业务功能。在框906,基于转发规则,将分组转发到与一组有序业务功能中的业务功能通信耦合的下游节点。At block 902, a packet is received from an upstream node in a software-defined network. At block 904, a forwarding rule associated with the packetized business function chain is obtained from the business function chain controller. The business function chain includes an ordered set of business functions to be used to process packets, and the forwarding rules instruct the network node how to forward packets to business functions in a set of ordered business functions. At block 906, based on the forwarding rules, the packet is forwarded to a downstream node communicatively coupled with a business function in a set of ordered business functions.
在一些实施例中,获得转发规则包括以下之一:从业务功能链控制器直接接收转发规则;或者接收经由软件定义网络中的软件定义网络控制器从业务功能链控制器转发的转发规则。In some embodiments, obtaining a forwarding rule includes one of the following: directly receiving a forwarding rule from a business function chain controller; or receiving a forwarding rule forwarded from a business function chain controller via a software-defined network controller in a software-defined network.
在一些实施例中,转发规则包括第一流表中的第一流条目,第一流条目至少指示匹配信息、分组的网络业务报头、要将分组转发到的一组有序业务功能中的第一业务功能以及要由网络节点对分组执行的第一处理动作,第一处理动作包括向分组插入网络业务报头和将分组的目的地地址替换为第一业务功能的地址中的至少一个。转发分组包括:响应于确定分组的报头包括匹配信息,对分组执行第一处理动作;以及基于第一业务功能的地址,将分组转发到与第一业务功能通信耦合的下游节点。In some embodiments, the forwarding rule includes a first flow entry in a first flow table. The first flow entry indicates at least matching information, a network service header of the packet, and a first service function in a group of ordered service functions to which the packet is to be forwarded. And a first processing action to be performed on the packet by the network node, the first processing action includes at least one of inserting a network service header into the packet and replacing a destination address of the packet with an address of the first service function. Forwarding the packet includes: in response to determining that the header of the packet includes matching information, performing a first processing action on the packet; and forwarding the packet to a downstream node that is communicatively coupled with the first service function based on the address of the first service function.
在一些实施例中,网络业务报头包括以下至少一项:业务功能链的标识符、分组中的有效载荷的协议类型以及上下文报头。In some embodiments, the network service header includes at least one of the following: an identifier of a service function chain, a protocol type of a payload in a packet, and a context header.
在一些实施例中,匹配信息包括以下至少一项:分组的源地址、分组的目的地地址、分组的协议类型、分组的输入端口、分组的应用类型以及分组的用户信息。In some embodiments, the matching information includes at least one of: a source address of the packet, a destination address of the packet, a protocol type of the packet, an input port of the packet, an application type of the packet, and user information of the packet.
在一些实施例中,转发规则包括第二流表中的第二流条目,第二流条目至少指示业务功能链的标识符、要将分组转发到的一组有序业务功能中的第二业务功能以及要由网络节点对分组执行的第二处理动作,第二处理动作包括从分组移除网络业务报头和将分组的 目的地地址替换为第二业务功能的地址中的至少一个。转发分组包括:响应于确定分组的报头包括第二流条目的业务功能链的标识符,对分组执行第二处理动作,以及基于第二业务功能的地址,将分组转发到与第二业务功能通信耦合的下游节点。In some embodiments, the forwarding rule includes a second flow entry in a second flow table, the second flow entry indicating at least an identifier of a service function chain, a second service in a group of ordered service functions to which the packet is to be forwarded A function and a second processing action to be performed on the packet by the network node, the second processing action including at least one of removing a network service header from the packet and replacing a destination address of the packet with an address of the second service function. Forwarding the packet includes: in response to determining that the header of the packet includes the identifier of the business function chain of the second flow entry, performing a second processing action on the packet, and forwarding the packet to communicate with the second business function based on the address of the second business function Coupled downstream nodes.
在一些实施例中,获得转发规则包括:响应于在接收到分组时确定分组没有相匹配的业务功能链从而不能被转发,向业务功能链控制器提供分组不能由网络节点转发的指示;以及从业务功能链控制器获得转发规则。In some embodiments, obtaining a forwarding rule includes: in response to determining when a packet is received that the packet has no matching business function chain and cannot be forwarded, providing an indication to the business function chain controller that the packet cannot be forwarded by a network node; and from The business function chain controller obtains the forwarding rule.
图10示出了根据本公开的一个实施例的用于通信的方法1000的流程图。方法1000可以在例如图2所示的SDN控制器212处。FIG. 10 shows a flowchart of a method 1000 for communication according to an embodiment of the present disclosure. The method 1000 may be, for example, at the SDN controller 212 shown in FIG. 2.
在框1002,从业务功能链控制器接收与为分组创建的业务功能链相关联的相应转发规则。业务功能链包括要用于处理分组的一组有序业务功能,并且相应转发规则指示软件定义网络中的多个网络节点如何将分组转发到业务功能链中的一组有序业务功能。在框1004,将相应转发规则提供给多个网络节点。At block 1002, a corresponding forwarding rule associated with the business function chain created for the packet is received from the business function chain controller. The business function chain includes an ordered set of business functions to be used to process packets, and the corresponding forwarding rules instruct multiple network nodes in the software-defined network how to forward packets to an ordered set of business functions in the business function chain. At block 1004, the respective forwarding rules are provided to a plurality of network nodes.
在一些实施例中,方法1000还包括:从业务功能链控制器接收对软件定义网络的网络拓扑信息的请求;以及响应于请求,向业务功能链控制器提供网络拓扑信息。In some embodiments, the method 1000 further includes: receiving a request for network topology information of the software-defined network from the business function chain controller; and providing the network function information to the business function chain controller in response to the request.
在一些实施例中,方法1000还包括:从多个网络节点中的网络节点接收分组不能由网络节点转发的指示;以及将指示提供给业务功能链控制器。In some embodiments, the method 1000 further includes: receiving an indication from a network node of the plurality of network nodes that the packet cannot be forwarded by the network node; and providing the indication to the service function chain controller.
在一些实施例中,方法1000还包括:将业务功能链的路径映射到软件定义网络中的多协议标签交换路径,以用于分组在软件定义网络中的传输。In some embodiments, the method 1000 further includes: mapping a path of the service function chain to a multi-protocol label switching path in the software-defined network for transmission of packets in the software-defined network.
在一些实施例中,在分组被插入网络业务报头时,在多协议标签交换路径的标签中指示对分组的网络业务报头的存在。In some embodiments, when a packet is inserted into a network service header, the presence of a network service header for the packet is indicated in a label of the multi-protocol label switching path.
本公开的一些实施例还提供了一种通信装置。该通信装置包括:用于为分组创建业务功能链的部件,业务功能链包括要用于处理分组的一组有序业务功能;以及用于将与业务功能链相关联的相应转 发规则配置到软件定义网络中的多个网络节点的部件,相应转发规则指示多个网络节点如何将分组转发到业务功能链中的一组有序业务功能。Some embodiments of the present disclosure also provide a communication device. The communication device includes: a component for creating a business function chain for a packet, the business function chain including an ordered set of business functions to be used to process the packet; and a corresponding forwarding rule associated with the business function chain to configure to software A component that defines multiple network nodes in a network, and the corresponding forwarding rules instruct multiple network nodes how to forward packets to a group of ordered business functions in a business function chain.
在一些实施例中,该通信装置可以包括业务功能链控制器。In some embodiments, the communication device may include a service function chain controller.
在一些实施例中,用于将相应转发规则配置到多个网络节点的部件包括以下之一:用于将相应转发规则直接传输给多个网络节点的部件;或者用于经由软件定义网络中的软件定义网络控制器将相应转发规则提供给多个网络节点的部件。In some embodiments, the means for configuring a corresponding forwarding rule to a plurality of network nodes includes one of the following: a means for directly transmitting a corresponding forwarding rule to a plurality of network nodes; or for via a software-defined network The software-defined network controller provides the corresponding forwarding rules to the components of multiple network nodes.
在一些实施例中,用于将相应转发规则配置到多个网络节点的部件包括:用于将第一流条目配置到第一网络节点的第一流表中的部件,第一流条目至少指示匹配信息、分组的网络业务报头、要将分组转发到的一组有序业务功能中的第一业务功能以及要由第一网络节点对分组执行的第一处理动作,第一处理动作包括向分组插入网络业务报头和将分组的目的地地址替换为第一业务功能的地址中的至少一个。In some embodiments, the means for configuring the corresponding forwarding rule to multiple network nodes includes: means for configuring a first flow entry in a first flow table of the first network node, where the first flow entry indicates at least matching information, A packet network service header, a first service function in a group of ordered service functions to which the packet is to be forwarded, and a first processing action to be performed by the first network node on the packet. The first processing action includes inserting a network service into the packet. At least one of a header and a destination address of the packet is replaced with an address of the first service function.
在一些实施例中,网络业务报头包括以下至少一项:业务功能链的标识符、分组中的有效载荷的协议类型以及上下文报头。In some embodiments, the network service header includes at least one of the following: an identifier of a service function chain, a protocol type of a payload in a packet, and a context header.
在一些实施例中,匹配信息包括以下至少一项:分组的源地址、分组的目的地地址、分组的协议类型、分组的输入端口、分组的应用类型以及分组的用户信息。In some embodiments, the matching information includes at least one of: a source address of the packet, a destination address of the packet, a protocol type of the packet, an input port of the packet, an application type of the packet, and user information of the packet.
在一些实施例中,用于将相应转发规则配置到多个网络节点的部件包括:用于将第二流条目配置到第二网络节点的第二流表中的部件,第二流条目至少指示业务功能链的标识符、要将分组转发到的一组有序业务功能中的第二业务功能以及要由第二网络节点对分组执行的第二处理动作,第二处理动作包括从分组移除网络业务报头和将分组的目的地地址替换为第二业务功能的地址中的至少一个。In some embodiments, the means for configuring a corresponding forwarding rule to a plurality of network nodes includes: means for configuring a second flow entry in a second flow table of the second network node, the second flow entry indicating at least The identifier of the service function chain, the second service function in the group of ordered service functions to which the packet is to be forwarded, and the second processing action to be performed on the packet by the second network node, the second processing action includes removing from the packet At least one of a network service header and a destination address of the packet is replaced with an address of the second service function.
在一些实施例中,用于创建业务功能链的部件包括:用于向软件定义网络中的软件定义网络控制器发送对软件定义网络的网络拓 扑信息的请求的部件;用于从软件定义网络控制器接收网络拓扑信息的部件;以及用于基于网络拓扑信息来生成业务功能链的部件。In some embodiments, the means for creating a business function chain includes: means for sending a request for a software-defined network's network topology information to a software-defined network controller in a software-defined network; and for controlling from a software-defined network A component for receiving network topology information; and a component for generating a business function chain based on the network topology information.
在一些实施例中,用于创建业务功能链的部件包括:用于响应于从多个网络节点中的网络节点接收到分组没有相匹配的业务功能链从而不能被转发的指示来为分组创建业务功能链的部件。In some embodiments, the means for creating a business function chain includes: creating a service for a packet in response to receiving an indication from a network node of a plurality of network nodes that the packet has no matching business function chain and cannot be forwarded Functional chain components.
本公开的另一些实施例还提供了一种通信装置。该通信装置包括:用于从软件定义网络中的上游节点接收分组的部件,用于从业务功能链控制器获得与分组的业务功能链相关联的相应转发规则的部件,业务功能链包括要用于处理分组的一组有序业务功能,并且相应转发规则指示网络节点如何将分组转发到一组有序业务功能中的业务功能;以及用于基于相应转发规则来将分组转发到与一组有序业务功能中的业务功能通信耦合的下游节点的部件。Other embodiments of the present disclosure also provide a communication device. The communication device includes: a component for receiving a packet from an upstream node in a software-defined network; and a component for obtaining a corresponding forwarding rule associated with a packetized business function chain from a business function chain controller. An ordered set of business functions for processing packets, and the corresponding forwarding rules instruct the network node how to forward packets to a set of ordered business functions; and for forwarding packets to a group of The components of the downstream node in which the business functions are communicatively coupled in the order business functions.
在一些实施例中,通信装置包括软件定义网络中的网络节点。In some embodiments, the communication device includes a network node in a software-defined network.
在一些实施例中,用于获得相应转发规则的部件包括以下之一:用于从业务功能链控制器直接接收相应转发规则的部件;或者用于接收经由软件定义网络中的软件定义网络控制器从业务功能链控制器转发的相应转发规则的部件。In some embodiments, the means for obtaining the corresponding forwarding rule includes one of the following: means for directly receiving the corresponding forwarding rule from the business function chain controller; or for receiving a software-defined network controller in a software-defined network Parts of the corresponding forwarding rule forwarded from the business function chain controller.
在一些实施例中,相应转发规则包括第一流表中的第一流条目,第一流条目至少指示匹配信息、分组的网络业务报头、要将分组转发到的一组有序业务功能中的第一业务功能以及要由第一网络节点对分组执行的第一处理动作,第一处理动作包括向分组插入网络业务报头和将分组的目的地地址替换为第一业务功能的地址中的至少一个。在一些实现中,用于转发分组的部件包括:用于响应于确定分组的报头包括匹配信息,对分组执行第一处理动作的部件;以及应用基于第一业务功能的地址来将分组转发到与第一业务功能通信耦合的下游节点的部件。In some embodiments, the corresponding forwarding rule includes a first flow entry in a first flow table, the first flow entry indicating at least matching information, a network service header of the packet, and a first service in a group of ordered service functions to which the packet is to be forwarded A function and a first processing action to be performed on the packet by the first network node, the first processing action including at least one of inserting a network service header into the packet and replacing a destination address of the packet with an address of the first service function. In some implementations, the means for forwarding a packet includes: means for performing a first processing action on the packet in response to determining that a header of the packet includes matching information; and applying the address based on the first service function to forward the packet to the The first service function is a component of a downstream node communicatively coupled.
在一些实施例中,网络业务报头包括以下至少一项:业务功能链的标识符、分组中的有效载荷的协议类型以及上下文报头。In some embodiments, the network service header includes at least one of the following: an identifier of a service function chain, a protocol type of a payload in a packet, and a context header.
在一些实施例中,匹配信息包括以下至少一项:分组的源地址、 分组的目的地地址、分组的协议类型、分组的输入端口、分组的应用类型以及分组的用户信息。In some embodiments, the matching information includes at least one of: a source address of the packet, a destination address of the packet, a protocol type of the packet, an input port of the packet, an application type of the packet, and user information of the packet.
在一些实施例中,相应转发规则包括第二流表中的第二流条目,第二流条目至少指示业务功能链的标识符、要将分组转发到的一组有序业务功能中的第二业务功能以及要由第二网络节点对分组执行的第二处理动作,第二处理动作包括从分组移除网络业务报头和将分组的目的地地址替换为第二业务功能的地址中的至少一个。在一些实施例中,用于转发分组的部件包括:用于响应于确定分组的报头包括第二流条目的业务功能链的标识符而对分组执行第二处理动作的部件,以及用于基于第二业务功能的地址来将分组转发到与第二业务功能通信耦合的下游节点的部件。In some embodiments, the corresponding forwarding rule includes a second flow entry in a second flow table, the second flow entry indicating at least an identifier of a business function chain, a second in a group of ordered business functions to which the packet is to be forwarded A service function and a second processing action to be performed on the packet by the second network node, the second processing action including at least one of removing a network service header from the packet and replacing a destination address of the packet with an address of the second service function. In some embodiments, the means for forwarding a packet includes means for performing a second processing action on the packet in response to determining that a header of the packet includes an identifier of a service function chain of a second flow entry, and for The address of the second service function is used to forward the packet to a component of a downstream node that is communicatively coupled with the second service function.
在一些实施例中,用于获得相应转发规则的部件包括:用于响应于在接收到分组时确定分组没有相匹配的业务功能链从而不能被转发向业务功能链控制器提供分组不能由网络节点转发的指示的部件;以及用于从业务功能链控制器获得相应转发规则的部件。In some embodiments, the means for obtaining a corresponding forwarding rule includes: in response to determining when a packet is received that the packet does not have a matching business function chain and cannot be forwarded to the business function chain controller; providing the packet cannot be provided by a network node Means for forwarding instructions; and means for obtaining corresponding forwarding rules from the business function chain controller.
本公开的另一些实施例还提供了一种通信装置。该通信装置包括:用于从业务功能链控制器接收与为分组创建的业务功能链相关联的相应转发规则的部件,业务功能链包括要用于处理分组的一组有序业务功能,并且相应转发规则指示软件定义网络中的多个网络节点如何将分组转发到业务功能链中的一组有序业务功能;以及用于将相应转发规则提供给多个网络节点的部件。Other embodiments of the present disclosure also provide a communication device. The communication device includes means for receiving a corresponding forwarding rule associated with a business function chain created for a packet from a business function chain controller, the business function chain including an ordered set of business functions to be used to process the packet, and correspondingly Forwarding rules instruct multiple network nodes in a software-defined network how to forward packets to a set of ordered business functions in a business function chain; and means for providing corresponding forwarding rules to multiple network nodes.
在一些实施例中,通信装置包括软件定义网络控制器。In some embodiments, the communication device includes a software-defined network controller.
在一些实施例中,通信装置还包括:用于从业务功能链控制器接收对软件定义网络的网络拓扑信息的请求的部件;以及用于响应于请求,向业务功能链控制器提供网络拓扑信息的部件。In some embodiments, the communication device further comprises: means for receiving a request for network topology information of the software-defined network from the service function chain controller; and providing network topology information to the service function chain controller in response to the request Of parts.
在一些实施例中,通信装置还包括:用于从多个网络节点中的网络节点接收分组不能由网络节点转发的指示的部件;以及用于将指示提供给业务功能链控制器的部件。In some embodiments, the communication device further comprises: means for receiving an indication from a network node of the plurality of network nodes that the packet cannot be forwarded by the network node; and means for providing the indication to the service function chain controller.
在一些实施例中,通信装置还包括:用于将业务功能链的路径 映射到软件定义网络中的多协议标签交换路径的部件,以用于分组在软件定义网络中的传输。In some embodiments, the communication device further comprises: means for mapping a path of the service function chain to a multi-protocol label switching path in the software-defined network for transmission of packets in the software-defined network.
在一些实施例中,在分组被插入网络业务报头时,在多协议标签交换路径的标签中指示对分组的网络业务报头的存在。In some embodiments, when a packet is inserted into a network service header, the presence of a network service header for the packet is indicated in a label of the multi-protocol label switching path.
图11示出了可以用来实施本公开的实施例的示例设备1300的示意性框图。如图所示,设备1100包括中央处理单元(CPU)1101,其可以根据存储在只读存储器(ROM)1102中的计算机程序指令或者从存储单元1108加载到随机访问存储器(RAM)1103中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1103中,还可存储设备1100操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。FIG. 11 illustrates a schematic block diagram of an example device 1300 that can be used to implement embodiments of the present disclosure. As shown, the device 1100 includes a central processing unit (CPU) 1101, which can be loaded into a computer in a random access memory (RAM) 1103 according to computer program instructions stored in a read only memory (ROM) 1102 or from the storage unit 1108 Program instructions to perform various appropriate actions and processes. In the RAM 1103, various programs and data required for the operation of the device 1100 can also be stored. The CPU 1101, the ROM 1102, and the RAM 1103 are connected to each other through a bus 1104. An input / output (I / O) interface 1105 is also connected to the bus 1104.
设备1100中的多个部件连接至I/O接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如存储盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。Multiple components in the device 1100 are connected to the I / O interface 1105, including: an input unit 1106, such as a keyboard, a mouse, etc .; an output unit 1107, such as various types of displays, speakers, etc .; a storage unit 1108, such as a storage disk, an optical disc Etc .; and a communication unit 1109, such as a network card, a modem, a wireless communication transceiver, and the like. The communication unit 1109 allows the device 1100 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
上文所描述的各个过程和处理,例如方法800、方法900和/或1000,可由处理单元1101执行。例如,在一些实施例中,方法800、方法900和/或1000可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1102和/或通信单元1109而被载入和/或安装到设备1100上。当计算机程序被加载到RAM 1103并由CPU 1101执行时,可以执行上文描述的方法800、方法900和/或1000的一个或多个动作。The various processes and processes described above, such as method 800, method 900, and / or 1000, may be performed by the processing unit 1101. For example, in some embodiments, method 800, method 900, and / or 1000 may be implemented as a computer software program that is tangibly embodied on a machine-readable medium, such as storage unit 1108. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 1100 via the ROM 1102 and / or the communication unit 1109. When the computer program is loaded into the RAM 1103 and executed by the CPU 1101, one or more actions of the method 800, method 900, and / or 1000 described above may be performed.
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。The present disclosure may be a method, an apparatus, a system, and / or a computer program product. The computer program product may include a computer-readable storage medium on which computer-readable program instructions for performing various aspects of the present disclosure are uploaded.
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。The computer-readable storage medium may be a tangible device that can hold and store instructions used by the instruction execution device. The computer-readable storage medium may be, for example, but not limited to, an electric storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM) Or flash memory), static random access memory (SRAM), portable compact disc read only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanical encoding device, such as a printer with instructions stored thereon A protruding structure in the hole card or groove, and any suitable combination of the above. Computer-readable storage media used herein are not to be interpreted as transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (for example, light pulses through fiber optic cables), or via electrical wires Electrical signal transmitted.
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to various computing / processing devices, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in each computing / processing device .
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言-诸如Smalltalk、C++等,以及常规的过程式编程语言-诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计 算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网业务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。Computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or in one or more programming languages. Source code or object code written in any combination. The programming languages include object-oriented programming languages such as Smalltalk, C ++, and the like, as well as conventional procedural programming languages such as the "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer, partly on a remote computer, or entirely on a remote computer or server carried out. In the case of a remote computer, the remote computer can be connected to the user's computer through any kind of network, including a local area network (LAN) or wide area network (WAN), or it can be connected to an external computer (such as through the Internet using an Internet service provider) connection). In some embodiments, electronic circuits such as programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) are personalized by using state information of computer-readable program instructions. The electronic circuits may Computer-readable program instructions are executed to implement various aspects of the present disclosure.
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, devices (systems) and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, special purpose computer, or other programmable data processing device, thereby producing a machine such that, when executed by a processing unit of a computer or other programmable data processing device , Means for implementing the functions / actions specified in one or more blocks in the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored in a computer-readable storage medium, and these instructions cause a computer, a programmable data processing apparatus, and / or other devices to work in a specific manner. Thus, a computer-readable medium storing instructions includes: An article of manufacture that includes instructions to implement various aspects of the functions / acts specified in one or more blocks in the flowcharts and / or block diagrams.
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。Computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other device, so that a series of operating steps can be performed on the computer, other programmable data processing device, or other device to produce a computer-implemented process , So that the instructions executed on the computer, other programmable data processing apparatus, or other equipment can implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。 在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a program segment, or a part of an instruction that contains one or more components for implementing a specified logical function. Executable instructions. In some alternative implementations, the functions marked in the blocks may also occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented in a dedicated hardware-based system that performs the specified function or action. , Or it can be implemented with a combination of dedicated hardware and computer instructions.
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。The embodiments of the present disclosure have been described above, the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the various embodiments described. The terminology used herein is chosen to best explain the principles of the embodiments, practical applications or technical improvements to technologies in the market, or to enable other ordinary skilled persons in the art to understand the embodiments disclosed herein.

Claims (26)

  1. 一种在业务功能链控制器处实现的方法,包括:A method implemented at a business function chain controller includes:
    为分组创建业务功能链,所述业务功能链包括要用于处理所述分组的一组有序业务功能;以及Creating a business function chain for a group, the business function chain including an ordered set of business functions to be used to process the group; and
    将与所述业务功能链相关联的相应转发规则直接或间接配置到软件定义网络中的多个网络节点,所述相应转发规则指示多个网络节点如何将所述分组转发到所述业务功能链中的所述一组有序业务功能。Directly or indirectly configure a corresponding forwarding rule associated with the business function chain to multiple network nodes in a software-defined network, and the corresponding forwarding rule instructs multiple network nodes how to forward the packet to the business function chain The set of ordered business functions in.
  2. 根据权利要求1所述的方法,其中将所述相应转发规则直接或间接配置到所述多个网络节点包括以下之一:The method according to claim 1, wherein directly or indirectly configuring the corresponding forwarding rule to the plurality of network nodes comprises one of the following:
    将所述相应转发规则直接传输给所述多个网络节点;或者Directly transmitting the corresponding forwarding rules to the multiple network nodes; or
    经由所述软件定义网络中的软件定义网络控制器将所述相应转发规则提供给所述多个网络节点。The corresponding forwarding rules are provided to the plurality of network nodes via a software-defined network controller in the software-defined network.
  3. 根据权利要求1所述的方法,其中将所述相应转发规则直接或间接配置到所述多个网络节点包括:The method according to claim 1, wherein directly or indirectly configuring the corresponding forwarding rule to the plurality of network nodes comprises:
    将第一流条目直接或间接配置到第一网络节点的第一流表中,所述第一流条目至少指示匹配信息、所述分组的网络业务报头、要将所述分组转发到的所述一组有序业务功能中的第一业务功能以及要由所述第一网络节点对所述分组执行的第一处理动作,所述第一处理动作包括向所述分组插入所述网络业务报头和将所述分组的目的地地址替换为所述第一业务功能的地址中的至少一个。A first flow entry is directly or indirectly configured in a first flow table of a first network node, and the first flow entry indicates at least matching information, a network service header of the packet, and a group to which the packet is to be forwarded. A first service function in the sequence service function and a first processing action to be performed on the packet by the first network node, the first processing action includes inserting the network service header into the packet and inserting the network service header into the packet The destination address of the packet is replaced with at least one of the addresses of the first service function.
  4. 根据权利要求3所述的方法,其中所述网络业务报头包括以下至少一项:所述业务功能链的标识符、所述分组中的有效载荷的协议类型以及上下文报头。The method according to claim 3, wherein the network service header comprises at least one of: an identifier of the service function chain, a protocol type of a payload in the packet, and a context header.
  5. 根据权利要求3所述的方法,其中所述匹配信息包括以下至少一项:所述分组的源地址、所述分组的源端口号、所述分组的目的地地址、所述分组的目的地端口号、所述分组的协议类型、所述分组的输入端口、所述分组的应用类型以及所述分组的用户信息。The method according to claim 3, wherein the matching information includes at least one of: a source address of the packet, a source port number of the packet, a destination address of the packet, and a destination port of the packet Number, protocol type of the packet, input port of the packet, application type of the packet, and user information of the packet.
  6. 根据权利要求1所述的方法,其中将所述相应转发规则直接或间接配置到所述多个网络节点包括:The method according to claim 1, wherein directly or indirectly configuring the corresponding forwarding rule to the plurality of network nodes comprises:
    将第二流条目直接或间接配置到第二网络节点的第二流表中,所述第二流条目至少指示所述业务功能链的标识符、要将所述分组转发到的所述一组有序业务功能中的第二业务功能以及要由所述第二网络节点对所述分组执行的第二处理动作,所述第二处理动作包括从所述分组移除网络业务报头和将所述分组的目的地地址替换为所述第二业务功能的地址中的至少一个。Directly or indirectly configuring a second flow entry into a second flow table of a second network node, the second flow entry indicating at least an identifier of the service function chain, the group to which the packet is to be forwarded A second service function in the ordered service function and a second processing action to be performed on the packet by the second network node, the second processing action including removing a network service header from the packet and The destination address of the packet is replaced with at least one of the addresses of the second service function.
  7. 根据权利要求1所述的方法,其中创建所述业务功能链包括:The method of claim 1, wherein creating the business function chain comprises:
    向所述软件定义网络中的软件定义网络控制器发送对所述软件定义网络的拓扑信息的请求;Sending a request for topology information of the software-defined network to a software-defined network controller in the software-defined network;
    从所述软件定义网络控制器接收所述网络拓扑信息;以及Receiving the network topology information from the software-defined network controller; and
    基于所述网络拓扑信息来生成所述业务功能链。The service function chain is generated based on the network topology information.
  8. 根据权利要求1所述的方法,其中创建所述业务功能链包括:The method of claim 1, wherein creating the business function chain comprises:
    响应于从所述多个网络节点中的网络节点接收到所述分组没有相匹配的业务功能链从而不能被转发的指示,为所述分组创建所述业务功能链。In response to receiving an indication from a network node of the plurality of network nodes that the packet has no matching business function chain and cannot be forwarded, the business function chain is created for the packet.
  9. 一种在软件定义网络中的网络节点处实现的方法,包括:A method implemented at a network node in a software-defined network includes:
    从所述软件定义网络中的上游节点接收分组;Receiving a packet from an upstream node in the software-defined network;
    从业务功能链控制器获得与所述分组的业务功能链相关联的转发规则,所述业务功能链包括要用于处理所述分组的一组有序业务功能,并且所述转发规则指示所述网络节点如何将所述分组转发到所述一组有序业务功能中的业务功能;以及Obtaining a forwarding rule associated with a business function chain of the packet from a business function chain controller, the business function chain including an ordered set of business functions to be used to process the packet, and the forwarding rule indicates that How the network node forwards the packet to a business function in the set of ordered business functions; and
    基于所述转发规则,将所述分组转发到与所述一组有序业务功能中的业务功能通信耦合的下游节点。Based on the forwarding rule, the packet is forwarded to a downstream node communicatively coupled with a business function in the set of ordered business functions.
  10. 根据权利要求9所述的方法,其中获得所述转发规则包括以下之一:The method according to claim 9, wherein obtaining the forwarding rule comprises one of the following:
    从所述业务功能链控制器直接接收所述转发规则;或者Receiving the forwarding rule directly from the service function chain controller; or
    接收经由所述软件定义网络中的软件定义网络控制器从所述业 务功能链控制器转发的所述转发规则。Receiving the forwarding rule forwarded from the service function chain controller via a software-defined network controller in the software-defined network.
  11. 根据权利要求9所述的方法,其中所述转发规则包括第一流表中的第一流条目,所述第一流条目至少指示匹配信息、所述分组的网络业务报头、要将所述分组转发到的所述一组有序业务功能中的第一业务功能以及要由所述网络节点对所述分组执行的第一处理动作,所述第一处理动作包括向所述分组插入所述网络业务报头和将所述分组的目的地地址替换为所述第一业务功能的地址中的至少一个;并且The method according to claim 9, wherein the forwarding rule comprises a first flow entry in a first flow table, the first flow entry indicating at least matching information, a network service header of the packet, and a packet to which the packet is to be forwarded. A first service function in the set of ordered service functions and a first processing action to be performed by the network node on the packet, the first processing action including inserting the network service header and Replacing the destination address of the packet with at least one of the addresses of the first service function; and
    其中转发所述分组包括:Wherein forwarding the packet includes:
    响应于确定所述分组的报头包括所述匹配信息,对所述分组执行所述第一处理动作;以及Performing the first processing action on the packet in response to determining that a header of the packet includes the matching information; and
    基于所述第一业务功能的地址,将所述分组转发到与所述第一业务功能通信耦合的所述下游节点。Based on the address of the first service function, forwarding the packet to the downstream node communicatively coupled to the first service function.
  12. 根据权利要求11所述的方法,其中所述网络业务报头包括以下至少一项:所述业务功能链的标识符、所述分组中的有效载荷的协议类型以及上下文报头。The method according to claim 11, wherein the network service header comprises at least one of: an identifier of the service function chain, a protocol type of a payload in the packet, and a context header.
  13. 根据权利要求11所述的方法,其中所述匹配信息包括以下至少一项:所述分组的源地址、所述分组的源端口、所述分组的目的地地址、所述分组的目的地端口、所述分组的协议类型、所述分组的输入端口、所述分组的应用类型以及所述分组的用户信息。The method according to claim 11, wherein the matching information includes at least one of: a source address of the packet, a source port of the packet, a destination address of the packet, a destination port of the packet, The protocol type of the packet, the input port of the packet, the application type of the packet, and the user information of the packet.
  14. 根据权利要求9所述的方法,其中所述转发规则包括第二流表中的第二流条目,所述第二流条目至少指示所述业务功能链的标识符、要将所述分组转发到的所述一组有序业务功能中的第二业务功能以及要由所述网络节点对所述分组执行的第二处理动作,所述第二处理动作包括从所述分组移除网络业务报头和将所述分组的目的地地址替换为所述第二业务功能的地址中的至少一个;并且The method according to claim 9, wherein the forwarding rule includes a second flow entry in a second flow table, the second flow entry at least indicating an identifier of the service function chain, and the packet is to be forwarded to A second service function in the set of ordered service functions and a second processing action to be performed on the packet by the network node, the second processing action includes removing a network service header from the packet and Replacing the destination address of the packet with at least one of the addresses of the second service function; and
    其中转发所述分组包括:Wherein forwarding the packet includes:
    响应于确定所述分组的报头包括所述第二流条目的所述业务功能链的标识符,对所述分组执行所述第二处理动作,以及Performing the second processing action on the packet in response to determining that a header of the packet includes the identifier of the business function chain of the second flow entry, and
    基于所述第二业务功能的地址,将所述分组转发到与所述第二业务功能通信耦合的所述下游节点。Based on the address of the second service function, forwarding the packet to the downstream node communicatively coupled with the second service function.
  15. 根据权利要求9所述的方法,其中获得所述转发规则包括:The method according to claim 9, wherein obtaining the forwarding rule comprises:
    响应于在接收到所述分组时确定所述分组没有相匹配的业务功能链从而不能被转发,向所述业务功能链控制器提供所述分组不能由所述网络节点转发的指示;以及In response to determining, when the packet is received, that the packet has no matching business function chain and cannot be forwarded, providing the business function chain controller with an indication that the packet cannot be forwarded by the network node; and
    从所述业务功能链控制器获得所述转发规则。Obtaining the forwarding rule from the service function chain controller.
  16. 一种在软件定义网络控制器处实现的方法,包括:A method implemented at a software-defined network controller includes:
    从业务功能链控制器接收与为分组创建的业务功能链相关联的相应转发规则,所述业务功能链包括要用于处理所述分组的一组有序业务功能,并且所述相应转发规则指示软件定义网络中的多个网络节点如何将所述分组转发到所述业务功能链中的所述一组有序业务功能;以及Receiving a corresponding forwarding rule associated with a business function chain created for a packet from a business function chain controller, the business function chain including an ordered set of business functions to be used to process the packet, and the corresponding forwarding rule indicates How a plurality of network nodes in a software-defined network forward the packet to the set of ordered business functions in the business function chain; and
    将所述相应转发规则提供给所述多个网络节点。The corresponding forwarding rules are provided to the plurality of network nodes.
  17. 根据权利要求16所述的方法,还包括:The method according to claim 16, further comprising:
    从所述业务功能链控制器接收对所述软件定义网络的网络拓扑信息的请求;以及Receiving a request for network topology information of the software-defined network from the service function chain controller; and
    响应于所述请求,向所述业务功能链控制器提供所述网络拓扑信息。In response to the request, the network function information is provided to the service function chain controller.
  18. 根据权利要求16所述的方法,还包括:The method according to claim 16, further comprising:
    从所述多个网络节点中的网络节点接收所述分组不能由所述网络节点转发的指示;以及Receiving an indication from a network node of the plurality of network nodes that the packet cannot be forwarded by the network node; and
    将所述指示提供给所述业务功能链控制器。Providing the indication to the service function chain controller.
  19. 根据权利要求16所述的方法,还包括:The method according to claim 16, further comprising:
    将所述业务功能链的路径映射到所述软件定义网络中的多协议标签交换路径,以用于所述分组在所述软件定义网络中的传输。And mapping a path of the service function chain to a multi-protocol label switching path in the software-defined network for transmission of the packet in the software-defined network.
  20. 根据权利要求19所述的方法,其中在所述分组被插入网络业务报头时,在所述多协议标签交换路径的标签中指示对所述分组的所述网络业务报头的存在。The method according to claim 19, wherein when the packet is inserted into a network service header, the presence of the network service header for the packet is indicated in a label of the multi-protocol label switching path.
  21. 一种通信设备,包括:A communication device includes:
    处理器;以及Processor; and
    存储器,所述存储器存储有指令,所述指令在被所述处理器执行时使所述设备执行根据权利要求1-8中任一项所述的方法。A memory, which stores instructions that, when executed by the processor, cause the device to perform the method according to any one of claims 1-8.
  22. 一种通信设备,包括:A communication device includes:
    处理器;以及Processor; and
    存储器,所述存储器存储有指令,所述指令在被所述处理器执行时使所述设备执行根据权利要求9-15中任一项所述的方法。A memory that stores instructions that, when executed by the processor, cause the device to perform the method according to any one of claims 9-15.
  23. 一种通信设备,包括:A communication device includes:
    处理器;以及Processor; and
    存储器,所述存储器存储有指令,所述指令在被所述处理器执行时使所述设备执行根据权利要求16-20中任一项所述的方法。A memory that stores instructions that, when executed by the processor, cause the device to perform the method according to any one of claims 16-20.
  24. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1-8中任一项所述的方法。A computer-readable storage medium having stored thereon a computer program that, when executed by a processor, implements the method according to any one of claims 1-8.
  25. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求9-15中任一项所述的方法。A computer-readable storage medium having stored thereon a computer program that, when executed by a processor, implements the method according to any one of claims 9-15.
  26. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求16-20中任一项所述的方法。A computer-readable storage medium having stored thereon a computer program that, when executed by a processor, implements the method according to any one of claims 16-20.
PCT/CN2018/095336 2018-07-11 2018-07-11 Implementation of service function chain on basis of software-defined network WO2020010557A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/CN2018/095336 WO2020010557A1 (en) 2018-07-11 2018-07-11 Implementation of service function chain on basis of software-defined network
CN201880095531.XA CN112385185B (en) 2018-07-11 2018-07-11 Realization of service function chain based on software defined network
US17/259,493 US11616718B2 (en) 2018-07-11 2018-07-11 Implementation of service function chain on basis of software-defined network
EP18925914.6A EP3823222A4 (en) 2018-07-11 2018-07-11 Implementation of service function chain on basis of software-defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/095336 WO2020010557A1 (en) 2018-07-11 2018-07-11 Implementation of service function chain on basis of software-defined network

Publications (1)

Publication Number Publication Date
WO2020010557A1 true WO2020010557A1 (en) 2020-01-16

Family

ID=69142136

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/095336 WO2020010557A1 (en) 2018-07-11 2018-07-11 Implementation of service function chain on basis of software-defined network

Country Status (4)

Country Link
US (1) US11616718B2 (en)
EP (1) EP3823222A4 (en)
CN (1) CN112385185B (en)
WO (1) WO2020010557A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112838974A (en) * 2020-12-29 2021-05-25 新华三技术有限公司 Service chain drainage system and method
EP4142233A4 (en) * 2020-06-04 2023-09-20 Huawei Technologies Co., Ltd. Packet forwarding method and apparatus, and device and storage medium

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10979347B2 (en) * 2018-10-27 2021-04-13 Cisco Technology, Inc. Software version aware networking
JP7293728B2 (en) * 2019-03-01 2023-06-20 日本電気株式会社 Packet encapsulation method and packet encapsulation device
US11470009B2 (en) * 2019-10-18 2022-10-11 Arista Networks, Inc. Implementing multi-table OpenFlow using a parallel hardware table lookup architecture
US11677614B2 (en) * 2020-08-20 2023-06-13 Huawei Technologies Co., Ltd. Method and apparatus for protecting stateful service function paths
CN114584376B (en) * 2022-03-04 2024-04-26 中电科网络空间安全研究院有限公司 Traffic handling method, device, equipment and computer readable storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106130894A (en) * 2016-06-03 2016-11-16 上海华为技术有限公司 The creation method of a kind of business function chain and system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9942099B2 (en) * 2013-11-13 2018-04-10 Futurewei Technologies, Inc. Methodology and apparatus for topology discovery and mapping of chained network services
US9654395B2 (en) * 2014-03-31 2017-05-16 Kulcloud SDN-based service chaining system
CN105450552B (en) 2014-07-02 2018-12-14 阿尔卡特朗讯 Based on SDN network to the strategy and billing control method and equipment of application service chaining
US10122622B2 (en) * 2015-05-29 2018-11-06 Futurewei Technologies, Inc. Exchanging application metadata for application context aware service insertion in service function chain
US10158565B2 (en) * 2016-08-26 2018-12-18 Cisco Technology, Inc. Network services across non-contiguous subnets of a label switched network separated by a non-label switched network
EP3504848B1 (en) 2016-08-26 2020-06-10 Telefonaktiebolaget LM Ericsson (PUBL) Improving service function chain, sfc, proxy performance in software defined networking, sdn, networks
WO2018051172A1 (en) 2016-09-19 2018-03-22 Telefonaktiebolaget Lm Ericsson (Publ) Service function classifier bypass in software defined networking (sdn) networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106130894A (en) * 2016-06-03 2016-11-16 上海华为技术有限公司 The creation method of a kind of business function chain and system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"L4-L7 Service Function Chaining Solution Architecture", OPEN NETWORKING FOUNDATION, 14 June 2015 (2015-06-14), XP055330385 *
IETF: "Security guideline of Service function Chain based on software defined network", IETF DRAFT RECOMMENDATION X. SDNSEC-3., 15 September 2017 (2017-09-15), XP055680659 *
R.GU. ET AL.: "Service Function Chain Extension Architecture", IETF SFC DRAFT-GU-SFC-EXTEND-ARCHITECTURE-OO, 8 March 2015 (2015-03-08), XP015105284 *
See also references of EP3823222A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4142233A4 (en) * 2020-06-04 2023-09-20 Huawei Technologies Co., Ltd. Packet forwarding method and apparatus, and device and storage medium
CN112838974A (en) * 2020-12-29 2021-05-25 新华三技术有限公司 Service chain drainage system and method
CN112838974B (en) * 2020-12-29 2022-07-12 新华三技术有限公司 Service chain drainage system and method

Also Published As

Publication number Publication date
CN112385185B (en) 2022-11-29
EP3823222A4 (en) 2022-06-08
CN112385185A (en) 2021-02-19
EP3823222A1 (en) 2021-05-19
US11616718B2 (en) 2023-03-28
US20210273883A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
WO2020010557A1 (en) Implementation of service function chain on basis of software-defined network
US10367736B2 (en) Extended tag networking
EP3677000B1 (en) Method and system for tracing packets in software defined networks
US10320664B2 (en) Cloud overlay for operations administration and management
CN107005472B (en) Method and device for providing inter-domain service function link
US9871766B2 (en) Secure path determination between devices
US9686181B2 (en) Selective service bypass in service function chaining
EP3304812B1 (en) Method and system for resynchronization of forwarding states in a network forwarding device
CN113261242B (en) Communication system and method implemented by communication system
US20150124629A1 (en) Traceroute in a dense vxlan network
CN112470427A (en) Secure traffic visibility and analysis for encrypted traffic
EP3400685A1 (en) Mechanism to detect control plane loops in a software defined networking (sdn) network
EP3065350B1 (en) Link discovery method, system and device
US8675669B2 (en) Policy homomorphic network extension
CN105262686B (en) Network connectivity verification method and device
US7376828B1 (en) Method and apparatus for using incompletely trusted service provider point-to-point networks
WO2023197137A1 (en) End-to-end mac-security path setup in level 3 virtual private networks
US11343180B2 (en) Network service access and data routing based on assigned context
JP7482121B2 (en) End-to-end identity-aware routing across multiple administrative domains
US20230261963A1 (en) Underlay path discovery for a wide area network
JP2022510555A (en) End-to-end ID recognition routing across multiple management domains
Filter-Based I2RS Working Group L. Dunbar Internet-Draft S. Hares Intended status: Informational Huawei Expires: September 25, 2015 J. Tantsura Ericsson

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018925914

Country of ref document: EP

Effective date: 20210211