Administrator Guide
Figure 35. Before Polarization Eect
Router B performs the same hash as router A and all the trac goes through the same path to router D, while no trac is redirected to
router E.
Some of the anti-polarization techniques used generally to mitigate unequal trac distribution in LAG/ECMP as follows:
1 Conguring dierent hash-seed values at each node - Hash seed is the primary parameter in hash computations that determine
distribution of trac among the ECMP paths. The ECMP path can be congured dierent in each of the nodes “hash-algorithm
seed-value” would result in better trac distribution for a given ow, by reducing Polarization eect.
2 Conguring Ingress port as an additional load-balancing parameters [using “load-balance ingress-port enable”] would reduce the
polarization eect.
3 Conguring dierent load-balancing parameters at each tier. In Router A, the hash elds for load balancing could be source-ip, dest-ip,
vlan, protocol, L4-source-port and L4-dest-port, whereas on Router B, the hash elds use only source-ip, dest-ip, and protocol
4 Conguring dierent hash algorithms at dierent tiers. For example, Router A could use crc16 as the hash algorithm while router B
can use XOR16 as the hash algorithm.
Conguration and Benets
The preceding anti-polarization techniques require some coordinated conguration 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 specically addresses this using Macro
ow-based Hash function. It facilitates a dynamic hash function selection across dierent nodes in a network on a macro ow basis, thus
reducing unfair distribution of bandwidth between members and starvation.
Selection of Algorithms is available under ow-based-hashing enabling another level of randomness in hash selection. CLI to enable ow-
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
320
Equal Cost Multi-Path (ECMP)