Agile data center network architecture
First Claim
Patent Images
1. A method of providing a virtual layer-2 network over a layer-3 infrastructure connecting a plurality of machines including a first machine and a second machine by assigning application addresses to individual machines of the plurality of machines and location addresses to components of the layer-3 infrastructure, the method comprising:
- intercepting, by an agile agent associated with the first machine, a virtual layer-2 packet with an assigned application address of a destination server associated with the second machine, wherein individual machines of the plurality of machines are associated with different agile agents;
determining, by the agile agent associated with the first machine, that the destination server is in a defined server group for a service, the defined server group being stored in an agile directory service;
based on the destination server being in the defined server group, utilizing, by the agile agent, the agile directory service to retrieve an individual location address associated with the application address;
selecting, by the agile agent, a switch of the layer-3 infrastructure through which to send the virtual layer-2 packet to the individual location address, the switch being selected from a plurality of switches of the layer-3 infrastructure to provide load balancing;
encapsulating, by the agile agent, the virtual layer-2 packet in a layer-3 packet, wherein the layer-3 packet is assigned the individual location address of the switch of the layer-3 infrastructure; and
transmitting the layer-3 packet to the switch, wherein the switch is configured to decapsulate the encapsulated virtual layer-2 packet and transmit the decapsulated virtual layer-2 packet to the second machine over a physical network connection,wherein, where the destination server is not in the defined server group, the agile directory service refuses to provide the individual location address.
3 Assignments
0 Petitions
Accused Products
Abstract
This patent application relates to an agile network architecture that can be employed in data centers, among others. One implementation provides a virtual layer-2 network connecting machines of a layer-3 infrastructure.
134 Citations
22 Claims
-
1. A method of providing a virtual layer-2 network over a layer-3 infrastructure connecting a plurality of machines including a first machine and a second machine by assigning application addresses to individual machines of the plurality of machines and location addresses to components of the layer-3 infrastructure, the method comprising:
-
intercepting, by an agile agent associated with the first machine, a virtual layer-2 packet with an assigned application address of a destination server associated with the second machine, wherein individual machines of the plurality of machines are associated with different agile agents; determining, by the agile agent associated with the first machine, that the destination server is in a defined server group for a service, the defined server group being stored in an agile directory service; based on the destination server being in the defined server group, utilizing, by the agile agent, the agile directory service to retrieve an individual location address associated with the application address; selecting, by the agile agent, a switch of the layer-3 infrastructure through which to send the virtual layer-2 packet to the individual location address, the switch being selected from a plurality of switches of the layer-3 infrastructure to provide load balancing; encapsulating, by the agile agent, the virtual layer-2 packet in a layer-3 packet, wherein the layer-3 packet is assigned the individual location address of the switch of the layer-3 infrastructure; and transmitting the layer-3 packet to the switch, wherein the switch is configured to decapsulate the encapsulated virtual layer-2 packet and transmit the decapsulated virtual layer-2 packet to the second machine over a physical network connection, wherein, where the destination server is not in the defined server group, the agile directory service refuses to provide the individual location address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system, comprising:
-
a plurality of computing devices communicatively coupled via a physical network connection including a plurality of switches, individual computing devices associated with an application address; an agile agent associated with a source computing device of the plurality of computing devices, the agile agent configured to; intercept a packet with an assigned application address of a destination computing device of the plurality of computing devices, determine whether the destination computing device is in a defined communication group of the source computing device, the defined communication group being stored in an agile directory service, where the destination computing device is in the defined communication group, retrieve a location address of an individual switch associated with the assigned application address using the agile directory service, select a different individual switch of the plurality of switches through which to send the packet to the location address, the different individual switch being selected to provide load balancing, encapsulate the packet and assign the encapsulated packet the location address of the individual switch, and transmit the encapsulated packet to the individual switch via the different individual switch, wherein upon receipt of the encapsulated packet the individual switch is configured to decapsulate the packet and transmit the decapsulated packet to the application address of the destination computing device over a physical network connection, wherein, where the destination computing device is not in the defined communication group, the agile directory service refuses to provide the location address. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A server, comprising:
-
at least one processor for executing computer readable instructions; and
,an agile agent that is executable by the at least one processor and configured to; receive a packet for delivery to another server with an application address, access an agile directory service to determine whether a defined server group of the server includes the another server, the defined server group being stored in the agile directory service, and in a case where the defined server group includes the another server, utilize the agile directory service to retrieve a location address of a switch associated with the another server, encapsulate the packet for the delivery over a physical network connection via an intermediate switch selected from a plurality of intermediate switches to provide load balancing, wherein the encapsulated packet is assigned the location address to the switch associated with the another server, and wherein upon receiving the encapsulated packet the switch associated with the another server is configured to decapsulate the encapsulated packet and transmit the decapsulated packet to the another server with the application address over a physical network connection, wherein, in cases where the defined server group does not include the another server, the agile directory service denies the location address. - View Dependent Claims (20, 21, 22)
-
Specification