IP Library Granted Patent US 10,412,119
Granted Patent B2
US 10,412,119 · App. 14/708,091 · Granted Sep 10, 2019

Mechanism for providing external access to a secured networked virtualization environment

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,412,119
App. No.
14/708,091
Filed
May 8, 2015
Granted
Sep 10, 2019
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 (76)

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

performing a leadership election amongst nodes of the secured networked virtualization environment that elects a leader node that directs external communication from an external entity to one or more nodes 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 into the one or more nodes 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 the 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 leadership election, comprises:

receiving heartbeat responses for the nodes of the secured networked virtualization environment;

forming a queue with the nodes that provide heartbeat responses, wherein the nodes that provide heartbeat responses are placed in the queue in an order that the nodes provide their heartbeat responses; and

electing a first node 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 an appropriate position 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 on its 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 leadership election amongst nodes of the secured networked virtualization environment that elects a leader node that directs external communication from an external entity to one or more nodes 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 into the one or more nodes 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 the 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 leadership election, comprises:

receiving heartbeat responses for the nodes of the secured networked virtualization environment;

forming a queue with the nodes that provide heartbeat responses, wherein the nodes that provide heartbeat responses are placed in the queue in an order that the nodes provide their heartbeat responses; and

electing a first node 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 an appropriate position 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 on its 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 program code instructions, in which the program code instructions comprises program code to perform: performing a leadership election amongst nodes of the secured networked virtualization environment that elects a leader node that directs external communication from an external entity to one or more nodes 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 into the one or more nodes 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 the 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 program code instructions further comprise program code to perform leadership election by:

receiving heartbeat responses for the nodes of the secured networked virtualization environment;

forming a queue with the nodes that provide heartbeat responses, wherein the nodes that provide heartbeat responses are placed in the queue in an order that the nodes provide their heartbeat responses; and

electing a first node 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 an appropriate position 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 →