US 12,341,772 B2
Management of private networks over multiple local networks
David J. Crawshaw, Berkeley, CA (US); Avery Pennarun, Montreal (CA); and David Anderson, Victoria (CA)
Assigned to Tailscale, Inc.
Filed by Tailscale Inc., Toronto (CA)
Filed on Dec. 15, 2021, as Appl. No. 17/552,209.
Claims priority of provisional application 63/218,016, filed on Jul. 2, 2021.
Prior Publication US 2023/0006998 A1, Jan. 5, 2023
Int. Cl. H04L 9/40 (2022.01)
CPC H04L 63/0876 (2013.01) [H04L 63/0236 (2013.01); H04L 63/0428 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method of operating a computing element in a first local network, the method comprising:
communicating a request to a coordination service to join a private network;
receiving communication information associated with one or more other computing elements in the private network, wherein the communication information permits the computing element to communicate with one or more other computing elements in the private network, and wherein the one or more other computing elements connect to an internet using one or more second local networks;
advertising, by the computing element in the first local network, the one or more other computing elements in the first local network as though the one or more other computing elements are connected to the first local network, wherein advertising the one or more other computing elements in the first local network comprises:
obtaining one or more local internet protocol (IP) addresses for advertising in the first local network, wherein each of the one or more local IP addresses is allocated to one of the one or more other computing elements in the one or more second local networks, and
advertising the one or more local IP addresses in the first local network, wherein the one or more local IP addresses direct packets to the computing element in the first local network;
receiving, at the computing element, a data packet addressed to a first local IP address of the one or more local IP addresses, wherein the first local IP address is allocated to a first of the one or more other computing elements; and
translating, at the computing element, the first local IP address to a network IP address associated with the first of the one or more other computing elements.