IP Library Granted Patent US 10,542,049
Granted Patent B2
US 10,542,049 · App. 14/708,091 · Granted Jan 21, 2020

Mechanism for providing external access to a secured networked virtualization environment

Inventors: Miao Cui (Sunnyvale, CA); Kshitiz Jain (Raipur Chattisgarh, IN); Vineet Kahlon (Princeton, NJ)
Assignee: Nutanix, Inc.
H04L63/205G06F9/45558H04L63/029G06F2009/45595H04L67/10
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,542,049
App. No.
14/708,091
Filed
May 8, 2015
Granted
Jan 21, 2020
Kind
B2
Art Unit
2434
USPC
726/3
Abstract

A method for providing external access into a secured networked virtualization environment, includes performing a leadership election amongst nodes of the secured networked virtualization environment to elect a leader node, assigning a cluster virtual IP address to the leader node and generating a reverse tunnel, using a processor, by the leader node to allow for an external entity to communicate with the secured networked virtualization environment.

Claims (77)

1. A method for providing external access into a secured networked virtualization environment, comprising:

performing a first leadership election amongst nodes of the secured networked virtualization environment that elects a leader node that directs an external communication from an external entity to a node within the secured networked virtualization environment;

assigning a cluster virtual IP address to the leader node, wherein the cluster virtual IP address is a different IP address than an IP address of the leader node;

generating a reverse tunnel, using a processor of the leader node, based at least in part on the cluster virtual IP address, wherein the external communication from the external entity to the node within the secured networked virtualization environment is sent via the reverse tunnel associated with the cluster virtual IP address;

identifying failure of the leader node;

performing a second leadership election amongst the nodes of the secured networked virtualization environment to elect a new leader node;

assigning the cluster virtual IP address to the new leader node; and

generating another reverse tunnel by the new leader node to allow the external entity to communicate with the secured networked virtualization environment.

2. The method of claim 1 , wherein performing the first leadership election, comprises:

receiving a heartbeat response for at least one node from the secured networked virtualization environment;

forming a queue with the at least one node that provide the heartbeat response, wherein the nodes that provide respective heartbeat responses are placed in the queue in an order that the nodes provide their respective heartbeat responses; and

electing a first node in a first position in the queue as the leader node.

3. The method of claim 2 , wherein a node located in the queue that subsequently fails to provide a heartbeat response is removed from the queue.

4. The method of claim 2 , wherein a node not located in the queue that subsequently provides a heartbeat response is placed in the queue.

5. The method of claim 1 , wherein each node of the secured networked virtualization environment has a private IP address and internal communication amongst the nodes of the secured networked virtualization environment is made through private IP addresses.

6. The method of claim 1 , wherein generating the reverse tunnel comprises:

identifying, by the leader node, a port number at the external entity through which the external entity communicates with the leader node.

7. The method of claim 6 , wherein the port number is a statically determined port number.

8. The method of claim 6 , wherein the port number is a dynamically determined port number.

9. The method of claim 8 , wherein the dynamically determined port number is determined by:

requesting the external entity for an available port number;

receiving the available port number from the external entity; and

utilizing the available port number as the port number at the external entity through which the external entity communicates with the leader node.

10. The method of claim 6 , wherein the port number at the external entity through which the external entity communicates with the leader node is associated with the secured networked virtualization environment.

11. The method of claim 6 , wherein generating the reverse tunnel comprises performing a secured shell (SSH) command using the port number, the cluster virtual IP address and a public SSH key for the external entity.

12. The method of claim 1 , wherein the external entity is chosen by iterating over a list of external entities associated with the secured networked virtualization environment until the external entity is identified.

13. The method of claim 12 , wherein the external entity is identified based at least in part on an ability to establish communication with the secured networked virtualization environment.

14. The method of claim 12 , wherein the list of external entities is updated periodically.

15. The method of claim 14 , wherein the list of external entities is updated by:

requesting a current external entity from the list of external entities for an updated list of external entities;

receiving the updated list of external entities; and

modifying the list of external entities associated with the secured networked virtualization environment with the updated list of external entities.

16. The method of claim 12 , wherein the list of external entities associated with the secured networked virtualization environment is assigned to the secured networked virtualization environment based on a unique identifier for the secured networked virtualization environment.

17. A computer program product embodied on a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a method for providing external access into a secured networked virtualization environment, comprising:

performing a first leadership election amongst nodes of the secured networked virtualization environment that elects a leader node that directs an external communication from an external entity to a node within the secured networked virtualization environment;

assigning a cluster virtual IP address to the leader node, wherein the cluster virtual IP address is a different IP address than an IP address of the leader node;

generating a reverse tunnel, using a processor of the leader node, based at least in part on the cluster virtual IP address, wherein the external communication from the external entity to the node within the secured networked virtualization environment is sent via the reverse tunnel associated with the cluster virtual IP address;

identifying failure of the leader node;

performing a second leadership election amongst the nodes of the secured networked virtualization environment to elect a new leader node;

assigning the cluster virtual IP address to the new leader node; and

generating another reverse tunnel by the new leader node to allow the external entity to communicate with the secured networked virtualization environment.

18. The computer program product of claim 17 , wherein performing the first leadership election, comprises:

receiving a heartbeat response for at least one node from the secured networked virtualization environment;

forming a queue with the at least one node that provide the heartbeat response, wherein the nodes that provide respective heartbeat responses are placed in the queue in an order that the nodes provide their respective heartbeat responses; and

electing a first node in a first position in the queue as the leader node.

19. The computer program product of claim 18 , wherein a node located in the queue that subsequently fails to provide a heartbeat response is removed from the queue.

20. The computer program product of claim 18 , wherein a node not located in the queue that subsequently provides a heartbeat response is placed in the queue.

21. The computer program product of claim 17 , wherein each node of the secured networked virtualization environment has a private IP address and internal communication amongst the nodes of the secured networked virtualization environment is made through private IP addresses.

22. The computer program product of claim 17 , wherein generating the reverse tunnel comprises:

identifying, by the leader node, a port number at the external entity through which the external entity communicates with the leader node.

23. The computer program product of claim 22 , wherein the port number is a statically determined port number.

24. The computer program product of claim 22 , wherein the port number is a dynamically determined port number.

25. The computer program product of claim 24 , wherein the dynamically determined port number is determined by:

requesting the external entity for an available port number;

receiving the available port number from the external entity; and

utilizing the available port number as the port number at the external entity through which the external entity communicates with the leader node.

26. The computer program product of claim 22 , wherein the port number at the external entity through which the external entity communicates with the leader node is associated with the secured networked virtualization environment.

27. The computer program product of claim 22 , wherein generating the reverse tunnel comprises performing a secured shell (SSH) command using the port number, the cluster virtual IP address and a public SSH key for the external entity.

28. The computer program product of claim 17 , wherein the external entity is chosen by iterating over a list of external entities associated with the secured networked virtualization environment until the external entity is identified.

29. The computer program product of claim 28 , wherein the external entity is identified based at least in part on an ability to establish communication with the secured networked virtualization environment.

30. The computer program product of claim 28 , wherein the list of external entities is updated periodically.

31. The computer program product of claim 30 , wherein the list of external entities is updated by:

requesting a current external entity from the list of external entities for an updated list of external entities;

receiving the updated list of external entities; and

modifying the list of external entities associated with the secured networked virtualization environment with the updated list of external entities.

32. The computer program product of claim 28 , wherein the list of external entities associated with the secured networked virtualization environment is assigned to the secured networked virtualization environment based on a unique identifier for the secured networked virtualization environment.

33. A system for providing external access into a secured networked virtualization environment, comprising:

a computer processor to execute a set of program code instructions; and

a memory to hold the set of program code instructions, in which the set of program code instructions comprises program code to perform: performing a first leadership election amongst nodes of the secured networked virtualization environment that elects a leader node that directs an external communication from an external entity to a node within the secured networked virtualization environment; assigning a cluster virtual IP address to the leader node, wherein the cluster virtual IP address is a different IP address than an IP address of the leader node; generating a reverse tunnel, using a processor of the leader node, based at least in part on the cluster virtual IP address, wherein the external communication from the external entity to the node within the secured networked virtualization environment is sent via the reverse tunnel associated with the cluster virtual IP address; identifying failure of the leader node;

performing a second leadership election amongst the nodes of the secured networked virtualization environment to elect a new leader node; assigning the cluster virtual IP address to the new leader node; and generating another reverse tunnel by the new leader node to allow the external entity to communicate with the secured networked virtualization environment.

34. The system of claim 33 , in which the set of program code instructions further comprise program code to perform the first leadership election by:

receiving a heartbeat response for at least one node from the secured networked virtualization environment;

forming a queue with the at least one node that provide the heartbeat response, wherein the nodes that provide respective heartbeat responses are placed in the queue in an order that the nodes provide their respective heartbeat responses; and

electing a first node in a first position in the queue as the leader node.

35. The system of claim 34 , wherein a node located in the queue that subsequently fails to provide a heartbeat response is removed from the queue.

36. The system of claim 34 , wherein a node not located in the queue that subsequently provides a heartbeat response is placed in the queue.

37. The system of claim 33 , wherein each node of the secured networked virtualization environment has a private IP address and internal communication amongst the nodes of the secured networked virtualization environment is made through private IP addresses.

Assignments (5)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2019
From: KAHLON, VINEET
To: NUTANIX, INC.
Reel/Frame 049258/0414 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2018
From: CUI, MIAO; JAIN, KSHITIZ
To: NUTANIX, INC.
Reel/Frame 047669/0670 →
RELEASE OF SECURITY INTEREST Recorded Sep 28, 2016
From: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P., AS AGENT
To: NUTANIX, INC.
Reel/Frame 040168/0586 →
SECURITY INTEREST Recorded Apr 15, 2016
From: NUTANIX, INC.
To: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P., AS AGENT
Reel/Frame 038440/0712 →
Continuity (2)
Provisional Application 61991195 · May 9, 2014
Related Publication 20150326531A1 · Nov 12, 2015
Cited By (7)
US 12,307,238 US 12,400,015 US 12,461,832 US 12,541,431 US 12,568,160 US 12,641,166 US 12,699,560