Concept Guide

Figure 37. Before Polarization Eect
Router B performs the same hash as router A and all the trac goes through the same path to router D, while no trac is redirected to
router E.
Some of the anti-polarization techniques used generally to mitigate unequal trac distribution in LAG/ECMP as follows:
1 Conguring dierent hash-seed values at each node - Hash seed is the primary parameter in hash computations that determine
distribution of trac among the ECMP paths. The ECMP path can be congured dierent in each of the nodes “hash-algorithm
seed-value” would result in better trac distribution for a given ow, by reducing Polarization eect.
2 Conguring Ingress port as an additional load-balancing parameters [using “load-balance ingress-port enable”] would reduce the
polarization eect.
3 Conguring dierent 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 Conguring dierent hash algorithms at dierent tiers. For example, Router A could use crc16 as the hash algorithm while router B
can use XOR16 as the hash algorithm.
Conguration and Benets
The preceding anti-polarization techniques require some coordinated conguration 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 specically addresses this using Macro
ow-based Hash function. It facilitates a dynamic hash function selection across dierent 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
Equal Cost Multi-Path (ECMP)
351