IP Library Granted Patent US 11,695,695
Granted Patent B2
US 11,695,695 · App. 17/121,393 · Granted Jul 4, 2023

Logical L3 daemon

Inventors: Ronghua Zhang (San Jose, CA); Teemu Koponen (San Francisco, CA); Pankaj Thakkar (Cupertino, CA)
Assignee: NICIRA, INC.
H04L45/74H04L41/0803H04L45/04H04L45/54H04L47/12H04L47/125H04L61/103H04L61/256H04L61/2592
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,695,695
App. No.
17/121,393
Granted
Jul 4, 2023
Kind
B2
Abstract

For a network controller for managing hosts in a network, a method for configuring a host to resolve network addresses is described. The method configures an address resolution module in a host to resolve a network address. The method configures a managed forwarding element in the host to (1) avoid sending a request to resolve the network address to another host by using the address resolution module to resolve the network address and (2) forward packets using the resolved network address.

Claims (42)

1. A method of performing routing, the method comprising:

at a first host computer on which a plurality of machines execute:

receiving a packet sent from a source machine executing on the host computer, the packet associated with a logical network implemented over a shared physical network and addressed to a destination machine executing on a second host computer;

performing a logical routing operation at a first managed forwarding element (MFE) that executes on the host computer and implements a logical router with other MFEs executing on other host computers;

performing a logical network address translation (NAT) operation to modify a first logical network address stored in a header of the packet to a second logical network address, wherein performing the logical NAT operation comprises, after the MFE performs the logical routing operation, using a NAT daemon executing on the host computer to perform the NAT operation that translates the first logical network address to the second logical network address;

using a tunnel header to encapsulate the packet with physical network addresses defined for the shared physical network; and

forwarding the encapsulated packet along the shared physical network, wherein the packet has the second logical network address when delivered to the destination machine on a second host computer.

2. The method of claim 1 , wherein the NAT operation is a destination NAT operation, wherein the second logical network address identifies the destination machine associated with the logical network that executes on the second host computer.

3. The method of claim 1 , wherein the NAT operation is a source NAT operation, wherein the first logical network address identifies the source machine of the packet that is associated with the logical network.

4. The method of claim 1 , wherein the first and second logical network addresses are defined for the logical network and are separate from the physical network addresses used for the shared physical network.

5. The method of claim 1 , wherein the tunnel header enables the forwarding of the encapsulated packet along the shared physical network.

6. The method of claim 5 , wherein:

the logical network is an overlay logical network; and

the encapsulating header encapsulates a header of the packet that stores network addresses defined for the logical network, including the second logical network address.

7. The method of claim 6 , wherein logical network addresses for multiple logical networks are defined over the shared physical network.

8. A non-transitory machine readable medium storing sets of instructions for performing routing on a first host computer on which a plurality of machines execute, the sets of instructions for execution by at least one processing unit of the host computer, the sets of instructions for:

receiving a packet sent from a source machine executing on the host computer, the packet associated with a logical network implemented over a shared physical network and addressed to a destination machine executing on a second host computer;

performing a logical routing operation at a first managed forwarding element (MFE) that executes on the host computer and implements a logical router with other MFEs executing on other host computers;

performing a logical network address translation (NAT) operation to modify a first logical network address stored in a header of the packet to a second logical network address, wherein performing the logical NAT operation comprises, after the MFE performs the logical routing operation, using a NAT daemon executing on the host computer to perform the NAT operation that translates the first logical network address to the second logical network address;

using a tunnel header to encapsulate the packet with physical network addresses defined for the shared physical network; and

forwarding the encapsulated packet along the shared physical network, wherein the packet has the second logical network address when delivered to the destination machine on a second host computer.

9. The non-transitory machine readable medium of claim 8 , wherein the NAT operation is a destination NAT operation, wherein the second logical network address identifies the destination machine associated with the logical network that executes on the second host computer.

10. The non-transitory machine readable medium of claim 8 , wherein the NAT operation is a source NAT operation, wherein the first logical network address identifies the source machine of the packet that is associated with the logical network.

11. The non-transitory machine readable medium of claim 8 , wherein the first and second logical network addresses are defined for the logical network and are separate from the physical network addresses used for the shared physical network.

12. The non-transitory machine readable medium of claim 8 , wherein the tunnel header enables the forwarding of the encapsulated packet along the shared physical network.

13. The non-transitory machine readable medium of claim 12 , wherein:

the logical network is an overlay logical network; and

the encapsulating header encapsulates a header of the packet that stores network addresses defined for the logical network, including the second logical network address.

14. The non-transitory machine readable medium of claim 13 , wherein logical network addresses for multiple logical networks are defined over the shared physical network.

15. A non-transitory machine readable medium storing sets of instructions for performing routing on a first host computer on which a plurality of machines execute, the sets of instructions for execution by at least one processing unit of the host computer, the sets of instructions for:

receiving a packet sent from a source machine executing on the host computer, the packet associated with a logical network implemented over a shared physical network and addressed to a destination machine executing on a second host computer;

performing a logical routing operation at a first managed forwarding element (MFE) that executes on the host computer and implements a logical router with other MFEs executing on other host computers;

performing a logical network address translation (NAT) operation to modify a first logical network address stored in a header of the packet to a second logical network address, wherein performing the logical NAT operation comprises using a NAT daemon executing on the host computer to perform the NAT operation that translates the first logical network address to the second logical network address, wherein the NAT daemon provides information to the MFE such that the MFE performs the NAT operation on subsequent data messages sent from the source machine to the destination machine;

using a tunnel header to encapsulate the packet with physical network addresses defined for the shared physical network; and

forwarding the encapsulated packet along the shared physical network, wherein the packet has the second logical network address when delivered to the destination machine on a second host computer.

16. A method of performing routing, the method comprising:

at a first host computer on which a plurality of machines execute:

receiving a packet sent from a source machine executing on the host computer, the packet associated with a logical network implemented over a shared physical network and addressed to a destination machine executing on a second host computer;

performing a logical routing operation at a first managed forwarding element (MFE) that executes on the host computer and implements a logical router with other MFEs executing on other host computers;

performing a logical network address translation (NAT) operation to modify a first logical network address stored in a header of the packet to a second logical network address, wherein performing the logical NAT operation comprises using a NAT daemon executing on the host computer to perform the NAT operation that translates the first logical network address to the second logical network address, wherein the NAT daemon provides information to the MFE such that the MFE performs the NAT operation on subsequent data messages sent from the source machine to the destination machine;

using a tunnel header to encapsulate the packet with physical network addresses defined for the shared physical network; and

forwarding the encapsulated packet along the shared physical network, wherein the packet has the second logical network address when delivered to the destination machine on a second host computer.

Assignments (1)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
Continuity (9)
Continuation 16034322 · Jul 12, 2018
Continuation 15256441 · Sep 2, 2016
Continuation 13757594 · Feb 1, 2013
Continuation 13589062 · Aug 17, 2012
Provisional Application 61666876 · Jul 1, 2012
Provisional Application 61654121 · Jun 1, 2012
Provisional Application 61643339 · May 6, 2012
Provisional Application 61524754 · Aug 17, 2011
Related Publication 20210144090A1 · May 13, 2021