Link aggregation allows multiple Ethernet interfaces on a single network node to be grouped together to form a single logical link with higher aggregate bandwidth than the individual links associated with each Ethernet interface. The logical link is referred to as a link aggregation group (LAG). Media access control (MAC) clients can be configured to interface with the LAG as a single link, which can increase bandwidth, redundancy, and resource availability.
In accordance with an embodiment of the invention, a method for configuring a connection using redundant service nodes is disclosed. The method involves setting a link aggregation control protocol (LACP) link state for all links in a first service node to STANDBY to put at least one multiplexer in the first service node in a WAITING state to disable frame collection at the redundant service node, setting the LACP link state for all links in a second service node to SELECTED to put at least one multiplexer in the second service node in a COLLECTING/DISTRIBUTING state to enable frame collection at the primary service node, and, upon receipt of notification from the second service node, setting the LACP link state for all links in the first service node to SELECTED to put the at least one multiplexer in the first service node in the COLLECTING/DISTRIBUTING state, and setting the LACP link state for all links in the second service node to STANDBY to put the at least one multiplexer in the second service node in the WAITING state.
In a second embodiment, setting the LACP link state for all links in a service node to STANDBY is triggered by putting the service node in a BACKUP mode and setting the LACP link state for all links in a service node to SELECTED is triggered by putting the service node in an ACTIVE mode.
In another embodiment, the LACP link state for each link is set by setting a selected variable for each link.
In another embodiment, the selected variable for a link is set using a link aggregation control protocol with protocol data units transmitted on one second intervals.
In another embodiment, the selected variable for all links in a service node is set concurrently.
In another embodiment, the notification is sent out-of-band.
In another embodiment, the notification is sent in response to at least one of the second service node becoming unavailable, tracking interfaces becoming unavailable, and a manual user interaction.
In another embodiment, link types of the first service node and link types of the second service node are different link types.
In another embodiment, the WAITING state, the COLLECTING state, and the DISTRIBUTING state are states as defined in the IEEE 802.1AX standard.
In another embodiment, a method for managing a Link Aggregation Group, hereinafter a LAG, is disclosed. The method involves attaching all ports connected to links in a LAG to aggregators, setting a LACP link state for all links in the LAG to SELECTED and collecting frames from the ports via the aggregators in order to enable traffic over the LAG, and setting the LACP link state for all links in the LAG to STANDBY and ignoring frames from the ports at the aggregators in order to disable traffic over the LAG.
In another embodiment, setting a LACP link state for all links in the LAG to SELECTED is triggered by putting a service node to which the LAG is communicatively coupled in ACTIVE mode and wherein setting the LACP link state for all links in the LAG to STANDBY is triggered by putting the service node to which the LAG is communicatively coupled in BACKUP mode.
In another embodiment, setting the LACP link state for all links in a LAG is facilitated by setting a selected variable in an aggregation controller controlling the aggregators attached to the links.
In another embodiment, the LACP link state of all links is set concurrently.
In another embodiment, the LACP link state of all links is set using a link aggregation control protocol with protocol data units transmitted on one second intervals.
In another embodiment, the LACP link state of all the links with an LACP link state set to STANDBY is set to SELECTED when a notification is received.
In another embodiment, the LAG is logically joined with a second LAG and the LACP link state of all of the links in one of the LAGs is set to SELECTED and the LACP link state of all of the links in the other LAG is set to STANDBY.
In another embodiment, a method for routing traffic in a link aggregation group as defined in IEEE 802.1AX is disclosed. In the embodiment, the method involves attaching all ports connected to links in a first link aggregation group (LAG) to aggregators and attaching all ports connected to links in a second LAG to aggregators and turning collecting and distributing on in the first LAG and turning collecting and distributing off in the second LAG, wherein collecting and distributing is turned on or off by setting LACP link states and wherein LACP link states are set concurrently for all links in a LAG.
In another embodiment, collecting and distributing is turned on by a first link aggregation control protocol command that sets a Partner_Oper_Port_State.Synchronization variable to “TRUE” and wherein collecting and distributing is turned off by a second link aggregation control protocol command that sets the Partner_Oper_Port_State.Synchronization variable to “FALSE”.
In another embodiment, the LACP link states are set using a link aggregation control protocol with protocol data units transmitted on one second intervals.
In another embodiment, collecting and distributing is turned on for a LAG in which collecting and distributing is turned off when a notification is received.
Other aspects and advantages of embodiments of the present invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings.
Throughout the description, similar reference numbers may be used to identify similar elements.
It will be readily understood that the components of the embodiments as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various embodiments, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by this detailed description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussions of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, in light of the description herein, that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the indicated embodiment is included in at least one embodiment of the present invention. Thus, the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
In order to aggregate the links on a node, a link aggregation sublayer can be implemented in the network module within the node (e.g., within a data link layer of the ISO-OSI network model). A link aggregation sublayer and supporting protocol (e.g., LACP) are described in the IEEE 802.1AX standard entitled “IEEE Standard for Local and metropolitan area networks—Link Aggregation” updated Nov. 3, 2008.
When configured, the MAC client 250 communicates with the ports 252 connected to links through the aggregator 204 controlled by the aggregation controller 206. The aggregator binds to a port and distributes frame transmissions from the MAC client to the bound port and collects frames from the bound port and passes the frames to the MAC client transparently. A node may utilize multiple aggregators to serve multiple MAC clients, but each aggregator serves a single MAC client and a single port at a time.
In order to bind a port to an aggregator and in order to transmit and receive frames via the port, the aggregator parser/multiplexer 212 for a port can transition through states defined by IEEE 802.1AX as directed by a mux state machine.
In addition to aggregating links, LAGs can also be used to create redundancy. If several links within a LAG go down, the other links in the LAG that remain up can be used to keep traffic flowing over the LAG.
In order to implement redundancy, service nodes are configured to route traffic along a preferred path and along a backup path when the preferred path becomes unavailable.
A connection can be configured using redundant service nodes connected via LAGs without introducing additional hops and without an in-band connection between the service nodes. In accordance with an embodiment of the invention, a method for configuring a connection using redundant service nodes is disclosed. The method involves setting a link aggregation control protocol (LACP) link state for all links in a first service node to STANDBY to put at least one multiplexer in the first service node in a WAITING state to disable frame collection at the redundant service node, setting the LACP link state for all links in a second service node to SELECTED to put at least one multiplexer in the second service node in a COLLECTING/DISTRIBUTING state to enable frame collection at the primary service node, and, upon receipt of notification from the second service node, setting the LACP link state for all links in the first service node to SELECTED to put the at least one multiplexer in the first service node in the COLLECTING/DISTRIBUTING state, and setting the LACP link state for all links in the second service node to STANDBY to put the at least one multiplexer in the second service node in the WAITING state. Thus, a connection using redundant service nodes can be formed by a first LAG connecting a first node to a first service node, a second LAG connecting the first service node to a second node, a third LAG connecting the first node to a second service node, and a fourth LAG connecting the second service node to the second node. In an embodiment, setting the LACP link state is triggered by putting the service node in a BACKUP mode or an ACTIVE mode, which causes a selected variable for each link to be concurrently set to STANDBY or SELECTED, respectively, in order to maintain a uniform state across all links in a service node at the same time. By putting the first service node in ACTIVE mode, the selected variable for all links in the first LAG is concurrently set to SELECTED, a mux communicatively coupled to the links is put in the COLLECTING/DISTRIBUTING state, and traffic over the first LAG can be enabled. Thus, collecting and distributing is turned on in the first service node. Additionally, by putting the second service node in BACKUP mode, the selected variable for all links in the second LAG is collectively set to STANDBY, a mux communicatively coupled to the links is put in the WAITING state, and traffic over the second LAG can be disabled. Thus, collecting and distributing is turned off in the second service node. That is, traffic can be directed exclusively over the first service node or the second service node depending on the mode of the service nodes and, thus, the state of the links in the service nodes. Accordingly, additional hops (e.g., data routed to the redundant service node) can be avoided and traffic can be routed over a preferred route without traveling over an in-band connection between service nodes. Additionally, because traffic can be routed over service nodes by setting the modes of the service nodes, configuration of the LAGs at the nodes is not required.
In order to implement the above-described technique, LACP link states (e.g., as defined in IEEE 802.1AX, IEEE 802.1aq, and various proprietary solutions) can be set in aggregation controllers on service nodes based on the mode of the service nodes in order to adjust the state of multiplexers within the service nodes.
Unlike the redundancy implementation described with reference to
As shown on the right side of the table, when it is determined that traffic should flow through service node B (e.g., because of user intervention or because service node A becomes unavailable), service node A switches to BACKUP mode and service node B switches to ACTIVE mode. When service node A switches to BACKUP mode, the LACP link state for links in service node A is set to STANDBY and, when service node B switches to ACTIVE mode, the LACP link state for links in service node B is set to SELECTED. In an embodiment, the LACP link states can be set by setting selected variables using a single LACP command. For example, a LACP command setting a Partner_Oper_Port_State.Synchronization variable to “TRUE” in order to set the LACP link state to SELECTED and a LACP command setting the Partner_Oper_Port_State.Synchronization variable to “FALSE” in order to set the LACP link state to STANDBY. By setting the LACP link state, the mux state machine in each service node enters the corresponding state. For example, the mux state machine in service node A will enter the WAITING state and the mux state machine in service node B will enter the COLLECTING/DISTRUBITING state. Thus, upon issuance of the LACP command, traffic will flow through service node B, but not through service node A.
In an embodiment, it is determined that traffic should flow through a redundant service node (e.g., service node B 604B in
In an embodiment, in order to route traffic over a redundant path, as indicated by links identified with dashed lines, service node A is configured to set the LACP link state for all links coupled to the service node to STANDBY in order to cause the mux state machines within service node A to enter the WAITING state and to send a notification to service node B (e.g., automatically in response to the failure of links communicatively coupled to service node A or when manually triggered by a user) when the mode of service node A is set to BACKUP. As a result, the mux state machines of the multiplexers 812B, 814A in the switches 802A, 802B enter the ATTACHED state. Thus, traffic over service node A is disabled because the link over service node A appears to be down or disabled.
When service node B receives the notification, service node B is put into ACTIVE mode and is configured to set the LACP link state for all links in the service node to SELECTED in order to cause the mux state machines within service node B to enter the COLLECTING/DISTRIBUTING state.
By using LACP commands to set LACP link states for links in service nodes along a pathway, traffic can be directed by re-setting the LACP link states for the links in the service nodes without additional network configuration. For example, by setting and re-setting LACP link states to change the state of multiplexers in service nodes, configuration of the switches is not required. Instead, traffic can be directed along a desired pathway by setting the LACP link states for links along pathways in the redundant network connection.
In an embodiment, the above-described functionality is performed by a computer or computers configured to execute computer readable instructions. In an embodiment, a computer includes a processor, memory, and a communications interface. The processor may include a multifunction processor and/or an application-specific processor. Examples of processors include the PowerPC™ family of processors by IBM and the x86 family of processors by Intel such as the Xeon™ family of processors and the Intel X5650 processor. The memory within the computer may include, for example, storage medium such as read only memory (ROM), flash memory, RAM, and a large capacity permanent storage device such as a hard disk drive. The communications interface enables communications with other computers via, for example, the Internet Protocol (IP). The computer executes computer readable instructions stored in the storage medium to implement various tasks as described above.
Although the operations of the method(s) herein are shown and described in a particular order, the order of the operations of each method may be altered so that certain operations may be performed in an inverse order or so that certain operations may be performed, at least in part, concurrently with other operations. In another embodiment, instructions or sub-operations of distinct operations may be implemented in an intermittent and/or alternating manner.
It should also be noted that at least some of the operations for the methods may be implemented using software instructions stored on a non-transitory computer-readable storage medium for execution by a computer. As an example, an embodiment of a non-transitory computer-readable storage medium includes a computer useable storage medium configured to store a computer readable program that, when executed on a computer, causes the computer to perform operations, as described herein.
Furthermore, embodiments of at least portions of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The computer-useable or computer-readable medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device), or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disc, and an optical disc. Current examples of optical discs include a compact disc with read only memory (CD-ROM), a compact disc with read/write (CD-R/W), a digital video disc (DVD), and a Blu-ray disc.
In the above description, specific details of various embodiments are provided. However, some embodiments may be practiced with less than all of these specific details. In other instances, certain methods, procedures, components, structures, and/or functions are described in no more detail than to enable the various embodiments of the invention, for the sake of brevity and clarity.
Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The scope of the invention is to be defined by the claims appended hereto and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
8761005 | Subramanian | Jun 2014 | B2 |
20060291378 | Brotherston | Dec 2006 | A1 |
20080037418 | Cole | Feb 2008 | A1 |
20080291928 | Tadimeti | Nov 2008 | A1 |
20080304519 | Koenen | Dec 2008 | A1 |
20080313703 | Flaks | Dec 2008 | A1 |
20090003206 | Bitar | Jan 2009 | A1 |
20090086651 | Luft | Apr 2009 | A1 |
20090141622 | Bitar | Jun 2009 | A1 |
20100329147 | Nam | Dec 2010 | A1 |
20110038267 | Smith | Feb 2011 | A1 |
20110085570 | Kotha | Apr 2011 | A1 |
20110243032 | Jenne | Oct 2011 | A1 |
20110258346 | Said | Oct 2011 | A1 |
20120155872 | Kakadia | Jun 2012 | A1 |
20120236859 | Subramanian | Sep 2012 | A1 |
20130121141 | Hao | May 2013 | A1 |
20130148512 | Sarwar | Jun 2013 | A1 |
20130229912 | Yu | Sep 2013 | A1 |
20130246470 | Price | Sep 2013 | A1 |
20130301427 | Tsai | Nov 2013 | A1 |
20130308471 | Krzanowski | Nov 2013 | A1 |
20130322427 | Stiekes | Dec 2013 | A1 |
20140141777 | Guo | May 2014 | A1 |
20140161132 | Tatsumi | Jun 2014 | A1 |
20140169176 | Brock | Jun 2014 | A1 |
20140198636 | Thayalan | Jul 2014 | A1 |
20140215027 | Janardhanan | Jul 2014 | A1 |
20140369186 | Ernstrom | Dec 2014 | A1 |
20140372576 | Mohandas | Dec 2014 | A1 |
20150172112 | Itkin et al. | Jun 2015 | A1 |
20150188760 | Anumala | Jul 2015 | A1 |
20150195125 | Wu | Jul 2015 | A1 |
20150263970 | Macchiano et al. | Sep 2015 | A1 |
20150271104 | Chikkamath et al. | Sep 2015 | A1 |
20150288559 | Yasuda | Oct 2015 | A1 |
20150288620 | Yasuda | Oct 2015 | A1 |
20150304209 | Choudhury et al. | Oct 2015 | A1 |
20160094459 | Yasuda | Mar 2016 | A1 |
20160127270 | Yasuda | May 2016 | A1 |
20160149816 | Wu | May 2016 | A1 |
20160156560 | Yasuda | Jun 2016 | A1 |
20160173216 | Yang | Jun 2016 | A1 |
20170063672 | Chhabra | Mar 2017 | A1 |
20170289018 | Iyer | Oct 2017 | A1 |
Number | Date | Country | |
---|---|---|---|
20170289018 A1 | Oct 2017 | US |