enter image description hereAssume we have 2 switches connected back to back with 2 links as shown below: Please see the attached image.

In traditional STP environment,one link will be blocked to avoid Layer2 loops. So Etherchannel comes to rescue.Etherchannel is used to avail maximum bandwidth and avoid STP loops.This is because STP treats etherchannel as a single port.

Q1: I have seen a discussion saying only 1 BPDU per etherchannel is sent. This BPDU represents the link from the bundle whichever comes UP first. Is this understanding correct?

Q2:How does this prevent loop? I mean, what actual change results in loop avoidance.I know that this is logically like a single link. But what is actually happening at hardware level that prevents loops?

Q3: Etherchannel uses hashing and XOR to choose the link which is used to forward traffic at given time.So, at the end of the day ONLY ONE LINK IS USED AT ANY GIVEN TIME(same thing happens in STP also, though witha little delay)...so how does it actually make use of the bandwidth of all links? For sure, all links cannot be used SIMULTANEOUSLY

Q4: Moving to the advanced etherchannel( i mean vPC) where the uplinks go to 2 different devices. I know that VPC secondary replicates the BPDUs of the VPC primary. What i intend to understand is how this is avoiding layer 2 loops. The downstream switch(having the traditional etherchannel) will send only 1 BPDU. However, the upstream Primary and upStream Secondary both will send the same BPDU--is that correct? How will this avoid loop?


Q1: The primary device in the VPC pair is the only device in the VPC pair that can send, receive or respond to BPDUs. As such the secondary device will only forward them along to their destination. So whichever device is primary will handle the BPDU.

Q2: I have no idea, but will research and see if I can find anything about what happens at the hardware level.

Q3: Not quite accurate. All of the ports in an etherchannel are used when sending and receiving data.

"EtherChannel aggregates the traffic across all the available active ports in the channel. The port is selected using a Cisco-proprietary hash algorithm, based on source or destination MAC addresses, IP addresses or TCP and UDP port numbers. The hash function gives a number between 0 and 7, and the following table shows how the 8 numbers are distributed among the 2 to 8 physical ports. In the hypothesis of real random hash algorithm, 2, 4 or 8 ports configurations lead to fair load-balancing, whereas other configurations lead to unfair load-balancing.

number of ports | load balancing ratio

8 1:1:1:1:1:1:1:1

7 2:1:1:1:1:1:1

6 2:2:1:1:1:1

5 2:2:2:1:1

4 2:2:2:2

3 3:3:2

2 4:4


Essentially, the hash is generated and then that hash (0-7) determines which port it goes through.

There are other ways to load-balance a port channel (src-mac, dst-mac, src-ip, dst-ip, etc...etc...) Which one will work best depends upon your exact setup.

Q4: In a VPC only the primary device can send or process BPDUs. Any that are received by the secondary device are forwarded to the primary device for analysis and response.

I hope that helped answer your questions. The

| improve this answer | |
  • 1
    As far as Q2, nothing changes at the hardware level. The loop prevention happens at the logical interface level. A switch will not send traffic out an interface, the logical interface in this case, if the traffic was received on the interface. For example, a common loop problem is a broadcast storm, but a broadcast coming from the logical interface will not send the broadcast back out that interface when it is flooded to all the other interfaces. The physical interfaces are ignored when they are part of a logical interface. – Ron Maupin Aug 29 '16 at 18:12
  • Thanks for the clarification Ron. I thought that might be the case, but I wasn't positive. – Zack Scaringello Aug 29 '16 at 18:14
  • 1
    Regarding Q3: I read the following in a blog: EtherChannel provides load-balancing only per frame, not per bit. A switch decides which member link a frame will traverse by the outcome of a hash function performed against one or more fields of each frame. Now assume PC 1 is connected to SW1 and PC2 is connected to SW2. So if i initiate a ping from PC1 to PC2 witha repeat of 10000, which of the link be ACTUALLY used? Will both links be used SIMULTANEOUSLY(1:1 ratio)? Will the hash algo computation done for every frame ?Don't you think that will be creat a high cpu usage? – fsociety Aug 30 '16 at 4:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.