What is EtherChannel?
EtherChannel is the method of grouping physical interfaces into one logical interface, which increases bandwidth and fault-tolerance between switches. Note that it does not increase the speed across a link, only the available bandwidth. Also, connecting switches together with more than one link causes a layer 2 loop which can bring a network down (more on this in the next article). By using EtherChannel, the grouped physical interfaces are treated as one logical interface.
There are 3 different ways to aggregate interfaces into a channel group, these are:
-
LACP (Link Aggregation Control Protocol)
-
PAgP (Port Aggregation Protocol)
-
Static EtherChannel
LACP is the industry standard (IEEE 802.1ad) protocol for aggregating physical interfaces into a logical grouped interface. PAgP on the other hand is a Cisco proprietary protocol which is not compatible with non-Cisco appliances.
**You'll notice in the above diagram, without EtherChannel two of the interfaces are in a blocking state (orange status). This is because by putting multiple links between switches introduces a layer-2 loop which will cause a broadcast storm. STP (Spanning Tree Protocol) has blocked these ports to mitigate that. We will go into Spanning Tree further in the next article. When physical interfaces are grouped together, they are treated as one logical interface.
On Cisco devices EtherChannels take a number of different names. These include:
-
Port-channel
-
Channel-group
-
EtherChannel
You'll notice how now the 3 interfaces in the above diagram are grouped into an EtherChannel, the logical interface ID is PortChannel1 (Po1). Now that the physical interfaces are grouped together, the switches will load-balance network traffic between the physical interfaces. Traffic cannot just flow out of any physical interface as this could cause frames to arrive out of order. The switches will track the flow of traffic between endpoints and load-balance based on the following (the load-balancing rules can be configured):
-
Source MAC
-
Destination MAC
-
Source & Destination MAC
-
Source IP
-
Destination IP
-
Source & Destination IP
Configuring EtherChannel
To bundle physical interfaces into a channel group, the configuration must match across each interface. It is useful to use the interface range command when specifying the physical interface IDs to group together. For example, if we wanted to place Fa0/0, Fa0/1, Fa1/2 and Fa0/3 into a channel group, we would use the below command:
conf t
interface range Fa0/0 - 3
So how can we configure the physical ports to become a logical channel group, let's take a look at the output below.
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#interface range Fa0/1 - 4
Switch(config-if-range)#channel-group 1 mode ?
active Enable LACP unconditionally
auto Enable PAgP only if a PAgP device is detected
desirable Enable PAgP unconditionally
on Enable Etherchannel only
passive Enable LACP only if a LACP device is detected
We are given 5 options, which allows us to either configure EtherChannel as static, or using one of the aggregation protocols.
-
active - Channel group will use LACP and is actively enabled for EtherChannel
-
auto - Channel group will use PAgP and EtherChannel will only become active if the other side is configured as desirable
-
desirable - Channel group will use PAgP and is actively enabled for EtherChannel
-
on - Static EtherChannel
-
passive - Channel group will use LACP and EtherChannel will only become active if the other side is configured as active
If we use one of the aggregation protocols, the EtherChannel will only become active if the configuration on both switches is correct. See the below table where EtherChannel will be enabled dependant on the configuration between switches.
So to surmise, in order to build an EtherChannel link the following pre-requisites must be met:
-
All physical interfaces must have the same duplex (full/half, speed and switchport mode (access/trunk)
-
If the physical interfaces are in switchport mode trunk, they must all have the same allowed VLANs and native VLAN ID
-
The interfaces must be in the same channel-group mode
-
The channel-group mode must be compatible with the other switch (such as active-passive, active-active, auto-desirable, desirable-desirable, on-on)
Load-Balance Configuration
We can also amend the load-balance calculation for how EtherChannel forwards traffic out of which physical interface. The following commands are used:
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#port-channel load-balance ?
dst-ip Dst IP Addr
dst-mac Dst Mac Addr
src-dst-ip Src XOR Dst IP Addr
src-dst-mac Src XOR Dst Mac Addr
src-ip Src IP Addr
src-mac Src Mac Addr
Layer 3 EtherChannel
There is one final thing we can do with channel groups that you need to be aware of for the CCNA. Layer 3 port-channels. Configuration is similar to how we configure a physical interface with an IP address, but we need to disable switchport mode beforehand. See below:
conf t
interface Po1
no switchport
ip address 192.168.1.1 255.255.255.0
exit
exit
Verifying EtherChannel Configuration and Status
To verify that EtherChannel is configured and operating correctly, we can use the below commands:
sh ip int bri
sh etherchannel
sh etherchannel summary
To confirm that a channel group is up and active, look for the "SU" output within "sh etherchannel summary", as this indicates that the channel group is in-use and switched. For example, see the below output. Use the flags listed in the top portion of the output to determine the state of the channel group and the bundled interface states.
So taking the above example, Po1 (RU) means that the channel-group itself is in use, and routed. Then looking at each bundled interface such as Fa0/4 (P), this indicates that the interface is part of the port-channel.