US 12,425,366 B2
Establishing and using a tunnel from an origin server in a distributed edge compute and routing service
Dane Orion Knecht, Austin, TX (US); John Graham-Cumming, London (GB); Dani Grant, San Francisco, CA (US); Christopher Philip Branch, Romford (GB); and Tom Paseka, San Francisco, CA (US)
Assigned to CLOUDFLARE, INC., San Francisco, CA (US)
Filed by CLOUDFLARE, INC., San Francisco, CA (US)
Filed on Feb. 26, 2024, as Appl. No. 18/587,091.
Application 18/587,091 is a continuation of application No. 17/728,407, filed on Apr. 25, 2022, granted, now 11,949,647.
Application 17/728,407 is a continuation of application No. 16/883,116, filed on May 26, 2020, granted, now 11,316,825, issued on Apr. 26, 2022.
Application 16/883,116 is a continuation of application No. 16/160,294, filed on Oct. 15, 2018, granted, now 10,666,613, issued on May 26, 2020.
Application 16/160,294 is a continuation of application No. 15/719,537, filed on Sep. 28, 2017, granted, now 10,104,039, issued on Oct. 16, 2018.
Prior Publication US 2024/0195780 A1, Jun. 13, 2024
Int. Cl. H04L 61/4511 (2022.01); H04L 12/46 (2006.01); H04L 61/2592 (2022.01); H04L 67/01 (2022.01); H04L 67/02 (2022.01); H04L 67/10 (2022.01); H04L 67/1017 (2022.01); H04L 67/1031 (2022.01); H04L 61/5007 (2022.01)
CPC H04L 61/4511 (2022.05) [H04L 12/4633 (2013.01); H04L 12/4641 (2013.01); H04L 61/2592 (2013.01); H04L 67/01 (2022.05); H04L 67/02 (2013.01); H04L 67/10 (2013.01); H04L 67/1017 (2013.01); H04L 67/1031 (2013.01); H04L 61/5007 (2022.05)] 20 Claims
OG exemplary drawing
 
1. A method for establishing and using a plurality of tunnels in a distributed edge compute and routing service, the method comprising:
receiving, at a first one of a plurality of edge servers of the distributed edge compute and routing service from a first tunnel client residing on a first origin server, a first tunnel connection request, wherein the first tunnel connection request identifies a hostname that is to be tunneled;
responsive to the first tunnel connection request,
establishing a first tunnel between the first one of the plurality of edge servers and the first tunnel client,
assigning a first IP address for the first tunnel,
establishing a second tunnel between a second one of the plurality of edge servers and the first tunnel client, and
assigning a second IP address for the second tunnel;
receiving, at the first one of the plurality of edge servers, a first request for an action to be performed on a first resource of the tunneled hostname handled by the first origin server, wherein the first one of the plurality of edge servers receives the first request from a third one of the plurality of edge servers that received the first request from a first client network application, and wherein the third one of the plurality of edge servers is not connected to the first origin server for the tunneled hostname;
transmitting the first request from the first one of the plurality of edge servers to the first origin server over the first tunnel;
receiving, at the second one of the plurality of edge servers, a second request for an action to be performed on a second resource of the tunneled hostname handled by the first origin server, wherein the second one of the plurality of edge servers receives the second request from a fourth one of the plurality of edge servers that received the second request from a second client network application, and wherein the fourth one of the plurality of edge servers is not connected to the first origin server for the tunneled hostname; and
transmitting the second request from the second one of the plurality of edge servers to the first origin server over the second tunnel.