9/30/2020

Arista EOS Lag/ECMP Hashing Features

References/Manual:

References/TOI:
Sample: In this below sample, I like to show how to use the above features to fix an ipv6 multicast unbalanced issue. 


Says, in the above topology, there are 2000 ipv6 multicast streams flowing ixia-harness-[vrrp primary| secondary]-nexthop router. Let's see the output of srnz on VRRP primary. 

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