Network Fundamentals :: Etherchannels

EtherChannels AKA LAG, Port-channels, NIC teaming, etc

Main goal is to improve bandwidth and forwarding capabilities.
LAG hides each member from an upper layer protocol, in this case STP. Where STP could block one member en put another in forwarding, the etherchannels masks this to STP by presenting the LAG or Etherchannel link as one logical link. Also the cost will be applied accordingly. STP and CAM tables will see the Etherchannel as single outgoing port, not the individual members.
In this case both link members are able to forward traffic based on a load-balance algoritm (active/active as opposed to active/standby in STP cases)

:: Output STP

ACS01#show spanning-tree int po1

Vlan                Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
VLAN0001            Desg FWD 56        128.65   P2p 
VLAN0100            Desg FWD 56        128.65   P2p 
VLAN0200            Desg FWD 56        128.65   P2p 

:: Output CAM

ACS01#show mac address-table          
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    aabb.cc00.0200    DYNAMIC     Po1
   1    aabb.cc00.0210    DYNAMIC     Po1
Total Mac Addresses for this criterion: 2

NOTE: Don’t be fooled by the fact that if we bundle multiple interfaces that we have the multiplied speed. 4x 10Gb/s is NOT 40Gb/s. Each flow that is calculated on the load-balance hash algoritme still has to cross a single 10Gb/s member and that will be capped to 10Gb/s.

With EtherChannels we add lanes for traffic to traverse, we do not increase the speed limit. Essentially the interfaces can handle more load, but not speed.

:: Implementations

MCEC (Multi-Chassis EtherChannel) implementations:

  • Cross-stack Etherchannel
  • Virtual Switch System (VSS)
  • Virtual Port-Channel (vPC)

With Cross-stack and VSS implementations they sync control plane information via the backplane without devices noticing it. The downstream devices think it’s connected to one (logical) switch with two links.
vPC is slightly different as on control plane we still have two switches. From a data plane (logical) perspective and downstream devices the switch appears as one (logical) switch (also as one rootbridge)

:: Modes

Etherchannels can be negotiated or set to a static formation of Etherchannel
Negotiation protocol:

PAgP
DesirableDesirable
DesirableAuto
LACP
ActiveActive
ActivePassive
OffONON

:: Load-Balance Method

The load-balancing hash is locally significant to each switch. It doesn’t have to reflect the same setting on the other switch.

  • Source/Destination MAC
  • Source/Destination IP
  • Source/Destination Layer-4

:: Output Load Balance method

ACS01#show etherchannel load-balance 
EtherChannel Load-Balancing Configuration:
        src-dst-ip

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

Note: Promoting a Etherchannel link from Layer-2 to Layer-3 via the Etherchannel template only can cause issues on some platform. Normally settings are propagated back to the member links. The order-of-operation can prevent this. Make sure you make the correct changes to both the members as the etherchannel template.

:: Change from LACP Active to Passive negotiation

ACS01#show etherchannel summa
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
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         LACP      Et0/0(P)    Et0/1(P)    

ACS01#show lacp 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 1 neighbors

Partner's information:

                  LACP port                        Admin  Oper   Port    Port
Port      Flags   Priority  Dev ID          Age    key    Key    Number  State
Et0/0     SA      32768     aabb.cc80.0200   4s    0x0    0x1    0x1     0x3D  
Et0/1     SA      32768     aabb.cc80.0200  15s    0x0    0x1    0x2     0x3D  


ACS02#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
ACS02(config)#
ACS02(config)#int range et0/0-1 
ACS02(config-if-range)#
ACS02(config-if-range)#channel-group 1 mode passive 
ACS02(config-if-range)#end
ACS02#
*Apr 19 09:52:38.502: %SYS-5-CONFIG_I: Configured from console by console
ACS02#
*Apr 19 09:52:39.344: %LINK-3-UPDOWN: Interface Port-channel1, changed state to down
*Apr 19 09:52:40.344: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to down
ACS02#
*Apr 19 09:52:45.081: %LINK-3-UPDOWN: Interface Port-channel1, changed state to up
*Apr 19 09:52:46.081: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to up

ACS01#
*Apr 19 09:52:39.347: %LINK-3-UPDOWN: Interface Port-channel1, changed state to down
*Apr 19 09:52:40.347: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to down
ACS01#
*Apr 19 09:52:45.084: %LINK-3-UPDOWN: Interface Port-channel1, changed state to up
*Apr 19 09:52:46.084: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to up
ACS01#show lacp 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 1 neighbors

Partner's information:

                  LACP port                        Admin  Oper   Port    Port
Port      Flags   Priority  Dev ID          Age    key    Key    Number  State
Et0/0     SP      32768     aabb.cc80.0200   6s    0x0    0x1    0x1     0x3C  
Et0/1     SP      32768     aabb.cc80.0200   4s    0x0    0x1    0x2     0x3C 

:: Change from PAgP Desirable to Auto negotiation

ACS01#show etherchannel summa
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
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         PAgP      Et0/0(P)    Et0/1(P)

ACS01#show pagp 1 neighbor 
Flags:  S - Device is sending Slow hello.  C - Device is in Consistent state.
        A - Device is in Auto mode.        P - Device learns on physical port.

Channel group 1 neighbors
          Partner              Partner	        Partner		Partner	Group
Port      Name                 Device ID	Port       Age	Flags	Cap.
Et0/0     ACS02                aabb.cc80.0200	Et0/0       17s SC	10001 
Et0/1     ACS02                aabb.cc80.0200	Et0/1       11s SC	10001 

ACS02#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
ACS02(config)#int range eth0/0-1
ACS02(config-if-range)#chan
ACS02(config-if-range)#channel-gro
ACS02(config-if-range)#channel-group 1 mode auto
ACS02(config-if-range)#
*Apr 19 10:08:08.137: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down
*Apr 19 10:08:08.138: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to down
*Apr 19 10:08:09.141: %LINK-3-UPDOWN: Interface Port-channel1, changed state to down
ACS02(config-if-range)#
*Apr 19 10:08:10.866: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to up
*Apr 19 10:08:11.020: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to up
*Apr 19 10:08:11.866: %LINK-3-UPDOWN: Interface Port-channel1, changed state to up

ACS01#
*Apr 19 10:08:08.136: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down
*Apr 19 10:08:08.137: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to down
*Apr 19 10:08:09.144: %LINK-3-UPDOWN: Interface Port-channel1, changed state to down
ACS01#
ACS01#
*Apr 19 10:08:10.868: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to up
*Apr 19 10:08:11.022: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to up
*Apr 19 10:08:11.869: %LINK-3-UPDOWN: Interface Port-channel1, changed state to up
ACS01#
ACS01#
ACS01#show pagp 1 neighbor 
Flags:  S - Device is sending Slow hello.  C - Device is in Consistent state.
        A - Device is in Auto mode.        P - Device learns on physical port.

Channel group 1 neighbors
          Partner              Partner	        Partner		Partner	Group
Port      Name                 Device ID	Port       Age	Flags	Cap.
Et0/0     ACS02                aabb.cc80.0200	Et0/0        4s SAC	10001 
Et0/1     ACS02                aabb.cc80.0200	Et0/1        3s SAC	10001 

:: Setup

Screenshot taken from the Lab setup

Please see the link in the resources section for this configs and lab. Feel free to play with it.

:: Commands

Enable mode:
show etherchannel load-balance
show etherchannel summary
show lacp neighbor
show pagp neigh

Interface Configuration mode:
channel-group 1 mode active
channel-group 1 mode passive
channel-group 1 mode desirable
channel-group 1 mode auto

:: Resources

Leave a Reply