Etherchannel is meant to increase to overall bandwidth by combining multiple links in one channel. Overall means that the combined capacity of the channel is increased but each individual client will still be using just one link! Internally Etherchannel performs load balancing using various algorithms based on last digits of src-mac, src-ip, dst-mac, dst-ip, src-dst-mac or src-dst-ip. The number of digits depends on the number of links in the channel. For 4 links 2 digits are enough. When both src and dst are used, then XOR is performed on those digits. As you see, the load balancing is done per flow. A particular flow uses the same link all the time. Different flows may go different links, thus potentially reducing a possible congestion on a link. Redundancy is another benefit of the Etherchanel.
!PAgP is Cisco proprietary Port Aggregation Protocol. It has three configuration modes: On, Auto and Desirable. On means Manual. Both sides have to be configured the same. Auto means passive. At least one side has to be configured as Desirable. Desirable means activate the Etherchannel. Both sides can be set to Desirable.
LACP is IEEE standard. It also has three modes of operation: On, Passive or Active, which are equivalent to On, Auto and Desirable in !PAgP.
Configuration and verification commands:
config# interface port-channel <port-channel #>
config# interface range <interface #> - <interface #> config-if-range# channel-protocol {pagp | lacp} config-if-range# channel-group <port-channel #> mode {on | auto| desirable | active | passive} config-if-range# end # show etherchannel
Layer 3 Etherchannel eliminates broadcast domain and spanning-tree protocol from the equation.
Configuration and verification commands:
config# interface port-channel <port-channel #> config# no switchport config# ip address <ip-address> <netmask> config# interface range <interface #> - <interface #> config-if-range# no switchport config-if-range# channel-protocol {pagp | lacp} config-if-range# channel-group <port-channel #> mode {on | auto| desirable | active | passive} config-if-range# end # show etherchannel
To protect the Etherchannel configuration from accidentally forming bridge loops, enable Etherchannel misconfiguration guard.
config# spanning-tree etherchannel guard misconfig