IP Library Granted Patent US 11,824,923
Granted Patent B2
US 11,824,923 · App. 17/481,181 · Granted Nov 21, 2023

Traffic load balancing between a plurality of points of presence of a cloud computing infrastructure

Inventors: David Paul Wragg (London, GB); Ólafur GuÐmundsson (Chevy Chase, MD); Lorenz Mathias Bauer (London, GB); Arthur Fabre (London, GB); Marek Przemyslaw Majkowski (Warsaw, PL)
Assignee: CLOUDFLARE, INC.
H04L67/1001H04L12/4633H04L45/745H04L67/141H04L2101/618H04L2212/00
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 11,824,923
App. No.
17/481,181
Granted
Nov 21, 2023
Kind
B2
Abstract

Methods and system of traffic load balancing between a plurality of Points of Presence (PoP) of a cloud computing infrastructure are described. A first PoP of multiple PoPs of cloud computing infrastructure that provides a cloud computing service receives a packet. The packet includes as a destination address an anycast address advertised by the first PoP for reaching the cloud computing service. The first PoP identifies a network address of a second PoP that is different from the first PoP. The first PoP forwards the packets as an encapsulated packet to the second PoP to be processed in the second PoP according to the cloud computing service.

Claims (67)

1. A method of load balancing traffic between a plurality of Points of Presence (PoPs) of a cloud computing infrastructure that provides a cloud computing service to one or more users, the method comprising:

receiving, at a first PoP of the plurality of PoPs, a first packet that includes as a first destination address an anycast address advertised by the first PoP for reaching the cloud computing service;

determining, based on a first forwarding table entry in a forwarding table and a first identifier for a first flow of the first packet, a network address of a second PoP of the plurality of PoPs that is different from the first PoP by:

identifying an IP address of the second PoP as the network address and a first inter-PoP indicator value indicating that the first packet is to be forwarded to the second PoP that is different from the first PoP, wherein the forwarding table is generated based on forwarding policies defining an amount of traffic to forward between the first PoP and the plurality of PoPs;

encapsulating the first packet into a first encapsulated packet that includes the network address of the second PoP as a destination address of the first encapsulated packet; and

transmitting the first encapsulated packet to the second PoP.

2. The method of claim 1 , wherein encapsulating the first packet into the first encapsulated packet further comprises:

including the network address of the second PoP in a field of a first encapsulation header of the first encapsulated packet.

3. The method of claim 1 , further comprising:

receiving at the first PoP of the plurality of PoPs a second packet that includes as a second destination address the anycast address advertised by the first PoP for reaching the cloud computing service;

determining that the second packet is a security threat; and

responsive to determining that the second packet is the security threat, dropping the second packet.

4. The method of claim 1 , wherein determining the network address of the second PoP of the plurality of PoPs that is different from the first PoP further comprises:

determining the first identifier of the first packet; and

accessing the first forwarding table entry.

5. The method of claim 1 , wherein transmitting the first encapsulated packet to the second PoP further comprises:

transmitting the first encapsulated packet through an encapsulation tunnel.

6. The method of claim 1 , further comprising:

receiving at the first PoP of the plurality of PoPs a second packet that includes as a second destination address the anycast address advertised by the first PoP for reaching the cloud computing service;

determining that inter-PoP forwarding is not enabled based on a second inter-PoP indicator value; and

processing the second packet locally at the first PoP.

7. The method of claim 1 , wherein the first packet is received from a client device, and the first packet includes a request for the cloud computing service, wherein the request is for a network resource that is hosted on an origin server and the cloud computing service is a proxy service for the network resource.

8. A non-transitory machine-readable storage medium that provides instructions that, if executed by a processor of a first Pop of Presence (PoP) of a plurality of PoPs of a cloud computing infrastructure that provides a cloud computing service to one or more users, will cause said processor to perform the following operations:

receiving, at a first PoP of the plurality of PoPs, a first packet that includes as a first destination address an anycast address advertised by the first PoP for reaching the cloud computing service;

determining, based on a first forwarding table entry in a forwarding table and a first identifier for a first flow of the first packet, a network address of a second PoP of the plurality of PoPs that is different from the first PoP by:

identifying an IP address of the second PoP as the network address and a first inter-PoP indicator value indicating that the first packet is to be forwarded to the second PoP that is different from the first PoP, wherein the forwarding table is generated based on forwarding policies defining an amount of traffic to forward between the first PoP and the plurality of PoPs;

encapsulating the first packet into a first encapsulated packet that includes the network address of the second PoP as a destination address of the first encapsulated packet; and

transmitting the first encapsulated packet to the second PoP.

9. The non-transitory machine-readable storage medium of claim 8 , wherein encapsulating the first packet into the first encapsulated packet further causes the processor to perform the following operations:

including the network address of the second PoP in a field of a first encapsulation header of the first encapsulated packet.

10. The non-transitory machine-readable storage medium of claim 8 , wherein the instructions further cause the processor to perform the following operations:

receiving at the first PoP of the plurality of PoPs a second packet that includes as a second destination address the anycast address advertised by the first PoP for reaching the cloud computing service;

determining that the second packet is a security threat; and

responsive to determining that the second packet is the security threat, dropping the second packet.

11. The non-transitory machine-readable storage medium of claim 8 , wherein determining the network address of the second PoP of the plurality of PoPs that is different from the first PoP further causes the processor to perform the following operations:

determining the first identifier of the first packet; and

accessing the first forwarding table entry.

12. The non-transitory machine-readable storage medium of claim 8 , wherein transmitting the first encapsulated packet to the second PoP further causes the processor to perform the following operations:

transmitting the first encapsulated packet through an encapsulation tunnel.

13. The non-transitory machine-readable storage medium of claim 8 , wherein the instructions further cause the processor to perform the following operations:

receiving at the first PoP of the plurality of PoPs a second packet that includes as a second destination address the anycast address advertised by the first PoP for reaching the cloud computing service;

determining that inter-PoP forwarding is not enabled based on a second inter-PoP indicator value; and

processing the second packet locally at the first PoP.

14. The non-transitory machine-readable storage medium of claim 8 , wherein the first packet is received from a client device, and the first packet includes a request for the cloud computing service, wherein the request is for a network resource that is hosted on an origin server and the cloud computing service is a proxy service for the network resource.

15. A first Point of Presence (PoP) of a plurality of PoPs of a cloud computing infrastructure that provides a cloud computing service to one or more users, the first PoP comprising:

a non-transitory machine-readable storage medium that provides instructions that, if executed by a processor, will cause the first PoP to perform operations comprising:

receiving, at the first PoP of the plurality of PoPs, a first packet that includes as a first destination address an anycast address advertised by the first PoP for reaching the cloud computing service;

determining, based on a first forwarding table entry in a forwarding table and a first identifier for a first flow of the first packet, a network address of a second PoP of the plurality of PoPs that is different from the first PoP by:

identifying an IP address of the second PoP as the network address and a first inter-PoP indicator value indicating that the first packet is to be forwarded to the second PoP that is different from the first PoP, wherein the forwarding table is generated based on forwarding policies defining an amount of traffic to forward between the first PoP and the plurality of PoPs;

encapsulating the first packet into a first encapsulated packet that includes the network address of the second PoP as a destination address of the first encapsulated packet; and

transmitting the first encapsulated packet to the second PoP.

16. The first PoP of claim 15 , wherein encapsulating the first packet into the first encapsulated packet causes the first PoP to perform operations comprising:

including the network address of the second PoP in a field of a first encapsulation header of the first encapsulated packet.

17. The first PoP of claim 15 , wherein the operations further comprise:

receiving at the first PoP of the plurality of PoPs a second packet that includes as a second destination address the anycast address advertised by the first PoP for reaching the cloud computing service;

determining that the second packet is a security threat; and

responsive to determining that the second packet is the security threat, dropping the second packet.

18. The first PoP of claim 15 , wherein determining the second network address of the second PoP of the plurality of PoPs that is different from the first PoP causes the first PoP to perform operations comprising:

determining the first identifier of the first packet; and

accessing the first forwarding table entry.

19. The first PoP of claim 15 , wherein transmitting the first encapsulated packet to the second PoP causes the first PoP to perform operations comprising:

transmitting the first encapsulated packet through an encapsulation tunnel.

20. The first PoP of claim 15 , wherein the operations further comprise:

receiving at the first PoP of the plurality of PoPs a second packet that includes as a second destination address the anycast address advertised by the first PoP for reaching the cloud computing service;

determining that inter-PoP forwarding is not enabled based on a second inter-PoP indicator value; and

processing the second packet locally at the first PoP.

21. The first PoP of claim 15 , wherein the first packet is received from a client device, and the first packet includes a request for the cloud computing service, wherein the request is for a network resource that is hosted on an origin server and the cloud computing service is a proxy service for the network resource.

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 Sep 21, 2021
From: WRAGG, DAVID PAUL; GUÐMUNDSSON, ÓLAFUR; BAUER, LORENZ MATHIAS; FABRE, ARTHUR; MAJKOWSKI, MAREK PRZEMYSLAW
To: CLOUDFLARE, INC.
Reel/Frame 057551/0718 →
Continuity (2)
Continuation 17023209 · Sep 16, 2020
Related Publication 20220086220A1 · Mar 17, 2022