Configure PAgP EtherChannel in Cisco IOS Switch

Port Aggregation Protocol (PAgP) also called EtherChannel is a Cisco proprietary protocol that is used for bundling two or more physical ports into single logical port. EtherChannel can provide high availability and increase bandwidth at the same time. There are three different methods to configure EtherChannel in Cisco switch. You can configure it manually or use protocols like PAgP or LACP. In production environment, you either use LACP or PAgP. In this post, I will show steps to Configure PAgP EtherChannel in Cisco IOS Switch.

Configure PAgP EtherChannel in Cisco IOS Switch

The physical switch ports in PAgP can be configured in one of two available modes in PAgP: –

  1. Auto – Passively waits for PAgP to form. If the remote switch port is configured with desirable then only it will form PAgP EtherChannel.
  2. Desirable – Actively tries to negotiate PAgP protocol with remote switch port. The remote switch port must be configured in Auto mode or Desirable mode to form PAgP EtherChannel.

The diagram below shows our simple network scenario. We have two Cisco switches, Switch-A and Switch-B connected with each other and have two links. Our goal is to bundle these two links into one logical link using PAgP protocol. The link is also a TRUNK port, so we need to configure EtherChannel and TRUNK in these ports.

Let’s configure PAgP in both Switches. Optionally you can shutdown physical ports before you start the configuration to avoid problems during the configuration. Also, better to remove existing configuration from physical interface because mismatch in configurations may not allow to form an EtherChannel. The configuration below is for Switch-A,

Switch-A(config)#interface range fastEthernet 0/1 - 2
Switch-A(config-if-range)#channel-group 1 mode desirable 
Switch-A(config-if-range)#channel-protocol pagp 

The command channel-group 1 mode desirable means interface Fa0/1 and Fa0/2 will be member of logical interface port-channel 1 and ports Fa0/1 and Fa0/2 will actively try to negotiate to form EtherChannel using PAgP protocol. Do the same on Switch-B as shown below.

Switch-B(config)#interface range fastEthernet 0/1 - 2
Switch-B(config-if-range)#channel-group 1 mode desirable 
Switch-B(config-if-range)#channel-protocol pagp 

Now, let’s verify EtherChannel port configuration. Let’s see on Switch-A,

Switch-A#show etherchannel summary 
Flags:  D - down        P - in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+----------------------------------------------

1      Po1(SU)           PAgP   Fa0/1(P) Fa0/2(P)

As we can see above, Port-channel group is 1, protocol being used is PAgP and ports that are member of Po1 are Fa0/1 and Fa0/2. You can also view the flags, Po1(SU) – S means the interface is working on layer 2, U means the port is in use. Also, in Fa0/1(P) – P means this port is member of port-channel.

Now, configure Port-Channel 1 as TRUNK port. Configure this on both Switches.

Switch-A(config)#int port-channel 1
Switch-A(config-if)#switchport trunk encapsulation dot1q 
Switch-A(config-if)#switchport mode trunk

When you configure something under port-channel interface as shown above, the configuration will automatically replicate under individual member physical interfaces as shown below. You should see running-configuration as shown below. This should be same on both switches.

interface FastEthernet0/1
channel-protocol pagp
 channel-group 1 mode desirable
 switchport mode trunk
!
interface FastEthernet0/2
channel-protocol pagp
 channel-group 1 mode desirable
 switchport mode trunk

To verify if Port-Channel 1 is working as TRUNK, type show interface trunk command as shown below.

Switch-A#show int trunk 
Port        Mode         Encapsulation  Status        Native vlan
Fa0/1       on           802.1q         trunking      1
Fa0/2       on           802.1q         trunking      1
Po1         on           802.1q         trunking      1

Port        Vlans allowed on trunk
Fa0/1       1-1005
Fa0/2       1-1005
Po1         1-1005

Port        Vlans allowed and active in management domain
Fa0/1       1,10,20,30
Fa0/2       1,10,20,30
Po1         1,10,20,30

Port        Vlans in spanning tree forwarding state and not pruned
Fa0/1       1,10,20,30
Fa0/2       1,10,20,30
Po1         1,10,20,30

As you can see above, Fa0/1, Fa0/2 and Po1 are all TRUNK and in forwarding state. You can also view the spanning-tree information for VLAN 1 as shown below,

Switch-A#show spanning-tree 
VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     0006.2AD3.33BA
             This bridge is the root
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     0006.2AD3.33BA
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Po1              Desg FWD 9         128.27   Shr

Notice, only port Po1 is in spanning tree and it is in forwarding state. Now traffic will be sent to Po1 not individual physical ports. PAgP will determine which port to send the traffic to based on the load balancing algorithm configured. To view the current load balancing method, type show etherchannel load-balance command as shown below. As of now, the load balancing is based on source MAC address as shown below.

Switch-A#show etherchannel load-balance 
EtherChannel Load-Balancing Configuration:
        src-mac

EtherChannel Load-Balancing Addresses Used Per-Protocol:
Non-IP: Source MAC address
  IPv4: Source MAC address
  IPv6: Source MAC address

To change the load balancing method you have various options as shown below. You can load balance based on destination IP, destination MAC address, source and destination IP, and so on. You can change the load balancing method from global configuration using port-channel load-balance command as shown below.

Switch-A(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

In this way you can configure PAgP in Cisco Switches. You can also configure LACP protocol in Cisco switches for EtherChannel.