EtherChannel is a term used to describe bundling or aggregating 2-8 parallel links. EtherChannel provides a level of link redundancy. If one link in the bundle fails, traffic sent through that link is automatically moved to an adjacent link in the bundle.

Normally multiple links between switches creates the potential for bridging loops, but because an EtherChannel bundle is treated as a single logical link by both switches, it avoids the problem.

Spanning Tree sees the bundle as a single link so individual ports will not be placed in a blocked STP state, allowing greater bandwidth utilization. If there are two redundant EtherChannel bundles, one entire EtherChannel will be blocked by STP to prevent a loop.

Any changes made to an interface after the EtherChannel has been created will be automatically make the same change to all other ports in that bundle. Also – bundles cannot form if any of the assigned ports are SPAN ports.

EtherChannel links can be either access or trunk links, but if they are trunked (usually the case), they require the following the be the same on all connected interfaces:

  • VLANs
  • Trunking Mode
  • Native VLAN
  • Speed
  • Duplex

EtherChannel link negotiation protocols

PAgP (Port Aggregation Protocol)

  • Cisco proprietary
  • Forms EtherChannel only if ports are configured for identical static VLANs or trunking
  • Will automatically modify interface parameters on all ports of the bundle if the EtherChannel interface is changed
  • STP sends packets over only one physical link in a PAgP bundle. Because STP’s algorithm uses the lowest port priority (priority + port ID), if defaults are set, STP will always use the lowest number port for BPDUs.
LACP (Link Aggregation Control Protocol)
  • An open standard to PAgP
  • IEEE 802.3ad
  • Uses priority system for end switches
  • Switch with the lowest system priority (2 byte value followed by MAC – lowest wins)
  • determines which ports are active in the EtherChannel at any given time
  • Uses port priority to determine which ports to place in standby mode if hardware
  • limitations do not allow all ports to participate in the EtherChannel
  • Most implementations leave the system and port priority to defaults
EtherChannel Negotiation Protocols Summary
Mode
Mode
Negotiation Sent?
Characteristics
PAgP AutoLACP PassiveNoWaits to channel until asked
PAgP DesirableLACP ActiveYesActively requests to form a channel
OnOnNoAll ports channeling

EtherChannel Configuration

PAgP

PAgP EtherChannel Interface Configuration

Switch(config)# interface fa 1/1/2
Switch(config-if)# channel-protocol pagp
Switch(config-if)# channel-group number mode {on | {{auto | desirable} | [non-silent]}}

By default, PAgP operates in silent submode – allowing ports to be added to the EtherChannel, even if it does not hear anything from the far end. This allows a switch to form an EtherChannel with a non-PAgP devices such as a network analyzer or server. It is best practice to aways use non-silent mode when connecting two switches together.

LACP

LACP EtherChannel Interface Configuration

Switch(config)# lacp system-priority number (optional)
Switch(config)# interface fa 1/1/3
Switch(config-if)# channel-protocol lacp
Switch(config-if)# channel-group number mode {on | passive | active}
Switch(config-if)#lacp port-priority number (optional)

It’s important to note that EtherChannel can operate at layer 2 and 3. The configuration is a bit different between the two, so recognize what type you need before you begin your configurations. Layer 2 EtherChannel links are simply a bundled switch link that acts as one logical link. This is most commonly used for trunked links between switches.
Layer 3 EtherChannel bundles allow you to create a virtual portchannel link that can be configured with an IP address. An example where this would be useful would be if you are connecting an EtherChannel bundle to a router. The router will require that its bundle has an IP address, so the virtual portchannel interface that you create can be assigned an IP address. Another example would be between multilayer switches at the distribution and core layers. Cisco recommends running layer 3 connectivity between the two and EtherChannels would assist with providing increased bandwidth and redundancy.

Switch(config)# interface portchannel number
Switch(config-if)# ip address x.x.x.x x.x.x.x (for layer 3 only)
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk vlan allowed vlan 2,56,70
Switch(config-if)# switchport trunk native vlan 99

Note that in the configuration example above how the interface mode (trunk) and VLANs are all configured on the portchannel directly and not on the physical interfaces that make up the bundle. While it will pass traffic either way, it is much simpler to manage VLAN consistency and configuration on the bundled link.

A LACP system priority can be assigned to define the decision-making switch (lower priority wins – default is 32,768). If no priority is assigned, the switch with the lowest MAC address will be assigned.

Layer 3 EtherChannel Configuration

1. Create a virtual layer 2 interface

Switch(config)# interface port-channel 1

2. Change the port to layer 3

Switch(config-if)# no switchport

3. Assign an IP address to the port-channel

Switch(config-if)# ip address ip_address subnet_mask

4. Select the physical interfaces that are part of the bundle

Switch(config)# interface range interface_id portnumber_range

5. Set physical interfaces to layer 3

** If all of the physical interfaces are not acting in the same layer (ex. port-channel set to no switchport and interfaces set to default – switchport), the EtherChannel will not form.

Switch(config-if-range)# no switchport

6. Assign all physical interfaces to the EtherChannel group

Switch(config-if-range) # channel-group channel-group-number mode {auto [non-silent] | desirable [non-silent] | on} | {active | passive}

Etherchannel Load Balancing

The bundles use an algorithm to determine each link’s load, so they will never be able to operate at 100% capacity of the sum of the links. That means the load will not be balanced equally amongst the individual links. A hash algorithm is used to determine which individual interface each frame is forwarded through.

The algorithm can use source IP, destination IP, a combination of the two, source and destination MAC, or TCP/UDP port numbers. If only one address or port number is used for the hash, the switch uses one or more low-order bits of the hash results as an index into the bundled links. If two or more addresses and or TCP ports are hashed, the hash performs an XOR on the low-order bits of the addresses or ports as the index.

To configure the EtherChannel load balancing type globally on the switch:

Switch(config)# port-channel load-balance method

Methods:

  • src-ip source IP
  • dst-ip destination IP
  • src-dst-ip source and destination IP (XOR) **DEFAULT METHOD**
  • src-mac source MAC
  • dst-mac destination MAC
  • src-dst-mac source and destination MAC (XOR)
  • src-port source port
  • dst-port destination port
  • src-dst-port source and destination port (XOR)

Troubleshooting an EtherChannel

Remember that there should be consistent configurations on both ends of the bundle.

  • If using mode “on”, make sure both ends are set to it.
  • If one end is set to desirable (PAgP) or active (LACP), the other side must be set to either desirable or auto.
  • Auto (PAgP) passive (LACP) modes require the far end to request for participation.
  • PAgP auto and desirable modes default to silent submode – which will establish an EtherChannel without hearing from the far end. If set to non-silent submode, packets must be received from the far end before a channel will form.

To verify the EtherChannel Status:

Switch# show etherchannel summary

To verify an individual port’s configuration:

Switch# sh run interface xx/xx

To check for EtherChannel errors on an interface:

Switch# sh run interface xx/xx etherchannel

To verify the EtherChannel load balancing on a switch:

Switch# sh etherchannel load-balance