IP Library Granted Patent US 11,652,749
Granted Patent B2
US 11,652,749 · App. 17/335,014 · Granted May 16, 2023

High availability for hardware-based packet flow processing

Inventors: Gerald Roy Degrace (Atlanta, GA); Deepak Bansal (Bellevue, WA); Rishabh Tewari (Sammamish, WA); Michal Czeslaw Zygmunt (Bellevue, WA); Deven Jagasia (Kirkland, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L47/20G06F9/45558H04L41/046H04L45/12H04L45/38H04L45/586H04L47/2483H04L49/70H04L67/1097G06F2009/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,652,749
App. No.
17/335,014
Granted
May 16, 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 (55)

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 appliance, the servers hosting a plurality of virtual machines, the servers communicatively coupled to network interfaces of at least two top-of-rack switches (ToRs), the SDN appliance comprising a plurality of smart network interface cards (sNICs) configured to implement functionality of the SDN appliance, 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 associated with a first of the SDN appliances is paired with an sNIC associated with a second of the SDN appliances;

each sNIC of two paired sNICs is configured to serve a same floating network interface;

the method comprising:

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

announcing a same virtual IP (VIP) via border gateway protocol (BGP) for each paired sNIC;

for each sNIC of two paired sNICs, replicating active flows from an active sNIC to a passive sNIC; and

in response to a failure of the active SDN appliance:

withdrawing routes from the active SDN appliance; and

causing the ToRs to redirect data traffic to the passive SDN appliance.

2. The method of claim 1 , further comprising:

receiving, from a device that is remote from the virtual computing environment, a data packet addressed to an endpoint in a virtual network hosted by one of the virtual machines, the data packet comprising an identifier indicative of the remote device;

based on the identifier:

determining that the data packet is associated with the virtual network;

based on determining that the data packet is associated with the virtual network, mapping one of a plurality of policies to a data flow of the virtual network;

modifying the packet in accordance with the mapped policy; wherein the mapped policy is dynamically adjustable based on the data flow; and

forwarding the modified packet to the endpoint in the virtual network.

3. The method of claim 1 , wherein the VIP is announced via short path using BGP, further comprising announcing a second VIP announced with a long path using BGP, wherein the second VIP is used by the floating network interfaces when in passive mode.

4. The method of claim 1 , wherein paired sNICs announce the same set of VIPs.

5. The method of claim 1 , wherein flow replication is based on the floating network interfaces, and direction of flow replication is active to passive.

6. The method of claim 1 , wherein a single floating network interface is programmed on multiple sNICs.

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 appliance, the servers hosting a plurality of virtual machines, the servers communicatively coupled to network interfaces of at least two top-of-rack switches (ToRs), the SDN appliance comprising a plurality of smart network interface cards (sNICs) configured to implement functionality of the SDN appliance, 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 associated with a first of the SDN appliances is paired with an sNIC associated with a second of the SDN appliances;

each sNIC of two paired sNICs is configured to serve a same floating network interface;

the system configured to:

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

announce a same virtual IP (VIP) via border gateway protocol (BGP) for each paired sNIC;

for each sNIC of two paired sNICs, replicate active flows from an active sNIC to a passive sNIC; and

in response to a failure of the active SDN appliance, withdraw routes from the active SDN appliance and cause the ToRs to redirect data traffic to the passive SDN appliance.

8. The system of claim 7 , wherein the ToRs are configured to perform traffic load balancing, splitting, or sharding for selected floating network interfaces across VIPs of cards on which the selected floating network interface is provisioned.

9. The system of claim 7 , wherein a control plane of the virtual computing environment is configured to create pairing relationships between sNICs, wherein the paired sNICs are configured with a same ENI and policy.

10. The system of claim 9 , wherein in response to a failure of an SDN appliance not available for a threshold period of time:

withdrawing the pairing relationship from an associated sNIC; and

establishing a new pairing to another sNIC.

11. The system of claim 7 , wherein the SDN appliance is implemented as a distributed appliance where the sNICs are physically distributed among one or more top-of-rack switches, the servers communicatively coupled to network interfaces of the top-of-rack switches so that each of the servers have a switchable communications path to each sNIC of the top-of-rack switches.

12. The system of claim 9 , wherein the VIP is announced via short path using BGP, further comprising announcing a second VIP announced with a long path using BGP,k wherein the second VIP is used by the floating network interfaces when in passive mode.

13. The system of claim 7 , wherein paired sNICs announce the same set of VIPs.

14. The system of claim 7 , wherein flow replication is based on the floating network interfaces, and direction of flow replication is active to passive.

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 appliance, the servers hosting a plurality of virtual machines, the servers communicatively coupled to network interfaces of at least two top-of-rack switches (ToRs), the SDN appliance comprising a plurality of smart network interface cards (sNICs) configured to implement functionality of the SDN appliance, 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 associated with a first of the SDN appliances is paired with an sNIC associated with a second of the SDN appliances;

each sNIC of two paired sNICs is configured to serve a same floating network interface;

the data center rack configured to:

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

announce a same virtual IP (VIP) via border gateway protocol (BGP) for each paired sNIC;

for each sNIC of two paired sNICs, replicate active flows from an active sNIC to a passive sNIC; and

in response to a failure of the active SDN appliance, withdraw routes from the active SDN appliance and cause the ToRs to redirect data traffic to the passive SDN appliance.

16. The data center rack of claim 15 , wherein the VIP is announced via short path using BGP, further comprising announcing a second VIP announced with a long path using BGP, wherein the second VIP is used by the floating network interfaces when in passive mode.

17. The data center rack of claim 15 , wherein paired sNICs announce the same set of VIPs.

18. The data center rack of claim 17 , wherein flow replication is based on the floating network interfaces, and direction of flow replication is active to passive.

19. The data center rack of claim 15 , wherein a single floating network interface is programmed on multiple sNICs.

20. The data center rack of claim 17 , wherein the ToRs are configured to perform traffic load balancing, splitting, or sharding for selected floating network interfaces across VIPs of cards on which the selected floating network interface is provisioned.

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/0065 →
Continuity (5)
Provisional Application 63173348 · Apr 9, 2021
Provisional Application 63173334 · Apr 9, 2021
Provisional Application 63173352 · Apr 9, 2021
Provisional Application 63173336 · Apr 9, 2021
Related Publication 20220329520A1 · Oct 13, 2022
Cited By (1)
US 12,470,455