WO2016074126A1 - 控制器、服务节点和数据包转发方法 - Google Patents

控制器、服务节点和数据包转发方法 Download PDF

Info

Publication number
WO2016074126A1
WO2016074126A1 PCT/CN2014/090707 CN2014090707W WO2016074126A1 WO 2016074126 A1 WO2016074126 A1 WO 2016074126A1 CN 2014090707 W CN2014090707 W CN 2014090707W WO 2016074126 A1 WO2016074126 A1 WO 2016074126A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
data stream
service
serving node
switching
Prior art date
Application number
PCT/CN2014/090707
Other languages
English (en)
French (fr)
Inventor
庄毓新
冯江平
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2014/090707 priority Critical patent/WO2016074126A1/zh
Priority to CN201480037491.5A priority patent/CN105519058B/zh
Publication of WO2016074126A1 publication Critical patent/WO2016074126A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a controller, a service node, and a packet forwarding method.
  • Value-added service processing functions such as address translation.
  • FIG. 1 a value-added service processing node that provides the above-mentioned value-added service processing function is connected in series behind a fixed or mobile user access device.
  • some data streams such as video only or web access service flows, require application caching and acceleration.
  • all service flows need to flow through a plurality of value-added service processing nodes connected in series, regardless of whether the data flows need to perform corresponding value-added service processing.
  • the processing capacity of the value-added service processing node is required to be large, which leads to unnecessary investment in the network device.
  • the fault point in the network is also increased, and a certain value-added service device fails, which may cause the overall service flow to be interrupted and faulty.
  • the industry has proposed the concept of configuring a "service chain", which includes a sequence of value-added service processing nodes that a data stream needs to pass.
  • the service chain 1 anti-virus node, firewall node, NAT address translation node
  • service chain 2 application cache and acceleration node, firewall node, NAT address translation node
  • service chain 3 firewall node, NAT address translation node.
  • Different data streams corresponding to different service chains only need to flow through the corresponding service node (service node: value-added service processing node).
  • a typical network architecture using service chain technology is shown in Figure 2.
  • the network usually includes: service collaboration layer, classifier, switch, controller, service node and other components.
  • the functions of each component are listed as follows:
  • Service collaboration layer The operator's operation and maintenance personnel configure the service chain through the service collaboration layer, and The type of data stream that enters each service chain.
  • the classification method of the data flow type varies according to the scenario.
  • the service collaboration layer configures the controller according to the information of the configured service chain (for example, the service chain identifier, the sequence of the service node, and the type of the data stream corresponding to the service chain), and sends the correspondence between the type of the data flow and the service chain to Classifier.
  • Classifier classifies data flows according to pre-configured rules. A certain type of data stream is imported into the corresponding service chain of the type and sent to the first service node on the service chain;
  • the controller sends a flow entry to the relevant switch according to the information of the service chain configured by the service collaboration layer to configure the data forwarding path of the service chain.
  • the flow entry includes the ingress port identifier, the service chain identifier, and the source IP address.
  • the logic of the controller can be implemented by a Software Defined Network (SDN) controller.
  • SDN Software Defined Network
  • Switch Can be a physical switch or a virtual switch. The switch forwards the data packet received by each port according to the flow entry configured by the controller;
  • Service node Performs business processing on the received data packet, and sends the data packet after processing.
  • Figure 2 contains two business chains: Business Chain 1 and Business Chain 2.
  • the sequence of service nodes of service chain 1 includes service nodes b1-c1-e1.
  • the sequence of service nodes of service chain 2 includes services.
  • Nodes a1-d1 when the data stream flows through the service chain 2, are serially processed by the service nodes a1 and d1, the service nodes a1, b1 are connected to the switch 1, and the service nodes c1, d1 and e1 are connected to the switch 2.
  • the data flow in the service chain will be forwarded all to the service node on the service chain.
  • the service node will send out the processed data packet, and the switch will forward it to the next service node.
  • Many filtering service nodes such as firewall nodes, intrusion detection nodes, and anti-virus nodes, sometimes only need to check the first few packets in the data stream to determine whether subsequent packets of the data stream can pass or be prohibited.
  • the data packet subsequent to the data stream still needs to pass through the filtering type service node, and the processing efficiency of the data packet is low because the subsequent data packet still needs to be processed by the filtering service node.
  • the embodiments of the present invention provide a controller, a service node, and a data packet forwarding method, which are used to solve the problem that all data packets of a data flow need to pass through a filtering service node in a network using the service chain technology, and the data packet processing efficiency is low.
  • an embodiment of the present invention provides a controller, including:
  • a receiving module configured to receive report information sent by a first one of the M service nodes, where the report information is used to indicate a subsequent processing action of the change of the first data stream in the same group of data flows, where the same
  • the group data stream corresponds to a service chain, and the service chain indicates a sequence consisting of the M service nodes that each data stream in the same group of data streams needs to pass, and the M is a natural number greater than or equal to 1;
  • a processing module configured to reconfigure a second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node according to the reporting information, where the second serving node is The first serving node is in the previous serving node on the service chain, and the second flow table is used to indicate that the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is in accordance with the A subsequent processing action of a change in the data stream forwards a subsequent data packet of the first data stream.
  • the processing module is further configured to: before the receiving module receives the report information sent by the first serving node,
  • a forwarding rule of the same group of data flows where the M serving nodes correspond to N switching nodes, and the first forwarding rule includes N first flow tables, and each switching node corresponds to one In the first flow table, the N is a natural number greater than or equal to 1;
  • the processing module is further configured to: after reconfiguring the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node,
  • the priority of the flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is configured, wherein the second flow table has a higher priority than the first flow table.
  • the receiving module is specifically configured to:
  • the subsequent processing action of the change of the first data stream is indicated by: the subsequent data packet of the first data stream is bypassed The first service node;
  • the processing module is specifically configured to:
  • the new flow entry includes the feature information of the first data flow, an ingress port, and an egress port, where the egress port is configured as a port of the switching node corresponding to the third serving node.
  • the subsequent processing action of the change of the first data stream is performed to discard subsequent data packets of the first data stream
  • the processing module is specifically configured to reconfigure the second flow table on a switching node corresponding to the first serving node or a switching node corresponding to the second serving node, where the second flow table indicates a discarding A subsequent data packet of the first data stream.
  • an embodiment of the present invention provides a service node, including:
  • a receiving module configured to receive a data packet of the first data stream and process the data packet
  • a sending module configured to send, to the controller, the reporting information when the subsequent processing action of the first data stream is changed, where the reporting information is used to indicate a subsequent processing action of the change of the first data stream.
  • the reporting information includes feature information of the first data stream and a subsequent processing action indication of the change of the first data stream.
  • the subsequent processing action of the change of the first data stream is: following the first data stream
  • the data packet bypasses the first serving node or discards subsequent data packets of the first data stream.
  • an embodiment of the present invention provides a data packet forwarding method, including:
  • the report information is used to indicate a subsequent processing action of the change of the first data flow in the same set of data flows, where the same set of data flows corresponds to one a service chain, the service chain indicating a sequence of the M service nodes that each of the same data stream needs to pass, and the M is a natural number greater than or equal to 1;
  • the second flow table Reconfiguring the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node, where the second serving node is the first serving node
  • the second flow table is used to indicate that the switching node corresponding to the first serving node or the switching node corresponding to the second serving node changes according to the first data flow
  • the subsequent processing action forwards subsequent data packets of the first data stream.
  • the method before the receiving the information sent by the first serving node, the method further includes:
  • a forwarding rule of the same group of data flows where the M serving nodes correspond to N switching nodes, and the first forwarding rule includes N first flow tables, and each switching node corresponds to one In the first flow table, the N is a natural number greater than or equal to 1;
  • the second flow table is reconfigured on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node. After that, it also includes:
  • the priority of the flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is configured, wherein the second flow table has a higher priority than the first flow table.
  • the reporting information sent by the service node includes:
  • the subsequent processing action of the change of the first data stream is: the subsequent data packet of the first data stream is bypassed The first service node;
  • the new flow entry includes the feature information of the first data flow, an ingress port, and an egress port, where the egress port is configured as a port of the switching node corresponding to the third serving node.
  • the subsequent processing action of the change of the first data stream indicates that the subsequent data packet of the first data stream is discarded
  • Determining, according to the reporting information, a switching node or a second service corresponding to the first serving node Reconfiguring the second flow table on the switching node corresponding to the node includes:
  • an embodiment of the present invention provides a data packet forwarding method, including:
  • the report information is sent to the controller, and the report information is used to indicate a subsequent processing action of the change of the first data stream.
  • the reporting information includes feature information of the first data stream and a subsequent processing action indication of the change of the first data stream.
  • the subsequent processing action of the change of the first data stream is: a follow-up of the first data stream
  • the data packet bypasses the first serving node or discards subsequent data packets of the first data stream.
  • an embodiment of the present invention provides a controller, including:
  • a receiver configured to receive report information sent by a first one of the M service nodes, where the report information is used to indicate a subsequent processing action of the change of the first data stream in the same group of data flows, where the same
  • the group data stream corresponds to a service chain, and the service chain indicates a sequence consisting of the M service nodes that each data stream in the same group of data streams needs to pass, and the M is a natural number greater than or equal to 1;
  • a processor configured to reconfigure a second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node according to the reporting information, where the second serving node is The first serving node is in the previous serving node on the service chain, and the second flow table is used to indicate that the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is in accordance with the A subsequent processing action of a change in the data stream forwards a subsequent data packet of the first data stream.
  • the processor is further configured to: Before the receiver receives the report information sent by the first service node,
  • a forwarding rule of the same group of data flows where the M serving nodes correspond to N switching nodes, and the first forwarding rule includes N first flow tables, and each switching node corresponds to one In the first flow table, the N is a natural number greater than or equal to 1;
  • the processor is further configured to: exchange corresponding to the switching node or the second serving node corresponding to the first serving node After reconfiguring the second flow table on the node,
  • the priority of the flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is configured, wherein the second flow table has a higher priority than the first flow table.
  • the receiver is specifically configured to:
  • the subsequent processing action of the change of the first data stream is: the subsequent data packet of the first data stream is bypassed The first service node;
  • the processor is specifically configured to:
  • the new flow entry includes the feature information of the first data flow, an ingress port, and an egress port, where the egress port is configured as a port of the switching node corresponding to the third serving node.
  • the subsequent processing action of the change of the first data stream is performed to discard the subsequent data packet of the first data stream
  • the processor is specifically configured to reconfigure the second flow table on a switching node corresponding to the first serving node or a switching node corresponding to the second serving node, where the second flow table indicates a drop A subsequent data packet of the first data stream.
  • an embodiment of the present invention provides a service node, including:
  • a receiver configured to receive a data packet of the first data stream and process the data packet
  • a transmitter configured to send, to the controller, report information to the controller when the subsequent processing action of the first data stream is changed, the report information being used to indicate a subsequent processing action of the change of the first data stream.
  • the reporting information includes feature information of the first data stream and a subsequent processing action indication of the change of the first data stream.
  • the subsequent processing action of the change of the first data stream is: a follow-up of the first data stream
  • the data packet bypasses the first serving node or discards subsequent data packets of the first data stream.
  • the embodiment of the present invention provides a controller, a service node, and a data packet forwarding method, where the controller performs a switching node corresponding to the first serving node according to the report information sent by the first service node of the received M service nodes.
  • the second flow table is reconfigured on the switching node corresponding to the second service node, where the second service node is the previous service node of the first service node on the service chain, and the second flow table is used to indicate that the first service node corresponds to The switching node or the switching node corresponding to the second serving node forwards the subsequent data packet of the first data stream according to the subsequent processing action of the change of the first data stream.
  • the subsequent data packet of the first data stream does not need to be processed by the first service node, but directly by the switching node or the second corresponding to the first service node, because the processing action of the subsequent data packet of the first data stream is instructed by the switching node.
  • the switching node corresponding to the service node processes, and the data packet of the first data stream The efficiency is improved, and the processing load of the first service node is also reduced.
  • 1 is a network architecture diagram of a network with value-added service processing functions
  • FIG. 2 is a network architecture diagram of a typical network using service chain technology
  • FIG. 3 is a schematic structural diagram of a data communication system according to an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of a method for processing a data stream in a data communication system according to an embodiment of the present invention
  • FIG. 5 is a schematic diagram of a method for configuring a switching node by a controller according to an example 1 of the present invention
  • FIG. 6 is a schematic structural diagram of a first controller according to an embodiment of the present disclosure.
  • FIG. 7 is a schematic structural diagram of a second controller according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic structural diagram of a first service node according to an embodiment of the present disclosure.
  • FIG. 9 is a schematic structural diagram of a second service node according to an embodiment of the present disclosure.
  • FIG. 10 is a flowchart of a first method for forwarding a data packet according to an embodiment of the present invention.
  • FIG. 11 is a flowchart of a second method for forwarding a data packet according to an embodiment of the present invention.
  • the embodiments of the present invention provide a controller, a service node, and a data packet forwarding method, which are used to solve the problem that all data packets of a data flow need to pass through a filtering service node in a network using the service chain technology, and the data packet processing efficiency is low.
  • the receiving module receives the report information sent by the first service node of the M service nodes, where the report information is used to indicate subsequent processing of the change of the first data stream in the same group of data streams.
  • the action wherein the same group of data streams corresponds to a service chain, the service chain indicates a sequence of M service nodes that each data stream in the same group of data streams needs to pass, and M is a natural number greater than or equal to 1;
  • the second flow table is used to indicate that the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is in accordance with the first number
  • the subsequent processing of the change of the flow forwards the subsequent data packet of the first data stream.
  • the subsequent data packet of the first data stream does not need to be processed by the first serving node, but is directly processed by the switching node corresponding to the first serving node, or the switching packet is instructed by the switching node to process the subsequent data packet of the first data stream.
  • the switching node corresponding to the second service node processes, the packet processing efficiency of the first data stream is improved, and the processing load of the first service node is also reduced.
  • FIG. 3 is a data communication system according to an embodiment of the present invention. As shown in FIG. 3, the system includes: M service nodes in a service chain, a controller 302, and a switching node corresponding to each of the M service nodes; the data flow on the service chain needs to pass through the M in sequence.
  • Service nodes; M is a natural number greater than or equal to 1;
  • the first service node 301a of the M service node nodes is configured to receive and process a data packet of the first data stream on the service chain; and when determining that the subsequent processing action of the first data stream is changed, to the controller 302 sending a report message, where the report message is used to indicate a subsequent processing action of the change of the first data stream;
  • the controller 302 is configured to receive the report information sent by the first service node 301a, and reconfigure the switch node 303a corresponding to the first service node 301a or the switch node 303b corresponding to the second service node 301b according to the report information.
  • the second flow table wherein the second service node 301b is the previous service node of the first service node 301a on the service chain, and the second flow table is used to indicate the exchange of the first service node 301a.
  • the switching node 303b corresponding to the node 303a or the second serving node 301b forwards the subsequent data packet of the first data stream in accordance with the subsequent processing action of the change of the first data stream.
  • connection relationship between the nodes is merely an illustration, and the controller 302 may also be connected to each of the M service nodes through a switching node such as a switch as shown in FIG. 2.
  • connection between each service node and the switching node is a dotted line, which represents a correspondence relationship, that is, the service node and its corresponding switching node perform routing and forwarding of the data packet.
  • the service node can be directly connected to the corresponding switching node, or can be connected through other routing devices and relay devices.
  • each of the M service nodes may have their own exchange section
  • a plurality of service nodes may correspond to one switching node.
  • both the service node a1 and the service node b1 correspond to the switch 1 as a switching node.
  • the first service node 301a is a filtering type service node.
  • the reporting information sent by the first serving node 301a to the controller 302 includes feature information of the first data stream and a subsequent processing action indication of the change of the first data stream.
  • the foregoing data flow feature information includes: quintuple information or quaternion information.
  • the quaternion information includes: a source IP address, a destination IP address, a source port number, and a destination port number;
  • the quintuple information includes: source IP address, destination IP address, protocol number, source port number, and destination port number.
  • the subsequent processing action of the change of the first data stream is indicated as:
  • Subsequent packets of the first data stream bypass the first service node; or
  • the controller 302 determines a service chain according to the feature information of the first data stream, and determines a third service node from the service chain, where the third service node is the next service node of the first service node 301a on the service chain; and the first service node
  • the second flow table is reconfigured on the switching node 303a corresponding to the 301a or the switching node 303b corresponding to the second serving node 301b, where the second flow table includes at least one new flow entry, and the new flow entry includes features of the first data flow.
  • the controller 302 reconfigures the second flow table on the switching node 303a corresponding to the first serving node 301a or the switching node 303b corresponding to the second serving node 301b, wherein the second flow table indicates that the subsequent data packet of the first data stream is discarded.
  • the controller 302 receives the report information sent by the first service node 301a, according to The service chain determines a forwarding rule of the data flow on the service chain, where the M service nodes correspond to N switching nodes, and the first forwarding rule includes N first flow tables, and each switching node corresponds to a first flow table, N a natural number greater than or equal to 1;
  • a first flow table corresponding to each switch node is configured on each switch node, where the first flow table configured by each switch node is used to indicate that each switch node forwards the data flow on the service chain according to the first forwarding rule.
  • the controller 302 reconfigures the second flow table on the switching node 303a corresponding to the first serving node 301a or the switching node 303b corresponding to the second serving node 301b,
  • the priority of the flow table on the switching node 303a corresponding to the first serving node 301a or the switching node 303b corresponding to the second serving node 301b is configured, wherein the second flow table has a higher priority than the first flow table. In this way, the data packet of the first data stream can be preferentially forwarded according to the second flow table.
  • forwarding according to the original first flow table can improve the data packet forwarding efficiency and ensure the If the flow table does not match, the data packet of the first data stream can still be forwarded.
  • the first service node 301a may simultaneously carry the service chain identifier of the service chain to identify the service chain.
  • the service chain identifier may be a serial number of the service chain, for example, an integer of a certain number of digits; or a name of the service chain, or an identifier of each service node in the service chain, as long as Separate a business chain from other business chains.
  • controller 302 configures the switching node 303a or the switching node 303b to perform the subsequent processing actions of the above change can be seen in the following example 1.
  • the controller 302 receives the foregoing reporting information sent by the first serving node 301a.
  • the switching node corresponding to the first service node on the service chain may be configured: the subsequent data packet of the first data stream is discarded.
  • One advantage of this is that if any one of the service nodes in a service chain determines that a data packet of a data flow needs to be discarded, subsequent data packets of the data flow enter the switching node connected to the first service node of the service chain. That is, it is discarded by the switching node, which further reduces the processing load of the subsequent switching node and the serving node.
  • the controller is Sending a report message indicating that the subsequent data packet of the data stream A is discarded; the controller notifies the switch 1 connected to the first service node b1 on the service chain 1 to discard the subsequent data packet of the data stream A. Then, compared with FIG. 2, the subsequent data packets of the data stream A are no longer sent to the service nodes c1 and e1 through the switch 2.
  • the service node a1 determines that the data stream B on the service chain 2 is directly forwarded to the next service node d1 on the service chain 2, it sends a report message to the controller, indicating that the subsequent data packet of the service flow B is directly forwarded to the service chain. The next service node d1 on 2. Then, compared with FIG. 2, the subsequent data packet of the data stream B is not sent to the service node a1 for processing, but is directly sent to the service node d1 through the switch 2.
  • the controller 302 is pre-opened to the first service node 301a to configure an interface, and the first service node 301a can send the report information to the controller 302 through the configuration interface.
  • the information of the configuration interface includes: an address and a port number of the controller 302.
  • the first service node 301 can obtain the address and port number of the configuration interface from the controller 302, for example, obtaining the address and port number of the configuration interface from the control message sent by the controller 302; Maintenance (Operation&Maintenance, OM) obtains the address and port number of the configuration interface.
  • Example 1 shows a specific example in which the controller configures the switching node to perform processing actions in the embodiment of the present invention.
  • the configuration of the switching node 303a corresponding to the first serving node 301a is exemplified, and the principle of the switching node 303b corresponding to the second serving node 301b is the same, and details are not described herein.
  • the first serving node 301a is connected to a switching node 303a (such as a virtual switch).
  • the forwarding rule corresponding to the service chain with the service chain identifier 1 is the first forwarding rule, and the same data flow corresponding to the service chain 1 needs to be according to the first Forwarding rules are forwarded.
  • the service chain 1 corresponds to N switching nodes.
  • the rules of the first forwarding rule configured on the switching node 303a introduced in this embodiment are: flowing from the port 102 to the switching node, and being sent by the port 101 to the serving node, being served. After the node is processed, It flows from port 101 to the switching node and finally from port 103 to the next destination.
  • the first flow table set in the switching node 303a should have the following logic:
  • the first row of the logic of the first flow table indicates that the data processing performed on the input port is 102 and the service chain identifier is 1, and the processing performed is output from the port 101;
  • the second row of the logic of the first flow table indicates that the processing operation performed on the data stream with the input port 101 and the service chain identifier 1 is output from the port 103.
  • each switching node involved in the service chain 1 is configured with a first flow table, and the logic of the first flow table configured on each switching node is the same as that set in the switching node 303a introduced in the above example.
  • the first-class table is similar, such that each switching node forwards each of the same set of data streams according to a first forwarding rule determined by the service chain with the service chain identifier of 1.
  • the first flow table configured on other switching nodes will not be described in detail herein.
  • the first serving node 301a determines that the service chain identified by the service chain identifier 1 has the characteristic information of the first data stream is a quintuple (srcIP: 1.1.1.1, dstIP: 2.2.2.2, proto: TCP, srcPort: 6666) , dstPort: 80), that is, the source IP address is 1.1.1.1, the destination IP address is 2.2.2.2, the protocol type is Transmission Control Protocol (TCP), the source port number is 6666, and the destination port number is 80.
  • TCP Transmission Control Protocol
  • the flow can be directly passed, that is, the first data stream can be directly sent to the next service node on the service chain 1, and the first service node 301a sends the report information to the controller 302, where the report information is used to indicate the same group of data streams.
  • the first row of the second flow table logic indicates that the source IP address is 1.1.1.1, the destination IP address is 2.2.2.2, and the protocol type is the service chain with the input port being 102 and the service chain being 1.
  • the Transmission Control Protocol (TCP) the source port number is 6666, and the destination port number is 80. The action is performed from port 103.
  • the second row of the second flow table logic indicates that the processing action performed is output from the port 101 when the input port is 102 and the service chain identifier is 1, and the data stream other than the data stream identified by the quintuple is executed. ;
  • the third row of the second flow table logic indicates that the data flow of the data stream other than the data stream identified by the quintuple of the input port is 101 and the service chain identifier is 1, and the processing action is performed from Port 103 is output.
  • the first data stream identified by the quintuple is input from the port 102 of the switch 303a, and then directly outputted from the port 103 of the switching node 303a, without the first serving node 301a. deal with.
  • the above example is an example of reconfiguring the second flow table in the switching node 303a.
  • the previous service node of the first service node 301a on the service chain 1 may be reconfigured. The examples will not be described again.
  • the method further includes:
  • the priority of the flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is configured, wherein the second flow table has a higher priority than the first flow table.
  • the embodiment of the present invention further provides a service node, a controller, and a data packet forwarding method.
  • the principle of the device and the method for solving the problem is similar to the data communication system provided by the embodiment of the present invention, and the implementation thereof may refer to the system. Implementation, repetition will not be repeated.
  • FIG. 6 is a schematic structural diagram of a first controller according to an embodiment of the present invention. As shown in Figure 6, the controller includes:
  • the receiving module 601 is configured to receive report information sent by the first service node of the M service nodes, where the report information is used to indicate a subsequent processing action of the change of the first data stream in the same group of data flows, where the same group of data flows
  • the service chain indicates a sequence of M service nodes that each data stream in the same group of data flows needs to pass, and M is a natural number greater than or equal to 1;
  • the processing module 602 is configured to reconfigure the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node according to the reporting information, where the second serving node is the first serving node in the service chain.
  • the previous service node, the second flow table is used to indicate that the switching node corresponding to the first serving node or the switching node corresponding to the second serving node forwards the subsequent data of the first data stream according to the subsequent processing action of the change of the first data flow. package.
  • the processing module 602 is further configured to: before the receiving module 601 receives the report information sent by the first serving node, determine, according to the service chain, a forwarding rule of the same group of data flows, where the M service nodes correspond to the N switching nodes.
  • the first forwarding rule includes N first flow tables, each switching node corresponds to a first flow table, and N is a natural number greater than or equal to 1;
  • the processing module 602 is further configured to: after reconfiguring the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node,
  • the priority of the flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is configured, wherein the second flow table has a higher priority than the first flow table.
  • the receiving module 601 is specifically configured to:
  • the subsequent processing action of the change of the first data flow indicates that the subsequent data packet of the first data flow bypasses the first service node
  • the processing module 602 is specifically configured to:
  • the third service node is the latter service node of the first service node on the service chain;
  • the second flow table includes at least one new flow entry, and the new flow entry includes the first data flow Feature information, an ingress port, and an egress port, where the egress port is configured as a port of a switching node corresponding to the third serving node.
  • the subsequent processing action of the change of the first data stream indicates that the subsequent data packet of the first data stream is discarded
  • the processing module 602 is specifically configured to reconfigure the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node, where the second flow table indicates that the subsequent data packet of the first data stream is discarded.
  • FIG. 7 is a schematic structural diagram of a second controller according to an embodiment of the present invention. As shown in Figure 7, the controller includes:
  • the receiver 701 is configured to receive report information sent by the first service node of the M service nodes, where the report information is used to indicate a subsequent processing action of the change of the first data stream in the same group of data flows, where the same group of data flows
  • the service chain indicates a sequence of M service nodes that each data stream in the same group of data flows needs to pass, and M is a natural number greater than or equal to 1;
  • the processor 702 is configured to reconfigure the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node according to the reporting information, where the second serving node is the first serving node in the service chain
  • the second flow table is used to indicate that the switching node corresponding to the first serving node or the switching node corresponding to the second serving node forwards the subsequent data of the first data stream according to the subsequent processing action of the change of the first data flow. package.
  • the bus architecture may include any number of interconnected buses and bridges, specifically linked by one or more processors represented by processor 702 and various circuits of memory represented by memory 703.
  • the bus architecture can also link various other circuits such as peripherals, voltage regulators, and power management circuits, which are well known in the art and, therefore, will not be further described herein.
  • the bus interface provides an interface.
  • Receiver 701 can be a plurality of elements that provide means for communicating with various other devices on a transmission medium.
  • the user interface 704 can also be an interface that can externally connect to a desired device, including but not limited to a keypad, a display, a speaker, a microphone, a joystick, and the like.
  • the processor 702 is further configured to: before the receiver 701 receives the report information sent by the first serving node,
  • the processor 702 is further configured to: after reconfiguring the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node,
  • the priority of the flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is configured, wherein the second flow table has a higher priority than the first flow table.
  • the receiver 701 is specifically configured to:
  • the subsequent processing action of the change of the first data flow indicates that the subsequent data packet of the first data flow bypasses the first service node
  • the processor 702 is specifically configured to:
  • Determining a service chain according to the feature information of the first data stream determining a third service node from the service chain, where the third service node is a service node of the first service node on the service chain;
  • the second flow table includes at least one new flow entry, and the new flow entry includes the first data flow Feature information, an ingress port, and an egress port, where the egress port is configured as a port of a switching node corresponding to the third serving node.
  • the subsequent processing action of the change of the first data flow indicates that the subsequent flow of the first data flow is discarded data pack
  • the processor 702 is specifically configured to reconfigure the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node, where the second flow table indicates that the subsequent data packet of the first data stream is discarded.
  • FIG. 8 is a schematic structural diagram of a first service node according to an embodiment of the present invention. As shown in Figure 8, the service node includes:
  • the receiving module 801 is configured to receive a data packet of the first data stream and perform processing
  • the sending module 802 is configured to send, when the subsequent processing action on the first data stream is changed, the report information to the controller, where the report information is used to indicate a subsequent processing action of the change of the first data stream.
  • the reporting information includes feature information of the first data stream and a subsequent processing action indication of the change of the first data stream.
  • the subsequent processing action of the change of the first data stream indicates that the subsequent data packet of the first data stream bypasses the first serving node or discards the subsequent data packet of the first data stream.
  • FIG. 9 is a schematic structural diagram of a second service node according to an embodiment of the present invention. As shown in Figure 9, the service node includes:
  • a receiver 901 configured to receive a data packet of the first data stream and perform processing
  • the transmitter 902 is configured to: when the change of the subsequent processing action of the first data stream is determined, send the report information to the controller, where the report information is used to indicate a subsequent processing action of the change of the first data stream.
  • the bus architecture may include any number of interconnected buses and bridges, including the receiver 901, the transmitter 902, and various other circuits such as peripherals, voltage regulators, and power management circuits. Together, these are well known in the art and, therefore, will not be further described herein.
  • the bus interface provides an interface.
  • the user interface 903 may also be an interface capable of externally connecting the required devices, including but not limited to a keypad, a display, a speaker, a microphone, a joystick, and the like.
  • the reporting information includes feature information of the first data stream and a subsequent processing action indication of the change of the first data stream.
  • the subsequent processing action of the change of the first data stream is indicated as: a follow-up of the first data stream
  • the packet bypasses the first serving node or discards subsequent packets of the first data stream.
  • FIG. 10 is a flowchart of a first method for forwarding a data packet according to an embodiment of the present invention. As shown in FIG. 10, the method includes the following steps:
  • S1001 Receive report information sent by a first service node of the M service nodes, where the report information is used to indicate a subsequent processing action of the change of the first data flow in the same data flow, where the same data flow corresponds to a service chain.
  • the service chain indicates a sequence of M service nodes that each data stream in the same group of data flows needs to pass, and M is a natural number greater than or equal to 1;
  • S1002 Reconfigure the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node according to the reporting information, where the second serving node is the previous one of the first serving node in the service chain.
  • the serving node, the second flow table is configured to indicate that the switching node corresponding to the first serving node or the switching node corresponding to the second serving node forwards the subsequent data packet of the first data stream according to the subsequent processing action of the change of the first data stream.
  • the step S1001 before receiving the report information sent by the first serving node, the step S1001 further includes:
  • the method further includes:
  • the priority of the flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node is configured, wherein the second flow table has a higher priority than the first flow table.
  • step S1001 receiving the report information sent by the first service node of the M service nodes includes:
  • the subsequent processing action of the change of the first data flow indicates that the subsequent data packet of the first data flow bypasses the first service node
  • step S1002 the second flow table is reconfigured on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node according to the reporting information, including:
  • Determining a service chain according to the feature information of the first data stream determining a third service node from the service chain, where the third service node is a service node of the first service node on the service chain;
  • the second flow table includes at least one new flow entry, and the new flow entry includes the first data flow Feature information, an ingress port, and an egress port, where the egress port is configured as a port of a switching node corresponding to the third serving node.
  • the subsequent processing action of the change of the first data stream indicates that the subsequent data packet of the first data stream is discarded
  • step S1002 reconfiguring the second flow table on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node according to the reporting information includes:
  • the second flow table is reconfigured on the switching node corresponding to the first serving node or the switching node corresponding to the second serving node, where the second flow table indicates that the subsequent data packet of the first data stream is discarded.
  • FIG. 11 is a flowchart of a second method for forwarding a data packet according to an embodiment of the present invention. As shown in FIG. 11, the method includes the following steps:
  • S1101 Receive a data packet of the first data stream and perform processing
  • the reporting information includes feature information of the first data stream and a subsequent processing action indication of the change of the first data stream.
  • the subsequent processing action of the change of the first data stream indicates that the subsequent data packet of the first data stream bypasses the first serving node or discards the subsequent data packet of the first data stream.
  • the embodiment of the present invention provides a controller, a service node, and a data packet forwarding method, where the controller is first according to the report information sent by the first service node among the received M service nodes. Reconfiguring the second flow table on the switching node corresponding to the service node or the switching node corresponding to the second service node, where the second service node is the previous service node of the first service node in the service chain, and the second flow table is used And indicating that the switching node corresponding to the first serving node or the switching node corresponding to the second serving node forwards the subsequent data packet of the first data stream according to the subsequent processing action of the change of the first data stream.
  • the subsequent data packet of the first data stream does not need to be processed by the first service node, but directly by the switching node or the second corresponding to the first service node, because the processing action of the subsequent data packet of the first data stream is instructed by the switching node.
  • the switching node corresponding to the service node processes, the data packet processing efficiency of the data stream is improved, and the processing load of the first service node is also reduced.
  • embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device. Having a series of operational steps performed on a computer or other programmable device to produce computer-implemented processing such that instructions executed on a computer or other programmable device are provided for implementing one or more processes and/or block diagrams in the flowchart. The steps of a function specified in a box or multiple boxes.

Abstract

本发明涉及通信技术领域,尤其涉及控制器、服务节点和数据包转发方法,用以解决采用业务链技术的网络中,数据流的所有数据包都需要经过过滤型的服务节点,数据包处理效率低的问题。在本发明实施例提供的控制器中,接收模块接收M个服务节点中的第一服务节点发送的上报信息,处理模块根据上报信息,在第一服务节点对应的交换节点或者业务链上的第一服务节点的前一个服务节点对应的交换节点上重新配置第二流表,指示依照第一数据流的变更的后续处理动作转发第一数据流的后续数据包。由于指示交换节点对第一数据流的后续数据包的处理动作,第一数据流的后续数据包就无需经过该第一服务节点的处理,第一数据流的数据包处理效率得以提高。

Description

控制器、服务节点和数据包转发方法 技术领域
本发明涉及通信技术领域,尤其涉及控制器、服务节点和数据包转发方法。
背景技术
在固定或移动宽带接入领域及数据中心应用中,会存在很多基于4层到7层的增值业务处理,包括:防病毒、防火墙、应用缓存和加速、网络地址转换(Network Address Translation,NAT)地址转换等增值业务处理功能。通常如图1所示,在固定或移动用户接入设备后面串接提供上述增值业务处理功能的增值业务处理节点。在实际应用中,部分数据流如仅视频或Web访问业务流才需要应用缓存和加速。但在图1所示组网技术中,所有的业务流都需要流经串接的多个增值业务处理节点,不管这些数据流是否需要进行相应的增值业务处理。此方式对增值业务处理节点的处理容量要求大,导致不必要的网络设备投资;同时,也会增加网络中的故障点,某个增值业务设备出现故障,会导致整体业务流中断和故障。
为解决上述问题,业界提出了配置“业务链”的概念,业务链包括某个数据流所需经过的增值业务处理节点的序列。比如,业务链一:防病毒节点、防火墙节点、NAT地址转换节点;业务链二:应用缓存和加速节点、防火墙节点、NAT地址转换节点;业务链三:防火墙节点、NAT地址转换节点。对应不同业务链的不同数据流只需流经相应的服务节点(服务节点即:增值业务处理节点)即可。
采用业务链技术的一个典型的网络架构如图2所示,网络中通常包括:业务协同层、分类器、交换机、控制器、服务节点等多个部件,各部件功能列举如下:
业务协同层:运营商的操作维护人员通过业务协同层配置业务链,以及 进入各业务链的数据流的类型。通常,配置业务链时,需要配置该业务链上的服务节点的序列和该业务链对应的数据流的类型,数据流的类型的分类方法依据场景而异。业务协同层根据配置的业务链的信息(比如:业务链标识、服务节点的序列和该业务链对应的数据流的类型)配置控制器,并将数据流的类型与业务链的对应关系发送至分类器。
分类器:将数据流按照预先配置好的规则分类,属于某种类型的数据流会被导入该类型对应的业务链,发往该业务链上的第一个服务节点;
控制器:根据业务协同层配置的业务链的信息,向相关交换机下发流表项,以配置业务链的数据转发路径,通常,流表项中包括入端口标识、业务链标识、源IP地址、目的IP地址、协议类型、源端口号、目的端口号、执行的操作中的一项或多项信息。其中,控制器的逻辑可以通过软件定义网络(Software Defined Network,SDN)控制器实现。
交换机:可为物理交换机或虚拟交换机。交换机根据控制器配置的流表项转发由各端口收到的数据包;
服务节点:对收到的数据包进行业务处理,处理完后将数据包发送出去。
图2中包含两条业务链:业务链1和业务链2。业务链1的服务节点的序列包括服务节点b1-c1-e1,数据流流经业务链1时,会串行依次被服务节点b1、c1和e1处理;业务链2的服务节点的序列包括服务节点a1-d1,数据流流经业务链2时,会串行依次被服务节点a1和d1处理,服务节点a1、b1连接交换机1,服务节点c1、d1和e1连接交换机2。
业务链中的数据流会被全部转发到业务链上的服务节点,服务节点将处理完的数据包发出,交换机会将其转发到下一个服务节点。很多过滤型的服务节点,比如:防火墙节点、入侵检测节点、防病毒节点,有时只需要检查数据流中前面几个数据包,就可以确定该数据流后续的数据包可以通过或者禁止通过。但目前,该数据流后续的数据包仍需要经过该过滤型的服务节点,由于后续数据包仍需要该过滤性的服务节点处理,因此数据包的处理效率低。
综上,现有采用业务链技术的网络中,数据流的所有数据包都需要经过 过滤型的服务节点,数据包处理效率低。
发明内容
本发明实施例提供控制器、服务节点和数据包转发方法,用以解决采用业务链技术的网络中,数据流的所有数据包都需要经过过滤型的服务节点,数据包处理效率低的问题。
第一方面,本发明实施例提供一种控制器,包括:
接收模块,用于接收M个服务节点中的第一服务节点发送的上报信息,所述上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,所述同一组数据流对应一条业务链,所述业务链指示所述同一组数据流中的每个数据流需要经过的所述M个服务节点组成的序列,所述M为大于等于1的自然数;
处理模块,用于根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,所述第二服务节点为所述第一服务节点在所述业务链上的前一个服务节点,所述第二流表用于指示所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点依照所述第一数据流的变更的后续处理动作转发所述第一数据流的后续数据包。
结合第一方面,在第一种可能的实现方式中,所述处理模块还用于:在所述接收模块接收第一服务节点发送的上报信息之前,
根据所述业务链,确定所述同一组数据流的转发规则,其中,所述M个服务节点对应N个交换节点,所述第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,所述N为大于等于1的自然数;
在所述每个交换节点上配置所述每个交换节点对应的第一流表,其中,所述每个交换节点被配置的第一流表用于指示所述每个交换节点依照所述第一转发规则转发所述同一组数据流中的每个数据流。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中, 所述处理模块还用于:在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,
配置所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上的流表的优先级,其中,所述第二流表的优先级高于所述第一流表。
结合第一方面、第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收模块具体用于:
接收所述第一服务节点发送的所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点;
所述处理模块具体用于:
根据所述第一数据流的特征信息确定所述业务链,从所述业务链上确定第三服务节点,所述第三服务节点为所述第一服务节点在所述业务链上的后一个服务节点;
在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中,所述第二流表包含至少一个新流表项,所述新流表项包括所述第一数据流的特征信息、入端口和出端口,其中,所述出端口配置为所述第三服务节点对应的交换节点的端口。
结合第一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第一数据流的变更的后续处理动作指示丢弃所述第一数据流的后续数据包;
所述处理模块具体用于:在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中所述第二流表指示丢弃所述第一数据流的后续数据包。
第二方面,本发明实施例提供一种服务节点,包括:
接收模块,用于接收第一数据流的数据包并进行处理;
发送模块,用于在确定对所述第一数据流的后续处理动作发生变更时,向控制器发送上报信息,所述上报信息用于指示所述第一数据流的变更的后续处理动作。
结合第二方面,在第一种可能的实现方式中,所述上报信息包括所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点或者丢弃所述第一数据流的后续数据包。
第三方面,本发明实施例提供一种数据包转发方法,包括:
接收M个服务节点中的第一服务节点发送的上报信息,所述上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,所述同一组数据流对应一条业务链,所述业务链指示所述同一组数据流中的每个数据流需要经过的所述M个服务节点组成的序列,所述M为大于等于1的自然数;
根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,所述第二服务节点为所述第一服务节点在所述业务链上的前一个服务节点,所述第二流表用于指示所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点依照所述第一数据流的变更的后续处理动作转发所述第一数据流的后续数据包。
结合第三方面,在第一种可能的实现方式中,所述接收第一服务节点发送的上报信息之前,还包括:
根据所述业务链,确定所述同一组数据流的转发规则,其中,所述M个服务节点对应N个交换节点,所述第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,所述N为大于等于1的自然数;
在所述每个交换节点上配置所述每个交换节点对应的第一流表,其中,所述每个交换节点被配置的第一流表用于指示所述每个交换节点依照所述第 一转发规则转发所述同一组数据流中的每个数据流。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,还包括:
配置所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上的流表的优先级,其中,所述第二流表的优先级高于所述第一流表。
结合第三方面、第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,接收所述M个服务节点中的第一服务节点发送的上报信息包括:
接收所述第一服务节点发送的所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点;
根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表包括:
根据所述第一数据流的特征信息确定所述业务链,从所述业务链上确定第三服务节点,所述第三服务节点为所述第一服务节点在所述业务链上的后一个服务节点;
在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中,所述第二流表包含至少一个新流表项,所述新流表项包括所述第一数据流的特征信息、入端口和出端口,其中,所述出端口配置为所述第三服务节点对应的交换节点的端口。
结合第三方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第一数据流的变更的后续处理动作指示丢弃所述第一数据流的后续数据包;
根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务 节点对应的交换节点上重新配置第二流表包括:
在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中所述第二流表指示丢弃所述第一数据流的后续数据包。
第四方面,本发明实施例提供一种数据包转发方法,包括:
接收第一数据流的数据包并进行处理;
在确定对所述第一数据流的后续处理动作发生变更时,向控制器发送上报信息,所述上报信息用于指示所述第一数据流的变更的后续处理动作。
结合第四方面,在第一种可能的实现方式中,所述上报信息包括所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点或者丢弃所述第一数据流的后续数据包。
第五方面,本发明实施例提供一种控制器,包括:
接收器,用于接收M个服务节点中的第一服务节点发送的上报信息,所述上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,所述同一组数据流对应一条业务链,所述业务链指示所述同一组数据流中的每个数据流需要经过的所述M个服务节点组成的序列,所述M为大于等于1的自然数;
处理器,用于根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,所述第二服务节点为所述第一服务节点在所述业务链上的前一个服务节点,所述第二流表用于指示所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点依照所述第一数据流的变更的后续处理动作转发所述第一数据流的后续数据包。
结合第五方面,在第一种可能的实现方式中,所述处理器还用于:在所 述接收器接收第一服务节点发送的上报信息之前,
根据所述业务链,确定所述同一组数据流的转发规则,其中,所述M个服务节点对应N个交换节点,所述第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,所述N为大于等于1的自然数;
在所述每个交换节点上配置所述每个交换节点对应的第一流表,其中,所述每个交换节点被配置的第一流表用于指示所述每个交换节点依照所述第一转发规则转发所述同一组数据流中的每个数据流。
结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器还用于:在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,
配置所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上的流表的优先级,其中,所述第二流表的优先级高于所述第一流表。
结合第五方面、第五方面的第一种可能的实现方式或第五方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收器具体用于:
接收所述第一服务节点发送的所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
结合第五方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点;
所述处理器具体用于:
根据所述第一数据流的特征信息确定所述业务链,从所述业务链上确定第三服务节点,所述第三服务节点为所述第一服务节点在所述业务链上的后一个服务节点;
在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中,所述第二流表包含至少一个新流表项,所述新流表项包括所述第一数据流的特征信息、入端口和出端口,其中,所述出端口配置为所述第三服务节点对应的交换节点的端口。
结合第五方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第一数据流的变更的后续处理动作指示丢弃所述第一数据流的后续数据包;
所述处理器具体用于:在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中所述第二流表指示丢弃所述第一数据流的后续数据包。
第六方面,本发明实施例提供一种服务节点,包括:
接收器,用于接收第一数据流的数据包并进行处理;
发射器,用于在确定对所述第一数据流的后续处理动作发生变更时,向控制器发送上报信息,所述上报信息用于指示所述第一数据流的变更的后续处理动作。
结合第六方面,在第一种可能的实现方式中,所述上报信息包括所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
结合第六方面或第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点或者丢弃所述第一数据流的后续数据包。
综上,本发明实施例提供控制器、服务节点和数据包转发方法,其中,控制器根据接收的M个服务节点中的第一服务节点发送的上报信息,在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,第二服务节点为第一服务节点在业务链上的前一个服务节点,第二流表用于指示第一服务节点对应的交换节点或者第二服务节点对应的交换节点依照第一数据流的变更的后续处理动作转发第一数据流的后续数据包。
由于指示交换节点对第一数据流的后续数据包的处理动作,第一数据流的后续数据包就无需经过该第一服务节点的处理,而直接由第一服务节点对应的交换节点或第二服务节点对应的交换节点处理,第一数据流的数据包处 理效率得以提高,同时也降低了第一服务节点的处理负荷。
附图说明
图1为具有增值业务处理功能的网络的网络架构图;
图2为采用业务链技术的典型网络的网络架构图;
图3为本发明实施例提供的数据通信系统的结构示意图;
图4为本发明实施例提供的数据通信系统对数据流的处理方式示意图;
图5为本发明示例一中控制器配置交换节点的方法示意图;
图6为本发明实施例提供的第一种控制器的结构示意图;
图7为本发明实施例提供的第二种控制器的结构示意图;
图8为本发明实施例提供的第一种服务节点的结构示意图;
图9为本发明实施例提供的第二种服务节点的结构示意图;
图10为本发明实施例提供的第一种数据包转发方法的流程图;
图11为本发明实施例提供的第二种数据包转发方法的流程图。
具体实施方式
本发明实施例提供控制器、服务节点和数据包转发方法,用以解决采用业务链技术的网络中,数据流的所有数据包都需要经过过滤型的服务节点,数据包处理效率低的问题。
在本发明实施例提供的控制器中,接收模块接收M个服务节点中的第一服务节点发送的上报信息,该上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,该同一组数据流对应一条业务链,业务链指示同一组数据流中的每个数据流需要经过的M个服务节点组成的序列,M为大于等于1的自然数;处理模块根据上报信息,在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,第二服务节点为第一服务节点在业务链上的前一个服务节点,第二流表用于指示第一服务节点对应的交换节点或者第二服务节点对应的交换节点依照第一数 据流的变更的后续处理动作转发第一数据流的后续数据包。
其中,由于指示交换节点对第一数据流的后续数据包的处理动作,第一数据流的后续数据包就无需经过该第一服务节点的处理,而直接由第一服务节点对应的交换节点或第二服务节点对应的交换节点处理,第一数据流的数据包处理效率得以提高,同时也降低了第一服务节点的处理负荷。
下面,结合附图对本发明实施例进行详细说明。
图3为本发明实施例提供的数据通信系统。如图3所示,该系统包括:一条业务链上的M个服务节点、控制器302和M个服务节点中每一个服务节点对应的交换节点;该业务链上的数据流需要顺序经过该M个服务节点;M为大于等于1的自然数;其中,
M个服务节点节点中的第一服务节点301a,用于接收该业务链上的第一数据流的数据包并进行处理;在确定对第一数据流的后续处理动作发生变更时,向控制器302发送上报信息,该上报信息用于指示第一数据流的变更的后续处理动作;
控制器302,用于接收第一服务节点301a发送的上述上报信息,并根据该上报信息,在第一服务节点301a对应的交换节点303a或者第二服务节点301b对应的交换节点303b上重新配置第二流表,其中,第二服务节点301b为上述M个服务节点中,第一服务节点301a在该业务链上的前一个服务节点,第二流表用于指示第一服务节点301a对应的交换节点303a或者第二服务节点301b对应的交换节点303b依照第一数据流的变更的后续处理动作转发第一数据流的后续数据包。
图3中,各节点之间的连接关系仅为示意,其中,控制器302也可如图2中所示,通过诸如交换机的交换节点与M个服务节点中的各服务节点连接。
图3中,各服务节点与交换节点之间的连线为虚线,其表示一种对应关系,即服务节点与其对应的交换节点对其数据包进行路由转发。服务节点可与对应的交换节点直接连接,也可通过其他路由设备、中继设备连接。
图3中,M个服务节点中的各服务节点可分别具有自身所对应的交换节 点,也可多个服务节点对应一个交换节点,如图2中所示,服务节点a1和服务节点b1均对应作为交换节点的交换机1。
可选地,第一服务节点301a为过滤型的服务节点。
可选地,第一服务节点301a向控制器302发送的该上报信息包括第一数据流的特征信息以及第一数据流的变更的后续处理动作指示。
可选地,上述数据流特征信息包括:五元组信息或四元组信息。
其中,四元组信息包括:源IP地址、目的IP地址、源端口号和目的端口号;
五元组信息包括:源IP地址、目的IP地址、协议号、源端口号和目的端口号。
可选地,第一数据流的变更的后续处理动作指示为:
第一数据流的后续数据包绕过第一服务节点;或者
丢弃第一数据流的后续数据包。
若第一数据流的变更的后续处理动作指示为:第一数据流的后续数据包绕过第一服务节点,则
控制器302根据第一数据流的特征信息确定业务链,从业务链上确定第三服务节点,第三服务节点为第一服务节点301a在业务链上的后一个服务节点;在第一服务节点301a对应的交换节点303a或者第二服务节点301b对应的交换节点303b上重新配置第二流表,其中,第二流表包含至少一个新流表项,新流表项包括第一数据流的特征信息、入端口和出端口,其中,出端口配置为第三服务节点对应的交换节点的端口。
若第一数据流的变更的后续处理动作指示丢弃第一数据流的后续数据包,则
控制器302在第一服务节点301a对应的交换节点303a或者第二服务节点301b对应的交换节点303b上重新配置第二流表,其中第二流表指示丢弃第一数据流的后续数据包。
可选地,控制器302接收第一服务节点301a发送的上报信息之前,根据 业务链,确定该业务链上的数据流的转发规则,其中,上述M个服务节点对应N个交换节点,第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,N为大于等于1的自然数;
在每个交换节点上配置每个交换节点对应的第一流表,其中,每个交换节点被配置的第一流表用于指示每个交换节点依照第一转发规则转发该业务链上的数据流。
可选地,控制器302在第一服务节点301a对应的交换节点303a或者第二服务节点301b对应的交换节点303b上重新配置第二流表之后,
配置第一服务节点301a对应的交换节点303a或者第二服务节点301b对应的交换节点303b上的流表的优先级,其中,第二流表的优先级高于第一流表。这样,可使得第一数据流的数据包优先按照第二流表进行转发,当第二流表不匹配时,按照原先的第一流表转发,既能够提高数据包转发效率,又能够保证在第二流表不匹配的情况下,仍能够转发第一数据流的数据包。
可选地,第一服务节点301a在向控制器302发送上述上报信息时,可同时携带该业务链的业务链标识,以标识该业务链。
可选地,业务链标识可为业务链的序号,比如:一定位数的整数;也可为业务链的名称,或者是该业务链上的按序排列的各服务节点的标识等,只要能够将一个业务链和其他业务链区分开即可。
控制器302配置交换节点303a或交换节点303b执行上述变更的后续处理动作的一个具体示例可参见后面的示例一。
可选地,若后续处理动指示丢弃第一数据流的后续数据包,则控制器302在收到第一服务节点301a发送的上述上报信息后。可配置该业务链上的第一个服务节点对应的交换节点:丢弃第一数据流的后续数据包。
这样做的一个好处是,若一个业务链上的任何一个服务节点确定需要丢弃一个数据流的数据包时,该数据流的后续数据包进入该业务链的第一个服务节点连接的交换节点时,即被该交换节点丢弃,进一步减轻了后续交换节点和服务节点的处理负荷。
仍以图2中的业务链1和业务链2上的数据流为例,如图4所示,若服务节点c1判定要丢弃业务链1上的数据流A的后续数据包,则向控制器发送上报信息,指示丢弃数据流A的后续数据包;控制器通知该业务链1上的第一个服务节点b1连接的交换机1,丢弃数据流A的后续数据包。则与图2相比,数据流A的后续数据包不会再通过交换机2发给服务节点c1、e1。
若服务节点a1判定,业务链2上的数据流B直接转发至业务链2上的下一个服务节点d1,则向控制器发送上报信息,指示将业务流B的后续数据包直接转发至业务链2上的下一个服务节点d1。则与图2相比,数据流B的后续数据包不会再发给服务节点a1处理,而是直接通过交换机2发给服务节点d1。
可选地,控制器302预先开放给第一服务节点301a配置接口,第一服务节点301a可通过该配置接口将上述上报信息发给控制器302。
可选地,该配置接口的信息包括:控制器302的地址和端口号。可选地,第一服务节点301可从控制器302处获得该配置接口的地址和端口号,比如:从控制器302发送的控制消息中获取该配置接口的地址和端口号;也可通过操作维护(Operation&Maintenance,OM)的方式获取该配置接口的地址和端口号。
示例一
示例一给出了本发明实施例中,控制器配置交换节点执行处理动作的一个具体例子。这里,以配置第一服务节点301a对应的交换节点303a为例,配置第二服务节点301b对应的交换节点303b的原理相同,不再赘述。
如图5所示,第一服务节点301a与交换节点303a(比如:虚拟交换机)相连。对于业务链标识为1的业务链上的数据流,该业务链标识为1的业务链对应的转发规则为第一转发规则,表示对应于所述业务链1的同一数据流需要根据所属第一转发规则进行转发。该业务链1对应N个交换节点,其中本实施例中介绍的交换节点303a上的配置的属于第一转发规则的规则为:从端口102流入交换节点,由端口101发送至服务节点,被服务节点处理后, 由端口101流入交换节点,最后从端口103发往下一个目的地。
此时,交换节点303a中设置的第一流表应有如下逻辑:
Inport=102,chain_id=1,action=(output:101);
Inport=101,chain_id=1,action=(output:103)。
其中,上述第一流表的逻辑中第一行表示:对输入端口为102、业务链标识为1的数据流,执行的处理动作是从端口101输出;
上述第一流表的逻辑中第二行表示:对输入端口为101、业务链标识为1的数据流,执行的处理动作是从端口103输出。
需要说明的是,对于不同类型和型号的交换节点,上述逻辑的表述方式各异,这里以一种方式为例,其他方式原理类似,在此不再赘述。
另需要说明的是,该业务链1涉及的每个交换节点上都配置有第一流表,每个交换节点上配置的第一流表的逻辑与以上例子中所介绍的交换节点303a中设置的第一流表类似,使得每个交换节点依照所述业务链标识为1的业务链确定的第一转发规则转发所述同一组数据流中的每个数据流。其它交换节点上配置的第一流表在此不再详述。
当第一服务节点301a判定,业务链标识1所标识的业务链中,第一数据流的特征信息为五元组(srcIP:1.1.1.1,dstIP:2.2.2.2,proto:TCP,srcPort:6666,dstPort:80),即源IP地址为1.1.1.1,目的IP地址为2.2.2.2、协议类型为传输控制协议(Transmission Control Protocol,TCP)、源端口号为6666,目的端口号为80的数据流可以直接通过,即该第一数据流可以直接发给业务链1上的下一个服务节点,则第一服务节点301a向控制器302发送上报信息,所述上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,以使得控制器302根据所述上报信息配置新的流表,例如重新配置后的交换节点303a中第二流表逻辑如下:
Inport=102,chain_id=1,srcIP=1.1.1.1,dstIP=2.2.2.2,proto=TCP,srcPort=6666,dstPort=80,action=(output:103);
Inport=102,chain_id=1,action=(output:101);
Inport=101,chain_id=1,action=(output:103)。
其中,上述第二流表逻辑中第一行表示:对输入端口为102、业务链表示为1的业务链上的,源IP地址为1.1.1.1、目的IP地址为2.2.2.2、协议类型为传输控制协议(Transmission Control Protocol,TCP)、源端口号为6666,目的端口号为80的数据流,执行的动作是从端口103输出;
上述第二流表逻辑中第二行表示:对输入端口为102、业务链标识为1的,上述五元组所标识的数据流之外的其他数据流,执行的处理动作是从端口101输出;
上述第二流表逻辑中第三行表示:对输入端口为101、业务链标识为1的、上述五元组所标识的数据流之外的其他数据流的数据流,执行的处理动作是从端口103输出。
通过重新对交换节点303a下发第二流表,使得上述五元组标识的第一数据流从交换机303a的端口102输入后,直接从交换节点303a的端口103输出,无需第一服务节点301a的处理。
另外,上述示例以在交换节点303a重新配置第二流表为例,在其他的实施例中还可以重配所述第一服务节点301a在所述业务链1上的前一个服务节点,本实施例不再赘述。
进一步,在所述第一服务节点301a对应的交换节点或者所述第一服务节点301a在所述业务链1上的前一个服务节点对应的交换节点上重新配置第二流表之后,还包括:
配置所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上的流表的优先级,其中,所述第二流表的优先级高于所述第一流表。
基于同一发明构思,本发明实施例还提供了服务节点、控制器和数据包转发方法,这些设备和方法解决问题的原理与本发明实施例提供的数据通信系统类似,其实施可参考该系统的实施,重复之处不再赘述。
图6为本发明实施例提供的第一种控制器的结构示意图。如图6所示,该控制器包括:
接收模块601,用于接收M个服务节点中的第一服务节点发送的上报信息,上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,同一组数据流对应一条业务链,业务链指示同一组数据流中的每个数据流需要经过的M个服务节点组成的序列,M为大于等于1的自然数;
处理模块602,用于根据上报信息,在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,第二服务节点为第一服务节点在业务链上的前一个服务节点,第二流表用于指示第一服务节点对应的交换节点或者第二服务节点对应的交换节点依照第一数据流的变更的后续处理动作转发第一数据流的后续数据包。
可选地,处理模块602还用于:在接收模块601接收第一服务节点发送的上报信息之前,根据业务链,确定同一组数据流的转发规则,其中,M个服务节点对应N个交换节点,第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,N为大于等于1的自然数;
在每个交换节点上配置每个交换节点对应的第一流表,其中,每个交换节点被配置的第一流表用于指示每个交换节点依照第一转发规则转发同一组数据流中的每个数据流。
可选地,处理模块602还用于:在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,
配置第一服务节点对应的交换节点或者第二服务节点对应的交换节点上的流表的优先级,其中,第二流表的优先级高于第一流表。
可选地,接收模块601具体用于:
接收第一服务节点发送的第一数据流的特征信息以及第一数据流的变更的后续处理动作指示。
可选地,第一数据流的变更的后续处理动作指示为:第一数据流的后续数据包绕过第一服务节点;
处理模块602具体用于:
根据第一数据流的特征信息确定业务链,从业务链上确定第三服务节点, 第三服务节点为第一服务节点在业务链上的后一个服务节点;
在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,第二流表包含至少一个新流表项,新流表项包括第一数据流的特征信息、入端口和出端口,其中,出端口配置为第三服务节点对应的交换节点的端口。
可选地,第一数据流的变更的后续处理动作指示丢弃第一数据流的后续数据包;
处理模块602具体用于:在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中第二流表指示丢弃第一数据流的后续数据包。
图7为本发明实施例提供的第二种控制器的结构示意图。如图7所示,该控制器包括:
接收器701,用于接收M个服务节点中的第一服务节点发送的上报信息,上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,同一组数据流对应一条业务链,业务链指示同一组数据流中的每个数据流需要经过的M个服务节点组成的序列,M为大于等于1的自然数;
处理器702,用于根据上报信息,在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,第二服务节点为第一服务节点在业务链上的前一个服务节点,第二流表用于指示第一服务节点对应的交换节点或者第二服务节点对应的交换节点依照第一数据流的变更的后续处理动作转发第一数据流的后续数据包。
其中,在图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器702代表的一个或多个处理器和存储器703代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。接收器701可以是多个元件,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备, 用户接口704还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
可选地,处理器702还用于:在接收器701接收第一服务节点发送的上报信息之前,
根据业务链,确定同一组数据流的转发规则,其中,M个服务节点对应N个交换节点,第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,N为大于等于1的自然数;
在每个交换节点上配置每个交换节点对应的第一流表,其中,每个交换节点被配置的第一流表用于指示每个交换节点依照第一转发规则转发同一组数据流中的每个数据流。
可选地,处理器702还用于:在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,
配置第一服务节点对应的交换节点或者第二服务节点对应的交换节点上的流表的优先级,其中,第二流表的优先级高于第一流表。
可选地,接收器701具体用于:
接收第一服务节点发送的第一数据流的特征信息以及第一数据流的变更的后续处理动作指示。
可选地,第一数据流的变更的后续处理动作指示为:第一数据流的后续数据包绕过第一服务节点;
处理器702具体用于:
根据第一数据流的特征信息确定业务链,从业务链上确定第三服务节点,第三服务节点为第一服务节点在业务链上的后一个服务节点;
在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,第二流表包含至少一个新流表项,新流表项包括第一数据流的特征信息、入端口和出端口,其中,出端口配置为第三服务节点对应的交换节点的端口。
可选地,第一数据流的变更的后续处理动作指示丢弃第一数据流的后续 数据包;
处理器702具体用于:在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中第二流表指示丢弃第一数据流的后续数据包。
图8为本发明实施例提供的第一种服务节点的结构示意图。如图8所示,该服务节点包括:
接收模块801,用于接收第一数据流的数据包并进行处理;
发送模块802,用于在确定对第一数据流的后续处理动作发生变更时,向控制器发送上报信息,上报信息用于指示第一数据流的变更的后续处理动作。
可选地,上报信息包括第一数据流的特征信息以及第一数据流的变更的后续处理动作指示。
可选地,第一数据流的变更的后续处理动作指示为:第一数据流的后续数据包绕过第一服务节点或者丢弃第一数据流的后续数据包。
图9为本发明实施例提供的第二种服务节点的结构示意图。如图9所示,该服务节点包括:
接收器901,用于接收第一数据流的数据包并进行处理;
发射器902,用于在确定对第一数据流的后续处理动作发生变更时,向控制器发送上报信息,上报信息用于指示第一数据流的变更的后续处理动作。
其中,在图9中,总线架构可以包括任意数量的互联的总线和桥,将接收器901、发射器902,以及诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。针对不同的用户设备,用户接口903还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
可选地,上报信息包括第一数据流的特征信息以及第一数据流的变更的后续处理动作指示。
可选地,第一数据流的变更的后续处理动作指示为:第一数据流的后续 数据包绕过第一服务节点或者丢弃第一数据流的后续数据包。
图10为本发明实施例提供的第一种数据包转发方法的流程图。如图10所示,该方法包括如下步骤:
S1001:接收M个服务节点中的第一服务节点发送的上报信息,上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,同一组数据流对应一条业务链,业务链指示同一组数据流中的每个数据流需要经过的M个服务节点组成的序列,M为大于等于1的自然数;
S1002:根据上报信息,在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,第二服务节点为第一服务节点在业务链上的前一个服务节点,第二流表用于指示第一服务节点对应的交换节点或者第二服务节点对应的交换节点依照第一数据流的变更的后续处理动作转发第一数据流的后续数据包。
可选地,步骤S1001接收第一服务节点发送的上报信息之前,还包括:
根据业务链,确定同一组数据流的转发规则,其中,M个服务节点对应N个交换节点,第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,N为大于等于1的自然数;
在每个交换节点上配置每个交换节点对应的第一流表,其中,每个交换节点被配置的第一流表用于指示每个交换节点依照第一转发规则转发同一组数据流中的每个数据流。
可选地,在步骤S1002第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,还包括:
配置第一服务节点对应的交换节点或者第二服务节点对应的交换节点上的流表的优先级,其中,第二流表的优先级高于第一流表。
可选地,步骤S1001中,接收M个服务节点中的第一服务节点发送的上报信息包括:
接收第一服务节点发送的第一数据流的特征信息以及第一数据流的变更的后续处理动作指示。
可选地,第一数据流的变更的后续处理动作指示为:第一数据流的后续数据包绕过第一服务节点;
步骤S1002中,根据上报信息,在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,包括:
根据第一数据流的特征信息确定业务链,从业务链上确定第三服务节点,第三服务节点为第一服务节点在业务链上的后一个服务节点;
在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,第二流表包含至少一个新流表项,新流表项包括第一数据流的特征信息、入端口和出端口,其中,出端口配置为第三服务节点对应的交换节点的端口。
可选地,第一数据流的变更的后续处理动作指示丢弃第一数据流的后续数据包;
步骤S1002中,根据上报信息,在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表包括:
在第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中第二流表指示丢弃第一数据流的后续数据包。
图11为本发明实施例提供的第二种数据包转发方法的流程图。如图11所示,该方法包括如下步骤:
S1101:接收第一数据流的数据包并进行处理;
S1102:在确定对第一数据流的后续处理动作发生变更时,向控制器发送上报信息,上报信息用于指示第一数据流的变更的后续处理动作。
可选地,上报信息包括第一数据流的特征信息以及第一数据流的变更的后续处理动作指示。
可选地,第一数据流的变更的后续处理动作指示为:第一数据流的后续数据包绕过第一服务节点或者丢弃第一数据流的后续数据包。
综上,本发明实施例提供控制器、服务节点和数据包转发方法,其中,控制器根据接收的M个服务节点中的第一服务节点发送的上报信息,在第一 服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,第二服务节点为第一服务节点在业务链上的前一个服务节点,第二流表用于指示第一服务节点对应的交换节点或者第二服务节点对应的交换节点依照第一数据流的变更的后续处理动作转发第一数据流的后续数据包。
由于指示交换节点对第一数据流的后续数据包的处理动作,第一数据流的后续数据包就无需经过该第一服务节点的处理,而直接由第一服务节点对应的交换节点或第二服务节点对应的交换节点处理,该数据流的数据包处理效率得以提高,同时也降低了第一服务节点的处理负荷。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (27)

  1. 一种控制器,其特征在于,包括:
    接收模块,用于接收M个服务节点中的第一服务节点发送的上报信息,所述上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,所述同一组数据流对应一条业务链,所述业务链指示所述同一组数据流中的每个数据流需要经过的所述M个服务节点组成的序列,所述M为大于等于1的自然数;
    处理模块,用于根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,所述第二服务节点为所述第一服务节点在所述业务链上的前一个服务节点,所述第二流表用于指示所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点依照所述第一数据流的变更的后续处理动作转发所述第一数据流的后续数据包。
  2. 如权利要求1所述的控制器,其特征在于,所述处理模块还用于:在所述接收模块接收第一服务节点发送的上报信息之前,
    根据所述业务链,确定所述同一组数据流的转发规则,其中,所述M个服务节点对应N个交换节点,所述第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,所述N为大于等于1的自然数;
    在所述每个交换节点上配置所述每个交换节点对应的第一流表,其中,所述每个交换节点被配置的第一流表用于指示所述每个交换节点依照所述第一转发规则转发所述同一组数据流中的每个数据流。
  3. 如权利要求2所述的控制器,其特征在于,所述处理模块还用于:在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,
    配置所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上的流表的优先级,其中,所述第二流表的优先级高于所述第一流表。
  4. 如权利要求1~3任意一项所述的控制器,其特征在于,所述接收模块具体用于:
    接收所述第一服务节点发送的所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
  5. 如权利要求4所述的控制器,其特征在于,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点;
    所述处理模块具体用于:
    根据所述第一数据流的特征信息确定所述业务链,从所述业务链上确定第三服务节点,所述第三服务节点为所述第一服务节点在所述业务链上的后一个服务节点;
    在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中,所述第二流表包含至少一个新流表项,所述新流表项包括所述第一数据流的特征信息、入端口和出端口,其中,所述出端口配置为所述第三服务节点对应的交换节点的端口。
  6. 如权利要求4所述的控制器,其特征在于,
    所述第一数据流的变更的后续处理动作指示丢弃所述第一数据流的后续数据包;
    所述处理模块具体用于:在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中所述第二流表指示丢弃所述第一数据流的后续数据包。
  7. 一种服务节点,其特征在于,包括:
    接收模块,用于接收第一数据流的数据包并进行处理;
    发送模块,用于在确定对所述第一数据流的后续处理动作发生变更时,向控制器发送上报信息,所述上报信息用于指示所述第一数据流的变更的后续处理动作。
  8. 如权利要求7所述的服务节点,其特征在于,所述上报信息包括所述 第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
  9. 如权利要求7或8所述的服务节点,其特征在于,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点或者丢弃所述第一数据流的后续数据包。
  10. 一种数据包转发方法,其特征在于,包括:
    接收M个服务节点中的第一服务节点发送的上报信息,所述上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,所述同一组数据流对应一条业务链,所述业务链指示所述同一组数据流中的每个数据流需要经过的所述M个服务节点组成的序列,所述M为大于等于1的自然数;
    根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,所述第二服务节点为所述第一服务节点在所述业务链上的前一个服务节点,所述第二流表用于指示所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点依照所述第一数据流的变更的后续处理动作转发所述第一数据流的后续数据包。
  11. 如权利要求10所述的方法,其特征在于,所述接收第一服务节点发送的上报信息之前,还包括:
    根据所述业务链,确定所述同一组数据流的转发规则,其中,所述M个服务节点对应N个交换节点,所述第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,所述N为大于等于1的自然数;
    在所述每个交换节点上配置所述每个交换节点对应的第一流表,其中,所述每个交换节点被配置的第一流表用于指示所述每个交换节点依照所述第一转发规则转发所述同一组数据流中的每个数据流。
  12. 如权利要求11所述的方法,其特征在于,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,还包括:
    配置所述第一服务节点对应的交换节点或者所述第二服务节点对应的交 换节点上的流表的优先级,其中,所述第二流表的优先级高于所述第一流表。
  13. 如权利要求10-12任意一项所述的方法,其特征在于,接收所述M个服务节点中的第一服务节点发送的上报信息包括:
    接收所述第一服务节点发送的所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
  14. 如权利要求13所述的方法,其特征在于,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点;
    根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表包括:
    根据所述第一数据流的特征信息确定所述业务链,从所述业务链上确定第三服务节点,所述第三服务节点为所述第一服务节点在所述业务链上的后一个服务节点;
    在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中,所述第二流表包含至少一个新流表项,所述新流表项包括所述第一数据流的特征信息、入端口和出端口,其中,所述出端口配置为所述第三服务节点对应的交换节点的端口。
  15. 如权利要求13所述的方法,其特征在于,所述第一数据流的变更的后续处理动作指示丢弃所述第一数据流的后续数据包;
    根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表包括:
    在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中所述第二流表指示丢弃所述第一数据流的后续数据包。
  16. 一种数据包转发方法,其特征在于,包括:
    接收第一数据流的数据包并进行处理;
    在确定对所述第一数据流的后续处理动作发生变更时,向控制器发送上报 信息,所述上报信息用于指示所述第一数据流的变更的后续处理动作。
  17. 如权利要求16所述的方法,其特征在于,所述上报信息包括所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
  18. 如权利要求16或17所述的方法,其特征在于,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点或者丢弃所述第一数据流的后续数据包。
  19. 一种控制器,其特征在于,包括:
    接收器,用于接收M个服务节点中的第一服务节点发送的上报信息,所述上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,所述同一组数据流对应一条业务链,所述业务链指示所述同一组数据流中的每个数据流需要经过的所述M个服务节点组成的序列,所述M为大于等于1的自然数;
    处理器,用于根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,所述第二服务节点为所述第一服务节点在所述业务链上的前一个服务节点,所述第二流表用于指示所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点依照所述第一数据流的变更的后续处理动作转发所述第一数据流的后续数据包。
  20. 如权利要求19所述的控制器,其特征在于,所述处理器还用于:在所述接收器接收第一服务节点发送的上报信息之前,
    根据所述业务链,确定所述同一组数据流的转发规则,其中,所述M个服务节点对应N个交换节点,所述第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,所述N为大于等于1的自然数;
    在所述每个交换节点上配置所述每个交换节点对应的第一流表,其中,所述每个交换节点被配置的第一流表用于指示所述每个交换节点依照所述第一转发规则转发所述同一组数据流中的每个数据流。
  21. 如权利要求20所述的控制器,其特征在于,所述处理器还用于:在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,
    配置所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上的流表的优先级,其中,所述第二流表的优先级高于所述第一流表。
  22. 如权利要求19~21任意一项所述的控制器,其特征在于,所述接收器具体用于:
    接收所述第一服务节点发送的所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
  23. 如权利要求22所述的控制器,其特征在于,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点;
    所述处理器具体用于:
    根据所述第一数据流的特征信息确定所述业务链,从所述业务链上确定第三服务节点,所述第三服务节点为所述第一服务节点在所述业务链上的后一个服务节点;
    在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中,所述第二流表包含至少一个新流表项,所述新流表项包括所述第一数据流的特征信息、入端口和出端口,其中,所述出端口配置为所述第三服务节点对应的交换节点的端口。
  24. 如权利要求22所述的控制器,其特征在于,
    所述第一数据流的变更的后续处理动作指示丢弃所述第一数据流的后续数据包;
    所述处理器具体用于:在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中所述第二流表指示丢弃所述第一数据流的后续数据包。
  25. 一种服务节点,其特征在于,包括:
    接收器,用于接收第一数据流的数据包并进行处理;
    发射器,用于在确定对所述第一数据流的后续处理动作发生变更时,向控制器发送上报信息,所述上报信息用于指示所述第一数据流的变更的后续处理动作。
  26. 如权利要求25所述的服务节点,其特征在于,所述上报信息包括所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
  27. 如权利要求25或26所述的服务节点,其特征在于,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点或者丢弃所述第一数据流的后续数据包。
PCT/CN2014/090707 2014-11-10 2014-11-10 控制器、服务节点和数据包转发方法 WO2016074126A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2014/090707 WO2016074126A1 (zh) 2014-11-10 2014-11-10 控制器、服务节点和数据包转发方法
CN201480037491.5A CN105519058B (zh) 2014-11-10 2014-11-10 控制器、服务节点和数据包转发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/090707 WO2016074126A1 (zh) 2014-11-10 2014-11-10 控制器、服务节点和数据包转发方法

Publications (1)

Publication Number Publication Date
WO2016074126A1 true WO2016074126A1 (zh) 2016-05-19

Family

ID=55725069

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/090707 WO2016074126A1 (zh) 2014-11-10 2014-11-10 控制器、服务节点和数据包转发方法

Country Status (2)

Country Link
CN (1) CN105519058B (zh)
WO (1) WO2016074126A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11563640B2 (en) 2018-12-13 2023-01-24 At&T Intellectual Property I, L.P. Network data extraction parser-model in SDN

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106713026A (zh) * 2016-12-15 2017-05-24 锐捷网络股份有限公司 业务链拓扑结构、业务链设置方法和控制器
CN108289007B (zh) * 2017-01-10 2022-04-15 中兴通讯股份有限公司 数据包传输方法及装置
CN111385212B (zh) * 2018-12-29 2021-08-31 华为技术有限公司 数据传输技术及神经网络系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101505296A (zh) * 2008-02-05 2009-08-12 华为技术有限公司 隧道业务数据流的控制方法和装置
CN101800632A (zh) * 2009-02-09 2010-08-11 中兴通讯股份有限公司 用户数据报协议传输模式下丢包补偿方法与装置
CN103037341A (zh) * 2012-12-06 2013-04-10 惠州Tcl移动通信有限公司 播放、转换流式媒体的方法及移动终端、服务器
US20130148547A1 (en) * 2011-12-13 2013-06-13 John M. Page Method and system for collecting topology information

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546363A (zh) * 2010-12-21 2012-07-04 深圳市恒扬科技有限公司 一种报文处理方法、装置及设备
CN102801558B (zh) * 2012-07-30 2016-03-30 中国联合网络通信集团有限公司 基于分组传送网的链路保护方法、节点和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101505296A (zh) * 2008-02-05 2009-08-12 华为技术有限公司 隧道业务数据流的控制方法和装置
CN101800632A (zh) * 2009-02-09 2010-08-11 中兴通讯股份有限公司 用户数据报协议传输模式下丢包补偿方法与装置
US20130148547A1 (en) * 2011-12-13 2013-06-13 John M. Page Method and system for collecting topology information
CN103037341A (zh) * 2012-12-06 2013-04-10 惠州Tcl移动通信有限公司 播放、转换流式媒体的方法及移动终端、服务器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11563640B2 (en) 2018-12-13 2023-01-24 At&T Intellectual Property I, L.P. Network data extraction parser-model in SDN

Also Published As

Publication number Publication date
CN105519058A (zh) 2016-04-20
CN105519058B (zh) 2020-07-21

Similar Documents

Publication Publication Date Title
CN107819663B (zh) 一种实现虚拟网络功能服务链的方法和装置
US7672227B2 (en) Loop prevention system and method in a stackable ethernet switch system
US10805390B2 (en) Automated mirroring and remote switch port analyzer (RSPAN) functions using fabric attach (FA) signaling
US9736057B2 (en) Forwarding packet fragments using L4-L7 headers without reassembly in a software-defined networking (SDN) system
EP2449735B1 (en) Inter-node link aggregation method and node
TWI548239B (zh) OpenFlow交換器、封包交換方法、SDN控制器及資料流控制方法
US9584415B2 (en) Devices, systems and methods for service chains
CN103428094A (zh) 开放流OpenFlow系统中的报文转发方法及装置
EP2911355B1 (en) Method and device for flow path negotiation in link aggregation group
CN108471383A (zh) 报文转发方法、装置和系统
EP3200398B1 (en) Automated mirroring and remote switch port analyzer (rspan)/encapsulated remote switch port analyzer (erspan) functions using fabric attach (fa) signaling
CN108289061B (zh) 基于sdn的业务链拓扑系统
CN105656796A (zh) 实现虚拟扩展局域网三层转发的方法和装置
WO2018149338A1 (zh) 基于sdn的远端流镜像控制方法、实现方法及相关设备
US10178017B2 (en) Method and control node for handling data packets
WO2016074126A1 (zh) 控制器、服务节点和数据包转发方法
CN102158422B (zh) 一种用于二层环网中的报文转发的方法和设备
US8675669B2 (en) Policy homomorphic network extension
JPWO2014069502A1 (ja) 通信システム、経路情報交換装置、通信ノード、経路情報の転送方法及びプログラム
CN103346950A (zh) 一种机架式无线控制器用户业务板间负载均摊方法及装置
US20140269686A1 (en) Virtual router and switch
US9270577B2 (en) Selection of one of first and second links between first and second network devices
CN112532544B (zh) 一种处理报文的方法和交换设备
Wu et al. Middlebox resources management using openflow
CN117221201A (zh) 报文发送的方法、网络设备及系统

Legal Events

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

Ref document number: 14905945

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14905945

Country of ref document: EP

Kind code of ref document: A1