Link Aggregation

Introduction

Link aggregation is the act of combining multiple physical links to act as a single logical link. The system supports layer 2 link aggregation over Ethernet. The physical links are referred to here as link members.

Link aggregation primarily provides redundancy for the connection in case one of its member links fail. When this occurs data transmission continues on the remaining member links.

Link aggregation can be used to increase data throughput, but it should be noted that the data distribution algorithm distributes “flows” based per member link.

Overview

The figures below illustrate how link aggregation represents one logical link containing multiple individual links.

.-------------------.                .--.              .-------------------.
|                 1 +----------------|--|--------------+ 1                 |
|                   |                |  |              |                   |
|     Switch A    2 +----------------|--|--------------+ 2    Switch B     |
|                   |                |  |              |                   |
|                 3 +----------------|--|--------------+ 3                 |
'-------------------'                '--'              '-------------------'
                               Aggregated link

Figure 1: Physical view

.-------------------.                                  .-------------------.
|                   |                                  |                   |
|                   |                                  |                   |
|    Switch A  lag1 +----------------------------------+ lag1  Switch B    |
|                   |                                  |                   |
|                   |                                  |                   |
'-------------------'                                  '-------------------'

Figure 2: Logical View.

The group of combined ports that make up an aggregated link is referred to as a LAG (Link Aggregation Group). Some other similar terms like bond or team is also generally used to describe the same thing.

Generally, two types of paradigms are considered when it comes to handling link aggregation, those are static and dynamic. Handling link aggregation, in simplistic terms, boils down to the determination process of what ports should be present in the LAG for the configured aggregate.

LACP

The most common protocol for handling dynamic link aggregation is the vendor independent standard LACP (Link Aggregation Control Protocol), defined in IEEE 802.1AX.

LACP works by continuously monitor all the links in the LAG, by sending frames (LACPDUs) on all links in the LAG. This is the methodology LACP uses to find other possible devices with LACP enabled in order to establish active link aggregates between them.

Any interfaces at the end of the links will exchange information in order to verify that they can be added to the aggregation. Further, if any active link in the LAG is found to be inaccessible it will timeout. This happens when the two interfaces on a link fails to receive LACPDUs from each other after three of them have been sent.

IEEE 802.1AX requires all links in an aggregate to be of the same speed. If they are not, the lower speed links will become non-active and detached. However, if the last high speed link becomes unavailable, automatic fail-over to the fastest lower speed link group will occur.

Static

The other option is to define a static link aggregation. In this case there is no standardized protocol, therefore most solutions here are proprietary. But most static link aggregation methods revolve around by defining what ports should constitute the aggregate. Afterwards the active links in the LAG are defined by their linkup status.

TTDP

The system also supports the Train Topology Discovery Protocol (TTDP), part of the IEC 61375 standard. It makes use of link aggregation as part of the train backbone. In order to understand how link aggregation is used and configured for use with TTDP refer to that part of the documentation.

Configuration

Link aggregates can be created from the top-level configuration context in the CLI. Notice the requirement for an identifier argument.

example:/#> configure
example:/config/#> lag 1
example:/config/lag-1/#>

The identifier can be either a number (recommended) or a name:

example:/config/#> lag primary
example:/config/lag-primary/#>

Syntax

[no] type static|lacp|ttdp

Set the mode of operation for the aggregate.

no
Reset to the default: LACP
static
Use static LAG handling.
lacp
Use LACP for LAG handling.
ttdp
Let TTDP handle the LAG.
[no] ports PORT|PORT,PORT|PORT..PORT

Configure the ports that should be part of the aggregate.

no
Remove all configured ports from the aggregate.
PORT
The port(s) to be included in the aggregate.
[no] mode [active|passive]

Set the operational mode of an LACP type aggregate.

no
Reset the setting to its default: active
active
Set the mode to active participation. In this mode the device will always generate LACPDUs and it actively wants to participate in the LACP protocol, regardless of its partner’s mode configuration.
passive
Set the mode to passive participation. In this mode the device will not generate any LACPDUs by its own initiative. It will only do so if its partner is configured to be an active participant.
[no] timeout [short|long]

Configure the LACP timeout. This dictates the how often LACPDUs are sent between hosts on the active links in the LAG, before a timeout is generated.

no
Reset the setting to its default: short
short
Set the timeout to three seconds, LACPDUs sent every second.
long
Set the timeout to 90 seconds, LACPDUs sent every 30 seconds.

Status

The current status of any configured link aggregate on the device can be observed in the following manner:

example:/#> show aggregate
Aggregate lag1  MAC: 0c:03:fd:88:57:00  Type: LACP
-------------------------------------------------------------------------------
Port     Link  Active   LACP State    Partner ID        Port  Key
-------------------------------------------------------------------------------
Eth 0      UP  Yes      DISTRIBUTING  0c:03:fd:05:21:00    3     0
Eth 1      UP  Yes      DISTRIBUTING  0c:03:fd:05:21:00    4     0