IP Library › Granted Patent US 8,270,413
Granted Patent B2
US 8,270,413 · App. 11/287,824 · Granted Sep 18, 2012

Method and apparatus for self-learning of VPNS from combination of unidirectional tunnels in MPLS/VPN networks

Assignee: Cisco Technology, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,270,413
App. No.
11/287,824
Granted
Sep 18, 2012
Kind
B2
Abstract

A technique is provided for implementing deep-packet inspection (DPI) services in a MPLS/VPN configured computer network. The technique employs a novel self-learning algorithm that analyzes data packets belonging to different unidirectional tunnels in the MPLS/VPN network and determines whether the analyzed data packets transport data in the same VPN. If so, the unidirectional tunnels containing the analyzed data packets are associated with a common layer-2 identification (L2ID) value. Unlike conventional flow-classification procedures, the inventive technique classifies a data packet by first associating the data packet with a L2ID value and then classifying the packet as belonging to a particular data flow based on a novel 6-tuple consisting of a conventional 5-tuple plus the packet's L2ID value. Because unidirectional tunnels corresponding to the same application data flow transport data packets having the same set of 6-tuple values, DPI services can apply application-level policies to classified data packets consistent with their 6-tuple flow classifications.

Claims (51)

1. A method comprising:

receiving a first data packet at a network device from a first unidirectional tunnel, the first data packet containing a first label stack that includes a virtual private network (VPN) label, a first destination address, and first protocol-specific information;

receiving a second data packet at the network device from a second unidirectional tunnel, the second unidirectional tunnel established in an opposite direction relative to the first unidirectional tunnel, the second data packet containing a second label stack that includes the VPN label, a second destination address, and second protocol-specific information;

determining whether the first and second unidirectional tunnels are established for use by the same application based on a comparison of the first and second data packets' contained first and second protocol-specific information;

in response to determining that the first and second unidirectional tunnels are established for use by the same application based on the comparison of the first and second data packets' contained first and second protocol-specific information, associating the first label stack and first destination address and the second label stack and second destination address both with a common layer-2 identification (L2ID) value, wherein the L2ID is different from the VPN label; and

updating one or more data structures at the network device used in classifying data packets to store the associations.

2. The method of claim 1 , further comprising:

associating the first and second unidirectional tunnels with a set of application-level policies; and

applying the set of application-level policies to data packets in the first and second unidirectional tunnels.

3. The method of claim 2 , further comprising:

using deep-packet inspection (DPI) services to apply the set of application-level policies to data packets in the first and second unidirectional tunnels.

4. The method of claim 1 , further comprising:

receiving a third data packet having a third label stack and a third destination address;

associating the third data packet with a corresponding L2ID value based on the third label stack and third destination address; and

classifying the third data packet as belonging to a particular data flow based on the L2ID value associated with the third data packet.

5. The method of claim 4 , further comprising:

generating a 5-tuple associated with the third data packet, the 5-tuple consisting of a protocol identifier, a source address, a destination address, a source port number and a destination port number stored in the third data packet;

combining the generated 5-tuple with the L2ID value associated with the third data packet, thereby creating a 6-tuple for the third data packet; and

using the 6-tuple to classify the third data packet as belonging to the particular data flow.

6. The method of claim 4 , further comprising:

applying, in response to classifying the third data packet as belonging to the particular data flow, a set of application-level policies to the third data packet, the set of application-level policies being associated with the particular data flow.

7. The method of claim 1 , wherein the computer network is a Multi-Protocol Label Switching/Virtual Private Network (MPLS/VPN) configured computer network.

8. The method of claim 1 , wherein the first data packet is a Transmission Control Protocol (TCP) SYN data packet and the second data packet is a TCP SYN/ACK data packet.

9. The method of claim 8 , wherein the first and second protocol-specification information are TCP sequence numbers.

10. A network node comprising:

means for receiving a first data packet from a first unidirectional tunnel, the first data packet containing a first label stack that includes a virtual private network (VPN) label, a first destination address, and first protocol-specific information;

means for receiving a second data packet from a second unidirectional tunnel, the second unidirectional tunnel established in an opposite direction relative to the first unidirectional tunnel, the second data packet containing a second label stack that includes the VPN label, a second destination address, and second protocol-specific information;

means for determining whether the first and second unidirectional tunnels are established for use by the same application based on a comparison of the first and second data packets' contained first and second protocol-specific information and for associating the first label stack and first destination address and the second label stack and second destination address both with a common layer-2 identification (L2ID) value, in response to a determination that the first and second unidirectional tunnels are established for use by the same application based on the comparison of the first and second data packets' contained first and second protocol-specific information, and for updating one or more data structures used in classifying data packets to store the associations, wherein the L2ID is different from the VPN label.

11. The network node of claim 10 , wherein the means for determining are further configured to associate the first and second unidirectional tunnels with a set of application-level policies, and apply the set of application-level policies to data packets in the first and second unidirectional tunnels.

12. The network node of claim 10 , further comprising:

means for receiving a third data packet having a third label stack and a third destination address;

means for associating the third data packet with a corresponding L2ID value based on the third label stack and third destination address; and

means for classifying the third data packet as belonging to a particular data flow based on the L2ID value associated with the third data packet.

13. The network node of claim 12 , wherein the means for classifying are configured to generate a 5-tuple associated with the third data packet, the 5-tuple consisting of a protocol identifier, a source address, a destination address, a source port number and a destination port number stored in the third data packet, combine the generated 5-tuple with the L2ID value associated with the third data packet, thereby creating a 6-tuple for the third data packet and use the 6-tuple to classify the third data packet as belonging to the particular data flow.

14. A network node comprising:

a first physical access unit adapted to receive a first data packet from a first unidirectional tunnel, the first data packet containing a first label stack that includes a virtual private network (VPN) label, a first destination address, and first protocol-specific information;

a second physical access unit adapted to receive a second data packet from a second unidirectional tunnel, the second unidirectional tunnel established in an opposite direction relative to the first unidirectional tunnel, the second data packet containing a second label stack that includes the VPN label, a second destination address, and second protocol-specific information; and

a packet processor configured to:

determine whether the first and second unidirectional tunnels are established for use by the same application based on a comparison of the first and second data packets' contained first and second protocol-specific information,

in response to a determination that the first and second unidirectional tunnels are established for use by the same application based on a comparison of the first and second data packets' contained first and second protocol-specific information, associate the first label stack and first destination address and the second label stack and second destination address both with a common layer-2 identification (L2ID) value, wherein the L2ID is different from the VPN label, and

update one or more data structures used in classifying data packets to store the associations.

15. The network node of claim 14 , wherein the packet processor is further configured to: associate the first and second unidirectional tunnels with a set of application-level policies, and

apply the set of application-level policies to data packets in the first and second unidirectional tunnels.

16. The network node of claim 14 , further comprising:

a data path unit configured to identify layer-2 identification (L2ID) values for data packets received at the first and second physical access units.

17. The network node of claim 16 , further comprising:

a classifier configured to classify a received data packet as belonging to a particular data flow based on the L2ID value identified by the data path unit.

18. The network node of claim 17 , wherein the classifier is configured to classify the received data packet by:

generation of a 5-tuple associated with the received data packet, the 5-tuple consisting of a protocol identifier, a source address, a destination address, a source port number and a destination port number stored in the received data packet;

combination of the generated 5-tuple with the L2ID value identified for the received data packet, thereby creating a 6-tuple for the received data packet; and

use of the 6-tuple to classify the received data packet as belonging to the particular data flow.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2005
From: WEILL, OFER; ABRAMOVITZ, ASSI
To: CISCO TECHNOLOGY, INC.
Reel/Frame 017293/0413 →
Continuity (1)
Related Publication 20070121615A1 · May 31, 2007