IP Library Granted Patent US 10,944,673
Granted Patent B2
US 10,944,673 · App. 16/120,281 · Granted Mar 9, 2021

Redirection of data messages at logical network gateway

Inventors: Akhila Naveen (Palo Alto, CA); Kantesh Mundaragi (Sunnyvale, CA); Rahul Mishra (Mountain View, CA); Fenil Kavathia (Sunnyvale, CA); Raju Koganty (San Jose, CA); Pierluigi Rolando (Santa Clara, CA); Yong Feng (Sunnyvale, CA); Jayant Jain (Cupertino, CA)
Assignee: VMWARE, INC.
H04L45/745H04L67/20H04L45/586
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 10,944,673
App. No.
16/120,281
Granted
Mar 9, 2021
Kind
B2
Abstract

Some embodiments provide a method for forwarding a data message. The method performs a lookup to map a set of header fields of the data message to an identifier corresponding to a service that performs non-forwarding processing on data messages. The method uses a dynamically-updated data structure for the identifier to retrieve instructions for forwarding data messages to the service. The method forwards the data message according to the retrieved instructions from the data structure for the identifier.

Claims (37)

1. A method for forwarding a data message, the method comprising:

performing a lookup to map a set of header fields of the data message to a particular identifier corresponding to a particular service that performs non-forwarding processing on data messages, wherein the particular identifier is one of a plurality of identifiers to which header fields of data messages are mapped, each identifier corresponding to a different service and associated with a separate dynamically-updated data structure comprising instructions for forwarding data messages to the corresponding service;

using a particular dynamically-updated data structure associated with the particular identifier to retrieve instructions for forwarding data messages to the particular service; and

forwarding the data message according to the retrieved instructions from the particular data structure associated with the particular identifier,

wherein the particular dynamically-updated data structure associated with the particular identifier specifies (i) an IP address for reaching the particular service, (ii) a reachability status of the particular service, and (iii) a failover policy for when the particular service is not reachable.

2. The method of claim 1 , wherein the method is performed by a gateway for a logical network implemented in a datacenter, the gateway for processing data messages between logical network endpoints operating in the datacenter and physical networks external to the datacenter.

3. The method of claim 2 , wherein:

the logical network comprises (i) at least one logical switch to which the logical network endpoints connect and (ii) a logical router;

the logical router comprises a distributed routing component and one or more centralized routing components; and

the gateway implements one of the centralized routing components to process data messages between the logical network endpoints and the physical networks external to the datacenter.

4. The method of claim 1 , wherein the lookup comprises a policy-based routing decision.

5. The method of claim 1 , wherein the set of header fields comprises at least a source network address of the data message.

6. The method of claim 1 , wherein the particular service is a third-party service virtual machine.

7. The method of claim 1 , wherein the reachability status is dynamically updated based on a reachability protocol.

8. The method of claim 1 , wherein the particular service is connected using a layer 2 (L2) bump in the wire mode, wherein the IP address is a dummy address that corresponds to an interface of a gateway that forwards the data message.

9. The method of claim 8 , wherein the interface is a first interface, wherein the gateway executes a bidirectional forwarding detection (BFD) thread that sends BFD messages to the particular service through a second interface and receives the BFD messages from the particular service through the first interface.

10. The method of claim 1 , wherein the IP address is an address for a machine that implements the particular service.

11. The method of claim 1 , wherein the failover policy specifies to drop data messages when the particular service is not reachable.

12. The method of claim 1 , wherein the failover policy specifies to route data messages based on the destination network address when the particular service is not reachable.

13. The method of claim 1 , wherein the failover policy specifies a backup service to which to redirect the data messages when the particular service is not reachable.

14. The method of claim 1 , wherein:

performing the lookup comprises matching the set of header fields to a policy-based routing rule comprising a set of match conditions and an action specifying the particular identifier;

the policy-based routing rule is one of a plurality of policy-based routing rules with actions specifying different identifiers corresponding to different services.

15. A non-transitory machine-readable medium storing a program which when executed by at least one processing unit forwards a data message, the program comprising sets of instructions for:

performing a lookup to map a set of header fields of the data message to a particular identifier corresponding to a particular service that performs non-forwarding processing on data messages, wherein the particular identifier is one of a plurality of identifiers to which header fields of data messages are mapped, each identifier corresponding to a different service and associated with a separate dynamically-updated data structure comprising instructions for forwarding data messages to the corresponding service;

using a particular dynamically-updated data structure associated with the particular identifier to retrieve instructions for forwarding data messages to the particular service; and

forwarding the data message according to the retrieved instructions from the particular data structure associated with the particular identifier;

wherein the particular dynamically-updated data structure associated with the particular identifier specifies (i) an IP address for reaching the particular service, (ii) a reachability status of the particular service, and (iii) a failover policy for when the particular service is not reachable.

16. The non-transitory machine-readable medium of claim 15 , wherein the program is executed by a gateway machine for a logical network implemented in a datacenter, the gateway machine for processing data messages between logical network endpoints operating in the datacenter and physical networks external to the datacenter.

17. The non-transitory machine-readable medium of claim 16 , wherein:

the logical network comprises (i) at least one logical switch to which the logical network endpoints connect and (ii) a logical router;

the logical router comprises a distributed routing component and one or more centralized routing components; and

the gateway machine implements one of the centralized routing components to process data messages between the logical network endpoints and the physical networks external to the datacenter.

18. The non-transitory machine-readable medium of claim 15 , wherein the set of header fields comprises at least a source network address of the data message.

19. The non-transitory machine-readable medium of claim 15 , wherein the particular service is connected using a layer 2 (L2) bump in the wire mode, wherein the IP address is a dummy address that corresponds to an interface of a gateway that forwards the data message.

20. The non-transitory machine-readable medium of claim 15 , wherein the IP address is an address for a machine that implements the particular service.

21. The non-transitory machine-readable medium of claim 15 , wherein the failover policy specifies one of (i) dropping data messages, (ii) routing data messages based on the destination network address, and (iii) a backup service to which to redirect the data messages when the particular service is not reachable.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2018
From: NAVEEN, AKHILA; MUNDARAGI, KANTESH; MISHRA, RAHUL; KAVATHIA, FENIL; KOGANTY, RAJU; ROLANDO, PIERLUIGI; FENG, YONG; JAIN, JAYANT
To: VMWARE, INC.
Reel/Frame 046772/0273 →
Cited By (3)
US 12,231,252 US 12,254,340 US 12,341,680