Problem:1. We have configured a port channel on the Aruba controller. However we see that all the member links are not utilized equally. What could be the reason behind this?
Diagnostics:An Aruba controller allows 8 port channels with maximum of 9 members in a single port channel. Aruba controller calculates hash of a flow and uses that hash to load balance the traffic the across the member ports. It calculated the hash based on the following:
1. For an IP traffic (ether type is 0x0800), it uses source and destination IP addresses.
2. For non-IP traffic, it uses source and destination mac addresses.
We can see the port utilization statistics using the command below:
#show port stats
Port Statistics
---------------
Port PacketsIn PacketsOut BytesIn BytesOut InputErrorBytes OutputErrorBytes CRCErrors
---- --------- ---------- ------- -------- --------------- ---------------- ---------
GE 0/0/0 42855 17035 10275992 3906829 0 0 0
GE 0/0/1 15907 16022 2727570 3175533 0 0 0
GE 0/0/2 0 0 0 0 0 0 0
GE 0/0/3 0 0 0 0 0 0 0
GE 0/0/4 0 0 0 0 0 0 0
GE 0/0/5 0 0 0 0 0 0 0
PC 2 58762 33057 13003562 7082362 0 0 0
#show datapath lag
Datapath Trunk (Port-Channel) Table
-----------------------------------
Port-Channel Ports Hash Distribution
------------ ------ -----------------
2 0/0/0 0, 2, 4, 6
0/0/1 1, 3, 5, 7
We see that the port channel 2 above has two members GE 0/0/0, 0/0/1.
Solution1. We must make sure that the port channel uses EVEN number of ports rather than odd. For an ODD number of ports, it will not be possible to have an equal hash distribution:
#show datapath lag
Datapath Trunk (Port-Channel) Table
-----------------------------------
Port-Channel Ports Hash Distribution
------------ ------ -----------------
1 0/0/0 0, 2, 4, 6
0/0/1 1, 3, 5, 7
Above, we see that the both port GE 0/0/01 and GE 0/0/2 have 4 hashes in the table. For a port channel with 3 member ports, we see:
#show datapath lag
Datapath Trunk (Port-Channel) Table
-----------------------------------
Port-Channel Ports Hash Distribution
------------ ------ -----------------
1 0/0/0 0, 3, 6
0/0/1 1, 4, 7
0/0/2 2, 5
We can see above the port 0/0/2 has only two hashes assigned to it thus it will be used less as compared to first two ports which have 3 hashes assigned to them.
2. Port channel load balancing algorithm can only decide the Egress port. Uplink device may send the return traffic back using its own algorithm. Aruba has no control over traffic received. Thus a links may not be equally utilized for incoming traffic.
3. Aruba will accept the return traffic even if it not received on same link as it was sent.
4. We also must make sure that the uplink device uses similar load balancing algorithm as Aruba. Please refer to your switch vendor documentation for the same.