References/Manual:
References/TOI:
- EOS 4.24.2F TOI - Support for dynamic load balancing on ECMP groups (Trident Only)
- EOS 4.22.1F TOI - ECMP Load Balance Profile Support (Sand/Jericho Only)
- EOS 4.21.3F TOI - Symmetric header selection in LAG load-balancing profiles (Jericho Only)
- EOS 4.21.0F TOI - UDF flex hashing improvements (Trident Only)
- EOS 4.20.6F TOI - LAG hashing enhancement for configuring member-selection method (Jericho Only)
- EOS 4.20.5F TOI - LAG hashing on Ingress Interface
- EOS 4.20.5F TOI - Lag Hashing Key Shift
- EOS 4.20.5F TOI - VxLAN over MPLS LAG hashing optimizations for Bridged ports
- EOS 4.20.1F TOI - LAG and ECMP selectable hashing fields (Jericho Only)
- EOS 4.18.0F TOI - Hardware load-balancing for ingress/egress and fabric/egress replication
- EOS 4.17.2F TOI - Configurable field selection for ECMP hash, (Trident Only)
- EOS 4.17.2F TOI - Disable usage of ingress interface in ECMP hashing
- EOS 4.17.1F TOI - Inner IP hashing for MPLSoGRE
- EOS 4.17.0F TOI - Global LAG Hashing Profiles (Jericho Only)
- EOS 4.17.0F TOI - ECMP Hash Visibility
- EOS 4.15.2F TOI - GRE in LAG hash
- EOS 4.15.2F TOI - LAG/ECMP hashing on TTL/Hop Limit
- EOS 4.15.0F TOI - Dynamic and symmetric LAG hashing
- EOS 4.15.0F TOI - Tap aggregation enhancements
Sample: In this below sample, I like to show how to use the above features to fix an ipv6 multicast unbalanced issue.
1) w/o any hashing config, lowest vs highest = 220 vs 317
ghs259-GW2.21:24:15(config-if-Po2)#srnz | grep HUB
Et3/1 GW2-HUB2 0:05 0.0 0.0% 0 220.1 0.2% 35
Et4/1 GW2-HUB2 0:05 0.0 0.0% 0 316.9 0.3% 50
Et13/1 GW2-HUB2 0:05 0.0 0.0% 0 266.1 0.3% 42
Et14/1 GW2-HUB2 0:05 0.0 0.0% 0 269.3 0.3% 43
Po2 GW2-HUB2 0:05 0.0 0.0% 0 1072.3 0.3% 171
2) hash key shift
Let's try 1 hashing feature - Lag Hashing Key Shift. Create a LB profile - mcast-v6 + key shift, apply it globally.
ghs259-GW2.21:37:22(config)#load-balance policies
ghs259-GW2.21:37:28(config-load-balance-policies)# load-balance sand profile mcast-v6
ghs259-GW2.21:37:35(config-sand-load-balance-profile-mcast-v6)# ecmp hash key shift 3
ghs259-GW2.21:37:57(config)#port-channel load-balance sand profile mcast-v6
ghs259-GW2.21:39:50#srnz | grep HUB
Et3/1 GW2-HUB2 0:05 0.0 0.0% 0 220.1 0.2% 35
Et4/1 GW2-HUB2 0:05 0.0 0.0% 0 316.9 0.3% 50
...
Clearly, not much help.
3) hash seed
ghs259-GW2.21:42:47(config-load-balance-policies)#load-balance sand profile mcast-v6
! profile mcast-v6 is the current global profile
ghs259-GW2.21:42:52(config-sand-load-balance-profile-mcast-v6)#no ecmp hash key shift
ghs259-GW2.21:43:03(config-sand-load-balance-profile-mcast-v6)#ecmp hash seed 1001
ghs259-GW2.21:43:25(config-sand-load-balance-profile-mcast-v6)#end
ghs259-GW2.21:43:36#srnz | grep HUB
Et3/1 GW2-HUB2 0:05 0.0 0.0% 0 220.2 0.2% 35
Et4/1 GW2-HUB2 0:05 0.0 0.0% 0 316.9 0.3% 50
...
4) hash polynomial + Hardware load-balancing for ingress/egress and fabric/egress replication (4.18.0F)
ghs259-GW2.21:45:26(config)#load-balance policies
ghs259-GW2.21:45:30(config-load-balance-policies)#load-balance sand profile mcast-v6
! profile mcast-v6 is the current global profile
ghs259-GW2.21:45:35(config-sand-load-balance-profile-mcast-v6)#no ecmp hash seed 1001
ghs259-GW2.21:45:42(config-sand-load-balance-profile-mcast-v6)#port-channel hash polynomial 5
ghs259-GW2.21:45:43(config-load-balance-policies)# port-channel load-balance sand replication egress
ghs259-GW2.21:46:52#srnz | grep HUB
Et3/1 GW2-HUB2 0:05 0.0 0.0% 0 265.3 0.3% 42
Et4/1 GW2-HUB2 0:05 0.0 0.0% 0 272.3 0.3% 43
Nice! The hash polynomial works! Actually EOS 8 polynomial functions, the #5 works.

No comments:
Post a Comment