Scalable routing and forwarding of packets in cloud infrastructure
Abstract
Techniques are disclosed for providing high performant packets processing capabilities in a virtualized cloud environment that enhance the scalability and high availability of the packets processing infrastructure. In certain embodiments disclosed herein, the VNICs functionality performed by network virtualization devices (NVDs) is offloaded from the NVDs to a fleet of computers, referred to as VNIC-as-a-Service System (or VNICaaS system). VNICaaS system is configured to provide Virtual Network Interface Cards (VNICs)-related functionality or service for multiple compute instances belonging to multiple tenants or customers of the CSPI. The VNICaaS system is capable of hosting multiple VNICs to process and transmit traffic in a distributed virtualized cloud networks environment. A single VNIC executed by the VNICaaS system can be used to process packets received from multiple compute instances.
Claims
exact text as granted — not AI-modifiedWhat is claimed:
1 . A method comprising:
receiving, by a packet processing system comprising a set of one or more host machines and a plurality of virtual network interface cards (VNICs), a packet originating from a first compute instance hosted on a first host machine, the first host machine being outside the packet processing system; selecting, by the packet processing system, a particular host machine from the set of one or more host machines for processing the packet; selecting, from a plurality of worker threads on the particular host machine, a particular worker thread for processing the packet; processing the packet by the particular worker thread, wherein the processing comprises
determining, based on information included in the packet, a VNIC from the plurality of VNICs to be used for forwarding the packet, and
determining a next-hop target to which the packet is to be forwarded using the VNIC and destination information included in the packet; and
causing, by the packet processing system, the packet to be forwarded to the next-hop target.
2 . The method of claim 1 , wherein the packet originating from the first compute instance is received by a top-of-rack (TOR) switch included in the packet processing system.
3 . The method of claim 1 , wherein the particular host machine from the set of one or more host machines is selected by a top-of-rack (TOR) switch included in the packet processing system based on an equal cost multipath algorithm.
4 . The method of claim 1 , wherein the next-hop target is one of a virtual router, a service gateway, a dynamic routing gateway, an Internet gateway, and a network address translation gateway.
5 . The method of claim 1 , wherein one or more virtual IP addresses are allocated for the VNIC and each of the one or more virtual IP address is associated with a forwarding rule.
6 . The method of claim 1 , wherein the VNIC from the plurality of VNICs to be used for forwarding the packet is determined using a source information of the packet.
7 . The method of claim 1 , wherein the next-hop target to which the packet is to be forwarded is determined using metadata associated with the VNIC, wherein metadata includes information identifying one or more forwarding rules of the VNIC or security and firewall rules of the VNIC.
8 . The method of claim 1 , wherein the packet processing system receives the packet from a network virtualization device (NVD) associated with the first host machine, the NVD including a micro-VNIC that is configured to route the packet to the packet processing system.
9 . The method of claim 8 , wherein the micro-VNIC directs the packet to a virtual internet protocol address of the VNIC.
10 . A packet processing system, comprising:
one or more processors; and a non-transitory computer-readable storage medium containing instructions which, when executed on the one or more processors, cause the one or more processors to perform operations including:
receiving, by the packet processing system comprising a set of one or more host machines and a plurality of virtual network interface cards (VNICs), a packet originating from a first compute instance hosted on a first host machine, the first host machine being outside the packet processing system;
selecting a particular host machine from the set of one or more host machines for processing the packet;
selecting, from a plurality of worker threads on the particular host machine, a particular worker thread for processing the packet;
processing the packet by the particular worker thread, wherein the processing comprises
determining, based on information included in the packet, a VNIC from the plurality of VNICs to be used for forwarding the packet, and
determining a next-hop target to which the packet is to be forwarded using the VNIC and destination information included in the packet; and
causing the packet to be forwarded to the next-hop target.
11 . The packet processing system of claim 10 , wherein the packet originating from the first compute instance is received by a top-of-rack (TOR) switch included in the packet processing system.
12 . The packet processing system of claim 10 , wherein a top-of-rack (TOR) switch included in the packet processing system selects the particular host machine from the set of one or more host machines based on an equal cost multipath algorithm.
13 . The packet processing system of claim 10 , wherein the next-hop target is one of a virtual router, a service gateway, a dynamic routing gateway, an Internet gateway, and a network address translation gateway.
14 . The packet processing system of claim 10 , wherein one or more virtual IP addresses are allocated for the VNIC and each of the one or more virtual IP address is associated with a forwarding rule.
15 . The packet processing system of claim 10 , wherein the VNIC from the plurality of VNICs to be used for forwarding the packet is determined using a source information of the packet.
16 . The packet processing system of claim 10 , wherein the next-hop target to which the packet is to be forwarded is determined using metadata associated with the VNIC, wherein metadata includes information identifying one or more forwarding rules of the VNIC or security and firewall rules of the VNIC.
17 . The packet processing system of claim 10 , wherein the packet processing system receives the packet from a network virtualization device (NVD) associated with the first host machine, the NVD including a micro-VNIC that is configured to route the packet to the packet processing system.
18 . The packet processing system of claim 17 , wherein the micro-VNIC directs the packet to a virtual internet protocol address of the VNIC.
19 . One or more computer readable non-transitory media storing computer-executable instructions that, when executed by one or more processors, cause:
receiving, by a packet processing system comprising a set of one or more host machines and a plurality of virtual network interface cards (VNICs), a packet originating from a first compute instance hosted on a first host machine, the first host machine being outside the packet processing system; selecting, by the packet processing system, a particular host machine from the set of one or more host machines for processing the packet; selecting, from a plurality of worker threads on the particular host machine, a particular worker thread for processing the packet; processing the packet by the particular worker thread, wherein the processing comprises
determining, based on information included in the packet, a VNIC from the plurality of VNICs to be used for forwarding the packet, and
determining a next-hop target to which the packet is to be forwarded using the VNIC and destination information included in the packet; and
causing, by the packet processing system, the packet to be forwarded to the next-hop target.
20 . The one or more computer readable non-transitory media storing computer-executable instructions of claim 19 , wherein the packet originating from the first compute instance is received by a top-of-rack (TOR) switch included in the packet processing system.Join the waitlist — get patent alerts
Track US2023396539A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.