The present disclosure is directed, in general, to enterprise, or virtual private network (VPN) networking and, more specifically, to systems and methods to provide lossless broadband access to a VPN network.
The growth in employees working from home has led to a huge spike in people using virtual private networks (VPNs) to connect to business information technology (IT) resources; the demand has only accelerated due to the Covid-19 pandemic. Most companies have become more dependent on broadband since the 2020 pandemic, but it has not always served them well -particularly in cases where guaranteed performance is needed. According to anAltman Solon 2021 State of SD-WAN Study, 50% of IT leaders using only public access say their application performance is insufficient, and 48% say the cost savings don’t justify the lower quality of service.
One of the fundamental problems for remote connectivity to a corporate wide area network (WAN) is the limitations of conventional broadband services to the home; although much cheaper than alternative services, typical broadband service is inherently a “best effort” technology unfit for real-time data applications like voice and video conferencing. Thus, conventional broadband often fails to deliver the performance needed, causing losses in productivity, sales, and revenue. The limitations of conventional broadband service can be overcome through utilization of an Ethernet private line (EPL), but EPL service comes at a significantly higher cost than broadband. Accordingly, there is a need in the art for systems and methods to provide enterprise VPN services with broadband access that meets the Quality of Service (QoS) expectations associated with EPL.
To address the deficiencies of the prior art, disclosed hereinafter are systems and devices, and methods operable therein, to provide lossless broadband communications, via the Internet, between a Customer Premises Equipment (CPE) device and a Provider Edge (PE) Router associated with a Virtual Private Network (VPN). In a general embodiment, for egress packets (i.e., packets from the LAN to a destination of the VPN), the method in the CPE device comprises establishing an IPSec tunnel with Forward Error Correction (FEC) between the CPE device and a Cloud Firewall (CFW) (130, 530) associated with the PE Router (the CFW and PE router can be distinct devices or integrated into a single device); receiving a plurality of egress packets from a Local Area Network (LAN), each of the egress packets comprising an Internet Protocol (IP) header and data payload, wherein the IP header identifies a destination address associated with the VPN; opening a data session and encapsulating each of the egress packets utilizing an encapsulation protocol to create encapsulated egress packets; encrypting each encapsulated egress packet to create encrypted encapsulated egress packets for transmission through the IPSec tunnel to the CFW; and, generating and transmitting Forward Error Correction (FEC) packets, together with the encrypted encapsulated egress packets, from the CPE device to the CFW. In a general corresponding embodiment, the method in a CFW, which includes or is associated with a PE router, comprises utilizing the FEC packets to reconstruct any missing encrypted encapsulated egress packets; decrypting the encrypted encapsulated egress packets; and, opening a data session and forwarding ones of the plurality of egress packets to the PE for routing to the destination address of the VPN.
For ingress packets (i.e., packets from the VPN to a destination of the LAN), the method in the PE router and/or associated CFW comprises receiving a plurality of ingress packets from the VPN, each of the ingress packets comprising an IP header and data payload, the IP header identifying a destination address associated with the LAN; encapsulating each of the ingress packets utilizing the encapsulation protocol to create encapsulated ingress; encrypting each encapsulated ingress packet to create encrypted encapsulated ingress packets for transmission through an IPSec tunnel from the CFW to the CPE; and, generating and transmitting FEC packets, together with the encrypted encapsulated ingress packets, from the CFW to the CPE. In a corresponding embodiment, the method in the CPE further comprises receiving the plurality of encrypted encapsulated ingress packets via an IPSec tunnel; receiving the FEC packets, together with the encrypted encapsulated ingress packets; utilizing the FEC packets to reconstruct any missing encrypted encapsulated packets; decrypting the encrypted encapsulated ingress packets; and, opening a data session and forwarding ones of the plurality of ingress packets to their associated destination address(es) of the LAN.
In a first exemplary embodiment, the encapsulation protocol is Generic Routing Encapsulation (GRE), wherein GRE encapsulation comprises adding a second IP header and GRE header to each packet. In a related embodiment, each of the encrypted encapsulated packets comprises the GRE encapsulated packet, a third IP header, an Encapsulating Security Payload (ESP) header, an ESP trailer, and ESP authentication information. In a second exemplary embodiment, the encapsulation protocol is Virtual Extensible LAN (VXLAN), wherein VXLAN encapsulation of each of the packets comprises adding a VXLAN header, a second IP header, a User Datagram Protocol (UDP) header, and an Ethernet header to each packet.
The principles of the invention(s) disclosed herein can be implemented in various network architectures to provide enterprise VPN services with broadband access that meets the Quality of Service (QoS) expectations associated with EPL. A first GRE solution is illustrated and described with reference to
It should be noted that Cloud Firewall 130 and Provider Edge Router 140 are illustrated as distinct devices; those two devices, and the related functionality of each described hereinafter, however, can be integrated into a single physical device. Furthermore, although certain functionalities are described hereinafter as comprising one or more “steps”, such steps may be implemented as distinct sub-steps or as an integrated step comprising the associated functionality of multiple sub-steps; such alternative implementations that perform equivalent functionalities are intended to be within the scope of the disclosed principles of the invention.
Turning now to
A customer local area network (LAN) is coupled to Customer Premises Equipment 110; the Customer Premises Equipment receives data packets from the LAN, each of which identifies a destination Internet Protocol (IP) address. In a first step 210-A, a route-table lookup/check function is performed, wherein the destination IP address for each packet is checked against a route-table to match a route; the route can be any specific host route, part of a subnet, or even match the default-route. The route that matches also has a corresponding interface where the route is learned from. The learned route can be either a statically defined route or it can be learned from a routing protocol; a suitable routing protocol can be, for example, Border Gateway Protocol (BGP). To proceed, a valid route must exist to the destination IP of the packet; i.e., the route exists in the route-table with corresponding interface the route is learned from, or the route does not exist in the route-table. If no route to the destination exists in the table, the packet is discarded (step 210-M).
Next, in step 210-B, it is determined if a “Local Internet Breakout” exists; the criteria is whether a default-route egressing the local WAN interface exists (e.g., the route-table is checked to see if the default-route exists and if the local WAN interface is used). If the default-route exists and points to a local WAN interface, then firewall policies are checked in step 210-C; otherwise, processing moves to step 210-G (described infra).
In step 210-C, a Firewall Policy Check function is performed. The firewall policy explicitly allows packets from a source interface to a destination interface; the destination interface was determined as part of step 210-A, and the source interface identifies where the packet originated from on the LAN. Based on this source/destination interface pair, the firewall policies are checked in a top-down approach to match the first source/destination policy that matches the packets. A firewall policy can also contain other matching criteria, such as source IP address/subnet, destination IP address/subnet, source application port, destination application port, time-of-day schedule, source user/user group, specific protocols, or applications. If a packet matches all criteria within a policy, the action within the matching policy is performed, which is usually to allow the traffic; other firewall policy actions, for example, can be to allow packets and perform Network Address Translation (NAT) or deny/discard the packets.
If a packet matches all criteria of a firewall policy (step 210-D), it is allowed to proceed and, in step 210-D, a new session is allocated by the Customer Premises Equipment 110 and recorded in a session table (step 210-E) and the packet is forwarded to the Internet 120; the session table tracks all packets allowed and the corresponding firewall policy that allowed the traffic. Otherwise, if a packet is not allowed by a firewall policy, the packet triggers an implicit deny rule and is discarded (step 210-F).
Referring back to step 210-B, if a local internet breakout does not exist, processing proceeds to step 210-G, wherein SD-WAN rules are checked for an outbound GRE tunnel interface. SD-WAN rules are used to perform intelligent path control of packets. A packet can be forced across a certain transport (interface) in order to optimally use bandwidth of a given WAN, while other traffic can be load-balanced across any number of WAN transports. SD-WAN rules are similar to firewall rules in that they are processed in a top-down approach to find the first matching rule for a packet. The match criteria can be based, for example, on specific applications, source/destination IP, specific protocols, or ports. If no SD-WAN rules are matched, a default catch-all rule can be defined for all packets, which can either be load-balanced or sent out a primary interface first, with a backup interface used only when the primary interface is unavailable. If the packet matches all criteria within a rule, the packet will egress the destination interface specified in the rule. If no explicit match exists, the packet will match the catch-all rule, and the action is determined by the configuration, which can either be load-balancing, or primary/backup traffic method.
Next, in step 210-H, the packet is checked against the firewall policy; if not allowed, the packet is discarded (step 210-F), otherwise processing proceeds to step 210-1. In step 210-1, a new session is opened and the original packet 410 is encapsulated in a GRE packet 420, as illustrated in
Turning now to the functionality of the Cloud Firewall 130, the process of handling packets received from the Internet 120 begins with step 230-A, wherein the firewall will check the packet sequence numbers to determine whether there are any missing sequences; if missing sequences are found, the packets will be reconstructed from information in the FEC packets. If there are no missing sequences, the FEC packets are discarded as there are no packet losses to overcome (step 230-B).
Next, in step 230-C, the firewall will remove the IPSec encapsulation from each incoming packet (i.e., elements 431, 432, 433 and 434 illustrated in
Turning now to the functionality of the Provider Edge Router 140, the process of handling packets received from the Cloud Firewall 130 begins with step 240-A, wherein the router removes the GRE encapsulation (
Turning now to
The ingress packet flow process starts at the Provider Edge Router 140. When an original packet 410 arrives from VPN 150 at the Provider Edge Router 140, the first step is to check that a route exists in the route-table (step 340-A). If the route exists in the table, as determined in step 340-B, the router will add an extra GRE header and IP Header (
Cloud Firewall 130 receives original packets 410 destined for the customer LAN from Provider Edge Router 140; the original packets have been GRE encapsulated by the Provider Edge Router 140, as described supra. In step 330-A, the route table is checked by the Cloud Firewall 130 for the destination IP address of a received packet. If no valid route exists in the table, as determined in step 330-B, the packet is discarded in step 330-C; if a route does exist, it is determined in step 330-D if the packet is allowed by a firewall policy. If the packet is not allowed by a firewall policy, the packet triggers an implicit deny and the packet is discarded (step 330-C). If the packet is allowed by a firewall policy, a new session is opened and recorded in the session table and the GRE encapsulated packet is encrypted (step 330-E); the encryption adds an extra IP header, ESP header, ESP trailer, and ESP authentication (
Each encrypted GRE encapsulated packet, and associated FEC packets, arrive at the Customer Premises Equipment 110 from Cloud Firewall 130, via Internet 120. Upon arrival, in step 310-A, it is determined if any lost packets need to be reconstructed from the FEC packets. If all packets arrived, then the FEC packets can be discarded in step 310-B; otherwise, if there are missing sequences, the FEC packets are used to reconstruct the lost packets. Next, in step 310-C, the IPSec encapsulation is removed from the GRE encapsulated packet; i.e., elements 431, 432, 433, and 434, as illustrated in
It should be noted that Cloud Firewall 530 and Provider Edge Router 540 are illustrated as distinct devices; those two devices, and the related functionality of each described hereinafter, however, can be integrated into a single physical device. Furthermore, although certain functionalities are described hereinafter as comprising one or more “steps”, such steps may be implemented as distinct sub-steps or as an integrated step comprising the associated functionality of multiple sub-steps; such alternative implementations that perform equivalent functionalities are intended to be within the scope of the disclosed principles of the invention.
Turning now to
A customer local area network (LAN) is coupled to Customer Premises Equipment 510; the Customer Premises Equipment receives data packets from the LAN, each of which identifies a destination Internet Protocol (IP) address. In a first step 610-A, a route-table lookup/check function is performed, wherein the destination IP address for each packet is checked against a route-table to match a route; the route can be any specific host route, part of a subnet, or even match the default-route. The route that matches also has a corresponding interface where the route is learned from. The learned route can be either a statically defined route or it can be learned from a routing protocol; a suitable routing protocol can be, for example, Border Gateway Protocol (BGP). To proceed, a valid route must exist to the destination IP of the packet; i.e., the route exists in the route-table with corresponding interface the route is learned from, or the route does not exist in the route-table. If no route to the destination exists in the table, the packet is discarded (step 610-L).
Next, in step 610-B, it is determined if a “Local Internet Breakout” exists; the criteria is whether a default-route egressing the local WAN interface exists (e.g., the route-table is checked to see if the default-route exists and if the local WAN interface is used). If the default-route exists and points to a local WAN interface, then firewall policies are checked in step 610-C; otherwise, processing moves to step 610-G (described infra).
In step 610-C, a Firewall Policy Check function is performed. The firewall policy explicitly allows packets from a source interface to a destination interface; the destination interface was determined as part of step 610-A, and the source interface identifies where the packet originated from on the LAN. Based on this source/destination interface pair, the firewall policies are checked in a top-down approach to match the first source/destination policy that matches the packets. A firewall policy can also contain other matching criteria, such as source IP address/subnet, destination IP address/subnet, source application port, destination application port, time-of-day schedule, source user/user group, specific protocols, or applications. If a packet matches all criteria within a policy, the action within the matching policy is performed, which is usually to allow the traffic; other firewall policy actions, for example, can be to allow packets and perform Network Address Translation (NAT) or deny/discard the packets.
If a packet matches all criteria of a firewall policy (step 610-D), it is allowed to proceed and, in step 610-D, a new session is allocated by the Customer Premises Equipment 510 and recorded in a session table (step 610-E) and the packet is forwarded to the Internet 520; the session table tracks all packets allowed and the corresponding firewall policy that allowed the traffic. Otherwise, if a packet is not allowed by a firewall policy, the packet triggers an implicit deny rule and is discarded (step 610-F).
Referring back to step 610-B, if a local internet breakout does not exist, processing proceeds to step 610-G, wherein SD-WAN rules are checked for an outbound IPSec tunnel interface. SD-WAN rules are used to perform intelligent path control of packets. A packet can be forced across a certain transport (interface) in order to optimally use bandwidth of a given WAN, while other traffic can be load-balanced across any number of WAN transports. SD-WAN rules are similar to firewall rules in that they are processed in a top-down approach to find the first matching rule for a packet. The match criteria can be based, for example, on specific applications, source/destination IP, specific protocols, or ports. If no SD-WAN rules are matched, a default catch-all rule can be defined for all packets, which can either be load-balanced or sent out a primary interface first, with a backup interface used only when the primary interface is unavailable. If the packet matches all criteria within a rule, the packet will egress the destination interface specified in the rule. If no explicit match exists, the packet will match the catch-all rule, and the action is determined by the configuration, which can either be load-balancing, or primary/backup traffic method.
Next, in step 610-H, the packet is checked against the firewall policy; if not allowed, the packet is discarded (step 610-F), otherwise processing proceeds to step 610-1. In step 610-1, a new session is opened and the original packet 810 is encapsulated in a VXLAN header 820, as illustrated in
Turning now to the functionality of the Cloud Firewall 530, the process of handling packets received from the Internet 520 begins with step 630-A, wherein the firewall will check the packet sequence numbers to determine whether there are any missing sequences; if missing sequences are found, the packets will be reconstructed from information in the FEC packets. If there are no missing sequences, the FEC packets are discarded as there are no packet losses to overcome (step 630-B).
Next, in step 630-C, the firewall will remove the IPSec encapsulation from each incoming packet (i.e., elements 831, 832, 833 and 834 illustrated in
Turning now to the functionality of the Provider Edge Router 540, the process of handling packets received from the Cloud Firewall 530 begins with step 640-A, wherein the router receives the original packet (
Turning now to
The ingress packet flow process starts at the Provider Edge Router 540. When an original packet 810 arrives from VPN 550 at the Provider Edge Router 540, the first step is to check that a route exists in the route-table (step 740-A). If the route exists in the table, as determined in step 740-B, the router will forward the packet to the Cloud Firewall 530 using the egress interface of the Provider Edge Router 540 as shown in step 740-D; otherwise, the packet is discarded (step 740-C).
Cloud Firewall 530 receives original packets 810 destined for the customer LAN from Provider Edge Router 540. In step 730-A, the route table is checked by the Cloud Firewall 530 for the destination IP address of a received packet. If no valid route exists in the table, as determined in step 730-B, the packet is discarded in step 730-C; if a route does exist, it is determined in step 730-D if the packet is allowed by a firewall policy. If the packet is not allowed by a firewall policy, the packet triggers an implicit deny and the packet is discarded (step 730-C). If the packet is allowed by a firewall policy, a new session is opened and recorded in the session table and the original packet is encapsulated (step 730-E) with a VXLAN header 821, an IP header 823, a UDP header 822, and an Ethernet header 824. Next, the packet is encrypted (step 730-F); the encryption adds an extra IP header, ESP header, ESP trailer, and ESP authentication (
Each encrypted VXLAN encapsulated packet, and associated FEC packets, arrive at the Customer Premises Equipment 510 from Cloud Firewall 530, via Internet 520. Upon arrival, in step 710-A, it is determined if any lost packets need to be reconstructed from the FEC packets. If all packets arrived, then the FEC packets can be discarded in step 710-B; otherwise, if there are missing sequences, the FEC packets are used to reconstruct the lost packets. Next, in step 710-C, the IPSec encapsulation is removed from the VXLAN encapsulated packet; i.e., elements 831, 832, 833, and 834, as illustrated in
The systems and methods disclosed herein, hereinafter referred to as “Performance Edge™”, can be optimized through machine-learning and/or artificial intelligence methods and algorithms. For example:
The foregoing has described technical principles that can be implemented to provide enterprise VPN services with broadband access that meet the Quality of Service (QoS) expectations associated with EPL. The principles of the invention are adaptable to various network architectures and protocols, as illustrated by the exemplary GRE and VXLAN solutions described herein; the principles of the invention, however, are not limited to GRE and VXLAN and can be adapted for use with other network architectures and protocols.
This application claims priority to U.S. Provisional Pat. Application Serial No. 63/203,386, filed Jul. 20, 2021, entitled SYSTEMS AND METHODS FOR LOSSLESS BROADBAND VIRTUAL PRIVATE NETWORK ACCESS, the disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63203386 | Jul 2021 | US |