fir3net
PPS-Firenetbanner-780.5x190-30-03-17

What is an EtherChannel ?

Contents[Hide]

EtherChannel is a port link aggregation technology or port-channel architecture used primarily on Cisco switches. It allows 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[1]. All member ports within the bundle must have the same physical settings such as port type, speed and duplex. Traffic is load-shared across the ports. It is important to note that traffic is not loadbalanced, as load distribution is not always equals across all member ports.

Types

There are 2 main types of etherchannel, Layer2 and Layer3,

  • Layer2- The bundle is configured as an access or trunk port. 
  • Layer3 -The bundle is configured with an IP address and the port is no longer defined as a switchport, using the command no switchport

Loadbalancing

Various options on how the traffic is loadshared across the port members are available. This is configured on a global level.

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

Etherchannel Guard

As standard a portchannel will present a single MAC address, the switch will use the MAC address of the first physical port that is initiated within the bundle.

EtherChannel Guard is a feature that detects etherchannel misconfigurations between the switch and its neighbor. If more then one MAC address is seen from its neighbor the switch will place the interfaces into error-disabled. This prevents situations where one end is cabled to the wrong port which could lead to bridging loops.

(config)# spanning-tree etherchannel guard misconfig

Configuration Options

There are 3 main etherchannel configuration options. They are,

  • PAgP - Port Aggregation Protocol (PAgP), a Cisco proprietary standard for building etherchannels.
  • LACP - LACP (Link Aggregation Control Protocol) is an open standards protocol (IEEE802.3ad) for building etherchannels.
  • Manual - No negotiation protocol is used and the etherchannel is statically created.

PAgP

Port Aggregation Protocol (PAgP) is a Cisco proprietary standard that allows multiple physical interfaces to be aggregated into one logical link.
Each logical link can contain up-to 8 physical members.

Modes

Within PAgP there are 2 modes available, Desirable and Auto.

  • Desirable - Enables PAgP unconditionally ; Actively sends packets to its neighbor in order to negotiate PAgP.
  • Auto - Awaits PAgP packets from its neighbor before initiating PAgP

In addition to these modes there are 2 forms of operation, Non-Silent and Silent.

  • Non-Silent - The bundle is not initiated until bidirectional traffic is detected. Non-Silent provides the ability to protect against unidirectional failures on fibre based connections.
  • Silent - This is the default setting on the majority of copper based switches. With this form of operation the bundle is initiated even if no traffic is seen.

Create PAgP Bundle

Creating an LACP bundle is simple, you define the port-channel number on each of the interfaces.

Switch(config-if)#interface range gi0/1-3
Switch(config-if-range)#channel-group 33 mode desirable
Creating a port-channel interface Port-channel 33

Learning Method

There are 2 methods for learning, physical and aggregated.

  • aggregation-port - (Default) The switch learns the addresses on the aggregated port. Traffic is sent back to the source using any of the ports within the bundle.
  • physical-port - The switch learns the source MAC address on the physical port the packet has come in on. Traffic is then sent back out the same physical port.

Note : This is configured within the interface configuration.

Switch(config-if)# pagp learn-method physical-port

Show Commands

In addition to the show pagp .... commands you can also review the status of the portchannel via the command below,

Switch#show etherchannel 33 summary 
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      N - not in use, no aggregation
        f - failed to allocate aggregator

        M - not in use, minimum links not met
        m - not in use, port not aggregated due to minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port

        A - formed by Auto LAG


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

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
33     Po33(SU)        PAgP      Gi0/1(P)    Gi0/2(P)    Gi0/3(P)    

LACP

LACP (Link Aggregation Control Protocol) is an open standards protocol (IEEE802.3ad) that allows multiple physical interfaces to be aggregated into one logical link.
Each logical link can contain up-to 8 physical members.

Modes

Within LACP there are 2 modes available, Active and Passive.

  • Active - Within Active mode the switch tries to negotiate and form LACP with its neighbor.
  • Passive - Within Passive mode LACP is enabled but the switch waits for the neighbor to initiate the negotiation LACP.

Create LACP Bundle

Creating an LACP bundle is simple, you define the port-channel number onto each of the interfaces.

Switch(config-if)#interface range gi0/1-3
Switch(config-if-range)#channel-group 33 mode active
Creating a port-channel interface Port-channel 33

Show Commands

Below is an example of some of the common show commands.

Switch#sh lacp 33 neighbor 
Flags:  S - Device is requesting Slow LACPDUs 
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode     

Channel group 33 neighbors

Partner's information:

                  LACP port                        Admin  Oper   Port    Port
Port      Flags   Priority  Dev ID          Age    key    Key    Number  State
Gi0/1     SA      32768     fa16.3efa.dce3  24s    0x0    0x18   0x2     0x3D  
Gi0/2     SA      32768     fa16.3efa.dce3   6s    0x0    0x18   0x3     0x3D  
Gi0/3     SA      32768     fa16.3efa.dce3  16s    0x0    0x18   0x4     0x3D  
Switch#sh lacp 33 counters 
             LACPDUs         Marker      Marker Response    LACPDUs
Port       Sent   Recv     Sent   Recv     Sent   Recv      Pkts Err
---------------------------------------------------------------------
Channel group: 33
Gi0/1       62     56       0      0        0      0         0     
Gi0/2       64     56       0      0        0      0         0     
Gi0/3       64     55       0      0        0      0         0   

HotStandby Ports

LACP allows you to define the number of active members within the bundle, in essence allowing you to create hot-standby bundle members.

Switch(config)#int po33
Switch(config-if)#lacp max-bundle ?
<1-8> Max number of ports to bundle in this Port Channel

Port Priority

By setting priorities on each of the ports provides you with greater control and allows you to determine what ports are first added to the bundle and what ports are added into the bundle in the event of interface failure.

Switch(config)#int gi0/3
Switch(config-if)#lacp port-priority 300
Switch#sh lacp internal 
Flags:  S - Device is requesting Slow LACPDUs 
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode     

Channel group 33
                            LACP port     Admin     Oper    Port        Port
Port      Flags   State     Priority      Key       Key     Number      State
Gi0/1     SA      bndl      32768         0x18      0x18    0x2         0x3D  
Gi0/2     SA      bndl      32768         0x18      0x18    0x3         0x3D  
Gi0/3     SA      bndl      300           0x18      0x18    0x4         0x3D  

Manual

To configure a manual etherchannel bundle you define the port-channel number onto each of the interfaces.

Switch(config-if)#interface range gi0/1-3
Switch(config-if-range)#channel-group 33 mode no
Creating a port-channel interface Port-channel 33

Reference

[1] https://en.wikipedia.org/wiki/EtherChannel

Tags: CCIE R+S

About the Author

RDonato

R Donato

Rick Donato is the Founder and Chief Editor of Fir3net.com. He currently works as a Principal Network Security Engineer and has a keen interest in automation and the cloud.

You can find Rick on Twitter @f3lix001