EtherChannel is the Cisco term for the technology that enables the bonding of up to eight physical Ethernet links into a single logical link. EtherChannel technology was invented by Kalpana in the early 1990s. They were acquired by Cisco Systems in 1994. In 2000, the IEEE passed 802.3ad, which is an open standard version of EtherChannel.

Cisco originally called EtherChannel fast EtherChannel (FEC), as it was only available on Fast Ethernet at the time. The technology is also called gigabit EtherChannel (GEC), or more generically, just port channel. The non-Cisco term used for link aggregation is generally link aggregation, or LAG for short.

EtherChannel is a port link aggregation technology or port-channel architecture used primarily on Cisco switches. It allows the grouping of several physical Ethernet links to create one logical Ethernet link for the purpose of providing fault-tolerance and high-speed links between switches, routers, and servers. On different Cisco switches, it is possible to create logical connections that are made-up of different physical interface. It is necessary that these interfaces have the same speed. Most Cisco switches support max 64 EtherChannels. These interfaces do not have to be contiguous or even on the same module. Each channel must be made up of min 2, max 8 interfaces. The best is to use 2, 4, or 8 interfaces. This will give perfect load-balancing.

An EtherChannel can be created from between two and eight active fast, gigabit or 10-gigabit Ethernet ports, with an additional one to eight inactive (failover) ports which become active as the other active ports fail. EtherChannel is primarily used in the backbone network, but can also be used to connect end user machines as shown in Figs. 1 and 2.


Port Aggregation:

When a switched network spans multiple switches, some method of linking those switches must be used. A single fast Ethernet or gigabit Ethernet port can be used to uplink between switches, but this introduces a bottleneck to the flow of traffic. For example, when using a 24-port catalyst switch, imagine having to pipe the traffic of 23 ports over a single port to reach another switch! Unfortunately, we cannot simply connect two or more ports from one switch to another switch, as this introduces a switching loop to the network. The result would be an almost instantaneous broadcast storm.

EtherChannel Protocols

EtherChannel can either be configured manually, or can be dynamically negotiated via one of two protocols:

PAgP (port aggregation protocol)—Cisco’s proprietary aggregating protocol.

LACP (link aggregation control protocol)—The IEEE standardized aggregation protocol, otherwise known as 802.3ad.

Both PAgP and LACP exchange packets between switches in order to form the EtherChannel. However, when the EtherChannel is manually configured (i.e., set to on), no update packets are exchanged. Thus, an EtherChannel will not be formed if one switch has a manually configured EtherChannel and the other switch is configured with a dynamic protocol (PAgP or LACP). Furthermore, PAgP and/or LACP configuration must be removed from a switch’s interfaces before a manual EtherChannel can be formed.

EtherChannel Requirements

Ether Channels can be formed with either access or trunk ports. An EtherChannel comprising access ports provides increased bandwidth and redundancy to a host device, such as a server. The host device must support a port aggregation protocol, such as LACP. EtherChannels comprised of trunk ports provide increased bandwidth and redundancy to other switches.

EtherChannel has been a part of the Cisco IOS for many years, so you should find that all your switches support it with proper configuration. Do not be afraid to enable it on a pair of ports and try it.

When setting up an EtherChannel connection, remember the following points; they can help you avoid problems during the configuration process:

• You can configure up to eight ports, and all of these ports should be the same type (fast Ethernet, gigabit Ethernet).

• Set all ports to function at the same speed and duplex settings.

• Ensure that all ports are enabled and that none have been configured using the shutdown command.

• Switchport settings from the first port in EtherChannel are copied to all other ports in the EtherChannel when the ports are added to the channel group. This is a copy action and not a link, so if you change the settings after the fact, you need to change the settings on all ports.

All interfaces in an EtherChannel must be configured identically. Specific settings that must be identical include:

Speed settings

Duplex settings

STP settings: STP path cost, STP port priority, STP PortFast settings

VLAN membership (for access ports)

Native VLAN (for trunk ports)

Allowed VLANs (for trunk ports)

Trunking Encapsulation (ISL or 802.1Q, for trunk ports)

When configuring an EtherChannel trunk to another switch, the above configuration should be identical on both switches. EtherChannels will not form if either dynamic VLANs or port security are enabled on the participating EtherChannel interfaces.

Understanding Port-Channel Interfaces

You create an EtherChannel for Layer 2 interfaces differently from Layer 3 interfaces. Both configurations involve logical interfaces.

• With Layer 3 interfaces, you manually create the logical interface by using the interface port-channel global configuration command.

• With Layer 2 interfaces, the logical interface is dynamically created.

• With both Layer 3 and 2 interfaces, you manually assign an interface to the EtherChannel by using the channel-group interface configuration command. This command binds the physical and logical ports together.

Each EtherChannel has a logical port-channel interface numbered from 1 to 64. The channel groups are also numbered from 1 to 64.


Cisco’s GigaStack, FlexStack, and other proprietary high speed inter-switch links should never be configured as part of an EtherChannel because these stacking ports have specific functionality enabled for stacking functions that is not compatible with EtherChannel. Only use standard connection ports on the front of your switch for EtherChannel connections.

The basic process for configuring your EtherChannel interfaces is as follows:

1.Connect to the command-line interface (CLI) your switch.This connection may be via SSH, Telnet, or the console port.

2. Access privileged EXEC mode Switch1> enable

3. Access global configuration mode Switch1# configure terminal

4. Access interface configuration mode. Switch1(config)# interface range fastethernet0/1 -2

5. Change switchport to trunk or access, but all ports must be in the same VLAN.

Switch1(config-if-range)# switchport mode access
Switch1(config-if-range)# switchport access vlan 10

6. Assign the port to a channel group, which is an integer between 1 and 6. You also configure PAgP or LCAP at this time by specifying a mode, as listed in the below table.

Switch1(config-if-range)# channel-group 1 mode desirable

7. Use the end command to exit global configuration mode.

EtherChannel Modes


The following commands are the setup commands you use for configuring one of the switches for EtherChannel. Notice the keyword “desirable,” which means that you will be using the Cisco proprietary protocol of PAgP. This also means that the switch at the other end of the connections needs to be a Cisco switch as well.

Switch1> enable

Switch1# configure terminal

Switch1(config)# interface range fasttethernet0/1 -2

Switch1(config-if-range)# switchport mode access

Switch1(config-if-range)# switchport access vlan 10

Switch1(config-if-range)# channel-group 1 mode desirable \* use active to configure LACP

Switch1(config-if-range)# end

Note that you applied the following configuration on the second switch. Notice that the channel-group used on this switch is different. Different port groups are allowed because it is simply a local (to the switch) configuration to keep each port group uniquely identified. Many IT administrators do keep the channel-group numbers the same because by matching the port group numbers on either end of the connection, you can avoid confusion for others.

Switch2> enable

Switch2# configure terminal

Switch2(config)# interface range fasttethernet0/1 -2

Switch2(config-if-range)# switchport mode access

Switch2(config-if-range)# switchport access vlan 10

Switch2(config-if-range)# channel-group 1 mode auto \* use passive to configure LACP

Switch2(config-if-range)# end

In this configuration, this pair of ports allows you to send data only for VLAN 10 over the EtherChannel link. To pass traffic for all VLANs, you must configure the switchport as a trunk because access ports will only send traffic for one VLAN.

Or you can use:

Switch1(config)# interface range fa0/23 – 24

Switch1(config-if)# channel-protocol pagp

Switch1(config-if)# channel-group 1 mode desirable

Switch2(config)# interface range fa0/23 – 24

Switch2(config-if)# channel-protocol pagp

Switch2(config-if)# channel-group 1 mode auto

EtherChannel Load-Balancing

Data sent across an EtherChannel is not load-balanced equally among all interfaces. EtherChannel utilizes a load-balancing algorithm, which can be based on several forms of criteria, including:

• Source IP Address (src-ip)

• Destination IP Address (dst-ip)

• Both Source and Destination IP (src-dst-ip)

• Source MAC address (src-mac)

• Destination MAC address (dst-mac)

• Both Source and Destination MAC (src-dst-mac)

• Source TCP/UDP port number (src-port)

• Destination TCP/UDP port number (dst-port)

• Both Source and Destination port number (src-dst-port)

On a Catalyst 3550XL, the default load-balancing method for Layer 2 switching is src-mac. For Layer 3 switching, it’s src-dst-ip.

EtherChannel Load-Balancing Configuration

To configure what load-balancing method to utilize:

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

For example, to switch the load-balancing method to source TCP/UDP port number:

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

To view the currently configured load-balancing method, including the current load on each link: Switch# show etherchannel port-channel

The example below shows how to create the logical port channel (1) and assign 192.168.20.1 as its IP address:

Switch# configure terminal

Switch (config)# interface port-channel 1 /*as shown in fig 2

Switch(config-if)# no switchport

Switch(config-if)# ip address 192.168.20.1 255.255.255.0

Switch(config-if)# end

Show commands:

  • show interfaces port-channel [channel-group-number]
  • show etherchannel [channel-group-number] summary

Verify commands:

  • test etherchannel load-balance interface port-channel [#] ip [src] [dst]

This article is very close to providing in-depth knowledge over EtherChannels; keep practicing the scenarios described above. I have described more than enough to make you familiar with EtherChannels. Always feel free to ask any questions you may have. Write me on the comment section of this page; your feedback and suggestions are always welcome and encourage me to deliver my best every time.

References:

  1. “EtherChannel and IEEE 802.3ad Link Aggregation.” pSeries and AIX Information Center. IBM. 2006
  2. Understanding EtherChannel Load Balancing and Redundancy on Catalyst switches — Cisco.com
  3. Network Warrior, Second Edition by Gary A. Donahue,
    O’Reilly Media, Inc.
  4. PAgP LACP EtherChannel by Rene Molenaar
  5. CCNP SWITCH Official Certification Guide by David Hucaby