Dynamic traffic prioritization across data centers
The disclosure provides an approach for processing communications between connected data centers. Embodiments include receiving, at a first gateway of a first data center from a second gateway of a second data center, one or more policies associated with traffic attributes. Embodiments include programming priority routes between the first gateway and the second gateway over a virtual private network (VPN) tunnel based on the one or more policies, wherein each of the priority routes is associated with a traffic attribute of the traffic attributes. Embodiments include providing the one or more policies to a central controller of the first data center and programming, by the central controller, one or more tables associated with a centrally-managed virtual switch based on the one or more policies. Embodiments include updating a database associated with each of a plurality of hosts based on the programming of the one or more tables.
1 . A method, comprising:
receiving, by a central controller of a first data center and from a first gateway of the first data center, one or more policies associated with traffic attributes, wherein the first gateway is programmed with priority routes between the first gateway and a second gateway of a second data center over a virtual private network (VPN) tunnel based on the one or more policies; and
programming, by the central controller, one or more tables associated with a centrally-managed virtual switch based on the one or more policies, wherein:
programming the one or more tables associated with the centrally-managed virtual switch causes each respective host of a plurality of hosts associated with the centrally-managed virtual switch to update a respective database associated with the respective host;
the respective updated database of each respective host of the plurality of hosts causes that respective host to process traffic between the first data center and the second data center according to the one or more policies; and
the one or more policies cause one of the hosts to:
determine that a first packet having a first traffic attribute and a second packet having a second traffic attribute cannot be simultaneously processed based on an amount of available bandwidth;
determine, based on the respective database, that the first traffic attribute has a higher priority than the second traffic attribute; and
process the first packet prior to the second packet based on the higher priority of the first traffic attribute.
2 . The method of claim 1 , wherein the central controller runs as a virtual appliance.
3 . The method of claim 1 , wherein the central controller is implemented as a distributed or clustered system.
4 . The method of claim 1 , wherein the first traffic attribute comprises a routing prefix identified by a subnet mask applied to a source or destination internet protocol (IP) address of the first packet.
5 . The method of claim 1 , wherein the one or more policies comprise at least one of:
one or more user-defined policies received via a management plane of the second data center; or
one or more system-defined policies generated at one or more hosts of the second data center.
6 . The method of claim 1 , wherein the one or more tables associated with the centrally-managed virtual switch comprise one or more network input/output (I/O) control tables comprising configuration information related to allocating bandwidth to packets by the centrally-managed virtual switch.
7 . The method of claim 1 , wherein, each priority route of the priority routes is associated with a given traffic attribute of the traffic attributes.
8 . A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving, by a central controller of a first data center and from a first gateway of the first data center, one or more policies associated with traffic attributes, wherein the first gateway is programmed with priority routes between the first gateway and a second gateway of a second data center over a virtual private network (VPN) tunnel based on the one or more policies; and
programming, by the central controller, one or more tables associated with a centrally-managed virtual switch based on the one or more policies, wherein:
programming the one or more tables associated with the centrally-managed virtual switch causes each respective host of a plurality of hosts associated with the centrally-managed virtual switch to update a respective database associated with the respective host;
the respective updated database of each respective host of the plurality of hosts causes that respective host to process traffic between the first data center and the second data center according to the one or more policies; and
the one or more policies cause one of the hosts to:
determine that a first packet having a first traffic attribute and a second packet having a second traffic attribute cannot be simultaneously processed based on an amount of available bandwidth;
determine, based on the respective database, that the first traffic attribute has a higher priority than the second traffic attribute; and
process the first packet prior to the second packet based on the higher priority of the first traffic attribute.
9 . The non-transitory computer-readable medium of claim 8 , wherein the central controller runs as a virtual appliance.
10 . The non-transitory computer-readable medium of claim 8 , wherein the central controller is implemented as a distributed or clustered system.
11 . The non-transitory computer-readable medium of claim 8 , wherein the first traffic attribute comprises a routing prefix identified by a subnet mask applied to a source or destination internet protocol (IP) address of the first packet.
12 . The non-transitory computer-readable medium of claim 8 , wherein the one or more policies comprise at least one of:
one or more user-defined policies received via a management plane of the second data center; or
one or more system-defined policies generated at one or more hosts of the second data center.
13 . The non-transitory computer-readable medium of claim 8 , wherein the one or more tables associated with the centrally-managed virtual switch comprise one or more network input/output (I/O) control tables comprising configuration information related to allocating bandwidth to packets by the centrally-managed virtual switch.
14 . The non-transitory computer-readable medium of claim 8 , wherein, each priority route of the priority routes is associated with a given traffic attribute of the traffic attributes.
15 . A system, comprising:
one or more processors; and
a non-transitory computer-readable medium storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving, by a central controller of a first data center and from a first gateway of the first data center, one or more policies associated with traffic attributes, wherein the first gateway is programmed with priority routes between the first gateway and a second gateway of a second data center over a virtual private network (VPN) tunnel based on the one or more policies; and
programming, by the central controller, one or more tables associated with a centrally-managed virtual switch based on the one or more policies, wherein:
programming the one or more tables associated with the centrally-managed virtual switch causes each respective host of a plurality of hosts associated with the centrally-managed virtual switch to update a respective database associated with the respective host;
the respective updated database of each respective host of the plurality of hosts causes that respective host to process traffic between the first data center and the second data center according to the one or more policies; and
the one or more policies cause one of the hosts to:
determine that a first packet having a first traffic attribute and a second packet having a second traffic attribute cannot be simultaneously processed based on an amount of available bandwidth;
determine, based on the respective database, that the first traffic attribute has a higher priority than the second traffic attribute; and
process the first packet prior to the second packet based on the higher priority of the first traffic attribute.
16 . The system of claim 15 , wherein the central controller runs as a virtual appliance.
17 . The system of claim 15 , wherein the central controller is implemented as a distributed or clustered system.
18 . The system of claim 15 , wherein the first traffic attribute comprises a routing prefix identified by a subnet mask applied to a source or destination internet protocol (IP) address of the first packet.
19 . The system of claim 15 , wherein the one or more policies comprise at least one of:
one or more user-defined policies received via a management plane of the second data center; or
one or more system-defined policies generated at one or more hosts of the second data center.
20 . The system of claim 15 , wherein the one or more tables associated with the centrally-managed virtual switch comprise one or more network input/output (I/O) control tables comprising configuration information related to allocating bandwidth to packets by the centrally-managed virtual switch.