Understanding EtherChannel: Combining Links Between Switches

PitsPits
13 min read

When I first started learning about switching, I thought connecting multiple cables between switches would automatically give more speed. But then I found out that Spanning Tree Protocol (STP) can actually block those extra links to prevent loops. So even if you plug in two or three cables, only one might be used and the rest just sit there.

That’s where EtherChannel comes in.

EtherChannel lets you combine multiple physical links between switches and treat them as one logical connection. It boosts bandwidth, adds redundancy, and prevents STP from blocking your extra links. In this blog, I’ll explain what EtherChannel is, how it works, the different types (Static, PAgP, LACP), and how to configure it step-by-step.

I'm not a networking expert, just someone learning and sharing what I understand in a simple way. If you're new to networking, I hope this post helps you get a clear picture of how EtherChannel works and why it’s useful.


What is EtherChannel?

EtherChannel is a method of combining two or more physical links into one logical link. Instead of having multiple separate connections between switches, we group them together so they act as a single link. This increases bandwidth and helps with redundancy. If one cable fails, traffic can still pass through the others.

This setup is useful especially when switches need to handle a lot of data or when you want to avoid loops without relying too much on Spanning Tree Protocol (STP) blocking some of your links.

Diagram showing 3 PCs connected to an access layer switch (ALS), which is connected to a distribution layer switch (DLS) with 3 physical links, but only one link is active while the other two are blocked by STP.

In this first image, we see three cables connecting the Access Layer Switch (ALS) to the Distribution Layer Switch (DLS). But only one link is active, and the other two are blocked. This happens because of Spanning Tree Protocol (STP), which prevents loops by shutting down extra paths. Even though the switches are physically connected with three cables, only one can actually be used at a time. The rest just sit idle unless the active link fails.

Diagram showing 3 PCs connected to an access layer switch (ALS), which is connected to a distribution layer switch (DLS) using 3 physical links. All links are active and forwarding traffic because EtherChannel is configured.

Now, in this second image, all three links between ALS and DLS are active. That’s because we configured EtherChannel. Instead of STP blocking the extra links, they’re bundled together to form one logical link. This allows traffic to be shared across all three connections, giving us more bandwidth and better redundancy without any STP interference.


Access Layer vs Distribution Layer Switches

To understand where EtherChannel fits, it helps to know how switches are organized in many networks.

  • Access layer switches are the ones that end devices connect to like PCs, printers, and phones.

  • Distribution layer switches connect all those access switches together. They’re like the middlemen that manage traffic going in and out of the access layer.

In larger networks, each access switch often connects to two distribution switches for redundancy. This means multiple cables are used and that's where EtherChannel comes in. Instead of letting STP block one link to prevent loops, we can bundle both links using EtherChannel so they both stay active and share the load.


EtherChannel is known by a few other names depending on the vendor or context. Here are the common ones:

  • Port Channel – This is Cisco’s official name in the configuration (e.g., interface Port-channel1). It's often used interchangeably with EtherChannel.

  • LAG (Link Aggregation Group) – Commonly used in multi-vendor environments. It refers to the group of links bundled together.

Note: EtherChannel is also called Port Channel, Link Aggregation, or LAG depending on the device or vendor. On Cisco switches, you’ll often see it referred to as Port Channel in configurations.


What About Load Balancing?

So now that we’ve bundled multiple links using EtherChannel, you might be wondering how does the switch decide which link to use for each packet? That’s where load balancing comes in.

EtherChannel doesn’t split a single data stream across all links like some people might think. Instead, it uses certain rules to decide which link to forward each flow or session through. The goal is to spread out the traffic across all active links, making the most out of the combined bandwidth.

When traffic passes through an EtherChannel, the switch uses a hashing algorithm to decide which physical link to use for each flow. This is based on specific values in the packet, such as:

  • Source MAC address

  • Destination MAC address

  • Source and destination IP addresses

  • Or even Layer 4 ports (like TCP/UDP port numbers)

The switch combines these values in a hash, and that result determines which link in the bundle gets used.

Example:

Let’s say we have three links in our EtherChannel. If the switch is set to load balance based on source MAC address, then all traffic from PC1 will always go out on the same link even if the total bandwidth isn't balanced. If another PC sends traffic, its source MAC will likely hash to a different link.

Is the Load Always Equal?

Not necessarily. If all your traffic comes from or goes to a single device, you might not see a perfect balance. That’s because the switch doesn’t randomly split packets, it tries to keep sessions consistent. But in environments with lots of different source and destination addresses, the traffic gets distributed more evenly.

Can You Change the Load Balancing Method?

Yes, on Cisco switches, you can change the load balancing method with the command:

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

You’ll see options like source MAC, destination IP, source-destination IP, and more. Just remember: changing the method doesn’t split traffic per packet, it just changes how the hash is calculated.

Screenshot of a Cisco switch CLI showing the output of the command port-channel load-balance ?, listing available load balancing options such as src-mac, dst-mac, src-dst-ip, and more.


How Do We Configure EtherChannel?

Now that we know what EtherChannel does and how it handles traffic, the next question is how do we actually set it up?

On Cisco switches, there are three main methods you can use to form an EtherChannel:

  1. Static (Manual) EtherChannel

  2. PAgP (Port Aggregation Protocol)

  3. LACP (Link Aggregation Control Protocol)

Each method works a bit differently, especially when it comes to how the switches negotiate the connection. Let’s go through each one so you can see when and why you might use them.

1. Static (Manual) EtherChannel

This method doesn’t use any negotiation. You manually configure both sides of the connection to treat the links as an EtherChannel.

Pros:

  • Simple to set up

  • No negotiation delays

Cons:

  • Both switches must be configured exactly the same

  • No built-in mechanism to detect misconfigurations

  • If settings don’t match, the EtherChannel won’t form but you won’t get a warning

Use this if: You want full control and you're confident both sides are configured correctly.


2. PAgP (Port Aggregation Protocol)

PAgP is a Cisco proprietary protocol that helps switches automatically form an EtherChannel if both ends agree to it.

Modes:

  • Desirable – Actively tries to form EtherChannel

  • Auto – Waits for the other side to initiate

It only works if at least one side is set to "desirable."

Pros:

  • Detects misconfigurations

  • Only supported on Cisco devices

Use this if: You’re working in a Cisco-only environment and want a little more automation and safety than static.


LACP is an open standard (IEEE 802.3ad) and works across different vendors not just Cisco.

Modes:

  • Active – Actively tries to form EtherChannel

  • Passive – Waits for the other side to start

Like PAgP, at least one side needs to be set to "active."

Pros:

  • Cross-vendor support

  • Detects mismatches and link failures

  • Preferred for modern setups

Use this if: You’re in a mixed environment (not all Cisco) or want a more flexible and reliable setup.


Let’s Configure EtherChannel

Now that we’ve covered the three ways to set up EtherChannel like Static, PAgP, and LACP, it’s time to see how they’re actually configured on a Cisco switch.

Each method uses similar commands, but with a few key differences depending on whether you're using negotiation (PAgP or LACP) or setting it up manually (Static). I’ll walk you through all three, step by step, so you can try them out in Packet Tracer or on real gear.

Let’s start with Static EtherChannel, then move on to PAgP and LACP.

1. Static EtherChannel Configuration

Let’s say we’re using interfaces Fa0/1 and Fa0/2 on both switches.

On both switches:

Switch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode on
Switch(config-if-range)# exit
Switch(config)# interface port-channel 1
Switch(config-if)# switchport mode access

What’s happening here?

  • channel-group 1 mode on tells the switch to statically bundle the interfaces into Port Channel 1.

  • We then configure the logical interface port-channel 1 like any other switchport.

2. PAgP (Cisco Proprietary)

On one switch:

Switch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode desirable

On the other switch:

Switch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode auto

How it works:

  • "Desirable" actively tries to form the EtherChannel.

  • "Auto" will respond if the other side initiates.

  • If both sides are set to "auto," the EtherChannel won’t form.

3. LACP (Open Standard)

On one switch:

Switch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode active

On the other switch:

Switch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode passive

How it works:

  • "Active" starts the negotiation.

  • "Passive" listens and responds.

  • At least one side must be set to "active" for the EtherChannel to form.

After configuring, don’t forget to check the EtherChannel status using:

Switch# show etherchannel summary

This command shows you which interfaces are part of the bundle, the protocol used (PAgP, LACP, or none for static), and if the channel is up.

EtherChannel Mode Combinations

Static (No Protocol)

Side ASide BResult
onon✅ EtherChannel
onauto / desirable / active / passive❌ No EtherChannel

PAgP (Cisco Proprietary)

Side ASide BResult
desirabledesirable✅ EtherChannel
desirableauto✅ EtherChannel
autoauto❌ No EtherChannel

LACP (Open Standard)

Side ASide BResult
activeactive✅ EtherChannel
activepassive✅ EtherChannel
passivepassive❌ No EtherChannel

Configuration Examples: Creating EtherChannel on Cisco Switches

Let’s assume we’re using interfaces FastEthernet0/1 and FastEthernet0/2 on two switches (SW1 and SW2). Make sure the interfaces have the same settings on both ends (speed, duplex, switchport mode).

1. Static EtherChannel (Manual)

On both switches:

Switch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode on
Switch(config-if-range)# exit

Switch(config)# interface port-channel 1
Switch(config-if)# switchport mode access

mode on means no negotiation. Just manually form the EtherChannel.

2. PAgP (Cisco Only)

On SW1:

Switch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode desirable
Switch(config-if-range)# exit

Switch(config)# interface port-channel 1
Switch(config-if)# switchport mode access

On SW2:

bashCopyEditSwitch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode auto
Switch(config-if-range)# exit

Switch(config)# interface port-channel 1
Switch(config-if)# switchport mode access

PAgP forms the channel if one side is “desirable” and the other is “auto.”

3. LACP (Open Standard)

On SW1:

Switch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode active
Switch(config-if-range)# exit

Switch(config)# interface port-channel 1
Switch(config-if)# switchport mode trunk

On SW2:

Switch(config)# interface range fa0/1 - 2
Switch(config-if-range)# channel-group 1 mode passive
Switch(config-if-range)# exit

Switch(config)# interface port-channel 1
Switch(config-if)# switchport mode trunk

LACP forms the channel if one side is “active” and the other is “active” or “passive.”

To Check if It's Working

After setup, use this command to verify:

Switch# show etherchannel summary

You should see something like:

cssCopyEditGroup  Port-channel  Protocol    Ports
------+--------------+-----------+-----------------------------
1      Po1(SU)        LACP       Fa0/1(P) Fa0/2(P)
  • Po1(SU) = Port-Channel 1, Layer 2, up and working

  • P = Each physical port is bundled and forwarding


Useful EtherChannel Commands Explained

port-channel load-balance [mode]

This command sets how traffic is distributed across the physical links in the EtherChannel.

Example:

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

This tells the switch to balance traffic based on both source and destination IP addresses.

You can see the available options by typing:

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

Some common options:

  • src-mac, dst-mac – Based on MAC addresses

  • src-ip, dst-ip, src-dst-ip – Based on IP addresses

  • Others include Layer 4 ports (TCP/UDP), depending on switch model

show etherchannel load-balance

This shows the current load balancing method used by the switch.

Example output:

EtherChannel Load-Balancing Method: src-dst-ip

Use this to verify if your switch is balancing traffic the way you expect.

channel-group [group number] mode {on, desirable, auto, active, passive}

This command is used under the interface range to add physical interfaces into an EtherChannel.

Example:

Switch(config-if-range)# channel-group 1 mode active

This puts the selected interfaces into Port-Channel 1 using LACP (active mode).

Modes:

  • on = Static (no negotiation)

  • desirable/auto = PAgP (Cisco-only)

  • active/passive = LACP (open standard)

show etherchannel summary

This is the go-to command to check the status of EtherChannel groups.

You’ll see the group number, Port-Channel name, protocol (LACP, PAgP, or none), and the list of interfaces with their status.

Example output:

Group  Port-channel  Protocol    Ports
------+--------------+-----------+-----------------------------
1      Po1(SU)        LACP       Fa0/1(P) Fa0/2(P)
  • Po1(SU) = Port-Channel 1 is up and Layer 2

  • P = Port is bundled and forwarding traffic

show etherchannel port-channel

This command gives detailed information about each Port-Channel interface.

You can see info like:

  • Protocol used (LACP or PAgP)

  • Number of ports in the channel

  • Load balancing details

  • Flags that show the state of the bundle

This is useful for deeper troubleshooting when things aren't working as expected.


Do Channel-Group and Port-Channel Numbers Need to Match?

No, but it's a good habit.

Technically:

  • The channel-group number is what binds the physical interfaces into a Port-Channel interface.

  • The Port-Channel number is automatically created with the same number as the channel-group by default.

So if you type:

channel-group 1 mode active

…it will create:

interface Port-channel1

You can use a different number (like channel-group 3Port-channel3), but make sure both sides of the EtherChannel use the same group number to avoid confusion and misalignment.


Wrapping It Up

EtherChannel is one of those features in networking that sounds complicated at first, but once you understand the basics, it actually makes your network more efficient and reliable. Whether you're using it to boost bandwidth or to avoid blocked links from STP, it's a solid tool to have in your switching setup.

We covered the three main ways to configure EtherChannel: Static, PAgP, and LACP along with how to verify if it’s working and how load balancing helps spread out traffic across your links. Just remember to make sure both sides match, keep your physical interfaces consistent, and use the right mode combinations.

I'm not a pro, just learning and sharing what I pick up along the way. If you're also studying networking, I hope this post helped clear things up. Keep practicing in Packet Tracer or on real gear if you can, and don't be afraid to test and break things. That's part of learning.

Thanks for reading! If you're enjoying these posts or learning something new, feel free to check out my other blogs as I continue sharing what I’ve learned in a way that’s simple and beginner-friendly.

0
Subscribe to my newsletter

Read articles from Pits directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Pits
Pits