The present disclosure generally relates to applying services to network traffic as it is forwarded between different sites of a virtual private network (VPN).
It is not uncommon to apply a variety of services to network traffic as it is forwarded through a network service provider's network. Examples of such services include, but are not limited to, firewalls, diagnostics, prioritization routines, etc. In the context of a Layer 3 Virtual Private Network (L3VPN), such services are typically applied to traffic as it is forwarded between the VPN's different sites using Virtual Routing and Forwarding (VRF) and/or sometimes Virtual Local Area Network (VLAN) configurations. In order to keep track of the destination VPN to which the network traffic is being forwarded, the traffic is typically forced through a hub and spoke topology with VRFs/VLANs at the hub, thereby maintaining the VPN context after the services have been applied.
Overview
A method for applying network services to data traffic forwarded between virtual private network (VPN) sites includes: receiving a data packet addressed to a target site associated with the VPN, determining services to be applied to the data packet according to a service chain, where the determining is a function of at least one of the VPN, the origin site or the target site, adding an indication of a VPN forwarding context onto the data packet, encapsulating the data packet with Network Service Header encapsulation, where a header for the encapsulated data packet indicates at least the service chain; forwarding the encapsulated data packet in accordance with the service chain, receiving the encapsulated data packet at the end of the service chain, terminating the service chain, removing the encapsulation, and forwarding the data packet to a target destination per the indication of a VPN forwarding context.
Detailed Description
An advantage of L3VPN may be the any-to-any nature of connectivity between devices participating in different sites. Unfortunately, the indirect routing of a hub and spoke topology may effectively negate such an advantage. It will therefore be appreciated by one of ordinary skill in the art that maintaining a VPN context while providing services by forcing a hub and spoke topology with VRFs/VLANs at the hub may be problematic. Furthermore, a given network may configured to provide both forwarding and services for thousands of VPNs; VLAN stitching may be required on a per VPN basis, thereby rendering such a solution both complex and cost/ineffective.
It will be appreciated that the complexity of such a configuration may be, at least in part, a function of the typically conflicting needs of the forwarding plane (i.e., the architecture for forwarding traffic from one point to another) and the services plane (i.e., the architecture for providing services to such traffic as it is forwarded). However, the use of Network Service Header (NSH) service chains may provide a more dynamic service insertion architecture without the complexity of a hub and spoke topology, thereby facilitating the decoupling of forwarding from services.
Reference is now made to
In accordance with an exemplary embodiment, traffic, i.e., data packets, originating from VPN site 10A may be forwarded within the same VPN via MPLS network 30 to VPN site 10B. MPLS network 30 may employ an MPLS label stack to preserve the VPN context while the traffic is forwarded to VPN site 10B. For example, L3VPN 1 may support a forwarding topology of:
VPN site 10A-(VRF 25A)PE 20A- - -MPLS 30- - -PE 20B(VRF 25B)—VPN site 10B - 201.10.1.1/32 (VPN-label 201)
PE 20A may use VRF 25A to lookup routing for the address 201.10.1.1/32. Based on the result of the lookup, PE 20A may push an MPLS label stack {VPN-label-201, PE 20B-transport-label} onto traffic (i.e., one or more data packets) to be forwarded to address 201.10.1.1/32 that is reachable through VPN site 10B. The transport label (i.e., PE 20B) is used to forward the traffic from PE 20A to PE 20B, and the VPN-label (i.e., “201”) provides PE 20B the “context” in which to forward the traffic, in this case to 201.10.1.1/32. It should be noted that PE 20A may use a per-prefix label for the target VPN (i.e., “201”), or alternatively a per-VRF label (i.e., VRF 25B) thereby forcing a lookup of the destination within the labeled VRF. In such a case, PE 20B may then lookup the routing for 201.10.1.1/32 in VRF 25B.
In accordance with embodiments described herein, an NSH service chain (i.e., set of services) may be inserted between PE 20A and PE 20B so that traffic between VPN site 10A and VPN site 10B flows through the set of services S1, S2 . . . Sn within the chain. As shown in
VPN site 10A-(VRF 25A)PE 20A- - -S145A- - -S245B- - -PE 20B(VRF 25B)—VPN site 10B-201.10.1.1/32 (VPN-label 201)
To implement this forwarding topology, PE 20A may classify the traffic to essentially bypass the normal forwarding process (i.e., bypass the L3VPN routing decision) by encapsulating the traffic as NSH packets rather than adding an MPLS label stack as previously described. The NSH header may then be used to steer the traffic through service chain 35 {i.e., Service 45A, Service 45B, PE 20B}. However, it will be appreciated by one of ordinary skill in the art, that without the VPN-label-201 MPLS label as described hereinabove, by the time the traffic reaches the end of service chain 35, i.e., PE 20B, however, the forwarding context may be lost and PE 20B may have no indication what context (i.e., VPN/VRF) to use other than the destination of the packet 102.10.1.1/32.
In accordance with embodiments described herein, the forwarding context may be maintained after directing L3VPN traffic through service chain 35 between PE 20A and 20B by configuring NSH to indicate that an MPLS label stack follows the NSH encapsulation, where the label stack contains the VPN-label allocated for the destination of the traffic by PE 20B so that it can continue to forward the traffic within the correct forwarding context. Reference is now also made to
PE 20A receives (step 110) traffic sent to VPN site B by VPN site 10A. PE 20A may lookup (step 120) the destination routing in VRF 25A per the received address (e.g., 201.10.1.1/32), and push (step 130) an MPLS VPN label onto the data packets of the forwarded traffic per the destination routing For example, as per the exemplary embodiment of
PE 20A may also use VRF 25A to lookup (step 140) the service policy associated with traffic forwarded with VPN label “201”. The service policy may indicate what services are to be applied to traffic associated with VPN label “201”when it is sent between PE 20A and PE 20B. For example, as per the exemplary embodiment of
PE 20A may add (step 150) the indicated service chain via NSH encapsulation. It will be appreciated by those of ordinary skill in the art that NSH encapsulation may also include a service index to be progressively decremented as the traffic moves from service to service per the indicated service chain, and a next process to be performed at the end of the service chain. Per the exemplary embodiment of
Services 45A and 45B may be applied to the traffic per the policy of service chain 35. Accordingly, per the exemplary embodiment of
Accordingly, when the traffic is received (step 160) by PE 20B, the service index may have been decremented to indicate “end of chain”. PE 20B may remove (step 170) the NSH encapsulation, “revealing” the VPN label to be processed by MPLS. PE 20B may then strip off (step 180) the VPN label before forwarding (step 190) the traffic (i.e., to 201.10.1.1/32 per the example) in accordance with the forwarding context indicated by the now stripped off VPN label.
As described hereinabove, in process 100, the forwarding context may be preserved by pushing an MPLS VPN label onto the data packet and indicating a next process of MPLS in the NSH encapsulation. It will be appreciated by one of ordinary skill in the art that NSH may support the provision of metadata that is accessible by services 45A and 45B in service chain 35. In accordance with embodiments described herein, this NSH metadata may be leveraged to preserve the forwarding context without using MPLS labels.
Reference is now also made to
However, instead of pushing an MPLS VPN label onto the traffic as in step 130 of process 100, PE 20A may push (step 155) a similar VPN label into the NSH metadata. When the packet is received (step 160) by PE 20B, PE 20B may determine (step 165) a VPN context per the VPN label in the NSH metadata. PE 20B may then remove (step 170) the NSH encapsulation as in process 100. However, there is no need to strip off the VPN label (as per step 180 of process 100) since no MPLS VPN label was pushed onto the packet in an upstream process (as in step 130 of process 100). PE 20B may then forward the received packet within VPN site 10B as per the VPN context determined from the NSH metadata in step 165.
It will be appreciated that according to the approach of the embodiment of
Reference is now made to
Reference is now made also to
When service chain 35 terminates, instead of receiving the packet at PE 20B (as per step 160 in process 100), vPenPE 50 may receive (step 265) the packet. The vPenPE service may then remove (step 270) the NSH encapsulation as in step 170 of process 100. vPenPE 50 may then forward (step 275) the traffic to a PE in accordance with the “next hop” entry in the NSH metadata (i.e., to PE 20B as per the exemplary embodiment of
As described hereinabove, in process 200, the forwarding context may be preserved by pushing an MPLS VPN label onto the data packet and indicating a next process of MPLS in the NSH encapsulation. It will be appreciated that as described hereinabove, the NHS metadata may be leveraged to preserve the forwarding context without using MPLS labels.
Reference is now also made to
However, instead of pushing an MPLS VPN label onto the traffic as in step 230 of process 200, PE 20A may push (step 255) a similar VPN label into the NSH metadata. When the packet is received (step 265) by vPenPE 50, the vPenPE service may determine (step 266) a VPN context per the VPN label in the metadata. vPenPE 50 may then remove (step 270) the NSH encapsulation as in process 200. However, there is no need to strip off the VPN label (as per step 280 of process 200) since no MPLS label was pushed onto the packet in an upstream process. vPenPE 50 may then forward the received packet within VPN site 10B via PE 20B (per the next hop entry in the NHS metadata) as per the VPN context determined from the metadata in step 266.
It will therefore be appreciated that the embodiments described herein may provide full integration of NSH service chaining with L3VPNs. Further, routing and services may be decoupled so that services are not tied to topology and routing does not need to be bent following a services topology. Moreover, routing does not need to incorporate a particular topology (such as hub and spoke and/or inline service insertion) to be able to forward site-to-site VPN traffic through a set of services. Also, the dependency on orchestration to maintain L3VPN forwarding context may be removed. As a result of disassociating routing from service insertion and removing dependency on orchestration for VPN context, L3VPN providers may provide services to L3VPN customers with agility, simplicity, and minimized operational costs.
The methods and system described herein allow for creating a service topology “inside” the L3VPN topology (both edge-to-edge). Within that service topology, services can be applied by way of an service chain (either NSH-based, or otherwise), and other features (i.e., other transformations and value-add functions applied on L3VPNs, such as known in the art, in addition to a service chain). Furthermore, these methods are not limited to service chaining. Packets could enter an MPLS network with a VPN ID, go into a Virtual Extensible Local Area Network (VxLAN), go back into the MPLS network, and as along as the proper context header is present, the VPN ID would remain unchanged and consistent without any re-classification.
Further still, these techniques need not be limited to L3VPN. It will be appreciated by one of ordinary skill in the art that any forwarding context such as L2, VxLAN virtual network identifier (VNID), etc. can follow the same pattern. For example, perhaps traffic comes in L2VPN, but it needs to exit the topology with VxLAN. Exit VxLAN information is pushed, then NSH. After the NSH topology, the correct VxLAN is present.
It is appreciated that software components of the present invention may, if desired, be implemented in ROM (read only memory) form. For example, in some embodiments, the operations to be performed at an edge device (e.g., PE 20A, PE 20B and/or vPenPE 50) may be in the form of software that is processed by a processor. The software components may, generally, be implemented in hardware, if desired, using conventional techniques. For example, in some other embodiments, the operations to be performed at an edge device (e.g., PE 20A, PE 20B and/or vPenPE 50) may be in the form of firmware that is processed by Application Specific Integrated Circuits (ASICs), which may be integrated into a circuit board. Alternatively, the operations may be implemented in the form of one or more logic blocks included in a programmable logic device (e.g., a field-programmable gate array).It is further appreciated that the software components may be instantiated, for example: as a computer program product or on a tangible medium. In some cases, it may be possible to instantiate the software components as a signal interpretable by an appropriate computer, although such an instantiation may be excluded in certain embodiments of the present invention.
It is appreciated that various features of the invention which are, for clarity, described in the contexts of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable subcombination.
It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the invention is defined by the appended claims and equivalents thereof.
The present application is a continuation of U.S. patent application Ser. No. 14/870,722, filed on Sep. 30, 2015, which claims the benefit of priority from U.S. Provisional Patent Application, Ser. No. 62/160,117, filed on May 12, 2015, and U.S. Provisional Patent Application, Ser. No. 62/174,801 filed on Jun. 12, 2015.
Number | Name | Date | Kind |
---|---|---|---|
7664877 | Sheth | Feb 2010 | B1 |
8259564 | Gredler et al. | Sep 2012 | B1 |
9912614 | Koganti | Mar 2018 | B2 |
20070147363 | Oswal et al. | Jun 2007 | A1 |
20080084881 | Dharwadkar et al. | Apr 2008 | A1 |
20130013809 | Vasseur | Jan 2013 | A1 |
20140003425 | Zhao | Jan 2014 | A1 |
20140198794 | Mehta | Jul 2014 | A1 |
20140321315 | Akhter | Oct 2014 | A1 |
20150032871 | Allan | Jan 2015 | A1 |
20150043383 | Farkas | Feb 2015 | A1 |
20150071285 | Kumar et al. | Mar 2015 | A1 |
20150089082 | Patwardhan | Mar 2015 | A1 |
20150131484 | Aldrin | May 2015 | A1 |
20160014016 | Guichard et al. | Jan 2016 | A1 |
20160218968 | D'Souza | Jul 2016 | A1 |
20160248685 | Pignataro et al. | Aug 2016 | A1 |
20160277291 | Lakshmikanthan et al. | Sep 2016 | A1 |
20160330111 | Manghirmalani et al. | Nov 2016 | A1 |
20160344640 | Soderlund | Nov 2016 | A1 |
Entry |
---|
Blendin, Jeremias; Position Paper: Software-Defined Network Service Chaining, Software Defined Networks (EWSDN), 2014 Third European Workshop on , vol., No., pp. 109,114, Sep. 1-3, 2014. |
Brown, Gabriel; Service Chaining in Carrier Networks, White Paper, Feb. 2015. |
Gary Kinghorn, “Network Services Headers (NSH): Creating a Service Plane for Cloud Networks”, Cisco Blog, http://blogs.cisco.com/datacenter/nsh, Nov. 19, 2014, 7 pages. |
Number | Date | Country | |
---|---|---|---|
20180041362 A1 | Feb 2018 | US |
Number | Date | Country | |
---|---|---|---|
62160117 | May 2015 | US | |
62174801 | Jun 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14870722 | Sep 2015 | US |
Child | 15784218 | US |