On 6/11/20 8:56 AM, Yi Yang (杨燚)-云服务集团 wrote:
> Hi, folks
> 
> We need to use Linux ECMP to do active-active load balancer, but consistent 
> hash is necessary because load balance node may be added or removed 
> dynamically, so number of hash bucket is changeable, but we have to 
> distribute flow to load balance node which is handling this flow and has 
> current session state, I’m not sure if current Linux has implemented the 
> algorithm in  https://tools.ietf.org/html/rfc2992, anybody can confirm yes or 
> no?
> 
> I checked source code in 
> https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/net/ipv4/fib_semantics.c#n2176,
>  every next hop in fib has a upper_bound, fib_select_multipath just checks if 
> hash value is greater than upper_bound of next hop and decide if it is 
> selected next hop, so I don't think current linux has implemented consistent 
> hash, please correct me if I'm wrong.
> 
> Thank you all so much in advance and sincerely appreciate your help.
> 

The kernel does not do resilient hashing, but I believe you can do it
from userspace by updating route entries - replacing nexthop entries as
LB's come and go.

Cumulus docs have a good description:
https://docs.cumulusnetworks.com/cumulus-linux/Layer-3/Equal-Cost-Multipath-Load-Sharing-Hardware-ECMP/#resilient-hashing

Reply via email to