The present disclosure relates to computer networks and more particularly to Software Defined Networking.
Network operators are becoming increasingly interested in extracting network analytics information from physical or virtual instances of network devices. Network analytics information can be in the form of NetFlow or Internet Protocol Information Export (IPFIX) records which contains information on traffic flows traversing the physical or virtual network element. Examining and recording information about the application payload may yield another form of network analytics information useful to an operator.
Provisioning network analytics processing in a large network requires manual configuration on potentially each interface of each physical or virtual network element. Additional manual configuration to select and perform network analytics processing for a subset of traffic would also be required. In cases where targeted network analytics processing needs to be quickly invoked, the delay in manual operator configuration could impact the overall health of the network.
The problem of manual configuration is exacerbated by the industry's move towards network virtualization. A potentially very large number of discrete virtual networks are overlayed onto a physical network infrastructure. Each virtual network could be composed of hundreds, thousands or tens of thousands of virtual elements, where an element can be a virtualized instance of a switch, router, appliance or host. These virtual elements can even be software instances of certain network functions residing within network or computing devices. The number of these virtual element instances can be very large. The location of these virtual elements may change rapidly. Therefore, manual configuration of potentially hundreds or thousands of theses virtual elements is not practical, if not impossible.
An architecture and related methods are provided for programming network analytics processing in virtual and physical network devices, useful for Software Defined Networking (SDN). A controller, e.g., a so-called SDN controller, is configured to identify a control-plane or data-plane flow originating, terminating or transiting a physical or virtual network element. The controller generates one or more network analytics processing actions to be performed by the physical or virtual network element based on inspection of traffic by the physical or virtual network element. The controller forms or generates an inspect/apply-action message containing information identifying the control-plane or data-plane flow for inspection and the one or more network analytics processing actions to be performed. The inspect/apply-action message is sent to the physical or virtual network element. The physical or virtual network element receives the inspect/apply-action message, and inspects network traffic originating, terminating or transiting the physical or virtual network element in accordance with information contained in the inspect/apply-action message. The physical or virtual network element performs an action for traffic that satisfies the information contained in the inspect/apply-action message.
An underlying paradigm in Software Defined Networking (SDN) is the programmatic control of physical or virtual packet switching devices via Inspect/Apply-Action Application Programming Interfaces (APIs). This API allows an application to program the packet processing rules in the physical or virtual device. Each rule contains a list of Inspect (classification) rules that identify a packet stream (or flow) and a list of one (or more) Apply actions that the physical or virtual packet switching device will execute upon receipt of the identified packet stream. The Inspect rules may include simple Internet Protocol (IP)-tuple matches, L2/L310-tuple matches, or application-defined signatures that define match criteria not only for packet header fields, but also for the packet payload. An Apply-Action typically involves a forwarding action such as switching the packets of the stream to an outbound port but may also include some form of packet manipulation (e.g. changing a field in the packet header) or setting of Quality of Service (QoS).
Current network analytics processing requires manual configuration. Targeted analytics processing requires additional manual configuration, may take too long and there is the possibility of error. Network virtualization makes the problem even more difficult to solve, as there can be a very large number of virtual network elements. In addition, virtual instances of these elements may move from one location to another very rapidly.
The typical SDN Inspect/Apply-Action designates a forwarding (data-plane) behavior that is programmatically installed on a physical network device (e.g., packet switching or routing device). The system configuration presented herein is different in that it extends the SDN Inspect/Apply-Action to physical or virtual elements (hosts or packet switching entities) to in turn:
Referring to
The NAP agent 30 resides on the physical or virtual elements 20 and is responsible for parsing the NAP Inspect/Apply-Action message 60 received from the NAPC 40 and applying the message contents to actions on which the physical or virtual element can act, e.g., based on data packets 70 that flow through the network elements 20.
Turning now to
The NAP agent 30 receives the NAP Inspect/Apply-Action message 60, parses it and installs Inspect function 32 and NAP action function 34 in network element(s) 20. Data packets 70 passing thru, originating from or terminating in a network element 20 are inspected according to the Inspect function 32. If a MATCH is found (e.g., based on a tuple of information in the packet flow), then one or more network analytics processing functions are performed according to the NAP action 34. In all cases, the data packets 70 continue to be forwarded by the network element.
In one example application of these techniques, consider a network operations center (NOC) that is responsible for managing a large cloud network composed of virtual and physical network elements. A problem is detected in one of the virtual networks requiring the operator to rapidly re-configure several hundred virtual elements (a mix of virtual hosts and virtual switches) to activate a NAP action involving inspection of Transport Control Protocol (TCP) flows sourced by customer X. The results of the inspection should be sent to a special server located at server Y.
The NAPC can immediately handle this process by transmitting the following message to each NAP agent running in each of the virtual network elements:
NAP Inspect/Apply-Action:
The NAP agent 30 contained in each of the virtual network elements receives the message. It then ensures that the virtual network element executes the desired behavior or action.
In another example, the NAPC 40 can be tied into a customer service database so that when customer packets arrive on the network, the NAPC 40 can signal one or more physical or virtual elements to generate network analytics information based on the customer traffic.
Other example use cases include NOC-initiated customer analytics and flow accounting in cloud networks. NOC-initiated customer analytics may involve programming customer-specific network analytics processing on specific customer routers and other equipment. In flow accounting in cloud networks, flow-specific statistics are programmed for collection in a large number of virtual network devices (e.g., routers, appliances) in a cloud environment.
Reference is now made to
Turning to
Turning now to
The memory 26 in
In summary, a system and corresponding techniques are presented herein to programmatically activate network analytics processing using a simple Inspect/Apply-Action message construct on physical or virtual network elements. These techniques allow for dynamic programmatic configuration of network analytics processing on physical or virtual elements. Different types of applications (or services), such as network management and customer services, can interface to a NAPC for the purpose of programming network analytics processing functions on physical or virtual elements. These techniques are especially suited for automating network analytics processing configuration on a large number of rapidly appearing, moving and disappearing virtual elements typically seen in a virtual network environment.
Thus, a method is provided comprising: identifying a control-plane or data-plane flow originating, terminating or transiting a physical or virtual network element; generating one or more network analytics processing actions to be performed by the physical or virtual network element based on inspection of traffic by the physical or virtual network element; forming an inspect/apply-action message containing information identifying the control-plane or data-plane flow for inspection and the one or more network analytics processing actions to be performed; and sending the inspect/apply-action message to the physical or virtual network element.
Similarly, in software form, one or more computer readable storage media are provided, encoded with software comprising computer executable instructions, and when the software is executed (e.g., by a processor) it is operable to: identify a control-plane or data-plane flow originating, terminating or transiting a physical or virtual network element; generate one or more network analytics processing actions to be performed by the physical or virtual network element based on inspection of traffic by the physical or virtual network element; generate an inspect/apply-action message containing information identifying the control-plane or data-plane flow for inspection and the one or more network analytics processing actions to be performed; and cause the inspect/apply-action message to be sent to the physical or virtual network element.
In addition, an apparatus is provided comprising: a network interface unit configured to enable communications over a network; a memory; a processor coupled to the network interface unit and the memory, the processor being configured to: identify a control-plane or data-plane flow originating, terminating or transiting a physical or virtual network element; generate one or more network analytics processing actions to be performed by the physical or virtual network element based on inspection of traffic by the physical or virtual network element; generate an inspect/apply-action message containing information identifying the control-plane or data-plane flow for inspection and the one or more network analytics processing actions to be performed; and cause the inspect/apply-action message to be sent, via the network interface device, to the physical or virtual network element.
The above description is intended by way of example only.