A. Technical Field
The present invention relates to communication networks and devices and, more particularly, to systems, devices, and methods of configuring and controlling the operation of a link fallback within a network.
B. Background of the Invention
A blade switch device known as I/O aggregator (IOA) is a zero-touch device that is a plug-and-play type of switch that allows administrators and users to connect a device within a server chassis and expect the device to obtain network connectivity without any further intervention by the administrator, such that once the device is connected to the chassis, the desired connectivity is established without necessitating the configuration of any additional protocols.
In an IOA configuration, Link Aggregation Control Protocol (LACP) link fallback is a useful feature that aids server administrators to bring up server ports during installation and when performing troubleshooting tasks. In addition, a server administrator can, for example, verify network connectivity and server parameters without requiring input from a network administrator.
Typically, during a start-up procedure, a boot protocol will automatically provision all uplink ports of the IOA into a Link Aggregation Group (LAG). However, in scenarios where no Link Aggregation Control Protocol Protocol Data Units (LACPDUs) are received on these ports, for example because the uplink (Top-of-Rack) TOR has not been configured for LAG operation yet, the LAG session is not established, and the LAG remains in an inactive state. As a consequence, based on Uplink Fault Detection (UFD), the uplink ports on the IOA are not activated, such that the state of a corresponding downlink server port interface also remains inactive. In other words, if the uplink LAG is operationally inactive, the UFD feature of the IOA negatively impacts the connectivity from the IOA to the outside world and brings down the downlink ports of the servers as well. Since the condition of the server ports is, thus, decided by the state of the uplink LAG, once the uplink ports are inactive, none of the downlink servers will have network connectivity to communicate with other network devices.
Server chassis 102 is typically maintained by a server administrator, while TOR 112 is maintained by a network administrator. In operation, once the server administrator connects IOA 108 between server 106 and TOR 112, and the network administrator configures TOR 112, e.g., by connecting links 110 accordingly, network connectivity is established and links 110 are, at an L2 link level, are considered to be in an operationally active condition, such that the status of links 110 is discoverable by devices such as IOA 108.
By default, IOA 108 treats uplink ports 110 as LAG 114. For LAG 114 to reach an active status, a corresponding matching LAG configuration on TOR 112 is required. Assuming an LACP configuration is present only on IOA 108, but no corresponding configuration exists on TOR 112, then no LACPDUs are being received from TOR 112 and no LAG session can be established resulting in LAG 114 remaining in an inactive state. Then, if uplink ports 110 on IOA 108 are inactive, for example based on UFD, the corresponding connection between downlink server 106 ports and IOA 108 also remain in an inactive state, such that none of servers 106 has network connectivity to communicate with the outside world. In order to overcome this problem, numerous attempts have been made. However, each approach has significant shortcomings.
One traditional approach provides an LACP link fallback option that encompasses an internal implementation that brings down uplink port channel 110, removes one of links 110 (e.g., port 1) from LAG 114 on IOA 108, and then configures it as a separate, plain L2 port in order to provide network connectivity with TOR 112. However, this approach suffers from various limitations and has additional requirements that system 100 must satisfy. First, elected port 110 has to be part of all the 4K Virtual Local Area Networks (VLANs) for L2 connectivity from the server to TOR 112. Second, elected port 110 is to be made part of the UFD group to monitor and modify the operational status of the ports of server 106 based on the current uplink connectivity to TOR 112. Third, elected port 110 must be programmed as a multicast router port for IGMP snooping. Fourth, election of the fallback link and L2 port can occur only after a number of trial attempts and expiration of a timeout period before confirmation can be obtained that LACPDUs are no longer received, all of which causes undesired network delays.
Finally, since the uplink port channel is down, i.e., LACP LAG 114 goes inactive, while the port is removed, the ports of downlink server 106 will experience a flap, i.e., a change in activity state that temporarily halts or drops traffic until link 110 is re-activated. In fact, due to UFD, a drop in network connectivity occurs on each flap; port 110 will need to be moved back as part of the port-channel; and IGMP and 4K configurations will need to be removed from elected port 110, further adding to the delay and slowing down convergence.
One existing approach, known as LACP “force-up,” is a mechanism that allows administrators to statically choose a particular link. However, in IOA mode IOA 108, which is plugged into server chassis 102, will have neither preexisting information nor control over which specific uplink could be operationally active with TOR 112, such that the static approach of designating a particular port fails in circumstances in which the port is inactive or simply not connected.
In yet another existing approach, static uplink LAG 114 cannot be kept as a static LAG, as IOA 108 will have multiple uplink ports 110, and if all are made operationally active within LAG 114, this creates the possibility that downstream server 106 receiving multiple copies of a packet in case of Broadcast, Unknown unicast, and Multicast (BUM) traffic.
What is needed are tools for network architects and administrators to overcome the above-described limitations.
Reference will be made to embodiments of the invention, examples of which may be illustrated in the accompanying figures. These figures are intended to be illustrative, not limiting. Although the invention is generally described in the context of these embodiments, it should be understood that this is not intended to limit the scope of the invention to these particular embodiments.
In the following description, for the purpose of explanation, specific details are set forth in order to provide an understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these details. One skilled in the art will recognize that embodiments of the present invention, described below, may be performed in a variety of ways and using a variety of means. Those skilled in the art will also recognize that additional modifications, applications, and embodiments are within the scope thereof, as are additional fields in which the invention may provide utility. Accordingly, the embodiments described below are illustrative of specific embodiments of the invention and are meant to avoid obscuring the invention.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, characteristic, or function described in connection with the embodiment is included in at least one embodiment of the invention. The appearance of the phrase “in one embodiment,” “in an embodiment,” or the like in various places in the specification are not necessarily referring to the same embodiment.
Furthermore, connections between components or between method steps in the figures are not restricted to connections that are affected directly. Instead, connections illustrated in the figures between components or method steps may be modified or otherwise changed through the addition thereto of intermediary components or method steps, without departing from the teachings of the present invention.
In operation, again, assuming that there is an LACP configuration present only on IOA 208, but no corresponding configuration exists on TOR 212, such that no LACPDUs are being received from TOR 212, in a manner similar to
In detail, in order to ensure connectivity, selected link 210 has a known L2 level state that indicates that that link 210 is connected to another device, e.g., a peer device. IOA 208 defines that the selected link 210 is a member of uplink LAG 214. As a result, once the server administrator connects one of links 210 to IOA 208 to establish connectivity between downstream server 206 and TOR 212, IOA 208 detects that LAG is not configured on link 210 even if configurations on downstream server 206 may be properly made and verified. Nevertheless, IOA 208 provides basic L2-connectivity to link 210. In addition, once the administrator configures LACP on TOR 212, TOR 212 will commence sending LACPDUs.
In one embodiment, once IOA 208 receives an LACP packet on any additional link other than selected fallback link 210, for example in response to the administrator configuring LACP, IOA 208 removes the initially elected, static fallback link 210, and replaces it and its function with a new, unelected link (through which the LACP packet has been received) as the current operational link in LAG 214, which may have multiple operational members. This gives the new link preference and makes it part of LAG 214. At this point, regular LAG functions can take over and LAG 214 continues to be active. In effect, the elected link is removed as an operational link and is replaced with the unelected link.
As a result of these transitions that appear as internal state transitions within LAG 214, the network administrator need not (re)configure or (re)program network 200 (e.g., egress programming at the ASIC to avoid undesirable loops involving traffic though uplink ports) or stop the routing of LAG traffic until LAG 214 is configured, e.g., after LCDP packets are received, in order to obtain network connectivity.
At step 304, the fallback link is elected, e.g., as a static link from uplink ports in an LACP LAG that are operationally active. (i.e., have basic L2 connection to another peer device or other device).
At step 306, the fallback link, which may be an operationally active member of a LAG, is added to the LAG. This may be accomplished by configuring the static link as part of the uplink LAG. The elected, added link serves as a fallback link, such that the LAG becomes active and packets can flow through the LAG while avoiding link flaps and without the need to reconfigure or reprogram the IOA. This is because the resulting transitions are confined internally within the LAG.
At step 308, if an unelected link receives LACP packets, the unelected link is added to the LAG and, at step 310, the elected link is removed as an operational link from the LAG.
It will be appreciated by those skilled in the art that fewer or additional steps may be incorporated with the steps illustrated herein without departing from the scope of the invention. No particular order is implied by the arrangement of blocks within the flowchart or the description herein.
In operation, IOA1 402 and IOA2 404 may operate as VLT nodes that treat uplink ports 412-414 as part of VLT LAG 410. Similarly, IOA1 402 and IOA2 404 treat downlink ports 416-418 as part of VLT LAG 420. In one embodiment, in response to receiving no LCAP PUD packets, each node in the VLT domain in
In one embodiment, when VLT LAG 410 is active in the VLT domain, system 400 identifies one of VLT nodes 402-404 as inactive. Identification may be based on a priority-based mechanism (e.g., MAC address) that ensures that one node can be elected as the active node, thus, avoiding the possibility of deadlock. System 400 further configures an ingress mask on the identified and inactive node that, once identified, is programmed to drop BUM traffic that is sent by TOR 428 and ingresses on the fallback link associated with that node. As a result, duplicate packets of BUM traffic that would otherwise reach the downstream server 430 are prevented from doing so. In other words, even if TOR 428 forwards broadcast traffic to both ports (e.g., link 1 and link 2), such that one packet will come through IOA1 402 and the other through IOA2 404, the dropping ingressing traffic avoids duplicate BUM traffic on servers 430 connected to both IOA1 403 and IOA2 404.
In one embodiment, BUM traffic is egress-filtered on ICL 422 to prevent the forwarding of BUM traffic over ICL 422 to a VLT peer or the LAG of the VLT peer. In one embodiment, if IOA1 402 receives traffic sent by server 430 and destined for VLAN 10 (not shown) located between TOR 428 and IOA1 402, and there are no ports on IOA2 404 that are members of VLAN 10, then ICL 422 will reject and drop traffic on IOA2 404 since there are no suitable receivers. In this operating mode, the UFD feature is disabled on both nodes 402, 404 to establish connectivity from downstream servers 430 that are connected to nodes 402, 404 to TOR 428 over a fallback link.
In one embodiment, servers 430 may be connected to TOR 428 via a statically programmed portchannel bundle that has a single link as part of uplink VLT LAG 412, 414 in order to ensure that the VLT feature of network 400 is maintained. Once either of IOA1 402 or IOA2 404 receives an LACPDU packet, full connectivity is restored over VLT uplink LAG 410, instead of over a single link.
Conversely, in situations where uplink VLT LAG 410 receives no LACPDU packets from TOR 428, for example, because TOR 428 has no LACP configuration, then uplink VLT LAG 410 and thus uplink ports 412-414 assume inactive status and no LAG session is established. As a result, due to the UFD feature, the downlink ports 416-418 are kept inactive, too, such that downlink servers 430 have no connectivity to TOR 428 over either IOA1 402 or IOA2 404, even if both IOA1 402 and IOA2 404 are LACP configured.
In one embodiment, in situations when the VLT uplink LAG 410 is no longer inactive, any ingress mask that may be present on the fallback link on the inactive VLT peer is removed in order to allow BUM traffic to pass over ICL 422 nondynamically.
At step 502, it is determined whether a LAG is active in the VLT domain. If so, then at step 504, an inactive VLT peer is identified, for example, by a VLT protocol.
At step 506, an ingress mask is configured on the inactive VLT peer to drop ingressing BUM traffic on the fallback link associated with that VLT peer.
At step 508, BUM traffic is egress-filtered on an ICL connected to the node comprising the VLT peer, for example, in order to avoid forwarding of BUM traffic to another VLT peer.
At step 510, once a node receives an LACPDU packet, full connectivity is restored over entire VLT uplink LAG.
At step 520, when the LAG is inactive, an existing ingress mask is removed from the fallback link on the inactive VLT peer, so as to allow BUM traffic over the ICL, at step 522.
It will be appreciated by those skilled in the art that fewer or additional steps may be incorporated with the steps illustrated herein without departing from the scope of the invention. No particular order is implied by the arrangement of blocks within the flowchart or the description herein.
In operation, IOA1 604 act as VLT node that treats uplink ports 620 as part of a VLT LAG and downlink ports 624 as part of another VLT LAG. Similarly, IOA2 606 treats uplink ports 622 and downlink ports 626 as part of a VLT LAG. For example, IOA1 604 represents VLT node 1 that makes server 610 a member of VLAN 5, while VLT node 3 makes server 612 a member of VLAN 3. The respective uplink LAGs of VLT node 1 and 2 have port-channels that are members of VLAN 5 and VLAN 3, respectively. In one embodiment, in the VLT domain, each VLT node, i.e., IOA1 604 and IOA2 606, independently selects one of its respective operationally active uplink ports 620-622 as a fallback link. Each fallback link is added to its respective LAG in order to carry traffic, thereby, doubling the fallback bandwidth available to system 600.
In one embodiment, since VLANs 620-622 are disjoint, ICL 630 is not programmed to be part of VLAN 620-622. Therefore, BUM traffic is not sent to a VLT peer, rather BUM traffic is handled internally by each node 604, 606 within its own broadcast domain, such that each server's traffic over a VLAN occurs over a dedicated uplink LAG 620-622. As a result, BUM traffic from one disjoint VLAN does not reach the other IOA (e.g., IOA2 606) via ICL 630.
In one embodiment, assuming that IOA1 604 is a member of VLAN10 and IOA2 606 is member of VLAN20, in scenarios where both fallback links of the disjoint VLAN structure 600 are selected, traffic received by one IOA (e.g., IOA1 604) from TOR 602 and traversing ICL 630 is usually not egress-filtered on ICL 630. Instead, in one embodiment, an ingress mark is applied on the uplink LAG, i.e., on the LAG that connects from TOR 602 to the IOA 604, 606, such that any BUM traffic can be dropped. One of the advantages when the set of disjoint VLANs operate in both nodes as shown in this example, the possibility of BUM packet duplication on downstream server 610-612 via ICL 630 and undesired network loops are thus prevented.
In one embodiment, I/O ports 705 are connected via one or more cables to one or more other network devices or clients. Network processing unit 715 may use information included in the network data received at node 700, as well as information stored in table 720, to identify nodes for the network data, among other possible activities. In one embodiment, a switching fabric then schedules the network data for propagation through a node to an egress port for transmission to another node.
It is noted that aspects of the present invention may be encoded on one or more non-transitory computer-readable media with instructions for one or more processors to cause steps to be performed. It is also noted that the non-transitory computer-readable media may include volatile and non-volatile memory. It is noted that alternative implementations are possible, including hardware and software/hardware implementations. Hardware-implemented functions may be realized using ASICs, programmable arrays, digital signal processing circuitry, and the like. Accordingly, the “means” terms in any claims are intended to cover both software and hardware implementations. Similarly, the term “computer-readable medium or media” as used herein includes software and/or hardware having a program of instructions embodied therein, or a combination thereof. With these implementation alternatives in mind, it is understood that the figures and accompanying description provide the functional information one skilled in the art would require to write program code (i.e., software) and/or to fabricate circuits (i.e., hardware) to perform the processing required.
One skilled in the art will recognize that no particular protocol or programming language is critical to the practice of the present invention. One skilled in the art will also recognize that a number of the elements described above may be physically and/or functionally separated into sub-modules or combined together.
It will be appreciated to those skilled in the art that the preceding examples and embodiments are exemplary and not limiting to the scope of the present invention. It is intended that all permutations, enhancements, equivalents, combinations, and improvements thereto that are apparent to those skilled in the art upon a reading of the specification and a study of the drawings are included within the true spirit and scope of the present invention.
Number | Name | Date | Kind |
---|---|---|---|
20120275297 | Subramanian | Nov 2012 | A1 |
20140036924 | Christenson | Feb 2014 | A1 |
20140192635 | Bao | Jul 2014 | A1 |
20140195694 | Sait | Jul 2014 | A1 |
20150110105 | Kapur | Apr 2015 | A1 |
20150117182 | Xu | Apr 2015 | A1 |
20150263991 | Macchiano | Sep 2015 | A1 |
Number | Date | Country | |
---|---|---|---|
20160301597 A1 | Oct 2016 | US |