IP Library Granted Patent US 12,107,827
Granted Patent B2
US 12,107,827 · App. 18/326,745 · Granted Oct 1, 2024

Unified network service that connects multiple disparate private networks and end user client devices operating on separate networks

Inventors: Nicholas Alexander Wondra (Savoy, IL); Igor Postelnik (Austin, TX); Michael John Vanderwater (Champaign, IL); Adam Simon Chalmers (Austin, TX); Nuno Miguel Lourenço Diegues (Lisbon, PT); Arég Harutyunyan (San Francisco, CA); Erich Alfred Heine (Champaign, IL)
Assignee: CLOUDFLARE, INC.
H04L63/0236H04L12/4633H04L63/0272H04L63/029H04L63/0485H04L67/10
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 12,107,827
App. No.
18/326,745
Granted
Oct 1, 2024
Kind
B2
Abstract

A unified network service that connects multiple disparate private networks and end user client devices operating on separate networks is described. The multiple disparate private networks and end user client devices connect to a distributed cloud computing network that provides routing services, security services, and performance services, and that can be controlled consistently regardless of the connection type. The unified network service provides uniform access control at the L3 layer (e.g., at the IP layer) or at a higher layer using user identity information (e.g., a zero-trust model). The disparate private networks are run on top of the distributed cloud computing network. The virtual routing layer of the distributed cloud computing network allows customers of the service to have private resources visible only to client devices (e.g., user devices of the customer and/or server devices of the customer) of the organization while using address space that potentially overlaps with other customers of the distributed cloud computing network.

Claims (51)

1. A method, comprising:

receiving first traffic at a first traffic interface at a first compute server of a distributed cloud computing network, wherein the received first traffic is destined for a private application or service running on a server of a customer of a unified network service provided through the distributed cloud computing network, wherein the server is outside of the distributed cloud computing network, wherein the first traffic interface is a generic routing encapsulation (GRE) interface that interfaces with a GRE tunnel from a router of the customer;

determining identity information associated with the received first traffic including that the received first traffic is attributable to the customer based on the GRE tunnel being associated with an account of the customer;

determining, using one or more policies configured for the customer and the determined identity information associated with the received first traffic, whether the received first traffic is allowed to be transmitted to the private application or service including determining whether traffic received over the GRE tunnel is allowed to access the private application or service;

responsive to determining that the received first traffic is allowed to be transmitted to the private application or service, determining a second traffic interface that interfaces with the server of the customer, wherein the second traffic interface is a layer 7 traffic interface, and wherein the determined second traffic interface is on a second compute server of the distributed cloud computing network;

transmitting the received first traffic from the first compute server to the determined second traffic interface on the second compute server; and

transmitting, from the determined second traffic interface on the second compute server to the server of the customer, the received first traffic.

2. The method of claim 1 , wherein determining the identity information associated with the received first traffic further includes identifying a user transmitting the traffic over the GRE tunnel, and wherein determining whether the received first traffic is allowed to be transmitted to the private application or service further includes determining whether the identified user is allowed to access the private application or service.

3. The method of claim 1 , further comprising:

receiving second traffic at a third traffic interface at a first compute server of a distributed cloud computing network, wherein the third traffic interface is a virtual private network (VPN) interface that interfaces with a VPN tunnel connected to a VPN client, and wherein the received second traffic is destined for the private application or service running on the server of the customer;

determining identity information associated with the received second traffic including determining a user of the VPN client;

determining, using one or more policies configured for the customer and the determined identity information associated with the received second traffic, whether the received second traffic is allowed to be transmitted to the private application or service including determining whether the determined user is allowed to access the private application or service;

responsive to determining that the received second traffic is allowed to be transmitted to the private application or service, determining the second traffic interface that interfaces with the server of the customer; and

transmitting the received second traffic from the first compute server to the determined second traffic interface on the second compute server for transmitting the received second traffic to the private application or service.

4. The method of claim 1 , wherein transmitting the received first traffic from the first compute server to the determined second traffic interface on the second compute server is proxied over an HTTP/2 proxy.

5. The method of claim 1 , further comprising:

marking the received first traffic with the determined identity information.

6. A non-transitory machine-readable storage medium that provides instructions that, if executed by a processor, will cause said processor to carry out operations comprising:

receiving first traffic at a first traffic interface at a first compute server of a distributed cloud computing network, wherein the received first traffic is destined for a private application or service running on a server of a customer of a unified network service provided through the distributed cloud computing network, wherein the server is outside of the distributed cloud computing network, wherein the first traffic interface is a generic routing encapsulation (GRE) interface that interfaces with a GRE tunnel from a router of the customer;

determining identity information associated with the received first traffic including that the received first traffic is attributable to the customer based on the GRE tunnel being associated with an account of the customer;

determining, using one or more policies configured for the customer and the determined identity information associated with the received first traffic, whether the received first traffic is allowed to be transmitted to the private application or service including determining whether traffic received over the GRE tunnel is allowed to access the private application or service;

responsive to determining that the received first traffic is allowed to be transmitted to the private application or service, determining a second traffic interface that interfaces with the server of the customer, wherein the second traffic interface is a layer 7 traffic interface, and wherein the determined second traffic interface is on a second compute server of the distributed cloud computing network;

transmitting the received first traffic from the first compute server to the determined second traffic interface on the second compute server for transmitting the received first traffic to the private application or service.

7. The non-transitory machine-readable storage medium of claim 6 , wherein determining the identity information associated with the received first traffic further includes identifying a user transmitting the traffic over the GRE tunnel, and wherein determining whether the received first traffic is allowed to be transmitted to the private application or service further includes determining whether the identified user is allowed to access the private application or service.

8. The non-transitory machine-readable storage medium of claim 6 , wherein the operations further comprise:

receiving second traffic at a third traffic interface at a first compute server of a distributed cloud computing network, wherein the third traffic interface is a virtual private network (VPN) interface that interfaces with a VPN tunnel connected to a VPN client, and wherein the received second traffic is destined for the private application or service running on the server of the customer;

determining identity information associated with the received second traffic including determining a user of the VPN client;

determining, using one or more policies configured for the customer and the determined identity information associated with the received second traffic, whether the received second traffic is allowed to be transmitted to the private application or service including determining whether the determined user is allowed to access the private application or service;

responsive to determining that the received second traffic is allowed to be transmitted to the private application or service, determining the second traffic interface that interfaces with the server of the customer; and

transmitting the received second traffic from the first compute server to the determined second traffic interface on the second compute server for transmitting the received second traffic to the private application or service.

9. The non-transitory machine-readable storage medium of claim 6 , wherein transmitting the received first traffic from the first compute server to the determined second traffic interface on the second compute server is proxied over an HTTP/2 proxy.

10. The non-transitory machine-readable storage medium of claim 6 , wherein the operations further comprise:

marking the received first traffic with the determined identity information.

11. A first compute server, comprising:

a processor; and

a non-transitory machine-readable storage medium that provides instructions that, if executed by the processor, will cause the server to carry out operations comprising:

receiving first traffic at a first traffic interface at the first compute server of a distributed cloud computing network, wherein the received first traffic is destined for a private application or service running on a server of a customer of a unified network service provided through the distributed cloud computing network, wherein the server is outside of the distributed cloud computing network, wherein the first traffic interface is a generic routing encapsulation (GRE) interface that interfaces with a GRE tunnel from a router of the customer;

determining identity information associated with the received first traffic including that the received first traffic is attributable to the customer based on the GRE tunnel being associated with an account of the customer;

determining, using one or more policies configured for the customer and the determined identity information associated with the received first traffic, whether the received first traffic is allowed to be transmitted to the private application or service including determining whether traffic received over the GRE tunnel is allowed to access the private application or service;

responsive to determining that the received first traffic is allowed to be transmitted to the private application or service, determining a second traffic interface that interfaces with the server of the customer, wherein the second traffic interface is a layer 7 traffic interface, and wherein the determined second traffic interface is on a second compute server of the distributed cloud computing network; and

transmitting the received first traffic from the first compute server to the determined second traffic interface on the second compute server for transmitting the received first traffic to the private application or service.

12. The first compute server of claim 11 , wherein determining the identity information associated with the received first traffic further includes identifying a user transmitting the traffic over the GRE tunnel, and wherein determining whether the received first traffic is allowed to be transmitted to the private application or service further includes determining whether the identified user is allowed to access the private application or service.

13. The first compute server of claim 11 , wherein the operations further comprise:

receiving second traffic at a third traffic interface at a first compute server of a distributed cloud computing network, wherein the third traffic interface is a virtual private network (VPN) interface that interfaces with a VPN tunnel connected to a VPN client, and wherein the received second traffic is destined for the private application or service running on the server of the customer;

determining identity information associated with the received second traffic including determining a user of the VPN client;

determining, using one or more policies configured for the customer and the determined identity information associated with the received second traffic, whether the received second traffic is allowed to be transmitted to the private application or service including determining whether the determined user is allowed to access the private application or service;

responsive to determining that the received second traffic is allowed to be transmitted to the private application or service, determining the second traffic interface that interfaces with the server of the customer; and

transmitting the received second traffic from the first compute server to the determined second traffic interface on the second compute server for transmitting the received second traffic to the private application or service.

14. The first compute server of claim 11 , wherein transmitting the received first traffic from the first compute server to the determined second traffic interface on the second compute server is proxied over an HTTP/2 proxy.

15. The first compute server of claim 11 , wherein the operations further comprise:

marking the received first traffic with the determined identity information.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2023
From: WONDRA, NICHOLAS ALEXANDER; POSTELNIK, IGOR; VANDERWATER, MICHAEL JOHN; CHALMERS, ADAM SIMON; DIEGUES, NUNO MIGUEL LOURENÇO; HARUTYUNYAN, ARÉG; HEINE, ERICH ALFRED
To: CLOUDFLARE, INC.
Reel/Frame 063814/0498 →
Continuity (5)
Continuation 17700058 · Mar 21, 2022
Provisional Application 63321757 · Mar 20, 2022
Provisional Application 63286520 · Dec 6, 2021
Provisional Application 63164492 · Mar 22, 2021
Related Publication 20230308415A1 · Sep 28, 2023