10-11-2005 07:03 PM - edited 03-03-2019 12:20 AM
I want to know the correct behavior of loadbalancing using etherchannel.
I used Cat3750metro and Cat3550 to see the behavior of loadbalancing using etherchannel.
What I did is, connected 4 ports for
etherchannel and configured "port-channel load-balance src-mac" on both switch.
Confirmed that etherchannel is active using "sh etherchannel summary" and "sh etherchannel detail".
Sent 2 flow groups from traffic tester bi-directionally.
flow groups are below.
flow group1
flow1: src MAC=>0000.0000.0001, dest MAC=>0000.0000.0005
flow2: src MAC=>0000.0000.0002, dest MAC=>0000.0000.0006
flow3: src MAC=>0000.0000.0003, dest MAC=>0000.0000.0007
flow4: src MAC=>0000.0000.0004, dest MAC=>0000.0000.0008
flow group2
flow1: src MAC=>0000.0000.0005, dest MAC=>0000.0000.0001
flow2: src MAC=>0000.0000.0006, dest MAC=>0000.0000.0002
flow3: src MAC=>0000.0000.0007, dest MAC=>0000.0000.0003
flow4: src MAC=>0000.0000.0008, dest MAC=>0000.0000.0004
Before sending flow groups, I assumed that the flows should loadbalance equally on 4 ports.
But the traffic loadbalanced random on 4 ports. It did not loadbalance equally.
Is this a correct behavior to loadbalace random?
Or am I missing some configuration or something else?
10-12-2005 03:57 AM
They use some proprietary algorithim to achieve the load balance. Here is a little info.
Catalyst 3750/3560
The Catalyst 3750/3560 series switch can support up to eight compatibly configured Ethernet interfaces in an EtherChannel. The EtherChannel provides full-duplex bandwidth up to 800 Mbps (Fast EtherChannel) or 8 Gbps (Gigabit EtherChannel) between your switch and another switch or host. With Cisco IOS Software Release 12.2(20)SE and earlier, the number of EtherChannels has a limit of 12. With Cisco IOS Software Release 12.2(25)SE and later, the number of EtherChannels has a limit of 48.
EtherChannel balances the traffic load across the links in a channel through the reduction of part of the binary pattern that the addresses in the frame form to a numerical value that selects one of the links in the channel. EtherChannel load balancing can use MAC addresses or IP addresses, source or destination addresses, or both source and destination addresses. The mode applies to all EtherChannels configured on the switch. You configure the load balancing and forwarding method with use of the port-channel load-balance {dst-ip | dst-mac | src-dst-ip | src-dst-mac | src-ip | src-mac} global configuration command.
You can find out which interface will be used in the EtherChannel to forward traffic based on the load balancing method. The command for this determination is test etherchannel load-balance interface port-channel number {ip | mac} [source_ip_add | source_mac_add] [dest_ip_add | dest_mac_add].
10-12-2005 09:38 PM
Thanks for posting.
From your post I found the same page.
Is this the one you picked from?
http://www.cisco.com/warp/public/473/4.html
After reading Catalyst 3750/3560 and Catalyst 2950/2955/3550, I tried again.
For Catalyst 3750/3560, I used "test etherchannel load-balance interface port-channel number {ip | mac} [source_ip_add | source_mac_add] [dest_ip_add | dest_mac_add]."command to find out which flow(src and dest MAC) uses the port.
cat3750me#$interface port-channel 1 mac 0000.0000.0001 0000.0000.0007
Would select Fa1/0/1 of Po1
cat3750me#$interface port-channel 1 mac 0000.0000.0002 0000.0000.0008
Would select Fa1/0/3 of Po1
cat3750me#$interface port-channel 1 mac 0000.0000.0003 0000.0000.0009
Would select Fa1/0/4 of Po1
cat3750me#$interface port-channel 1 mac 0000.0000.0006 0000.0000.0010
Would select Fa1/0/2 of Po1
For Catalyst 2950/2955/3550, from the page it said, "EtherChannel balances the traffic load across the links in a channel by randomly associating a newly learned MAC address with one of the links in the channel."
So the test result that the cat3550 loadbalanced randomly on a ouput port was a correct behavior.
To test again, used a traffic tester and made flows like this:
cat3750=>cat3550
flow group1
flow1: src MAC=>0000.0000.0001, dest MAC=>0000.0000.0007
flow2: src MAC=>0000.0000.0002, dest MAC=>0000.0000.0008
flow3: src MAC=>0000.0000.0003, dest MAC=>0000.0000.0009
flow4: src MAC=>0000.0000.0006, dest MAC=>0000.0000.0010
cat3550=>cat3750
flow group2
flow1: src MAC=>0000.0000.0007, dest MAC=>0000.0000.0001
flow2: src MAC=>0000.0000.0008, dest MAC=>0000.0000.0002
flow3: src MAC=>0000.0000.0009, dest MAC=>0000.0000.0003
flow4: src MAC=>0000.0000.0010, dest MAC=>0000.0000.0006
Before sending the flows, I assumed that for flow group1, it will loadbalance equally on the output port.
For flow group2 it will loadbalance randomly on the output port.
The result was what I assumed.
Thanks for giving me a good information!
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: