IP Library › Granted Patent US 12,261,775
Granted Patent B2
US 12,261,775 · App. 17/219,470 · Granted Mar 25, 2025

Support server high availability with network link bonding for cloud overlay networks

Inventors: Santosh Narayan Shilimkar (San Jose, CA); Bryce Eugene Bockman (Seattle, WA); Steven Chervets (Seattle, WA); Jagwinder Singh Brar (Bellevue, WA); Raman Kumar Sonkhla (Bothell, WA)
Assignee: Oracle International Corporation
H04L45/586G06F9/45558H04L41/12H04L41/16H04L43/0805H04L43/0817H04L43/10H04L45/02H04L45/28H04L61/5007H04L67/10G06F2009/4557G06F2009/45595H04L2101/622
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 12,261,775
App. No.
17/219,470
Granted
Mar 25, 2025
Kind
B2
Abstract

Systems and methods for support server high availability with network link bonding for cloud overlay networks are disclosed herein. The method can include selecting a compute instance, identifying a plurality of Network Virtualization Devices (“NVD”) for association with the compute instance, and creating a number of Virtualized Network Interface Cards (“VNIC”), each of which VNICs can reside in one of the plurality of NVDs. The method can include overlaying an IP address of the compute instance to each of the VNICs, such that each of the VNICs share a common IP address, designating a network path formed by one of the VNICs in one of the NVDs as an active network path and another of the network paths as an inactive network path, and activating the inactive network path when the active network path fails.

Claims (45)

1. A method comprising:

creating a network path bond between a compute instance and a plurality of Network Virtualization Devices (“NVD”), creating the network path bond comprising:

selecting the compute instance, the compute instance comprising a virtual machine (“VM”) instantiated on a host machine;

identifying a plurality of NVDs for association with the compute instance, each of the NVDs comprising a distinct hardware device;

creating a number of Virtualized Network Interface Cards (“VNIC”), each of the number of VNICs residing in a distinct one of the plurality of NVDs and forming a network path, each of the VNICs in the network path bond is associated with the compute instance; and

overlaying an IP address of the compute instance to each of the VNICs associated with the compute instance, such that each of the VNICs associated with the compute instance in the network path bond share a common IP address to affect automatic failover;

designating a network path formed by one of the VNICs in one of the NVDs as an active network path and another of the network paths formed by another of the VNICs in another of the NVDs as an inactive network path; and

activating the inactive network path when the active network path fails, wherein activating the inactive network path causes automatic failover from the active network path to the inactive network path.

2. The method of claim 1 , wherein the compute instance comprises a virtual machine (“VM”).

3. The method of claim 1 , wherein at least some of the plurality of NVDs comprise a SmartNIC.

4. The method of claim 1 , wherein the number of created VNICs comprises a VNIC for each of the plurality of identified NVDs.

5. The method of claim 1 , wherein each of the VNICs comprises a MAC learning VNIC.

6. The method of claim 5 , further comprising each of the VNICs learning a MAC address of a physical interface of the compute instance.

7. The method of claim 1 , further comprising identifying at least one compute instance for bonding, and wherein the compute instance is selected from the identified at least one compute instance for bonding.

8. The method of claim 1 , further comprising determining an IP address of a client VNIC located in the compute instance.

9. The method of claim 8 , wherein the IP address comprises a private IP address identifying the compute instance within virtual network.

10. The method of claim 9 , wherein the virtual network comprises a virtual cloud network.

11. The method of claim 8 , wherein the IP address of the client VNIC located in the compute instance is used as the overlay IP address.

12. The method of claim 1 , wherein designating the network path formed by one of the VNICs in one of the NVDs as the active network path and the another of the network paths formed by the another of the VNICs in the another of the NVDs as the inactive network path comprises updating a mapping in a control plane.

13. The method of claim 12 , wherein updating the mapping in the control plane comprises, for the active, mapping the overlay IP address of the VNIC in the active network path onto a physical IP address of the one of the NVDs with that VNIC.

14. The method of claim 12 , wherein updating the mapping in the control plane comprises updating a routing table.

15. The method of claim 1 , wherein activating the inactive network path when the active network path fails comprises:

periodically performing a health check on the active network path; and

determining when the active network path fails the health check.

16. The method of claim 15 , wherein activating the inactive network path when the active network path fails comprises remapping in a control plane to designate the inactive network path as a new active network path.

17. A non-transitory computer-readable storage medium storing a plurality of instructions executable by one or more processors, the plurality of instructions when executed by the one or more processors cause the one or more processors to:

create a network path bond between a compute instance and a plurality of Network Virtualization Devices (“NVD”), creating the network path bond comprising:

select the compute instance, the compute instance comprising a virtual machine (“VM”) instantiated on a host machine;

identify a plurality of NVDs for association with the compute instance, each of the NVDs comprising a distinct hardware device;

create a number of Virtualized Network Interface Cards (“VNIC”), each of the number of VNICs residing in a distinct one of the plurality of NVDs and forming a network path, each of the VNICs in the network path bond is associated with the compute instance; and

overlay an IP address of the compute instance to each of the VNICs associated with the compute instance, such that each of the VNICs associated with the compute instance in the network path bond share a common IP address to affect automatic failover;

designate a network path formed by one of the VNICs in one of the NVDs as an active network path and another of the network paths formed by another of the VNICs in another of the NVDs as an inactive network path; and

activate the inactive network path when the active network path fails, wherein activating the inactive network path causes automatic failover from the active network path to the inactive network path.

18. The non-transitory computer-readable storage medium of claim 17 , wherein designating the network path formed by one of the VNICs in one of the NVDs as the active network path and the another of the network paths formed by the another of the VNICs in the another of the NVDs as the inactive network path comprises updating a mapping in a control plane.

19. The non-transitory computer-readable storage medium of claim 18 , wherein updating the mapping in the control plane comprises, for the active, mapping the overlay IP address of the VNIC in the active network path onto a physical IP address of the one of the NVDs with that VNIC.

20. A system comprising:

a plurality of Network Virtualization Devices (“NVD”), each of the NVDs comprising a physical device; and

a processor configured to:

create a network path bond between a compute instance and a plurality of Network Virtualization Devices (“NVD”), creating the network path bond comprising:

selecting the compute instance, the compute instance comprising a virtual machine (“VM”) instantiated on a host machine;

identify a plurality of NVDs for association with the compute instance, each of the NVDs comprising a distinct hardware device;

create a number of Virtualized Network Interface Cards (“VNIC”), each of the number of VNICs residing in a distinct one of the plurality of NVDs and forming a network path, each of the VNICs in the network path bond is associated with the compute instance; and

overlay an IP address of the compute instance to each of the VNICs associated with the compute instance, such that each of the VNICs associated with the compute instance in the network path bond share a common IP address to affect automatic failover;

designate a network path formed by one of the VNICs in one of the NVDs as an active network path and another of the network paths formed by another of the VNICs in another of the NVDs as an inactive network path; and

activate the inactive network path when the active network path fails, wherein activating the inactive network path causes automatic failover from the active network path to the inactive network path.

Assignments (1)
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT THE APPLICATION NUMBER ON THE PATENT ASSIGNMENT COVER SHEET WHICH WAS ENTERED INCORRECTLY PREVIOUSLY RECORDED ON REEL 055800 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT ASSIGNMENT COVER SHEET. Recorded Apr 27, 2021
From: SHILIMKAR, SANTOSH NARAYAN; BOCKMAN, BRYCE EUGENE; CHERVETS, STEVEN; BRAR, JAGWINDER SINGH; SONKHLA, RAMAN KUMAR
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 056676/0242 →
Continuity (2)
Provisional Application 63121656 · Dec 4, 2020
Related Publication 20220182318A1 · Jun 9, 2022
References Cited (35)
US 7502884B1 · Shah · 2009 [cited by examiner]
US 7840706B1 · Abdulla · 2010 [cited by examiner]
US 8285881B2 · Elzur · 2012 [cited by examiner]
US 9100274B1 · Ghosh · 2015 [cited by applicant]
US 9473400B1 · DeVilbiss et al. · 2016 [cited by applicant]
US 11695692B2 · Shilimkar et al. · 2023 [cited by applicant]
US 11777849B2 · Shilimkar et al. · 2023 [cited by applicant]
US 20080002714A1 · Belgaied et al. · 2008 [cited by applicant]
US 20120265910A1 · Galles et al. · 2012 [cited by applicant]
US 20120324442A1 · Barde · 2012 [cited by applicant]
US 20130173810A1 · Subramaniam · 2013 [cited by applicant]
US 20160050145A1 · Tsirkin · 2016 [cited by applicant]
US 20160112422A1 · Watanabe · 2016 [cited by examiner]
US 20160188527A1 · Cherian · 2016 [cited by examiner]
US 20160191304A1 · Muller · 2016 [cited by applicant]
US 20170034046A1 · Cai et al. · 2017 [cited by applicant]
US 20180157537A1 · Chen et al. · 2018 [cited by applicant]
US 20180176127A1 · Cai et al. · 2018 [cited by applicant]
US 20190052598A1 · Hira et al. · 2019 [cited by applicant]
US 20190173780A1 · Hira · 2019 [cited by examiner]
US 20190222508A1 · Babu · 2019 [cited by examiner]
US 20190356728A1 · DeVilbiss · 2019 [cited by examiner]
US 20190377646A1 · Schimke et al. · 2019 [cited by applicant]
US 20200007383A1 · Efraim · 2020 [cited by examiner]
US 20200029458A1 · Jau · 2020 [cited by examiner]
US 20200081728A1 · Chandrashekhar · 2020 [cited by examiner]
US 20210234715A1 · Liu · 2021 [cited by examiner]
US 20210385149A1 · Suryanarayana et al. · 2021 [cited by applicant]
US 20210385155A1 · Suryanarayana et al. · 2021 [cited by applicant]
U.S. Appl. No. 17/219,475, Non-Final Office Action mailed on Jan. 23, 2023, 14 pages. [cited by applicant]
U.S. Appl. No. 17/219,477, Final Office Action mailed on Jul. 8, 2022, 14 pages. [cited by applicant]
U.S. Appl. No. 17/219,477, Non-Final Office Action mailed on Mar. 3, 2022, 12 pages. [cited by applicant]
U.S. Appl. No. 17/219,477, Notice of Allowance mailed on Nov. 30, 2022, 8 pages. [cited by applicant]
U.S. Appl. No. 17/219,477, Notice of Allowance mailed on Mar. 16, 2023, 9 pages. [cited by applicant]
U.S. Appl. No. 17/219,475, Notice of Allowance mailed on May 25, 2023, 11 pages. [cited by applicant]