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 | ||
Desirable | Desirable | |
Desirable | Auto | |
LACP | ||
Active | Active | |
Active | Passive | |
Off | ON | ON |
:: 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
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