Data center networks can scale to accommodate attached hosts and devices. Increasingly, however, data center networks must manage millions of communication flows through a complex fabric topology while maintaining a limited state and the core of the network.
Routing architecture and techniques exist (e.g., Hash-Based Routing) to enable multipath networks and scalable data centers. Such techniques include ensemble routing (or ensemble packet routing). Ensemble routing refers to routing techniques that dynamically manage large ensembles of transient and unpredictable flows between end stations.
Examples described herein provide for ensemble routing encapsulated data packets onto a network, such as a data center network. In examples described herein, packets for a data center network are encapsulated to include data that identifies edge devices of the data center network that are to handle the packets. Ensembles of packets are routed through the data center network using information contained within each packet that indicates the edge devices that are to handle each packet.
Still further, some examples described herein implement packet encapsulation with multipath ensemble routing in order to optimize ensemble packet routing in data networks. In examples described herein, ensemble routing of packets can be optimized based on, for example, traffic measurements and/or load balancing considerations.
Generally, in ensemble routing, each ensemble identifies flows that have diverse sources and destinations, and packets within a flow are mapped to the same ensemble, so that each flow is carried on a single path that preserves packet order. Examples described herein provide for ensembles of flows that include encapsulated data packets. The encapsulated data packets include additional information that identifies, or is indicative of, the edge devices that are to handle the packets. This information can be used to select routing VLANs for ensembles of encapsulated packets.
In the context of large-scale networks of arbitrary topologies, an example recognizes that ensemble routing eliminates measurement and control for individual flows, and instead manage large data centers using summary data. Ensemble routing enables traffic to be controlled through a large data center using only a small amount of routing state information. As a result, ensemble routing enables fast and reactive management of a large number of data flows, using simpler control than would otherwise be possible for per flow management. However, an example also recognizes that ensemble routing also sacrifices fine-grained control for individual flows. As a result, under conventional ensemble routing, some flows may take non-optimal paths.
Examples described herein further recognize that, while technology such as ensemble routing can provide active management of traffic within a large-scale network, networks using such routing technology can end up handling too many device addresses to record. For example, core switches in the data center network may not have Ethernet learning tables of sufficient size to learn detailed end-station address information for the network. Additionally, an example recognizes that packet processing performed through conventional ensemble routing technologies omit extraction of location specific information from individual device addresses that are visible within each packet.
An example recognizes that encapsulation technologies can structure packets to include information that addresses some of the shortfalls in conventional approaches to ensemble routing. In particular, the use of encapsulation with ensemble routing enables improved active management of traffic, to enable, for example, improved routing optimization, load-balancing and traffic de-congestion.
A system and method are provided to route packets in a data center network. Individual packets are encapsulated at an edge of the data center network, so that each encapsulated packet includes a set of header fields such as a tenant identifier. For each encapsulated packet, a hash class is determined from the set of header fields. A routing virtual local area network (VLAN) is selected for the packet based on the tenant identifier and the hash class.
Still further, another example provides for one or more network devices to provide traffic measurement data for the data center network. The accuracy of traffic measurements is improved using encapsulation information that identifies edge device addresses. The one or more network devices encapsulate tenant packets for the data center network. The encapsulated data packets may be routed in ensembles onto routing VLANs that are considered traffic measurements and parameters.
According to another aspect, a system includes a network device and a controller. The network device operates to encapsulate a collection of packets. Each encapsulated packet includes a set of header fields, such as a tenant identifier. A hash class is determined for each of the encapsulated packets in the collection using the respective set of header fields for that encapsulated packet. Traffic information is measured for at least some of the encapsulated packets using at least the hash class and tenant identifier of the individual encapsulated packets that are measured. The controller optimizes the routing information for use by the network device in selecting virtual local area networks (VLANs) to route encapsulated packets as ensembles. The controller also optimizes the routing information based on traffic information.
According to another aspect, a system includes one or more edge devices for the data center network, and one or more controllers. The one or more controllers communicate information to the one or more edge devices, the information including topology information for the data center network. The one or more edge devices encapsulate a collection of packets, and route each encapsulated packet onto a routing virtual local area network (VLAN). The routing VLAN is selected using at least a hash class and a traffic class. The hash class is determined from one or more fields in a set of fields included with each encapsulated packet. The traffic class is determined using location information that is based on one or more fields in the set of fields, and the topology information.
System Overview
In an example of
Moreover, with input provided from the controller 160, the ensemble routing module 150 manages or optimizes use of routing VLANs in the core of the data center network 10, including in regard to routing the individual packets as packet ensembles. In particular, the ensemble routing module 150 can route ensembles of packets onto routing VLANs with consideration for network traffic, traffic optimization, congestion and/or load balancing.
In an example of
While PBB provides one example for encapsulation, in variations, encapsulation module 110 can be implemented by other devices that utilize different forms of encapsulation techniques, including other MAC-in-MAC or MAC-in-IP encapsulation techniques. For example, encapsulation module 110 may utilize Network Virtualization using Generic Routing Encapsulation (“NVGRE”) as an alternative to PBB. While examples described herein are in the context of PBB encapsulation, other examples may implement alternative forms of encapsulation using concepts described herein, with variations in implementation that can accommodate differences in the alternative kinds of encapsulation (e.g., NVGRE encapsulation utilizes alternative header fields, etc.).
Among other provisions, encapsulation can decrease the number of device addresses that are processed in the core of the data center network 10. For example, the encapsulation module 110 may include a bridging device that associates each tenant device address with a bridge address corresponding to a physical location at an edge of the data center network 10, where the tenant device is attached. This enables the encapsulation module 110 to identify a smaller number of location tags that are used in the core which represent edge bridge addresses. The encapsulation module 110 can include an address learning component 108 that provides a table or other data structure for associating each device address with a location tag or edge bridge address for that device. The location tag is then embedded in one or more fields of the data packet 102 after the data packet is encapsulated and used to route the packet to through the network core.
As shown by an example of
By way of example, the encapsulation module 110 and corresponding address learning component 108 can be implemented by a backbone edge bridge (“BEB”) and PBB encapsulation module. PBB encapsulation can also generate an I-SID field in the header of the encapsulated packet 104. The I-SID is an identifier for a service provided at the edge of the data center network 10. Under conventional PBB, the I-SID can be used to determine a broadcast domain for the encapsulated data packet 104. In the example of
The header fields for the encapsulated data packet 104 also include the outer or backbone edge bridge destination (BDA), the outer or backbone edge bridge source (BSA), and the outer or backbone bridge VLAN ID (BVID). As described in greater detail below, these additional header fields can also be used to select routes for the encapsulated packets (based on packet ensembles), as well as to route the encapsulated packets.
An example of
The ensemble routing module 150 can include multiple components or processes for routing encapsulated packets based on ensemble determinations, as well as optimization/packet management considerations. In an example of
The location information 121 can be derived from the header of encapsulated packet 104 in a location processing component 122. More specifically, in one implementation, the location processing component 122 can determine location information 121 by processing header fields included in the encapsulated packet 104. In one aspect, the location processing component 122 uses a location lookup table 137 to reference information determined from extracted fields (e.g., BSA and BDA) against a physical location (e.g., point of egress and ingress into the network) in the topology of the data center network 10. Additionally, when a service is located at fixed and known locations, the I-SID field provides useful location information.
The location lookup table 137 can be populated by, for example, the controller 160, which can process nodal topology input 145 in order to be provide topology information 155 to populate the location lookup table 137. In one example, the nodal topology input 45 can be determined from a network discovery tool, which can identify the physical locations of the various edge devices, as well as the links that interconnect them, and the addresses associated with the different devices. The location lookup table 137 can be used to determine location information 121, which can be utilized in routing and/or measuring traffic for individual packets. In one aspect, the location lookup table 137 is able to reference addresses and other fields of the edge devices (e.g., BSA or BDA fields) in the network against location information 121 specifying a physical location of an edge device in the network. In particular, fields such as provided by the I-SID, the BSA, BDA, or other fields may be processed using location lookup table 137 to provide determine location information 121 (e.g., physical locations of ingress/egress for packet).
In an example, the location information 121 can be used to affect routing. In an example of
A quality of service (QoS) module 124 can identify packet header information relating to, for example, the designation of priority or type (“QoS information 129”) for the packet. For example, a service may be identified using the I-SID field to implement Quality of Service management where a high priority service is routed through one or more paths that provide more than a fair share of bandwidth or throughput to the high priority service. The QoS module 124 processes the packet header to produce QoS information 129 which is placed by the traffic class 134 and used to select a routing class 125.
As in the case with conventional ensemble routing techniques, the QoS information 129 can also be used by traffic class component 134 to determine the traffic class 123 for the packet. The traffic class 123 can be used as a basis for determining ensembles amongst the encapsulated packets.
The header fields of the encapsulated packet 104 can also be used to determine the hash class 127 for the packet. A hash function 132 can generate, from the fields of the encapsulated packet 104, a hash class tag 127. The hash function 132 may operate to assign hash tag class 127 in a manner that enables the hash tags to form a basis for optimizing path diversity.
A routing class component 136 can use the traffic class 123 and/or hash class 127 to determine the routing class 125 for the encapsulated data packet 104. In this way, the routing class 125 can be determined in part from, for example, location information 121 (used to determine the traffic class 123), as well as the hash class 127. The routing class 125 can correspond or relate to a determined ensemble for the data packet.
In one implementation, the ensemble routing module 150 includes components that perform routing and measurement functions. The ensemble routing module 150 can include a routing component 138 that receives routing input 143. The controller 160 can maintain a routing lookup table 139 (e.g., stored in a Ternary Content Addressable Memory or “TCAM”) that maintains routing information. The routing lookup table 139 can be optimized to reflect routing determinations based on traffic measurements 149, received from the measurement component 142. The routing input 143 can be provided from the controller 160 to the routing component 138, which operates on a packet-by-packet basis to select routing designations (e.g., VLAN selection 135) for encapsulated packets. As such, the routing component 138 can use the routing input 143 to make routing designations that optimize packet routing based on considerations such as traffic management or balancing.
The measurement component 142 can perform measurement action on some or all of the encapsulated packets. A measurement class 156 can be determined for some or all of the packets. The measurement class 156 can be determined from a hash function 132B that utilizes the fields of the packet. The hash function 132B can be the same or different from that used to route the packets. Additionally, the measurement class 156 can also be determined from the traffic class 134B. The traffic class 134B can also be determined from the location information 121 and the QoS information 129. The measurement class 156 can be used by the measurement component 142 to perform a measurement action, such as counting. The measurement information 149 can be communicated to the controller 160.
According to one aspect, the controller 160 can communicate parameters 147 to the measurement component 142 that identify what ensembles/packets should be measured by the measurement component 142. The measurement component 142 communicates traffic measurements 149, which can be based in part on the routing class 125 iterations, including the location information 121 determined from individual packets.
In one aspect, controller 160 can perform calculations that determine the routing information 143 based on the measurement information 149 provided form the ensemble module 150. The routing information 143 can be used to optimize routing designations that are maintained in the routing lookup table 138 (e.g., TCAM table). The routing information 143 can identify VLAN selections 135 with reference to parameters that include the routing class 125 (or traffic class 123 or hash class 127). Thus, in an example of
In one implementation, the routing class 125 is also recorded by the measurement component 142, and information that is based on the routing class 125 is communicated to the controller 160. In one implementation, the controller 160 can record traffic patterns, including identifying overloaded routing VLANs, under-used routing VLANs, and other considerations that can optimize the selection of the routing VLANs based on both traffic considerations and ensemble routing provisions. The controller 160 can implement optimization considerations based on the recorded traffic considerations, and the routing information that populates the lookup table 139 can account for the optimization determinations of the controller 160. In this way, the routing component 138 can select VLANs for packets based on, for example, optimization considerations.
Methodology
According to some aspects, incoming packets are encapsulated at an edge of a data center network to include additional header fields (210). The additional header fields include header fields that specify additional location information for the packet. For example, under PBB, the additional header fields include I-SID, B-VID, BSA and BDA. The incoming packets are processed using the header information for the packet (220). In one implementation, the processing of the packet includes using a hash function (224).
The incoming packets can be routed by selecting a routing VLAN (230). The routing VLAN can be selected using routing information that can be provided by a controller. As described with steps 240, the routing information can be optimized by the controller measuring the traffic information. In one implementation, a routing class is determined for the packets (232), and the routing class is referenced against routing information in order to determine the routing VLAN for the incoming packet. The determination of the routing class can be based on, for example, (i) a tenant identifier or other location information provided in the header field of the incoming packet (234), (ii) a hash class for the incoming packet, determined from the header fields of the incoming packet (236), and/or other information included with the header fields of the incoming packets (238). The incoming packets can be routed by, for example, the network device setting the selected VLAN identifier in one of the fields of the incoming packet (250). For example, with reference to
For at least some incoming packets, traffic information is measured for the packets (240). For example, a measurement class can be determined for the incoming packet (242). The measurement class can be based on, for example, (i) a tenant identifier or other location information provided in the header field of the incoming packet (244), (ii) a hash class for the incoming packet, determined from the header fields of the incoming packet (246), and/or other information included with the header fields of the incoming packets (248). The traffic information can be used by, for example, a controller to optimize the routing information (260). The routing information can be used to optimally route packets on selected VLANS.
Data Center Network
In variations, the functionality described with the encapsulation module 314 and the ensemble routing module 316 can be assigned or distributed to multiple devices, or to alternative devices. For example, the encapsulation module 314 and/or the ensemble routing module 316 can be implemented using multiple end devices. As an addition or alternative, some functionality described with the encapsulation module 314 and/or the ensemble routing module 316 can be implemented using different components, such as controller 330.
In an example of
The edge device 310 can provide measurement information 328 to the controller 330. For example, the ensemble routing module 316 can communicate measurement information 328 to the controller 330 when packets or ensembles are assigned to routing VLANs 315. The controller 330 can use the measurement information 328 to program (e.g., via control signal 332), for example, one or more TCAM tables that are used by the ensemble routing module 316. For example, the TCAMs can be reprogrammed to reduce traffic on a routing VLAN when the routing VLAN becomes overloaded, resulting in the ensemble routing module 316 assigning an ensemble of packets to a different routing VLAN. In this way, the controller 330 can implement optimization or load-balancing considerations in the manner in which packets or ensembles are distributed on the core network 312.
Edge Device
The communication interfaces 430 can receive the tenant packets. The processing resources 410 can use the encapsulation instructions 414 to encapsulate the incoming tenant packets. The processing resources 410 can also use the ensemble routing instructions 416 to route packets in ensembles onto the data network, using the communication interfaces 430. The communication interfaces 430 can also receive control signals 432, and transmit measurement information 428.
In
Although illustrative examples have been described in detail herein with reference to the accompanying drawings, variations to specific examples and details are encompassed by this disclosure. It is intended that the scope of examples described herein be defined by claims and their equivalents. Furthermore, it is contemplated that a particular feature described, either individually or as part of an example, can be combined with other individually described features, or parts of other examples. Thus, absence of describing combinations should not preclude the inventor(s) from claiming rights to such combinations.
Number | Name | Date | Kind |
---|---|---|---|
20120243544 | Keesara | Sep 2012 | A1 |
20130142201 | Kim et al. | Jun 2013 | A1 |
Entry |
---|
Schlansker, Mike et al., “Ensemble Routing for Datacenter Networks”, Hewlett-Packard Laboratories article, ANCS (2010), 12 pages. |
Number | Date | Country | |
---|---|---|---|
20140112137 A1 | Apr 2014 | US |