Triple-tier anycast addressing

Information

  • Patent Grant
  • 8259720
  • Patent Number
    8,259,720
  • Date Filed
    Friday, February 2, 2007
    18 years ago
  • Date Issued
    Tuesday, September 4, 2012
    12 years ago
Abstract
In one embodiment, a solution is provided wherein redundant routers are treated as a single emulated switch. When a packet is received at a layer 2 edge switch from a host, the layer 2 edge switch may determine a switch identifier for the emulated switch using a destination anycast hardware address contained in the packet. The anycast hardware address may identify an emulated switch comprising a plurality of routers. Then a header may be added to the packet, the header including the switch identifier. Following that, the packet may be forwarded to another layer 2 switch along a shortest path from the layer 2 edge switch to the emulated switch.
Description
BACKGROUND OF THE INVENTION

1. Technical Field


The present invention relates to computer networking.


2. Description of the Related Art


Data management within organizations is an ever increasing concern, especially with the rise of the Internet information age. The heart of this data management function is sometimes known as a data center. Over the last decade, data centers have evolved into the strategic focus of Information Technology (IT) efforts to protect, optimize, and grow the organization.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates an “isolated application” environment.



FIG. 2 illustrates a DCE network.



FIG. 3 illustrates an example network containing layer 2 switches coupled to an emulated switch.



FIG. 4 illustrates an example of an ARP request packet.



FIG. 5 illustrates an example of an ARP request packet with an appended MAC-in-MAC header.



FIG. 6 illustrates an example of an ARP reply packet with an appended MAC-in-MAC header.



FIG. 7 illustrates an example method for handling a hardware address request to a router in an emulated switch of two or more routers.



FIG. 8 illustrates an example method for handling a packet received at a layer 2 edge switch from a router in an emulated switch of two or more routers.



FIG. 9 illustrates an example method for handling a packet from a host at an edge switch in a network containing layer 2 switches.



FIG. 10 illustrates an example method for handling a packet from a host at an edge switch in a network containing layer 2 switches.



FIG. 11 illustrates an example apparatus for handling a hardware address request to a router in an emulated switch of two or more routers.



FIG. 12 illustrates an example apparatus for handling a packet received at a layer 2 edge switch from a router in an emulated switch of two or more routers.



FIG. 13 illustrates an example apparatus for handling a packet from a host at an edge switch in a network containing layer 2 switches.



FIG. 14 illustrates an example apparatus for handling a packet from a host at an edge switch in a network containing layer 2 switches.



FIG. 15 illustrates a simplified architecture of DCE switch.





DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview


In one embodiment, a solution is provided wherein redundant routers are treated as a single emulated switch. When a packet is received at a layer 2 edge switch from a host, the layer 2 edge switch may determine a switch identifier for the emulated switch using a destination anycast hardware address contained in the packet. The anycast hardware address may identify an emulated switch comprising a plurality of routers. Then a header may be added to the packet, the header including the switch identifier. Following that, the packet may be forwarded to another layer 2 switch along a shortest path from the layer 2 edge switch to the emulated switch.


Example Embodiments


In this application, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order to not obscure the present invention.


Data center managers face several challenges in fulfilling the goals of data centers. Most enterprise data centers grew rapidly to meet the explosive economic growth of recent times. Consequently, applications commonly stand alone in underutilized, isolated infrastructure silos. Each infrastructure silo is designed based on the inclination of the specific application being deployed, so that a typical data center supports a broad assortment of operating systems, computing platforms, and storage systems. The disparate infrastructures supporting different application “islands” are difficult to change or expand and expensive to manage, integrate, secure, and back up. FIG. 1 illustrates an “isolated application” environment.


One solution to this problem is to design a data center environment that is highly scalable, resilient, secure, and able to integrate multiple applications and protocols. One such solution is known as the Data Center Network Architecture. A specific implementation of the Data Center Network Architecture is known as Data Center Ethernet (DCE). DCE allows for consolidation of input and output, and improved forwarding of communications within the network. This may be accomplished via specialized protocols and functionality operated by switches within a DCE network via network layer 2. Each of the switches within the DCE network may be a layer 2 device. FIG. 2 illustrates a DCE network. Edge switch 200 may be connected to a host 202. Edge switch 204 may be connected to host 206. Edge switches 200, 204 may then be connected to several core switches 208, 210, which then may be connected to other edge switches 212, 214. Each DCE switch may be assigned a unique identifier. A routing protocol, such as Intermediate-System-to-Intermediate-System (IS-IS), may be used inside DCE. Edge switches implementing this routing protocol may append information to packets sent though the DCE. This appended information may be in the form of a MAC-in-MAC header attached to the packet. Edge switches 212, 214 may then each be connected to layer 3 devices, such as routers 216, 218. Rather than forwarding packets to MAC addresses, DCE switches send packets to edge switches based on the edge switch identification via the MAC-in-MAC header. The edge switch then knows which of its ports to send the packet out to arrive at the correct IP address (for example, the port connected to router 216), and strips off the MAC-in-MAC header prior to doing so.


Rather than operate routers 216 and 218 independently, it is often beneficial to link the routers so that one router can act as a backup to the other router in case of router or link failure. This linking may be accomplished via another routing protocol, such as Hot Standby Routing Protocol (HSRP). Other hot standby routing protocols include Virtual Router Redundancy Protocol (VRRP) and Gateway Load Balancing Protocol (GLBP). In these protocols, several routers are connected to the same subnet of a network and work together to present the appearance of a single virtual router. Typically, a single virtual IP address is assigned to the routers, which the links to a single virtual MAC address. The single virtual MAC address, however, points to a particular one of the routers, designated as the “active” router, whereas the other router(s) are designated as “backup.” If one router goes down, another takes over and the virtual MAC address is mapped to the backup router. However, while both are running, only one is being used for outbound communications. This can be inefficient for several reasons.


First of all, using just one of a plurality of redundant routers as the active router for outbound communications can create a bottleneck at the single router or on one of its associated links. It would be much more efficient to load balance between the redundant routers. Second of all, even if a hot routing protocol is utilized to load balance between redundant routers, the traffic generated by these protocols can be wasteful. Third of all, the amount of time for a router to switch from active to backup is non-trivial. If faster convergence is desired, a different solution is required.


A solution is provided wherein the redundant routers are treated as a single emulated switch. This allows for both a failure recovery and a load-balancing mechanism for host-switch-router connectivity through a protocol, such as DCE, used in network containing layer 2 switches. Through the use of this solution, hot standby routing protocols such as HSRP, VRRP, and GLBP can be eliminated.


Configuration of the network may be accomplished by first assigning the same IP address to all routers in the emulated switch. This IP address may be known as the “router anycast address.” Additionally, the same MAC address may be assigned to all routers in the emulated switch. This MAC address may be known as a “router anycast MAC address.” Each host may then be configured with a default router using a virtual IP address. The virtual IP address maps to a virtual MAC address. The virtual MAC addresses for the routers in the virtual switch correspond to a single anycast hardware address. The anycast hardware address may be used as a switch identification. This switch identification may be advertised to all layer 2 switches within the network using a protocol such as IS-IS, RIP, or (EIGRP) as long as the edge switches have a reachable connection to the router.



FIG. 3 illustrates an example network containing layer 2 switches coupled to an emulated switch. When a packet is to be sent from a host 300 to a network, such as the Internet, coupled to the emulated switch 302, it may forward the packet to the closest edge switch 304. However, this host 300 does not have a MAC address of a default router in its memory, such as an address resolution protocol (ARP) cache. Therefore, the host 300 may first send a request for the router anycast address as, for example, an ARP request. The ARP request is a broadcast packet that is transmitted across the DCE network on the broadcast tree. Since the set of routers is part of an emulated anycast switch, only one link into the emulated anycast switch receives the ARP request. This may be accomplished by, for example, coordination between edge switches connected to a particular emulated switch. The link on which the request is sent is connected to a single router, despite the fact that the router may be a part of an emulated switch.


The router that receives the ARP request may ARP reply by sending a unicast packet to the ARP requesting host. This allows the first-hop switch, directly connected to the host, to know the edge switch associated with the router. This edge switch may be identified according to the switch identification associated with the emulated anycast switch. The ARP reply may be sent with the source MAC address equal to the router anycast MAC address so that the edge switches, directly connected to the hosts, associate the MAC address with the emulated anycast switch.


At this point the host's off subnet traffic will find the shortest path to the emulated anycast switch. This may or may not be the same router that replied to the ARP request. For example, while router 306 may have responded to the ARP request, the path to router 308 may actually be the shortest path for traffic. Other hosts will find their own shortest paths to the emulated anycast switch, which may be through a different router. This effectively load balances between the redundant routers in the emulated switch. Additionally, if the connection to a particular router goes down, either by a topology change in the network or the router itself goes down, traffic is quickly rerouted to other routers. This is because a protocol, such as DCE, used in a network containing layer 2 switches, can discover topology changes or downed links much faster than a hot standby routing protocol such as HSRP, VRRP or GLBP. A solution is provided that takes advantage of this fact to perform failover much quicker than prior art solutions since failover can now be performed by the network of switches itself.


Assume host A 300 wants to discover a MAC address for one of the routers 306, 308. It may transmit the ARP packet depicted in FIG. 4. The IP source address 400 may be the IP address of A. The IP destination address 402 may be the anycast IP address of SW7. The Layer 2 destination address 404 of the packet may be set to broadcast (all addresses). The layer 2 source address 406 may be Host-A 406.


Upon receipt of the ARP packet from Host A 302, switch SW1304 learns Host A 300 is off a particular interface (for example, interface 2). It may then append the MAC-in-MAC header depicted in FIG. 5. Here, the destination 500 may be set to broadcast, since the packet is still an ARP request, while the source may be set to SW2, 2, indicating switch 2, interface 2. A loop-free broadcast tree may be built which includes emulated SW5, and thus the tree indicates the shortest path to emulated SW7302 (this may have been performed earlier in the process than the receipt of the ARP request). The ARP request may then be passed via the shortest path to emulated switch SW7. However, edge switch SW5310, recognizing that the next switch is an emulated switch, may strip the MAC-in-MAC header. One of the routers 306, 308 may receive the ARP request and respond with an ARP reply. Here, it is assumed that this would be router 308. Upon receiving the ARP reply, edge switch SW5310 may add a MAC-in-MAC header to arrive at the packet depicted in FIG. 6. The destination address 600 of the MAC-in-MAC header in the reply may be SW1. The source address 602 of the MAC-in-MAC header of the reply may be emulated switch SW7. An interface identification may also be included but such a value is irrelevant anyway since the packet is not going to be used to perform forwarding. Edge switch SW5310 may then learn that router 308 is on its interface (e.g., interface 2). This information may be synchronized with information on switches throughout the DCE network, so that each switch knows that router 308 is on the interface of edge switch SW5310. The ARP reply may then flow through switches 312, 304 to host A 300.


When host 300 then wishes to send normal traffic out through the anycast hardware address corresponding to emulated switch SW7302, SW2304 may receive the traffic. It may then look up the anycast hardware address in its table, finding that it is on emulated switch SW7. It then may add the MAC-in-MAC header to the traffic and forward it via the shortest path to emulated switch SW7. Once again, edge switch 310 recognizes that switch SW7 is an emulated switch and strips the MAC-in-MAC header off prior to forwarding it on. By doing so, routers 306 and 308 have been load balanced because a packet originating from host A 300 will be transmitted through router 308 (using the shortest path) while a packet originating from sever B 314 will be transmitted through router 306. In cases where both paths are equal, a tie-breaking mechanism may be used such as hashing based on the source address. Additionally, as stated above, if one link goes down, the DCE network is able to forward all packets to the other router until such time as the link is restored.



FIG. 7 illustrates an example method for handling a hardware address request, such as an ARP request or an IPv6 Neighbor Solicitation, to a first router in an emulated switch of two or more routers. This process may be performed at a layer 2 edge switch in a network containing layer 2 switches. At 700, the hardware address request may be received from a layer 2 switch. This request may be an ARP request and may include a layer 2 network header (e.g., MAC-in-MAC header) that was added to the request by another layer 2 switch (not necessarily the layer 2 switch from which the request was directly received). At 702, this layer 2 network header may be stripped from the request. At 704, the hardware address request may be forwarded to the first router. It does not matter which router within the emulated switch is designated as the first router. At 706, a hardware address reply may be received from the router. This reply may be an ARP reply and may include an anycast hardware address shared between each router in the emulated switch. At 708, a layer 2 network header, such as a MAC-in-MAC header, may be added to the hardware address reply. At 710, the hardware address reply may be forwarded to another layer 2 switch. This may or may not be the same layer 2 switch as in 700.



FIG. 8 illustrates an example method for handling a packet received at a layer 2 edge switch from a router in an emulated switch of two or more routers. At 800, the packet may be received. The packet may be an ARP reply but it could also be ordinary traffic. The packet may include an anycast hardware address shared between each router in the emulated switch. At 802, the anycast hardware address may be added to a table along with an identification of the edge switch. This table may be periodically synchronized with tables associated with other layer 2 switches in the network. At 804, a layer 2 network header, such as a MAC-in-MAC header, may be added to the packet. At 806, the packet may be forwarded to another layer 2 switch in the network.



FIG. 9 illustrates an example method for handling a packet from a host at an edge switch in a network containing layer 2 switches. At 900, the packet may be received. The packet may include an anycast hardware address of an emulated switch corresponding to a plurality of routers. At 902, a switch identifier may be determined for the emulated switch using the anycast hardware address. This may be determined by, for example, looking up the anycast hardware address in a table to retrieve the switch identifier. At 904, a header may be added to the packet, the header including the switch identifier. This header may be a layer 2 network header, such as a MAC-in-MAC header. At 906, the packet may be forwarded to another layer 2 switch along the shortest path to the emulated switch. The shortest path may be determined by for example, referencing a spanning tree created for the switches, including the emulated switch. If there is a tie between two paths such that the shortest path cannot be determined based on distance, the tie may be broken by, for example, referencing a hash table based upon the source address of the packet.



FIG. 10 illustrates an example method for handling a packet from a host at an edge switch in a network containing layer 2 switches. At 1000, the packet may be received. The packet may include a destination anycast hardware address of an emulated switch corresponding to a plurality of routers. At 1002, a switch identifier may be determined for the emulated switch using the anycast hardware address. This may be determined by, for example, looking up the anycast hardware address in a table to retrieve the switch identifier. At 1004, a header may be added to the packet, the header including the switch identifier. This header may be a layer 2 network header, such as a MAC-in-MAC header. At 1006, a shortest path to the emulated switch may be determined. At 1008, it may be determined if the shortest path includes a link that is inoperative. If so, then at 1010, a new shortest path may be selected that does not include a link that is inoperative. At 1012, the packet may be forwarded to another layer 2 switch along a path representing the shortest path to the emulated switch. The shortest path may be determined by for example, referencing a spanning tree created for the switches, including the emulated switch. If there is a tie between two paths such that the shortest path cannot be determined based on distance, the tie may be broken by, for example, referencing a hash table based upon the source address of the packet.



FIG. 11 illustrates an example apparatus for handling a hardware address request to a first router in an emulated switch of two or more routers. This apparatus may be a layer 2 edge switch or a portion of a layer 2 edge switch (e.g., software). A hardware address request receiver 1100 may receive the hardware address request from a layer 2 switch. This request may be an ARP request and may include a layer 2 network header (e.g., MAC-in-MAC header) that was added to the request by another layer 2 switch (not necessarily the layer 2 switch from which the request was directly received). A layer 2 network header stripper 1102 coupled to the hardware address request receiver 1100 may strip this layer 2 network header from the request. A hardware address request forwarder 1104 coupled to the layer 2 network header stripper 1102 may forward the hardware address request to the first router. It does not matter which router within the emulated switch is designated as the first router. A hardware address reply receiver 1106 may receive a hardware address reply from the router. This reply may be an ARP reply and may include an anycast hardware address shared between each router in the emulated switch. A layer 2 network header adder 1108 coupled to the hardware address reply receiver 1106 may add a layer 2 network header, such as a MAC-in-MAC header, to the hardware address reply. A hardware address reply forwarder 1110 coupled to the layer 2 network header adder 1108 may forward the hardware address to another layer 2 switch. This may or may not be the same layer 2 switch as before.



FIG. 12 illustrates an example apparatus for handling a packet received at a layer 2 edge switch from a router in an emulated switch of two or more routers. A packet receiver 1200 may receive the packet. The packet may be an ARP reply but it could also be ordinary traffic. The packet may include an anycast hardware address shared between each router in the emulated switch. An anycast hardware address table adder 1202 coupled to the packet receiver 1200 may add the anycast hardware address request to a table along with an identification of the edge switch. This table may be periodically synchronized with tables associated with other layer 2 switches in the network. A layer 2 network header adder 1204 coupled to the anycast hardware address table adder 1202 may add a layer 2 network header, such as a MAC-in-MAC header, to the packet. A packet forwarder 1206 coupled to the layer 2 network header adder 1204 may forward the packet to a layer 2 switch in the network.



FIG. 13 illustrates an example apparatus for handling a packet from a host at an edge switch in a network containing layer 2 switches. A packet receiver 1300 may receive the packet. The packet may include an anycast hardware address of an emulated switch corresponding to a plurality of routers. A switch identification unit 1302 coupled to the packet receiver 1300 may determine a switch identifier for the emulated switch using the anycast hardware address. This may be determined by, for example, looking up the anycast hardware address in a table to retrieve the switch identifier. A switch identifier header adder 1304 coupled to the switch identification unit 1302 may add a header to the packet, the header including the switch identifier. This header may be a layer 2 network header, such as a MAC-in-MAC header. A shortest path packet forwarder 1306 coupled to the switch identifier header adder 1304 may forward the packet to another layer 2 switch along a path representing the shortest path to the emulated switch. The shortest path may be determined by for example, referencing a spanning tree created for the switches, including the emulated switch. If there is a tie between two paths such that the shortest path cannot be determined based on distance, the tie may be broken by, for example, referencing a hash table based upon the source address of the packet.



FIG. 14 illustrates an example apparatus for handling a packet from a host at an edge switch in a network containing layer 2 switches. A packet receiver 1400 may receive the packet. The packet may include a destination anycast hardware address of an emulated switch corresponding to a plurality of routers. A switch identification unit 1402 coupled to the packet receiver 1400 may determine a switch identifier for the emulated switch using the anycast hardware address. This may be determined by, for example, looking up the anycast hardware address in a table to retrieve the switch identifier. A switch identifier header adder 1404 coupled to the switch identification unit 1402 may add a header to the packet, the header including the switch identifier. This header may be a layer 2 network header, such as a MAC-in-MAC header. A shortest path determiner 1406 coupled to the switch identifier header adder may determine a shortest path to the emulated switch. A shortest path inoperative link determiner 1408 coupled to the shortest path determiner 1406 may determine if the shortest path includes a link that is inoperative. If so, then a new shortest path determiner 1410 coupled to the shortest path inoperative link determiner may select a new shortest path that does not include a link that is inoperative. A shortest path packet forwarder 1412 coupled to the shortest path inoperative link determiner 1408 and the new shortest path determiner 1410 may forward the packet to another layer 2 switch via a path representing the shortest path to the emulated switch. The shortest path may be determined by for example, referencing a spanning tree created for the switches, including the emulated switch. If there is a tie between two paths such that the shortest path cannot be determined based on distance, the tie may be broken by, for example, referencing a hash table based upon the source address of the packet.


In each of these embodiments, various protocols may be used (for example, DCE using the IS-IS protocol). Additionally, in each of these embodiments, it is no longer necessary to run a hot standby routing protocol.



FIG. 15 illustrates a simplified architecture of DCE switch 1500. DCE switch 1500 includes N line cards, each of which characterized by and ingress side (or input) 1205 and an egress side (or output) 1525. Line card ingress sides 1505 are connected via switching fabric 1550, which includes a crossbar in this example, to line card egress sides 1525. In this embodiment, one or more of the processes described above is performed by one or more of the line cards.


Although illustrative embodiments and applications of this invention are shown and described herein, many variations and modifications are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those of ordinary skill in the art after perusal of this application. For example, it is possible that an edge switch is connected to multiple routers within a single emulated switch. Accordingly, the embodiments described are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

Claims
  • 1. A method for processing, at a first layer 2 switch, a hardware address request comprising: receiving the hardware address request from a second layer 2 switch, wherein the hardware address request is directed to an emulated switch, wherein the emulated switch comprises a plurality of routers, and wherein the first layer 2 switch is an edge switch that has an interface with at least one of the routers of the emulated switch, wherein each of the routers of the emulated switch is assigned a same IP (Internet Protocol) address and a same MAC (Media Access Controller) address;forwarding the hardware address request to a first one of the routers of the emulated switch;receiving a hardware address reply from the first router, the hardware address reply including an anycast hardware address shared between each router in the emulated switch;adding a layer 2 network header to the hardware address reply, wherein the anycast hardware address corresponds to the same MAC address that is assigned to each of the routers of the emulated switch; andforwarding the hardware address reply to a third layer 2 switch.
  • 2. The method of claim 1, further comprising: adding the anycast hardware address to a table along with an identification of the first layer 2 switch.
  • 3. The method of claim 2, further comprising: synchronizing the table with one or more tables associated with one or more layer 2 switches other than the first layer 2 switch.
  • 4. The method of claim 1, wherein the first layer 2 switch, the second layer 2 switch, and the third layer 2 switch belong to a same network that includes a plurality of layer 2 switches that include the first, second, and third layer 2 switches, and wherein each of the routers of the emulated switch is configured as a layer 3 gateway device of the same network for forwarding data between devices of this same network and devices outside this same network, via one or more of the switches of this same network.
  • 5. A method comprising receiving, at a first layer 2 switch, a packet, from a first router in an emulated switch, wherein the emulated switch comprises a plurality of routers, wherein the packet includes an anycast hardware address that corresponds to a same MAC address that is assigned to each of the routers in the emulated switch, and wherein the first layer 2 switch is an edge switch;adding a layer 2 network header to the packet; andforwarding the packet to a second layer 2 switch.
  • 6. The method of claim 5, further comprising: adding the anycast hardware address to a table along with an identification of the edge switch.
  • 7. The method of claim 6, further comprising: synchronizing the table with one or more tables associated with one or more layer 2 switches other than the first layer 2 switch.
  • 8. A method for processing, at a layer 2 edge switch in a network containing a plurality of layer 2 switches, comprising: receiving a packet from a host, wherein the packet includes an anycast hardware address that corresponds to a same MAC address that is assigned to each of a plurality of routers of an emulated switch;determining a switch identifier for the emulated switch using the anycast hardware address;adding a header to the packet, the header including the switch identifier; andforwarding the packet to another layer 2 switch along a shortest path from the layer 2 edge switch to the emulated switch.
  • 9. The method of claim 8, wherein the determining includes looking up the anycast hardware address in a table to retrieve the switch identifier.
  • 10. The method of claim 8, wherein the shortest path is determined based on a source address of the packet, using a hash table, if the shortest path cannot be determined based on distance due to a tie between two or more paths.
  • 11. A method for processing, at a layer 2 edge switch in a network containing a plurality of layer 2 switches, comprising: receiving a packet from a host at the layer 2 edge switch, wherein the packet includes a destination anycast hardware address includes an anycast hardware address that corresponds to a same MAC address that is assigned to each of a plurality of routers of an emulated switch;determining a switch identifier for the emulated switch using the anycast hardware address;adding a header to the packet, the header including the switch identifier;determining a shortest operative path from the layer 2 edge switch to the emulated switch; and
  • 12. The method of claim 11, wherein the determining includes looking up the anycast hardware address in a table to retrieve the switch identifier.
  • 13. The method of claim 11, wherein the shortest path is determined based on the source address of the packet, using a hash table, if the shortest path cannot be determined based on distance due to a tie between two or more paths.
  • 14. The method of claim 11, wherein the network containing a plurality of layer 2 switches is a Data Center Ethernet (DCE) network.
  • 15. The method of claim 11, wherein the header is a MAC-in-MAC header.
  • 16. The method of claim 11, wherein the routers do not run a hot standby routing protocol.
  • 17. A layer 2 edge switch for use in a network containing layer 2 switches, the layer 2 edge switch comprising: one or more line cards, wherein at least one of the one or more line cards is configured to perform the following, upon receipt of a packet from a host, wherein the packet includes a destination anycast hardware address that corresponds to a same MAC address that is assigned to each of a plurality of routers of an emulated switch:determine a switch identifier for the emulated switch using the anycast hardware address;add a header to the packet, the header including the switch identifier;determine a shortest operative path from the layer 2 edge switch to the emulated switch; andforward the packet to another layer 2 switch via the shortest operative path.
  • 18. The layer 2 edge switch of claim 17, wherein the layer 2 edge switch is a DCE switch.
  • 19. The layer 2 edge switch of claim 17, wherein the header is a MAC-in-MAC header.
  • 20. An apparatus that includes at least a processor that is configured to provide: means for receiving, at a layer 2 edge switch in a network containing a plurality of layer 2 switches, a packet from a host, wherein the packet includes a destination anycast hardware address of an emulated switch, and wherein the emulated switch comprises a plurality of routers that are each assigned a same MAC address that corresponds to the anycast hardware address;means for determining a switch identifier for the emulated switch using the anycast hardware address;means for adding a header to the packet, the header including the switch identifier; means for determining a shortest operative path from the layer 2 edge switch to the emulated switch; andmeans for forwarding the packet to another layer 2 switch via the shortest operative path.
  • 21. The apparatus of claim 20, wherein the network containing a plurality of layer 2 switches is a Data Center Ethernet (DCE) network.
US Referenced Citations (179)
Number Name Date Kind
5402416 Cieslak et al. Mar 1995 A
5526350 Gittins et al. Jun 1996 A
5742604 Edsall et al. Apr 1998 A
5920566 Hendel et al. Jul 1999 A
5946313 Allan et al. Aug 1999 A
5974467 Haddock et al. Oct 1999 A
6021124 Haartsen Feb 2000 A
6078586 Dugan et al. Jun 2000 A
6104699 Holender et al. Aug 2000 A
6195356 Anello et al. Feb 2001 B1
6201789 Witkowski et al. Mar 2001 B1
6236652 Preston et al. May 2001 B1
6333917 Lyon et al. Dec 2001 B1
6397260 Wils et al. May 2002 B1
6404768 Basak et al. Jun 2002 B1
6414939 Yamato Jul 2002 B1
6415323 McCanne et al. Jul 2002 B1
6456590 Ren et al. Sep 2002 B1
6459698 Achrya Oct 2002 B1
6504836 Li et al. Jan 2003 B1
6529489 Kikuchi et al. Mar 2003 B1
6556541 Bare Apr 2003 B1
6556578 Silberschatz et al. Apr 2003 B1
6560198 Ott et al. May 2003 B1
6587436 Vu et al. Jul 2003 B1
6611872 McCanne Aug 2003 B1
6636524 Chen et al. Oct 2003 B1
6650623 Varma et al. Nov 2003 B1
6671258 Bonneau Dec 2003 B1
6721316 Epps et al. Apr 2004 B1
6724725 Dreyer et al. Apr 2004 B1
6785704 McCanne Aug 2004 B1
6839794 Schober Jan 2005 B1
6885633 Mikkonen Apr 2005 B1
6888824 Fang et al. May 2005 B1
6901593 Aweya et al. May 2005 B2
6904507 Gil Jun 2005 B2
6922408 Bloch et al. Jul 2005 B2
6934256 Jacobson et al. Aug 2005 B1
6934292 Ammitzboell Aug 2005 B1
6975581 Medina et al. Dec 2005 B1
6975593 Collier et al. Dec 2005 B2
6990529 Yang et al. Jan 2006 B2
6999462 Acharya Feb 2006 B1
7016971 Recio et al. Mar 2006 B1
7020715 Venkataraman et al. Mar 2006 B2
7046631 Giroux et al. May 2006 B1
7046666 Bollay et al. May 2006 B1
7047666 Hahn et al. May 2006 B2
7093024 Craddock et al. Aug 2006 B2
7133405 Graham et al. Nov 2006 B2
7133416 Chamdani Nov 2006 B1
7158480 Firoiu et al. Jan 2007 B1
7187688 Garmire et al. Mar 2007 B2
7190667 Susnov et al. Mar 2007 B2
7197047 Latif et al. Mar 2007 B2
7209478 Rojas et al. Apr 2007 B2
7209489 Bailey et al. Apr 2007 B1
7221656 Aweya et al. May 2007 B1
7225364 Carnevale et al. May 2007 B2
7266122 Hogg et al. Sep 2007 B1
7266598 Rolia Sep 2007 B2
7277391 Aweya et al. Oct 2007 B1
7286485 Oulette et al. Oct 2007 B1
7319669 Kunz et al. Jan 2008 B1
7349334 Rider Mar 2008 B2
7349336 Mathews et al. Mar 2008 B2
7359321 Sindhu et al. Apr 2008 B1
7385997 Gorti et al. Jun 2008 B2
7400590 Rygh et al. Jul 2008 B1
7400634 Higashitaniguchi et al. Jul 2008 B2
7406092 Dropps et al. Jul 2008 B2
7436845 Rygh et al. Oct 2008 B1
7486689 Mott Feb 2009 B1
7525983 Dropps et al. Apr 2009 B2
7529243 Sodder et al. May 2009 B2
7561571 Lovett et al. Jul 2009 B1
7564789 Betker Jul 2009 B2
7564869 Cafiero et al. Jul 2009 B2
7596627 Cometto et al. Sep 2009 B2
7602720 Bergamasco et al. Oct 2009 B2
7684326 Nation et al. Mar 2010 B2
7801125 Kreeger et al. Sep 2010 B2
7830793 Gai et al. Nov 2010 B2
7961621 Bergamasco et al. Jun 2011 B2
7969971 Gai et al. Jun 2011 B2
20010043564 Bloch et al. Nov 2001 A1
20010048661 Clear et al. Dec 2001 A1
20020046271 Huang Apr 2002 A1
20020085493 Pekkala et al. Jul 2002 A1
20020085565 Ku Jul 2002 A1
20020103631 Feldmann et al. Aug 2002 A1
20020141427 McAlpine Oct 2002 A1
20020159385 Susnow et al. Oct 2002 A1
20020188648 Aweya et al. Dec 2002 A1
20020191640 Haymes et al. Dec 2002 A1
20030002517 Takajitsuko et al. Jan 2003 A1
20030026267 Obermann et al. Feb 2003 A1
20030037127 Shah et al. Feb 2003 A1
20030037163 Kitada et al. Feb 2003 A1
20030061379 Craddock et al. Mar 2003 A1
20030084219 Yao et al. May 2003 A1
20030091037 Latif et al. May 2003 A1
20030115355 Cometto et al. Jun 2003 A1
20030118030 Fukuda Jun 2003 A1
20030152063 Giese et al. Aug 2003 A1
20030169690 Mott Sep 2003 A1
20030193942 Gil Oct 2003 A1
20030195983 Krause Oct 2003 A1
20030202536 Foster et al. Oct 2003 A1
20030223416 Rojas et al. Dec 2003 A1
20030227893 Bajic Dec 2003 A1
20040008675 Basso et al. Jan 2004 A1
20040013088 Gregg Jan 2004 A1
20040013124 Peebles et al. Jan 2004 A1
20040024903 Costatino et al. Feb 2004 A1
20040032856 Sandstrom Feb 2004 A1
20040042448 Lebizay et al. Mar 2004 A1
20040042477 Bitar et al. Mar 2004 A1
20040076175 Patenaude Apr 2004 A1
20040078621 Talaugon et al. Apr 2004 A1
20040081203 Sodder et al. Apr 2004 A1
20040100980 Jacobs et al. May 2004 A1
20040120332 Hendel Jun 2004 A1
20040156390 Prasad et al. Aug 2004 A1
20040196809 Dillinger et al. Oct 2004 A1
20040213243 Lin et al. Oct 2004 A1
20040240459 Lo et al. Dec 2004 A1
20050002329 Luft et al. Jan 2005 A1
20050018606 Dropps et al. Jan 2005 A1
20050025179 McLaggan et al. Feb 2005 A1
20050044141 Hameleers et al. Feb 2005 A1
20050047421 Solomon Mar 2005 A1
20050060445 Beukema et al. Mar 2005 A1
20050138243 Tierney et al. Jun 2005 A1
20050141419 Bergamasco et al. Jun 2005 A1
20050141568 Kwak et al. Jun 2005 A1
20050169188 Cometto et al. Aug 2005 A1
20050169270 Mutou et al. Aug 2005 A1
20050190752 Chiou et al. Sep 2005 A1
20050226149 Jacobson et al. Oct 2005 A1
20050238064 Winter et al. Oct 2005 A1
20060002385 Johnsen et al. Jan 2006 A1
20060023708 Snively Feb 2006 A1
20060059213 Evoy Mar 2006 A1
20060087989 Gai et al. Apr 2006 A1
20060098589 Kreeger et al. May 2006 A1
20060098681 Cafiero et al. May 2006 A1
20060101140 Gai et al. May 2006 A1
20060146832 Rampal et al. Jul 2006 A1
20060171318 Bergamasco et al. Aug 2006 A1
20060187832 Yu Aug 2006 A1
20060193247 Naseh et al. Aug 2006 A1
20060193252 Naseh et al. Aug 2006 A1
20060195607 Naseh et al. Aug 2006 A1
20060198323 Finn Sep 2006 A1
20060209885 Hain et al. Sep 2006 A1
20060215550 Malhotra Sep 2006 A1
20060251067 Desanti et al. Nov 2006 A1
20070041321 Sasaki et al. Feb 2007 A1
20070047443 Desai et al. Mar 2007 A1
20070081454 Bergamasco et al. Apr 2007 A1
20070115824 Chandra et al. May 2007 A1
20070121617 Kanekar et al. May 2007 A1
20070133539 Kang et al. Jun 2007 A1
20070165632 Zwiebel Jul 2007 A1
20070183332 Oh et al. Aug 2007 A1
20070233887 Nubani et al. Oct 2007 A1
20080069114 Shimada et al. Mar 2008 A1
20080089247 Sane et al. Apr 2008 A1
20080212595 Figueira et al. Sep 2008 A1
20080259798 Loh et al. Oct 2008 A1
20080273465 Gusat et al. Nov 2008 A1
20090010162 Bergamasco et al. Jan 2009 A1
20090052326 Bargamasco et al. Feb 2009 A1
20090073882 McAlpine et al. Mar 2009 A1
20090232138 Gobara et al. Sep 2009 A1
20090252038 Cafiero et al. Oct 2009 A1
20110007741 Kreeger et al. Jan 2011 A1
Foreign Referenced Citations (10)
Number Date Country
1778079 May 2004 CN
1206099 May 2002 EP
WO2004064324 Jul 2004 WO
WO 2006047092 May 2006 WO
WO 2006047109 May 2006 WO
WO 2006047194 May 2006 WO
WO 2006047223 May 2006 WO
WO 2006057730 Jun 2006 WO
WO 2006063922 Jun 2006 WO
WO 2007050250 May 2007 WO
Related Publications (1)
Number Date Country
20080186968 A1 Aug 2008 US