IP Library Granted Patent US 11,601,358
Granted Patent B2
US 11,601,358 · App. 17/125,746 · Granted Mar 7, 2023

Cross datacenter communication using a mesh gateway

Inventors: Matthew Keeler (San Francisco, CA); Paul Banks (San Francisco, CA); Mitchell Hashimoto (Manhattan Beach, CA); Armon Dadgar (Seattle, WA)
Assignee: HASHICORP
H04L45/122H04L45/126H04L45/74
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,601,358
App. No.
17/125,746
Granted
Mar 7, 2023
Kind
B2
Abstract

A method for cross datacenter service-to-service communication over a shortest network route using mesh gateways. A mesh gateway receives a protocol message from a first service directed to a second service, identifies destination information associated with the second service, recognizes a routing configuration for routing the protocol message, determines a network route based on the routing configuration, and forwards the protocol message to another gateway associated with the second service over the determined network route.

Claims (52)

1. A method comprising:

receiving, by a first gateway device, a protocol message directed to a service within a target datacenter;

identifying, by the first gateway device, destination information of the service and the target datacenter;

determining, by the first gateway device, a routing configuration for routing the protocol message to the target datacenter;

determining, by the first gateway device, a network route for routing the protocol message to the target datacenter based on the routing configuration; and

forwarding, by the first gateway device, the protocol message to a second gateway device within the target datacenter by transmitting the protocol message through the determined network route;

wherein the routing configuration for routing the protocol message is at least one of a single-hop routing and a multi-hop routing;

upon determining that the direct connection to the target datacenter does not exist, determining the network route for routing the protocol message to the target datacenter further comprises:

determining, by the first gateway device, one or more distance(s) to one or more next-hop datacenter(s);

determining, by the first gateway device, one or more distance(s) to the target datacenter as advertised by the one or more next-hop datacenter(s);

calculating, by the first gateway device, one or more total distance(s) to the target datacenter based on the distance(s) to the one or more next-hop datacenter(s) and the distance(s) as advertised; and

identifying, by the first gateway device, a route with a shortest total distance to the target datacenter from the one or more total distance(s) as the network route; and

upon determining that the routing configuration configured for routing the protocol message is the multi-hop routing, determining the network route for routing the protocol message further comprises:

determining, by the first gateway device, one or more distance(s) to one or more next-hop datacenter(s);

determining, by the first gateway device, one or more distance(s) to the target datacenter as advertised by the one or more next-hop datacenter(s);

calculating, by the first gateway device, one or more total distance(s) to the target datacenter based on the distance(s) to the one or more next-hop datacenter(s) and the distance(s) as advertised; and

identifying, by the first gateway device, a route with a shortest total distance to the target datacenter from the one or more total distance(s) as the network route.

2. The method of claim 1 , upon determining that the routing configuration for routing the protocol message is single-hop routing, determining of the network route for routing the protocol message comprises:

determining, by the first gateway device, whether the first gateway device has a direct connection to the target datacenter; and

upon determining that the direct connection to the target datacenter exists, assigning, by the first gateway device, the direct connection as the network route to the target datacenter.

3. The method of claim 1 , wherein the determining the one or more distance(s) to the one or more next-hop datacenter(s) comprising:

calculating the one or more distance(s) to the one or more next-hop datacenter(s) using network coordinates of the datacenter associated with the first gateway device and the one or more next-hop datacenter(s).

4. The method of claim 1 , further comprising:

filtering, by the first gateway device, a reference to the first gateway device from the network route for routing the protocol message to prevent cyclical routes.

5. The method of claim 1 , wherein the protocol message is a part of a Transport Layer Security (TLS)-Server Name Indication (SNI) handshake originated from a client service, and wherein the first gateway device identifies the destination information of the service and the target datacenter by sniffing into the protocol message.

6. The method of claim 1 , wherein the destination information associated of the service and the target datacenter is included in a SNI header of the protocol message, and wherein the first gateway device peeks at the SNI header of the protocol message associated with the TLS-SNI handshake to determine the destination information for the service.

7. The method of claim 1 , wherein the first gateway device uses at least one of a Local Area Network (LAN) and a Wide Area Network (WAN) Internet Protocol (IP) address to route the protocol message to the service within the target datacenter.

8. The method of claim 1 , wherein the first gateway device uses at least one of a layer 4 and a layer 7 load balancing protocols for routing the protocol message.

9. A computing device comprising:

a processor; and

a non-transitory computer readable medium having instructions embodied thereon that when executed by the processor causes the processor to perform operations comprising:

receiving a protocol message directed to a service within a target datacenter; identifying a destination information of the service and the target datacenter; determining a routing configuration for routing the protocol message to the target datacenter;

determining a network route for routing the protocol message to the target datacenter based on the routing configuration; and

forwarding the protocol message to a second gateway device within the target datacenter by transmitting the protocol message through the determined network route wherein the routing configuration for routing the protocol message is at least one of a single-hop routing and a multi-hop routing;

upon determining that the direct connection to the target datacenter does not exist, determining the network route for routing the protocol message to the target datacenter further comprises:

determining, by the first gateway device, one or more distance(s) to one or more next-hop datacenter(s);

determining, by the first gateway device, one or more distance(s) to the target datacenter as advertised by the one or more next-hop datacenter(s);

calculating, by the first gateway device, one or more total distance(s) to the target datacenter based on the distance(s) to the one or more next-hop datacenter(s) and the distance(s) as advertised; and

identifying, by the first gateway device, a route with a shortest total distance to the target datacenter from the one or more total distance(s) as the network route; and

upon determining that the routing configuration configured for routing the protocol message is the multi-hop routing, determining the network route for routing the protocol message further comprises:

determining, by the first gateway device, one or more distance(s) to one or more next-hop datacenter(s);

determining, by the first gateway device, one or more distance(s) to the target datacenter as advertised by the one or more next-hop datacenter(s);

calculating, by the first gateway device, one or more total distance(s) to the target datacenter based on the distance(s) to the one or more next-hop datacenter(s) and the distance(s) as advertised; and

identifying, by the first gateway device, a route with a shortest total distance to the target datacenter from the one or more total distance(s) as the network route.

10. The computing device of claim 9 , upon determining that the routing configuration for routing the protocol message is a single-hop routing, the determining of the network route for routing the protocol message comprises:

determining whether a direct connection to the target datacenter exist; and

upon determining that the direct connection to the target datacenter exists, assigning the direct connection as the network route to the target datacenter.

11. The computing device of claim 9 , wherein the determining the one or more distance(s) to the one or more next-hop datacenter(s) comprising:

calculating the one or more distance(s) to the one or more next-hop datacenter(s) using network coordinates of the datacenter associated with the processor and the one or more next-hop datacenter(s).

12. The computing device of claim 9 , wherein the protocol message is a part of a Transport Layer Security (TLS)-Server Name Indication (SNI) handshake originated from a client service.

13. The computing device of claim 9 , wherein the destination information of the service and the target device is available in a SNI header of the protocol message associated with the TLS-SNI handshake.

14. The computing device of claim 9 , wherein the computing device peeks at the SNI header of the protocol message associated with the TLS-SNI handshake to determine the destination information for the service.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2025
From: HASHICORP, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 072476/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2021
From: KEELER, MATTHEW; BANKS, PAUL; HASHIMOTO, MITCHELL; DADGAR, ARMON
To: HASHICORP
Reel/Frame 055828/0289 →
Continuity (1)
Related Publication 20220200891A1 · Jun 23, 2022
Cited By (1)
US 12,388,742