# Multi-chassis link aggregation group

A multi-chassis link aggregation group (MLAG or MC-LAG) is a type of link aggregation group (LAG) with constituent ports that terminate on separate chassis, primarily for the purpose of providing redundancy in the event one of the chassis fails. The IEEE 802.1AX-2008 industry standard for link aggregation does not mention MC-LAG, but does not preclude it. Its implementation varies by vendor; notably, the protocol for coordination between chassis is proprietary.

## Background

A LAG is a method of inverse multiplexing over multiple Ethernet links, thereby increasing bandwidth and providing redundancy. It is defined by the IEEE 802.1AX-2008 standard, which states, "Link Aggregation allows one or more links to be aggregated together to form a Link Aggregation Group, such that a MAC client can treat the Link Aggregation Group as if it were a single link." This layer 2 transparency is achieved by the LAG using a single MAC address for all the device’s ports in the LAG group. LAG can be configured as either static or dynamic. Dynamic LAG uses a peer-to-peer protocol, called Link Aggregation Control Protocol (LACP), for control. This LACP protocol is also defined within the 802.1AX-2008 standard.

## Multi-chassis

MC-LAG adds node-level redundancy to the normal link-level redundancy that a LAG provides. This allows two or more nodes to share a common LAG endpoint. The multiple nodes present a single logical LAG to the remote end. Note that MC-LAG implementations are vendor-specific, but cooperating chassis remain externally compliant to the IEEE 802.1AX-2008 standard. Nodes in an MC-LAG cluster communicate to synchronize and negotiate automatic switchovers in the event of failure. Some implementations may support administrator-initiated switchovers.
The diagram here shows four configurations:
* Switches A and B are each configured to group four discrete links (as indicated in green) into a single logical link with four times the bandwidth. Standard LACP protocol ensures that if any of the links go down, traffic will be distributed among the remaining three.
* Switch A is replaced by two chassis, switches A$_1$ and A$_2$. They communicate between themselves using a proprietary protocol and are thereby able to masquerade as a single virtual switch A running a shared instance of LACP. Switch B is not aware that it is connected to more than one chassis.
* Switch B is also replaced by two chassis B$_1$ and B$_2$. If these switches are from a different vendor, they may use a different proprietary protocol between themselves. But virtual switches A and B still communicate using LACP.
* Crossing two links to form an X makes no difference logically, any more than crossing links in a normal LAG would. However, physically, it provides much improved fault tolerance. If any of the switches fail, LACP reconfigures paths in as little as a few seconds. Operation continues with paths existing between all sources and destinations, albeit with degraded bandwidth.

## Implementations

The following table lists known vendor implementations of MC-LAG, all of which are proprietary.
| Vendor | Implementation Name |
| ADVA Optical Networking | MC-LAG |
| Arista Networks | MLAG |
| Aruba Networks (formerly HP ProCurve) | Distributed Trunking under Intelligent Resilient Framework switch clustering technology |
| Avaya | Distributed Split Multi-Link Trunking |
| Ruckus Networks (formerly Brocade) | Multi-Chassis Trunking |
| Ciena | MC-LAG |
| Cisco Catalyst 6500 | Multichassis Etherchannel (MEC) - Virtual Switching System (VSS) |
| Cisco Catalyst 3750 (and similar) | Cross-Stack EtherChannel |
| Cisco Catalyst 9000 | StackWise Virtual |
| Cisco Nexus | Virtual PortChannel (vPC), where a PortChannel is a regular LAG |
| Cisco IOS XR | mLACP (Multichassis Link Aggregation Control Protocol) |
| Cumulus Networks | MLAG (formerly CLAG) |
| Dell Networking (formerly Force10 Networks, formerly nCore) | DNOS6.x Virtual Port Channel (vPC) or Virtual Link Trunking |
| Edgecore Networks | MLAG |
| Extreme Networks | MLAG (Multi Switch Link Aggregation Group) |
| Ericsson | MC-LAG (Multi Chassis Link Aggregation Group) |
| FS | MLAG |
| Fortinet | MC-LAG (Multi Chassis Link Aggregation Group) |
| H3C | Distributed Resilient Network Interconnect |
| Huawei | M-LAG |
| Juniper | MC-LAG |
| Lenovo Networking (formerly IBM) | vLAG |
| Mellanox Technologies | MLAG |
| MikroTik | MLAG |
| NEC | MC-LAG (Openflow to traditional network) |
| Nocsys | MLAG |
| Netgear | MLAG |
| Nokia (Formerly Alcatel-Lucent) | MC-LAG |
| Nortel | Split multi-link trunking |
| Nuage Networks (from Nokia) | MC-LAG ; including MCS (Multi-chassis Sync) |
| Plexxi (now Aruba Networks)) | vLAG |
| Pluribus Networks (now Arista Networks) | vLAG |
| UniFi | MC-LAG |
| ZTE | MC-LAG |

## Alternatives

The link aggregation configuration is superior to Spanning Tree Protocol as the load can be shared across all links during normal operation, whereas Spanning Tree Protocol must disable some links to prevent loops.
IEEE 802.1aq (Shortest Path Bridging) is an alternative to MC-LAG that can be used for complex networks.
TRILL (TRansparent Interconnection of Lots of Links) facilitates an Ethernet to have an arbitrary topology, and enables per flow pair-wise load splitting by way of Dijkstra's algorithm, without configuration and user intervention.