[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8ff0c684-7d33-c785-94d7-c0e6f8b79d64@gmail.com>
Date: Thu, 11 Jun 2020 12:27:06 -0600
From: David Ahern <dsahern@...il.com>
To: Yi Yang (杨燚)-云服务集团
<yangyi01@...pur.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Cc: "nikolay@...ulusnetworks.com" <nikolay@...ulusnetworks.com>
Subject: Re: [PATCH] can current ECMP implementation support consistent
hashing for next hop?
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
Powered by blists - more mailing lists