US10193968B2ActiveUtilityA1

Virtual router with dynamic flow offload capability

63
Assignee: GOOGLE LLCPriority: Oct 14, 2016Filed: Oct 14, 2016Granted: Jan 29, 2019
Est. expiryOct 14, 2036(~10.3 yrs left)· nominal 20-yr term from priority
H04L 43/026H04L 12/4641H04L 47/32G06F 2009/4557H04L 45/586H04L 45/38H04L 47/125H04L 47/2483H04L 43/0894G06F 9/45558H04L 43/16H04L 49/505H04L 47/783H04L 45/16H04L 45/02H04L 67/1025
63
PatentIndex Score
1
Cited by
45
References
36
Claims

Abstract

Systems and methods for dynamically offloading network traffic flows in one or more virtual networks are disclosed. An example method begins with identifying a virtual router through which to route network traffic of a specific network flow, wherein the specific network flow has a source endpoint existing on a source host machine and a destination endpoint existing on a destination host machine. Flow statistics including statistics about the specific network flow are received. A determination is made as to whether the specific network flow meets an offload rule using the received flow statistics. In response to determining that the specific flow meets the offload rule, the specific network flow is offloaded from the virtual router.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer-implemented method for dynamically offloading network traffic flows in one or more virtual networks, the computer-implemented method comprising:
 identifying a virtual router through which to route network traffic of a specific network flow, wherein the specific network flow has a source endpoint existing on a source host machine and a destination endpoint existing on a destination host machine; 
 receiving flow statistics of network traffic transiting the virtual router including statistics about the specific network flow; 
 determining whether current network traffic of the specific network flow meets an offload rule using the received flow statistics by:
 determining the number of network flows that have already been offloaded for the source host machine of the specific network flow; and 
 determining whether the number of offloaded network flows exceeds a threshold amount for the source host machine; and 
 
 in response to determining that the number of offloaded network flows does not exceed a threshold amount for the source host machine, dynamically offloading the specific network flow from the virtual router rule to ensure that subsequent network traffic of the specific network flow does not transit the virtual router. 
 
     
     
       2. The computer-implemented method of  claim 1 , wherein offloading the specific network flow from the virtual router further comprises:
 creating a direct route between the source host machine and the destination host machine through which to route the specific network flow; and 
 routing subsequent specific network flow traffic through the direct route instead of the virtual router. 
 
     
     
       3. The computer-implemented method of  claim 1 , wherein the virtual router is identified based on characteristics of the specific network flow and at least one flow key of the virtual router defining network traffic that the virtual router is programmed to handle. 
     
     
       4. The computer-implemented method of  claim 1 , wherein determining whether the specific network flow meets an offload rule includes:
 comparing the specific network flow bandwidth with a predefined bandwidth; and 
 determining that the specific network flow exceeds a bandwidth network flow when the specific network flow bandwidth is greater than the predefined bandwidth. 
 
     
     
       5. The computer-implemented method of  claim 1 , wherein receiving flow statistics includes receiving statistics about the bandwidth of the specific network flow. 
     
     
       6. The computer-implemented method of  claim 1 , wherein determining whether the specific network flow meets an offload rule includes:
 determining an aggregate bandwidth flowing through the virtual router; and 
 determining whether the aggregate bandwidth exceeds a threshold bandwidth for the virtual router. 
 
     
     
       7. The computer-implemented method of  claim 1 , wherein flow statistics are received from at least one source, wherein the at least one source is: the source or destination virtual machines, the source or destination hosts, a router on the destination host, a programmable software switch on the source or destination host, a network monitoring system, or the virtual router. 
     
     
       8. The computer-implemented method of  claim 1 , wherein the source host machine is in a source cluster and the destination host machine is in a destination cluster that is different from the source cluster. 
     
     
       9. The computer-implemented method of  claim 8 , wherein identifying a virtual router through which to route network traffic of a specific network flow includes identifying a virtual router in the source cluster and a second virtual router in the destination cluster. 
     
     
       10. The computer-implemented method of  claim 1 , wherein the specific network flow has multiple destination virtual machines existing on multiple destination host machines in multiple clusters. 
     
     
       11. The computer-implemented method of  claim 1 , further comprising:
 expiring or removing the specific flow in response to determining that the specific flow has been idle for a predetermined amount of time. 
 
     
     
       12. The computer-implemented method of  claim 1 , further comprising:
 expiring or removing the specific flow in response to determining that the specific flow has been used below a threshold amount for a predetermined amount of time. 
 
     
     
       13. A system comprising:
 one or more computers; and 
 one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
 identifying a virtual router through which to router network traffic of a specific network flow, wherein the specific network flow has a source endpoint existing on a source host machine and a destination endpoint existing on a destination host machine; 
 receiving flow statistics of network traffic transiting the virtual router including statistics about the specific network flow; 
 determining whether current network traffic of the specific network flow meets an offload rule using the received flow statistics by:
 determining the number of network flows that have already been offloaded for the source host machine of the specific network flow; and 
 determining whether the number of offloaded network flows exceeds a threshold amount for the source host machine; and 
 
 in response to determining that the number of offloaded network flows does not exceed a threshold amount for the source host machine, dynamically offloading the specific network flow from the virtual router to ensure that subsequent network traffic of the specific network flow does not transit the virtual router. 
 
 
     
     
       14. The system of  claim 13 , wherein offloading the specific network flow from the virtual router further comprises:
 creating a direct route between the source host machine and the destination host machine through which to route the specific network flow; and 
 routing subsequent specific network flow traffic through the direct route instead of the virtual router. 
 
     
     
       15. The system of  claim 13 , wherein the virtual router is identified based on characteristics of the specific network flow and at least one flow key of the virtual router defining network traffic that the virtual router is programmed to handle. 
     
     
       16. The system of  claim 13 , wherein determining whether the specific network flow meets an offload rule includes:
 comparing the specific network flow bandwidth with a predefined bandwidth; and 
 determining that the specific network flow exceeds a bandwidth network flow when the specific network flow bandwidth is greater than the predefined bandwidth. 
 
     
     
       17. The system of  claim 13 , wherein receiving flow statistics includes receiving statistics about the bandwidth of the specific network flow. 
     
     
       18. The system of  claim 13 , wherein determining whether the specific network flow meets an offload rule includes:
 determining an aggregate bandwidth flowing through the virtual router; and 
 determining whether the aggregate bandwidth exceeds a threshold bandwidth for the virtual router. 
 
     
     
       19. The system of  claim 13 , wherein flow statistics are received from at least one source, wherein the at least one source is: the source or destination virtual machines, the source or destination hosts, a router on the destination host, a programmable software switch on the source or destination host, a network monitoring system, or the virtual router. 
     
     
       20. The system of  claim 13 , wherein the source host machine is in a source cluster and the destination host machine is in a destination cluster that is different from the source cluster. 
     
     
       21. The system of  claim 20 , wherein identifying a virtual router through which to route network traffic of a specific network flow includes a virtual router in the source cluster and a second virtual router in the destination cluster. 
     
     
       22. The system of  claim 13 , wherein the specific network flow has multiple destination virtual machines existing on multiple destination host machines in multiple clusters. 
     
     
       23. The system of  claim 13 , further comprising:
 expiring or removing the specific flow in response to determining that the specific flow has been idle for a predetermined amount of time. 
 
     
     
       24. The system of  claim 13 , further comprising:
 expiring or removing the specific flow in response to determining that the specific flow has been used below a threshold amount for a predetermined amount of time. 
 
     
     
       25. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:
 identifying a virtual router through which to route network traffic of a specific network flow, wherein the specific network flow has a source endpoint existing on a source host machine and a destination endpoint existing on a destination host machine; 
 receiving flow statistics of network traffic transiting the virtual router including statistics about the specific network flow; 
 determining whether current network traffic of the specific network flow meets an offload rule using the received flow statistics by:
 determining the number of network flows that have already been offloaded for the source host machine of the specific network; and 
 determining whether the number of offloaded network flows exceeds a threshold amount for the source host machine; and 
 
 in response to determining that the number of offloaded network flows does not exceed a threshold amount for the source host machine, dynamically offloading the specific network flow from the virtual router to ensure that subsequent network traffic of the specific network flow does not transit the virtual router. 
 
     
     
       26. The non-transitory computer-readable medium of  claim 25 , wherein offloading the specific network flow from the virtual router further comprises:
 creating a direct route between the source host machine and the destination host machine through which to route the specific network flow; and 
 routing subsequent specific network flow traffic through the direct route instead of the virtual router. 
 
     
     
       27. The non-transitory computer-readable medium of  claim 25 , wherein the virtual router is identified based on characteristics of the specific network flow and at least one flow key of the virtual router defining network traffic that the virtual router is programmed to handle. 
     
     
       28. The non-transitory computer-readable medium of  claim 25 , wherein determining whether the specific network flow meets an offload rule includes:
 comparing the specific network flow bandwidth with a predefined bandwidth; and 
 determining that the specific network flow exceeds a bandwidth network flow when the specific network flow bandwidth is greater than the predefined bandwidth. 
 
     
     
       29. The non-transitory computer readable medium of  claim 25 , wherein receiving flow statistics includes receiving statistics about the bandwidth of the specific network flow. 
     
     
       30. The non-transitory computer readable medium of  claim 25 , wherein determining the specific network flow meets an offload rule includes:
 determining an aggregate bandwidth flowing through the virtual router; and 
 determining whether the aggregate bandwidth exceeds a threshold bandwidth for the virtual router. 
 
     
     
       31. The non-transitory computer readable medium of  claim 25 , wherein flow statistics are received from at least one source, wherein the at least one source is: the source or destination virtual machines, the source or destination hosts, a router on the destination host, a programmable software switch on the source or destination host, a network monitoring system, or the virtual router. 
     
     
       32. The non-transitory computer readable medium of  claim 25 , wherein the source host machine is in a source cluster and the destination host machine is in a destination cluster that is different from the source cluster. 
     
     
       33. The non-transitory computer readable medium of  claim 32 , wherein identifying a virtual router through which to route network traffic of a specific network flow includes identifying a virtual router in the source cluster and a second virtual router in the destination cluster. 
     
     
       34. The non-transitory computer readable medium of  claim 25 , wherein the specific network flow has multiple destination virtual machines existing on multiple destination host machines in multiple clusters. 
     
     
       35. The non-transitory computer readable medium of  claim 25 , further comprising:
 expiring or removing the specific flow in response to determining that the specific flow has been idle for a predetermined amount of time. 
 
     
     
       36. The non-transitory computer readable medium of  claim 25 , further comprising:
 expiring or removing the specific flow in response to determining that the specific flow has been used below a threshold amount for a predetermined amount of time.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.