Using different TCP/IP stacks for different hypervisor services
View Patent ↗Multiple TCP/IP stack processors on a host. The multiple TCP/IP stack processors are provided independently of TCP/IP stack processors implemented by virtual machines on the host. The TCP/IP stack processors provide multiple different default gateway addresses for use with multiple processes. The default gateway addresses allow a service to communicate across an L3 network. Processes outside of virtual machines that utilize the TCP/IP stack processor on a first host can benefit from using their own gateway, and communicate with their peer process on a second host, regardless of whether the second host is located within the same subnet or a different subnet. The multiple TCP/IP stack processors can use separately allocated resources. Separate TCP/IP stack processors can be provided for each of multiple tenants on the host. Separate loopback interfaces of multiple TCP/IP stack processors can be used to create separate containment for separate sets of processes on a host.
1. A method of generating IP packets for a first hypervisor process running on a first electronic computing device that implements a generic TCP/IP stack processor and at least one dedicated TCP/IP stack processor, wherein the first hypervisor process operates outside of any virtual machine on the first electronic computing device, the method comprising:
retrieving configuration data for the dedicated TCP/IP stack processor, wherein the configuration data comprises a designation of a first default gateway for the dedicated TCP/IP stack processor that is different from a second default gateway for the generic TCP/IP stack processor, wherein the generic and dedicated TCP/IP stack processors are not implemented by virtual machines;
implementing the dedicated TCP/IP stack processor with the first default gateway;
processing data using the dedicated TCP/IP stack processor to generate an IP packet with an IP address not in a routing table of the dedicated TCP/IP stack processor; and
sending the IP packet to the IP address of the first default gateway, wherein sending the IP packet is part of a communication between the first hypervisor process and a second peer hypervisor process running on a second electronic computing device through the first default gateway.
2. The method of claim 1 , wherein the first and second hypervisor processes are virtual machine migrator processes.
3. The method of claim 1 further comprising:
sending IP packets from the dedicated TCP/IP stack processor out of the electronic computing device through a first physical network interface card (pNIC); and
sending IP packets from the generic TCP/IP stack processor out of the electronic computing device through a second pNIC.
4. The method of claim 3 further comprising:
processing the IP packets from the dedicated TCP/IP stack processor with a virtual switch that sends the IP packets from the dedicated TCP/IP stack processor to the first pNIC; and
processing the IP packets from the generic TCP/IP stack processor with the virtual switch that sends the IP packets from the generic TCP/IP stack processor to the second pNIC.
5. The method of claim 3 further comprising:
processing the IP packets from the dedicated TCP/IP stack processor with a first virtual switch that sends the IP packets from the dedicated TCP/IP stack processor to the first pNIC; and
processing the IP packets from the generic TCP/IP stack processor with a second virtual switch that sends the IP packets from the generic TCP/IP stack processor to the second pNIC.
6. The method of claim 1 , wherein the dedicated TCP/IP stack processor is a first dedicated TCP/IP stack processor and the IP packet is a first IP packet, the method further comprising:
retrieving configuration data for a second dedicated TCP/IP stack processor, wherein the configuration data for the second dedicated TCP/IP stack processor comprises a designation of a third default gateway for the second dedicated TCP/IP stack processor that is different from the first default gateway for the dedicated TCP/IP stack processor and the second default gateway for the generic TCP/IP stack processor;
implementing the second dedicated TCP/IP stack processor with an IP address of the second third default gateway;
processing data using the second dedicated TCP/IP stack processor to generate a second IP packet with an IP address not in a routing table of the second dedicated TCP/IP stack processor; and
sending the second IP packet to the IP address of the third default gateway.
7. The method of claim 6 , wherein the generic TCP/IP stack processor provides TCP/IP processing for a plurality of processes not assigned to any dedicated IP stack.
8. The method of claim 1 , wherein implementing the dedicated TCP/IP stack processor with the first default gateway comprises configuring, without user input, a default gateway address of the dedicated TCP/IP stack processor as an IP address of the first default gateway.
9. The method of claim 8 , wherein the default gateway address of the dedicated TCP/IP stack processor is configured dynamically.
10. The method of claim 9 , wherein the default gateway address of the dedicated TCP/IP stack processor is configured using a dynamic host configuration protocol.
11. A non-transitory machine readable medium storing a program which when executed by at least one processing unit implements a plurality of TCP/IP stack processors outside of any virtual machine, the program comprising sets of instructions for:
retrieving configuration data for a dedicated TCP/IP stack processor, wherein the configuration data comprises a designation of a first default gateway for the dedicated TCP/IP stack processor that is different from a second default gateway for a generic TCP/IP stack processor, wherein the generic and dedicated TCP/IP stack processes are not implemented by virtual machines;
without user input, configuring the dedicated TCP/IP stack processor with an IP address of the first default gateway;
processing data using the dedicated TCP/IP stack processor to generate an IP packet with an IP address not in a routing table of the dedicated TCP/IP stack processor; and
sending the IP packet to the IP address of the first default gateway.
12. The non-transitory machine readable medium of claim 11 , wherein the dedicated TCP/IP stack processor is a first dedicated TCP/IP stack processor, the program comprises a set of instructions for implementing a second dedicated TCP/IP stack processor with a third default gateway.
13. The non-transitory machine readable medium of claim 12 wherein the first dedicated TCP/IP stack processor is implemented with a first virtual local area network (VLAN) and the second dedicated TCP/IP stack processor is implemented with a second VLAN.
14. The non-transitory machine readable medium of claim 13 , wherein the program further comprises a set of instructions for adding a first VLAN tag to IP packets produced by the first dedicated TCP/IP stack processor and a second VLAN tag to IP packets produced by the second dedicated TCP/IP stack processor.
15. The non-transitory machine readable medium of claim 14 , wherein IP packets with the first VLAN tag and IP packets with the second VLAN tag are sent to a single physical network interface card (pNIC).
16. The non-transitory machine readable medium of claim 11 , wherein the processing units are processing units of a host device that implements a user space and a kernel space.
17. The non-transitory machine readable medium of claim 16 , wherein the data is produced by a process operating in the kernel space.
18. The non-transitory machine readable medium of claim 16 , wherein the data is produced by a process operating in the user space.
19. A method of communicating between a first hypervisor service process on a first subnet and a second hypervisor service process on a second subnet, the method comprising:
retrieving configuration data for a dedicated TCP/IP stack processor on a host of the first subnet, wherein the configuration data comprises a designation of a first default gateway for the dedicated TCP/IP stack processor that is different from a second default gateway for a generic TCP/IP stack processor on the host of the first subnet;
implementing the dedicated TCP/IP stack processor with the first default gateway;
processing data from the first hypervisor service process using the dedicated TCP/IP stack processor to generate an IP packet with an IP address not in a routing table of the dedicated TCP/IP stack processor; and
sending the IP packet to the second hypervisor service process on the second subnet though the IP address of the first default gateway.
20. The method of claim 19 , wherein the first and second hypervisor service processes are virtual storage area network processes.
21. The method of claim 19 further comprising:
sending IP packets from the dedicated TCP/IP stack processor out of the electronic computing device through a first physical network interface card (pNIC); and
sending IP packets from the generic TCP/IP stack processor out of the electronic computing device through a second pNIC.
22. The method of claim 19 , wherein the dedicated TCP/IP stack processor is a first dedicated TCP/IP stack processor and the IP packet is a first IP packet, the method further comprising:
retrieving configuration data for a second dedicated TCP/IP stack processor, wherein the configuration data for the second dedicated TCP/IP stack processor comprises a designation of a third default gateway for the second dedicated TCP/IP stack processor that is different from the first default gateway for the dedicated TCP/IP stack processor and the second default gateway for the generic TCP/IP stack processor;
implementing the second dedicated TCP/IP stack processor with an IP address of the third default gateway;
processing data from a third hypervisor service process using the third dedicated TCP/IP stack processor to generate a second IP packet with an IP address not in a routing table of the second dedicated TCP/IP stack processor; and
sending the second IP packet to a fourth hypervisor peer service process on a third subnet through the IP address of the third default gateway.
23. The method of claim 22 , wherein the generic TCP/IP stack processor provides TCP/IP processing for a plurality of processes not assigned to any dedicated IP stack.
24. The method of claim 19 , wherein the first subnet comprises a plurality of hosts and a plurality of services on the plurality of hosts of the first subnet communicate with each other over a layer 2 (L2) network.
25. The method of claim 24 , wherein the plurality of services on the plurality of hosts of the first subnet is a first plurality of services, the plurality of hosts on the first subnet is a first plurality of hosts, wherein the first plurality of services communicate with a second plurality of services on a second plurality of hosts of the second subnet over a layer 3 (L3) network.
26. The method of claim 19 , wherein the IP packet is sent on an L3 network to reach the second service on the second subnet.