Packet classification for network routing
Techniques for packet classification for network routing are disclosed. In some embodiments, packet classification for network routing includes receiving packets associated with a new flow at a security controller from a network device, in which the network device performs packet forwarding; classifying the flow; and determining an action for the flow based on a policy (e.g., a security policy). In some embodiments, the network device is a Software Defined Network (SDN) network device (e.g., a packet forwarding device that supports the OpenFlow protocol or another protocol).
1. A system, comprising:
a processor configured to:
receive packets associated with a new flow at a security controller from a network device, wherein the network device performs packet forwarding;
classify the flow based on an application determined to be associated with the flow, comprising to:
determine a type of traffic related to the flow, the type of traffic including HTTP traffic, HTTPS traffic, FTP traffic, SSL traffic, SSH traffic, DNS requests, unclassified application traffic, or any combination thereof;
assemble out of order packets of the flow into a correct order to extract information from the ordered packets of the flow; and
perform application signature matching based on the type of traffic to determine the application associated with the flow;
determine an action for the flow based on a policy associated with the application; and
instruct the network device to perform the action for the flow, wherein the action is to drop the flow or ignore the flow; and
a memory coupled to the processor and configured to provide the processor with instructions.
2. The system recited in claim 1 , wherein the network device is a Software Defined Network (SDN) network device.
3. The system recited in claim 1 , wherein the policy is a security policy.
4. The system recited in claim 1 , wherein the policy is a security policy that includes an allow or a block rule based on an application and a user.
5. The system recited in claim 1 , wherein the instructing of the network device to perform the action for the flow is based on an API mechanism.
6. The system recited in claim 1 , wherein instructing of the network device to perform the action for the flow is based on tagging a packet associated with the flow.
7. A method, comprising:
receiving packets associated with a new flow at a security controller from a network device, wherein the network device performs packet forwarding;
classifying the flow based on an application determined to be associated with the flow, comprising:
determining a type of traffic related to the flow, the type of traffic including HTTP traffic, HTTPS traffic, FTP traffic, SSL traffic, SSH traffic, DNS requests, unclassified application traffic, or any combination thereof;
assembling out of order packets of the flow into a correct order to extract information from the ordered packets of the flow; and
performing application signature matching based on the type of traffic to determine the application associated with the flow;
determining an action for the flow based on a policy associated with the application; and
instructing the network device to perform the action for the flow, wherein the action is to drop the flow or ignore the flow.
8. The method recited in claim 7 , wherein the network device is a Software Defined Network (SDN) network device.
9. The method recited in claim 7 , wherein the policy is a security policy.
10. The method recited in claim 7 , wherein the policy is a security policy that includes an allow or a block rule based on an application and a user.
11. The method recited in claim 7 , wherein the instructing of the network device to perform the action for the flow is based on an API mechanism.
12. The method recited in claim 7 , wherein instructing of the network device to perform the action for the flow is based on tagging a packet associated with the flow.
13. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
receiving packets associated with a new flow at a security controller from a network device, wherein the network device performs packet forwarding;
classifying the flow based on an application determined to be associated with the flow, comprising:
determining a type of traffic related to the flow, the type of traffic including HTTP traffic, HTTPS traffic, FTP traffic, SSL traffic, SSH traffic, DNS requests, unclassified application traffic, or any combination thereof;
assembling out of order packets of the flow into a correct order to extract information from the ordered packets of the flow; and
performing application signature matching based on the type of traffic to determine the application associated with the flow;
determining an action for the flow based on a policy associated with the application;
instructing the network device to perform the action for the flow, wherein the action is to drop the flow or ignore the flow.
14. The computer program product recited in claim 13 , wherein the network device is a Software Defined Network (SDN) network device.
15. The computer program product recited in claim 13 , wherein the policy is a security policy.
16. The computer program product recited in claim 13 , wherein the policy is a security policy that includes an allow or a block rule based on an application and a user.
17. The computer program product recited in claim 13 , wherein the instructing of the network device to perform the action for the flow is based on an API mechanism.
18. The computer program product recited in claim 13 , wherein instructing of the network device to perform the action for the flow is based on tagging a packet associated with the flow.