IP Library Granted Patent US 11,588,740
Granted Patent B2
US 11,588,740 · App. 17/335,027 · Granted Feb 21, 2023

Scaling host policy via distribution

Inventors: Gerald Roy Degrace (Atlanta, GA); Deepak Bansal (Bellevue, WA); Rishabh Tewari (Sammamish, WA); Michal Czeslaw Zygmunt (Redmond, WA); Deven Jagasia (Kirkland, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L47/20G06F9/45558H04L12/4641H04L41/0654H04L41/0806H04L41/0893H04L49/30H04L67/1095H04L67/141G06F2009/45579G06F2009/45595
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 11,588,740
App. No.
17/335,027
Granted
Feb 21, 2023
Kind
B2
Abstract

Techniques are disclosed for processing data packets and implementing policies in a software defined network (SDN) of a virtual computing environment. At least two SDN appliances are configured to disaggregate enforcement of policies of the SDN from hosts of the virtual computing environment. The hosts are implemented on servers communicatively coupled to network interfaces of the SDN appliance. The servers host a plurality of virtual machines. The servers are communicatively coupled to network interfaces of at least two top-of-rack switches (ToRs). The SDN appliance comprises a plurality of smart network interface cards (sNICs) configured to implement functionality of the SDN appliance. The sNICs have a floating network interface configured to provide a virtual port connection to an endpoint within a virtual network of the virtual computing environment.

Claims (88)

1. A method for processing data packets and implementing policies in a software defined network (SDN) of a virtual computing environment, by at least two SDN appliances configured to disaggregate enforcement of policies of the SDN from hosts of the virtual computing environment, the hosts implemented on servers communicatively coupled to network interfaces of the SDN appliances, the servers hosting a plurality of virtual machines, the servers communicatively coupled to at least two top-of-rack switches (ToRs), the SDN appliances comprising a plurality of smart network interface cards (sNICs) configured to implement functionality of the SDN appliances, the sNICs having a floating network interface configured to provide a virtual port connection to an endpoint within a virtual network of the virtual computing environment, wherein:

each sNIC that is associated with a first of the SDN appliances is paired with an sNIC associated with a second of the SDN appliances;

each of the paired sNICs is configured to serve multiple floating network interfaces; and

each floating network interface is serviced by multiple ones of the paired sNICs;

the method comprising:

selecting the first SDN appliance as an active SDN appliance, wherein the second SDN appliance is a passive SDN appliance;

announcing, on the virtual network, a unique virtual IP (VIP) address via border gateway protocol (BGP) for each of the paired sNICs;

configuring each of the multiple floating network interfaces to be serviced by at least two VIP addresses;

splitting, by the ToRs, data traffic on the virtual network across different ones of the VIP addresses;

determining that the second SDN appliance has become active; and

in response to determining that the second SDN appliance has become active, performing a flow synchronization process between the paired sNICs of the first and second SDN appliances.

2. The method of claim 1 , wherein the flow synchronization process comprises:

implementing at least two colors;

associating each connection and entry in a flow table with a color;

establishing a pairing relationship between a primary sNIC and a secondary sNIC; wherein a connection to a paired device can be replicated;

assigning a color to an sNIC that comes online;

as the online SNIC receives traffic, adding new flows to the flow table with the assigned color and replicated new flows to paired sNICs, wherein all connections use the same color until the pairing fails, and continues using the same color if there is no active pairing;

when pairing is re-established, changing the assigned color to a new color;

using the new color for new flows that are added to the flow table and replicating new flows to the paired sNIC; and

replicating existing connections to a new device to which a new pairing was created or an existing device to which pairing was re-established, wherein:

only connections which have different color than an actively used color is replicated;

entries with a currently active color are not replicated.

3. The method of claim 2 , further comprising clearing a state of a flow table of a secondary sNIC when pairing is re-established.

4. The method of claim 1 , further comprising ignoring update messages when a connection does not already exist in a flow table.

5. The method of claim 1 , wherein in response to a single card sNIC failure:

if an outage of the single card sNIC persists, selecting a different sNIC on another SDN appliance and initiating pairing with an sNIC on the another SDN appliance; and

announcing a VIP of the selected sNIC as active when flow synchronization completes for all floating network interfaces.

6. The method of claim 1 , wherein in response to a single SDN appliance failure: if an outage of the single SDN appliance failure persists, removing an existing pairing relationship, allocating a new SDN appliance, and creating a pairing relationship with the new SDN appliance.

7. A system comprising:

a plurality of servers communicatively coupled to at least two software defined network (SDN) appliances configured to disaggregate enforcement of policies of a SDN of a virtual computing environment from hosts of the virtual computing environment, the hosts implemented on servers communicatively coupled to network interfaces of the SDN appliances, the servers hosting a plurality of virtual machines, the servers communicatively coupled to at least two top-of-rack switches (ToRs), the SDN appliances comprising a plurality of smart network interface cards (sNICs) configured to implement functionality of the SDN appliances, the sNICs having a floating network interface configured to provide a virtual port connection to an endpoint within a virtual network of the virtual computing environment, wherein:

each sNIC that is associated with a first of the SDN appliances is paired with an sNIC associated with a second of the SDN appliances;

each of the paired sNICs is configured to serve multiple floating network interfaces; and

each floating network interface is serviced by multiple ones of the paired sNICs;

the system configured to:

selecting the first SDN appliance as an active SDN appliance, wherein the second SDN appliance is a passive SDN appliance;

announcing, on the virtual network, a unique virtual IP (VIP) address via border gateway protocol (BGP) for each of the paired sNICs;

configuring each of the multiple floating network interfaces to be serviced by at least two VIP addresses;

splitting, by the ToRs, data traffic on the virtual network across different ones of the VIP addresses;

determining that the second SDN appliance has become active; and

in response to determining that the second SDN appliance has become active, performing a flow synchronization process between the paired sNICs of the first and second SDN appliances.

8. The system of claim 7 , wherein the flow synchronization process comprises:

implementing at least two colors;

associating each connection and entry in a flow table with a color;

establishing a pairing relationship between a primary sNIC and a secondary sNIC; wherein a connection to a paired device can be replicated;

assigning a color to an sNIC that comes online; and

as the online SNIC receives traffic, adding new flows to the flow table with the assigned color and replicated new flows to paired sNICs, wherein all connections use the same color until the pairing fails, and continues using the same color if there is no active pairing;

when pairing is re-established, changing the assigned color to a new color;

using the new color for new flows that are added to the flow table and replicating new flows to the paired sNIC;

replicating existing connections to a new device to which a new pairing was created or an existing device to which pairing was re-established, wherein:

only connections which have different color than an actively used color is replicated;

entries with a currently active color are not replicated.

9. The system of claim 8 , further comprising clearing a state of a flow table of a secondary sNIC when pairing is re-established.

10. The system of claim 8 , wherein 8 colors are implemented that are represented by 3 bits.

11. The system of claim 7 , further comprising ignoring update messages when a connection does not already exist in a flow table.

12. The system of claim 7 , wherein in response to a single card sNIC failure:

if an outage of the single sNIC persists, selecting a different sNIC on another SDN appliance and initiating pairing with an sNIC on the another appliance; and

announcing a VIP of the selected sNIC as active when flow synchronization completes for all floating network interfaces.

13. The system of claim 7 , wherein in response to a single SDN appliance failure: if an outage of the single SDN appliance persists, removing an existing pairing relationship, allocating a new SDN appliance, and creating a pairing relationship with the new SDN appliance.

14. The system of claim 7 , wherein flow splitting is performed by an intelligent ToR, on a source based on stable hashing, or directly on a source node.

15. A data center rack comprising:

a plurality of servers communicatively coupled to at least two software defined network (SDN) appliances configured to disaggregate enforcement of policies of a SDN of a virtual computing environment from hosts of the virtual computing environment, the hosts implemented on servers communicatively coupled to network interfaces of the SDN appliances, the servers hosting a plurality of virtual machines, the servers communicatively coupled to at least two top-of-rack switches (ToRs), the SDN appliances comprising a plurality of smart network interface cards (sNICs) configured to implement functionality of the SDN appliances, the sNICs having a floating network interface configured to provide a virtual port connection to an endpoint within a virtual network of the virtual computing environment, wherein:

each sNIC that is associated with a first of the SDN appliances is paired with an sNIC associated with a second of the SDN appliances;

each of the paired sNICs is configured to serve multiple floating network interfaces; and

each floating network interface is serviced by multiple ones of the paired sNICs;

the data center rack configured to:

selecting the first SDN appliance as an active SDN appliance, wherein the second SDN appliance is a passive SDN appliance;

announcing, on the virtual network, a unique virtual IP (VIP) address via border gateway protocol (BGP) for each of the paired sNICs;

configuring each of the multiple floating network interfaces to be serviced by at least two VIP addresses;

splitting, by the ToRs, data traffic on the virtual network across different ones of the VIP addresses;

determining that the second SDN appliance has become active; and

in response to determining that the second SDN appliance has become active, performing a flow synchronization process between the paired sNICs of the first and second SDN appliances.

16. The data center rack of claim 15 , wherein the flow synchronization process comprises:

implementing at least two colors;

associating each connection and entry in a flow table with a color;

establishing a pairing relationship between a primary sNIC and a secondary sNIC; wherein a connection to a paired device can be replicated;

assigning a color to an sNIC that comes online;

as the online SNIC receives traffic, adding new flows to the flow table with the assigned color and replicated new flows to paired sNICs, wherein all connections use the same color until the pairing fails, and continues using the same color if there is no active pairing;

when pairing is re-established, changing the assigned color to a new color;

using the new color for new flows that are added to the flow table and replicating new flows to the paired sNIC; and

replicating existing connections to a new device to which a new pairing was created or an existing device to which pairing was re-established, wherein:

only connections which have different color than an actively used color is replicated;

entries with a currently active color are not replicated.

17. The data center rack of claim 15 , further comprising clearing a state of a flow table of a secondary sNIC when pairing is re-established.

18. The data center rack of claim 17 , further comprising ignoring update messages when a connection does not already exist in the flow table.

19. The data center rack of claim 17 , wherein in response to a single SDN appliance failure: if an outage of the single SDN appliance persists, removing an existing pairing relationship, allocating a new SDN appliance, and creating a pairing relationship with the new SDN appliance.

20. The data center rack of claim 15 , wherein in response to a single card sNIC:

if an outage of a single sNIC persists, selecting a different sNIC on another SDN appliance and initiating pairing with an sNIC on the another SDN appliance; and

announcing a VIP of the selected sNIC as active when flow synchronization completes for all floating network interfaces.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2021
From: DEGRACE, GERALD ROY; BANSAL, DEEPAK; TEWARI, RISHABH; ZYGMUNT, MICHAL CZESLAW; JAGASIA, DEVEN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 058115/0498 →
Continuity (5)
Provisional Application 63173348 · Apr 9, 2021
Provisional Application 63173336 · Apr 9, 2021
Provisional Application 63173352 · Apr 9, 2021
Provisional Application 63173334 · Apr 9, 2021
Related Publication 20220329528A1 · Oct 13, 2022