Administrator Guide

Figure 35. Before Polarization Effect
Router B performs the same hash as router A and all the traffic goes through the same path to router D, while no traffic is redirected to
router E.
Some of the anti-polarization techniques used generally to mitigate unequal traffic distribution in LAG/ECMP as follows:
1 Configuring different hash-seed values at each node - Hash seed is the primary parameter in hash computations that determine
distribution of traffic among the ECMP paths. The ECMP path can be configured different in each of the nodes “hash-algorithm
seed-value” would result in better traffic distribution for a given flow, by reducing Polarization effect.
2 Configuring Ingress port as an additional load-balancing parameters [using “load-balance ingress-port enable”] would reduce the
polarization effect.
3 Configuring different load-balancing parameters at each tier. In Router A, the hash fields for load balancing could be source-ip, dest-
ip, vlan, protocol, L4-source-port and L4-dest-port, whereas on Router B, the hash fields use only source-ip, dest-ip, and protocol
4 Configuring different hash algorithms at different tiers. For example, Router A could use crc16 as the hash algorithm while router B
can use XOR16 as the hash algorithm.
Configuration and Benefits
The preceding anti-polarization techniques require some coordinated configuration of network nodes to solve the problem and these
techniques are not scalable when the number of tiers in the network is high. Flow based hashing specifically addresses this using Macro
flow-based Hash function. It facilitates a dynamic hash function selection across different nodes in a network on a macro flow basis, thus
reducing unfair distribution of bandwidth between members and starvation.
Selection of Algorithms is available under flow-based-hashing enabling another level of randomness in hash selection. CLI to enable flow-
based hashing is shown in the given example:
Dell_GW1(conf)#hash-algorithm ecmp flow-based-hashing ?
crc16 CRC16_BISYNC - 16 bit CRC16-bisync polynomial(default)
crc16cc CRC16_CCITT - 16 bit CRC16 using CRC16-CCITT polynomial
crc32MSB CRC32_UPPER - MSB 16 bits of computed CRC32
316
Equal Cost Multi-Path (ECMP)