1. Field
The present disclosure relates to network management. More specifically, the present disclosure relates to a method and system for facilitating load balancing and redundancy for switching devices in a network.
2. Related Art
As more time-critical applications are being implemented in data communication networks, high-availability operation is becoming progressively more important as a value proposition for network architects. It is often desirable to aggregate multiple network devices to operate as a single logical device to facilitate load balancing among the multiple network devices while providing redundancy to ensure that a device failure or link failure would not affect the data flow.
Meanwhile, layer-2 (e.g., Ethernet) networking technologies continue to evolve. More routing-like functionalities, which have traditionally been the characteristics of layer-3 (e.g., Internet Protocol or IP) networks, are migrating into layer-2. Notably, the recent development of the Transparent Interconnection of Lots of Links (TRILL) protocol allows Ethernet switches to function more like routing devices. TRILL overcomes the inherent inefficiency of the conventional spanning tree protocol, which forces layer-2 switches to be coupled in a logical spanning-tree topology to avoid looping. TRILL allows routing bridges (RBridges) to be coupled in an arbitrary topology without the risk of looping by implementing routing functions in switches and including a hop count in the TRILL header.
While TRILL brings many desirable features to layer-2 networks, some issues remain unsolved with layer-3 devices. Particularly, when a number of TRILL devices also serve as layer-3 routers, existing technologies do not provide a scalable and flexible solution which takes full advantage of the TRILL network, especially with respect to load balancing and redundancy.
One embodiment of the present invention provides a switching system. The switching system includes a Transparent Interconnection of Lots of Links (TRILL) header processor and an Internet Protocol (IP) header processor. The TRILL header processor is configured to identify a virtual routing bridge (RBridge) identifier in a packet, and the IP header processor is configured to identify a virtual IP address in the packet. The virtual IP address is assigned to a virtual IP router associated with the virtual RBridge identifier.
In a variation on this embodiment, the virtual IP address is assigned to an interface of the virtual IP router.
In a variation on this embodiment, the virtual IP router in the switching system is formed based on a plurality of physical RBridges with IP processing capabilities.
In a variation on this embodiment, the virtual RBridge in the switching system is formed based on a plurality of physical RBridges.
In a variation on this embodiment, the switching system further includes an Ethernet header processor unit configured to identify a virtual Medium Access Control (MAC) address assigned to the virtual IP router.
In a variation on this embodiment, the switching system includes an Address Resolution Protocol (ARP) module configured to respond to an ARP request for the virtual IP address with the virtual MAC address.
In a variation on this embodiment, the virtual IP router in the switching system is a default gateway router.
In a variation on this embodiment, the switching system includes a priority configuration mechanism which allows a priority to be set, thereby facilitating election of one of a plurality of physical RBridges that form the virtual IP router.
The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the claims.
In embodiments of the present invention, the problem of providing scalable and flexible redundancy and load balancing features to gateway routers is solved by forming a logical, virtual router based on multiple physical switches in a TRILL network. For example, a number of TRILL RBridges with IP processing capabilities may act as layer-3 routers for an end device. These RBridges form a virtual RBridge, which is assigned with a virtual RBridge identifier (ID). Furthermore, these RBridges form a virtual IP router, which has a virtual IP address assigned to at least one interface and a corresponding virtual MAC address. This virtual IP router operates as a default gateway router and the virtual IP address serves as a default gateway router address for the end devices.
During operation, an end device obtains the virtual MAC address by sending an ARP request with the virtual IP address. An outgoing layer-2 frame from the end device sets the virtual MAC address as the destination MAC address. When the frame is inserted into the TRILL network, a virtual RBridge nickname corresponding to the virtual RBridge ID is assigned as its egress RBridge nickname and the frame is forwarded through the rest of the TRILL network. Other end devices which are coupled to the same TRILL network in a similar way can use the same virtual RBridge nickname as their egress RBridge nickname. To the rest of the TRILL network, the frame appears to be destined to the virtual RBridge and is routed to one of the RBridges which form the virtual gateway router. The use of such a virtual RBridge allows load balancing while proving redundancy among RBridges corresponding to the virtual gateway router. When one of the these RBridges suffers a link and/or a node failure, the affected link and/or node is removed from the paths to the virtual RBridge in the TRILL network and alternative paths can be used to forward TRILL packets. This configuration allows fast protection switching and load balancing among the physical IP-capable RBridges that form the virtual gateway router.
Although the present disclosure is presented using examples based on the TRILL protocol, embodiments of the present invention are not limited to TRILL networks, or networks defined in a particular Open System Interconnection Reference Model (OSI reference model) layer.
The term “RBridge” refers to routing bridges, which are bridges implementing the TRILL protocol as described in IETF Request for Comments (RFC) “Routing Bridges (RBridges): Base Protocol Specification,” available at http://tools.ietf.org/html/rfc6325, which is incorporated by reference herein. Embodiments of the present invention are not limited to the application among RBridges. Other types of switches, routers, and forwarders can also be used.
In this disclosure, the term “edge port” refers to a port which sends/receives data frames in native Ethernet format. The term “TRILL port” refers to a port which sends/receives data frames encapsulated with a TRILL header and outer MAC header.
The term “end device” refers to a network device that is typically not TRILL-capable. “End device” is a relative term with respect to the TRILL network. However, “end device” does not necessarily mean that the network device is an end host. An end device can be a host, a conventional layer-2 switch, or any other type of network device. Additionally, an end device can be coupled to other switches or hosts further away from the TRILL network. In other words, an end device can be an aggregation point for a number of network devices to enter the TRILL network.
The term “IP-capable RBridge” refers to a physical RBridge that can route IP packets. An IP-capable RBridge can be coupled to a layer-3 network and can forward IP packets from end devices to the layer-3 network. A number of IP-capable RBridges form the virtual RBridge and the corresponding virtual IP router, thereby facilitating a virtual gateway router for end devices that supports redundancy and load-balancing. In this disclosure, an RBridge which forms the virtual RBridge and the virtual IP router is also referred to as a “gateway” RBridge. A gateway RBridge responds to ARP requests for the virtual IP address with a virtual MAC address. In various embodiments, any arbitrary number of gateway RBridges can form the virtual RBridge. As gateway RBridges can process both TRILL and IP packets, in this disclosure the term “gateway RBridge” can refer to both a physical RBridge in a TRILL network and a physical router in an IP network.
The term “IP router” refers to both the IP capable portion of an RBridge and a stand-alone IP router. In this disclosure, the terms “IP router” and “router” are used interchangeably.
The term “frame” refers to a group of bits that can be transported together across a network. “Frame” should not be interpreted as limiting embodiments of the present invention to layer-2 networks. “Frame” can be replaced by other terminologies referring to a group of bits, such as “packet,” “cell,” or “datagram.”
The term “RBridge identifier” refers to a group of bits that can be used to identify an RBridge. Note that the TRILL standard uses “RBridge ID” to denote a 48-bit intermediate-system-to-intermediate-system (IS-IS) System ID assigned to an RBridge, and “RBridge nickname” to denote a 16-bit value that serves as an abbreviation for the “RBridge ID.” In this disclosure, “RBridge identifier” is used as a generic term and is not limited to any bit format, and can refer to “RBridge ID” or “RBridge nickname” or any other format that can identify an RBridge.
The term “MAC address” refers to a 48-bit value that can be used to identify a networking device in layer-2. Any device implementing layer-2 or above is assigned with a MAC address. A MAC address associated with a networking device is permanent and does not change if the device changes location and point of attachment in the network.
The term “IP address” refers to a group of bits that can be used to identify a networking device in layer-3. For IP version 4, a 32-bit value is used for an IP address and for IP version 6, a 128-bit value is used for an IP address. Any device that implements layer-3 or above requires an IP address to send or receive data in an IP network. In this disclosure, “IP address” is used as a generic term and is not limited to any IP version.
The term “Address Resolution Protocol” or “ARP” refers to a protocol for discovering a network interface's MAC address when only a corresponding IP address is known. “ARP” should not be interpreted as limiting embodiments of the present invention to IP version 4. “ARP” can be replaced by other terminologies referring to a protocol, such as “Neighbor Discovery Protocol” used for identifying the hardware address of a network interface.
Gateway RBridges 111, 112, and 113 form a virtual RBridge 130 by operating as a single logical RBridge in TRILL network 100. Similarly, the corresponding IP routers 121, 122, and 123 form a virtual IP router 140 by operating as a single logical IP router. An end device 162 coupled to network 100 through RBridge 107 can use virtual IP router 140 as the default gateway router to layer-3 network 150.
During operation that does not involve router redundancy, an end device may select only one IP router as the gateway to the layer-3 network and use the corresponding IP address of the IP router as a default gateway address. For example, in
In embodiments of the present invention, as illustrated in
All the IP-layer router portions of these RBridges are configured to operate as the layer-3 gateway router (i.e., virtual IP router 140) for end device 162. End device 162 uses virtual IP router 140 as the default gateway. As virtual RBridge 130 is associated with virtual IP router 140, incoming frames from end device 162 destined to network 150 are marked with virtual RBridge 130's nickname as the egress RBridge nickname. Consequently, all frames from end device 162 to network 150 are delivered to one of the gateway RBridges 111, 112, and 113. Hence, load balancing can be achieved among gateway RBridges 111, 112, and 113 for frames sent to virtual RBridge 130.
Also included in network 200 are RBridges 222 and 224, which are layer-3 capable and coupled to an IP network 280 as IP routers 232 and 234. Gateway RBridges 222 and 224 form virtual RBridge 240 with virtual RBridge ID 245. Physically co-located IP Routers 232 and 234 within gateway RBridges 222 and 224, respectively, form a virtual IP router 270 which is assigned a virtual IP address 260 (on at least one interface) and a virtual MAC address 250. Virtual IP address 260 maps to virtual MAC address 250 for ARP requests directed to virtual IP router 270. Furthermore, virtual RBridge ID 245 is associated with virtual MAC address 250. End devices 252 and 254 can set virtual IP address 260 as their default gateway router address and use ARP to obtain virtual MAC address 250. End devices 252 and 254 send frames with virtual MAC address 250 as the destination MAC address into network 200. The frames are encapsulated in TRILL packets and routed toward virtual RBridge 240 using a virtual RBridge nickname associated with the corresponding virtual RBridge ID 245.
In some embodiments, a different virtual IP address can be assigned to each interface associated with different virtual Local Area Networks (VLANs) in a TRILL network. For example, in
In some embodiments, only one gateway RBridge is elected to reply to ARP requests for the virtual IP address. This election can also be VLAN-specific. Note that TRILL is only used as a transport between the switches within network 200. This is because TRILL can readily accommodate native Ethernet frames. Also, the TRILL standards provide a ready-to-use forwarding mechanism that can be used in any routed network with arbitrary topology. Embodiments of the present invention should not be limited to using only TRILL as the transport. Other protocols that support routing (such as multi-protocol label switching (MPLS)), either public or proprietary, can also be used for the transport.
During operation, when the end device has frames to transmit to an IP network, it prepares an ARP request using the virtual IP address and sends the query to a TRILL network it is coupled to (operation 304). The end device receives the ARP reply from the TRILL network with the virtual MAC address corresponding to the virtual IP address (operation 306). Note that the end device does not need to recognize the MAC address as “virtual” and considers the address to be a regular MAC address. The end device encapsulates an IP packet destined to the IP network in an Ethernet frame and sets the destination MAC address to be the virtual MAC address obtained from the ARP request (operation 308). The end device then transmits the frame to the TRILL network (operation 310).
In some embodiments, a gateway RBridge may not have any other intermediate RBridge between itself and an end device.
In some embodiments, virtual IP router 440 and end device 404 may be in the same VLAN. When end device 404 sends an ARP request for a virtual IP address, an elected gateway RBridge among gateway RBridges 412 and 414 responds to the query.
TRILL header 502 includes a version field (denoted as “V”), a reserved field (denoted as “R”), a multi-destination indication field (denoted as “M”), an option-field-length indication field (denoted as “OP-LEN”), and a hop-count field (denoted as “HOP CT”). Also included are an egress RBridge nickname field 505 and an ingress RBridge nickname field 506.
Inner Ethernet header 503 includes a destination MAC address field 508 and a source MAC address field 509. Header 503 can also include a 802.1Q header, which includes a virtual LAN identifier (VID). For all frames destined to the virtual IP router, the destination MAC address field 508 corresponds to the virtual MAC address assigned to the virtual IP router.
In some embodiments, in addition to carrying the virtual RBridge's nickname in the egress RBridge nickname field, it is possible to include the physical egress RBridge nickname in the TRILL option field. This configuration can facilitate end-to-end congestion notification and help with multicast suppression scenarios.
Furthermore, it is also possible to carry the virtual RBridge identifier in the TRILL option field, instead of the destination RBridge nickname field. The egress RBridge nickname field of an outgoing frame is used to carry the nickname of the physical egress RBridge. This configuration allows other RBridges in the TRILL network to identify the actual, physical egress RBridge as well as the virtual egress RBridge.
In some embodiments, an administrator or a user may try to ping to a default gateway router to check its accessibility. Since a virtual IP router is assigned as the default gateway, the capability to accept data packets destined to virtual IP addresses is desirable. Traffic to a virtual IP router may take a route to any of the gateway RBridges. Hence, in one embodiment, all gateway RBridges associated with the virtual IP router can respond to the ping requests.
On the other hand, for a stateful protocol such as telnet, one gateway RBridge can be elected to respond and maintain a stateful session. Otherwise, if two telnet sessions are created to the virtual IP address, they can be routed to different gateway RBridges and the states that each sees are different.
While responding to ping/telnet packets, the source MAC address in outgoing Ethernet frames should be replaced with the virtual MAC address. This allows the intermediate RBridges to refresh the virtual MAC address forwarding entry, as shown in
For example, referring back to
On the other hand, when a telnet request comes from end device 252 for virtual IP router 270, one of the gateway RBridges, such as RBridge 222, is elected to respond to it. Ingress RBridges 216 and 218 can be configured to always send the telnet frames from the same telnet session to RBridge 222.
In another example, referring back to
Suppose that a failure 764 occurs to link 731 adjacent to gateway RBridge 711. As a result, link 731 is removed from routing decisions in network 700. All frames from end device 770 are still using the virtual MAC address as the destination address, and thus are still forwarded to any of the gateway RBridges via alternative links (e.g., links 732, 733, and 734).
Suppose that a failure 762 occurs during operation that fails link 736 adjacent to gateway RBridge 721. Consequently, IP router 721 is disconnected from network 780 and is incapable of forwarding frames to network 780. Under such a scenario, IP router 721 is removed from virtual IP router 750. As a result, IP router 721 stops operating as a layer-3 gateway router for end device 770. However, gateway RBridge 711 still remains connected to network 700 and continues to operate as a regular TRILL RBridge. As virtual IP router 750 still operates as a default gateway for end device 770, IP routers 722 and 723 can continue to operate as layer-3 gateway routers (as virtual IP router 750) for end device 770. Hence, all frames from end device 770 to network 780 are then distributed among gateway RBridges 712 and 713.
In some embodiments, with failure 762, an elected gateway RBridge stops responding to ARP requests for the virtual IP address and notifies other gateway RBridges. Consequently, the other gateway RBridges then elect among themselves another gateway RBridge to respond to ARP requests.
In some embodiments, with failure 762, IP router 721 might not immediately remove its membership from virtual IP router 750 and might continue to receive layer-3 traffic from end devices. Under such circumstances, gateway RBridge 711, the TRILL counterpart of IP router 721, forwards the layer-3 traffic with TRILL encapsulation to other gateway RBridges (e.g., gateway RBridge 712) which, in turn, forwards the traffic to network 780. However, if all similar IP routers suffer link failures and lose their connection to network 780, IP router 721 along with the other gateway RBridges with link failures are removed from virtual IP router 750. However, all gateway RBridges continue operating as TRILL RBridges.
Suppose that a node failure 766 occurs at gateway RBridge 711 (and essentially IP router 721 as they are the same physical device). As a result, links 731, 733, 735, and 736 fail as well. Consequently, gateway RBridge 711 and IP router 721 are disconnected from both network 700 and network 780, and are incapable of transmitting to or receiving from either network. Under such a scenario, IP router 721 is removed from virtual IP router 750 and gateway RBridge 711 is removed from virtual RBridge 740. As a result, IP router 721 stops operating as a layer-3 gateway node. Furthermore, gateway RBridge 711 is disconnected from network 700 and removed from all TRILL routes in network 700.
With failure 766, as virtual IP router 750 still operates as a default gateway for end device 770, routers 722 and 723 continue operating as layer-3 gateway nodes for end device 770. Hence, all frames from end device 770 to network 780 are distributed between gateway RBridges 712 and 713. Furthermore, if IP router 721 had been an elected router, it stops responding to ARP requests for the virtual IP address. Other RBridges coupled to the failed gateway RBridge can detect the failure and notify all RBridges, including other active gateway RBridges. Consequently, the active gateway RBridges can elect another gateway RBridge to respond to ARP requests.
TRILL ports 804 include inter-switch communication channels for communication with one or more RBridges. This inter-switch communication channel can be implemented via a regular communication port and based on any open or proprietary format. Furthermore, the inter-switch communication between RBridges is not required to be direct port-to-port communication.
During operation, TRILL ports 804 receive TRILL frames from (and transmit frames to) other RBridges. TRILL header processing module 822 processes TRILL header information of the received frames and performs forwarding on the received frames based on their TRILL headers, as described in conjunction with
TRILL management module 820 forwards frames destined to a virtual IP router toward the IP management module 830. IP management module 830 extracts the IP packet from the Ethernet payload, and IP header processing module 836 processes header information of the received IP packet and performs layer-3 forwarding based on its IP header, as described in conjunction with
Priority configuration module 850 allows a priority to be set for RBridge 800. This module thereby facilitates election of an RBridge to perform specific tasks. In some embodiment, such a task can be enabling ARP module 834 to respond to an ARP request for a virtual IP address.
ARP module 834 is responsible for ARP request replies, as described in conjunction with
In some embodiments, gateway RBridge 800 may include a number of edge ports 802, as described in conjunction with
Note that the above-mentioned modules can be implemented in hardware as well as in software. In one embodiment, these modules can be embodied in computer-executable instructions stored in a memory which is coupled to one or more processors in gateway RBridge 800. When executed, these instructions cause the processor(s) to perform the aforementioned functions.
In summary, embodiments of the present invention provide a method and system for providing redundancy among layer-3 gateways while facilitating load balancing across the gateways in a routed network. In one embodiment, a virtual IP router and an associated virtual RBridge are formed based on a number of gateway RBridges, wherein the virtual IP router acts as a default gateway to layer-3 and the virtual RBridge accommodates multiple paths toward the default gateway through a TRILL network. The virtual RBridge is used as the egress RBridge for egress frames from an end device. Such configuration provides a scalable and flexible solution to load balancing and across multiple switches.
The methods and processes described herein can be embodied as code and/or data, which can be stored in a computer-readable non-transitory storage medium. When a computer system reads and executes the code and/or data stored on the computer-readable non-transitory storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the medium.
The methods and processes described herein can be executed by and/or included in hardware modules or apparatus. These modules or apparatus may include, but are not limited to, an application-specific integrated circuit (ASIC) chip, a field-programmable gate array (FPGA), a dedicated or shared processor that executes a particular software module or a piece of code at a particular time, and/or other programmable-logic devices now known or later developed. When the hardware modules or apparatus are activated, they perform the methods and processes included within them.
The foregoing descriptions of embodiments of the present invention have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit this disclosure. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. The scope of the present invention is defined by the appended claims.
This application claims the benefit of U.S. Provisional Application No. 61/502,701, Attorney Docket Number BRCD-3057.0.1.US.PSP, titled “Trill Based Router Redundancy,” by inventors Phanidhar Koganti, Suresh Vobbilisetty, Shunjia Yu, Anoop Ghanwani, Syed Hasan Raza Naqvi, and Rajiv Krishnamurthy, filed 29 Jun. 2011, which is incorporated by reference herein. The present disclosure is related to U.S. patent application Ser. No. 13/087,239, (attorney docket number BRCD-3008.1.US.NP), titled “Virtual Cluster Switching,” by inventors Suresh Vobbilisetty and Dilip Chatwani, filed 14 Apr. 2011, and U.S. patent application Ser. No. 12/725,249, (attorney docket number BRCD-112-0439US), titled “Redundant Host Connection in a Routed Network,” by inventors Somesh Gupta, Anoop Ghawani, Phanidhar Koganti, and Shunjia Yu, filed 16 Mar. 2010, the disclosures of which are incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
61502701 | Jun 2011 | US |