IP Library Granted Patent US 9,825,854
Granted Patent B2
US 9,825,854 · App. 14/228,223 · Granted Nov 21, 2017

Host architecture for efficient cloud service access

Inventor: Jun Xiao (Beijing, CN)
Assignee: NICIRA, INC.
H04L45/74G06F9/45558H04L61/2532H04L61/2535G06F2009/45595H04L61/2514H04L61/2517
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 9,825,854
App. No.
14/228,223
Granted
Nov 21, 2017
Kind
B2
Abstract

A method for a host machine that hosts at least one tenant virtual machine (VM) of a particular tenant logical network that accesses service VMs of a particular service logical network. The method, prior to a packet being received at a PFE on the host, intercepts the packet that sent by the tenant VM to one of the service VMs based on a set of forwarding rules. The packet includes a source IP address and a source port number of the tenant VM. The method, prior to the packet leaving the PFE in the host, replaces the source IP address and source port number with a replacement IP address and port number pair from a set of replacement IP address and port number pairs allocated to the host for accessing service VMs. The method sends the modified packet to the PFE to forward the modified packet to the service VM.

Claims (57)

1. A physical computing device operating in a network within which (i) a first set of logical networks comprising a plurality of tenant virtual machines (VMs) and (ii) a second set of logical networks comprising a set of service VMs are implemented, the computing device comprising:

a set of processing units; and

a set of machine readable media storing, for execution by the set of processing units:

a physical forwarding element; and

a network address translation (NAT) agent for:

intercepting a packet sent by a tenant VM to one of the service VMs prior to the packet leaving the physical forwarding element, the packet comprising a source network address and a source port number of the tenant VM;

prior to the packet leaving the physical forwarding element, replacing the source network address and source port number with a replacement address and port number from a set of replacement network address and port number pairs allocated to the physical forwarding element for accessing service VMs, each replacement network address and port number pair for uniquely identifying a tenant VM across the first and second sets of logical networks; and

providing the modified packet to the physical forwarding element for forwarding the modified packet to the service VM.

2. The physical computing device of claim 1 further comprising an uplink interface between the physical forwarding element and a physical network interface card for tunneling the packet to a host of the service VM.

3. The physical computing device of claim 1 , wherein the intercepted packet further comprises a media access control (MAC) address of a NAT gateway associated with the first set of logical network, wherein the NAT agent is further for replacing the MAC address of the gateway in the packet with a MAC address of the service VM to prevent the physical forwarding element in the host from forwarding the packet to the NAT gateway.

4. The physical computing device of claim 1 , wherein the NAT agent is further for:

receiving a first set of rules for forwarding packets from VMs of a first logical network comprising a set of tenant VMs to VMs of a second logical network comprising a set of service VMs;

receiving a set of parameters associated with the VMs of the second logical network; and

translating, prior to intercepting the packet, the set of parameters and the first set of rules into a second set of rules, the second set of rules identifying all possible pairs of the VMs of the first logical network that are hosted on said host and the VMs of the second logical network.

5. A method of providing efficient access to service virtual machines (VMs) in a network comprising (i) a set of hosts, (ii) a first set of logical networks, each logical network in the first set comprising a set of VMs of one tenant in a plurality of tenants, and (iii) a second set of logical networks, each logical network in the second set comprising a set of VMs of one service in a set of services, the method comprising:

at a host in the set of hosts, intercepting a packet sent by a tenant VM of a first logical network to a VM of a second logical network, the packet comprising a source network address and a source port number associated with the tenant VM, the packet intercepted prior to leaving a physical forwarding element in the host, the physical forwarding element for receiving packets from and sending packets to the VMs hosted on the host;

at the host, replacing the source network address and the source port number in the packet with a replacement network address and port number pair from a set of replacement network address and port number pairs allocated to the host for accessing service VMs, each pair for uniquely identifying a VM across the plurality of the tenant logical networks; and

sending the packet through the physical forwarding element to the VM of the second logical network.

6. The method of claim 5 , wherein the host is a first host, wherein the VM of the second logical network is hosted on a second host different than the first host, wherein sending the packet to the VM of the second logical network comprises sending the packet through a tunnel between the host of the first and second hosts.

7. The method of claim 5 , wherein the intercepted packet further comprises a media access control (MAC) address of a network address translation (NAT) gateway associated with the first logical network, the method further comprising replacing the MAC address of the gateway in the packet with a MAC address of the VM of the second logical network to prevent the physical forwarding element in the host from forwarding the packet to the NAT gateway.

8. The method of claim 5 , wherein replacing the source network address and the port number of the packet comprises determining that the combination of the replacement network address and the replacement port number has not been used by another tenant VM in an ongoing communication session.

9. The method of claim 8 further comprising marking the replacement network address and the replacement port number, which are used to replace the source network address and port number, as unavailable for use by any other tenant VMs.

10. The method of claim 9 further comprising:

determining that a predetermined amount of time has elapsed since the replacement network address was assigned to the tenant VM; and

marking the replacement network address and the replacement port number as available for use by any other tenant VMs.

11. The method of claim 9 further comprising:

determining that a session between the tenant VM and the VM of the second logical network is no longer valid based on an explicit inspection of a tear down message on a transport layer; and

marking the replacement network address and the replacement port number as available for use by any other tenant VMs.

12. The method of claim 5 further comprising:

receiving a first set of rules for forwarding packets from VMs of a first logical network comprising a set of tenant VMs to VMs of a second logical network comprising a set of service VMs;

receiving a set of parameters associated with the VMs of the second logical network; and

prior to intercepting the packet, translating the set of parameters and the first set of rules into a second set of rules, the second set of rules identifying all possible pairs of the VMs of the first logical network that are hosted on said host and the VMs of the second logical network.

13. The method of claim 5 , wherein the VM of the second logical network is hosted on said host, wherein sending the packet to the second logical network comprises sending the packet through the physical forwarding element of the host without going through a network address translation (NAT) gateway.

14. The method of claim 5 further comprising:

at the host, receiving a reply packet from the VM of the second logical network addressed to the replacement network address and replacement port number;

replacing the replacement network address in the reply second packet with said source network address and the replacement port with said source port number of the tenant VM; and

delivering the reply packet to the tenant VM.

15. The method of claim 14 further comprising:

at a host of said VM of the second logical network, intercepting an address resolution protocol (ARP) message requesting a media access control (MAC) address corresponding to said replacement network address; and

responding to the ARP message with a replacement MAC address, the replacement MAC address a unique MAC address in the network.

16. The method of claim 15 , wherein the reply packet comprises the replacement MAC address as the destination MAC address, the method further comprising:

at a physical forwarding element on the host of the VM of the second logical network, receiving the reply packet;

determining that the destination MAC address in the reply packet is the replacement MAC address; and

forwarding the reply packet to an uplink of the host of the service VM.

17. The method of claim 16 further comprising:

encapsulating the packet at the uplink;

identifying the tunnel established between the hosts of the tenant and service VMs; and

forwarding the reply packet through the tunnel to the host of the tenant VM.

18. For a host machine that hosts at least one tenant virtual machine (VM) of a first logical network that accesses service VMs of a second logical network, a method comprising:

prior to a packet leaving a physical forwarding element on the host, intercepting the packet sent by the tenant VM to one of the service VMs based on a set of forwarding rules, the packet comprising a source network address of the tenant VM and a source port number of the tenant VM;

prior to the packet leaving the physical forwarding element in the host, replacing the source network address and source port number with a replacement network address and port number pair from a set of replacement network address and port number pairs allocated to the host for accessing service VMs, each replacement network address and port number pair for uniquely identifying a tenant VM across the first and second sets of logical networks; and

providing the modified packet to the physical forwarding element for forwarding the modified packet to the service VM.

19. The method of claim 18 further comprising:

at the host, receiving a reply packet from the service VM addressed to the replacement network address and the replacement port number of the tenant VM;

replacing the replacement network address in the reply second packet with said source network address and the replacement port with said source port number of the tenant VM; and

delivering the reply packet to the tenant VM.

20. The method of claim 19 , wherein the intercepted packet further comprises a media access control (MAC) address of a network address translation (NAT) gateway associated with the host, the method further comprising replacing the MAC address of the gateway in the packet with a MAC address of the service VM to prevent the physical forwarding element in the host to forward the packet to the NAT gateway.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2014
From: XIAO, JUN
To: NICIRA, INC.
Reel/Frame 032546/0586 →
Continuity (1)
Related Publication 20150281059A1 · Oct 1, 2015