> Le 24 févr. 2016 à 18:58, Martin Pieuchot <m...@openbsd.org> a écrit : > > On 24/02/16(Wed) 18:37, Jean-Daniel Dupas wrote: >>> Synopsis: ECMP routing ignore dest addr when choosing a route >>> Category: kernel >>> Environment: >> System : OpenBSD 5.9 >> Details : OpenBSD 5.9 (DEBUG) #0: Wed Feb 24 14:29:57 CET 2016 >> >> r...@gw1.xooloo.io:/usr/src/sys/arch/amd64/compile/DEBUG >> >> Architecture: OpenBSD.amd64 >> Machine : amd64 >>> Description: >> Since OpenBSD 5.8, I can't managed to get a proper balancing when >> using equal-cost multipath. It looks like all queries from a source are >> routed using the same route. >> I'm not very familiar with the kernel code, so I may be wrong, but >> after launching a debug session, I think that the issue is in >> rtable_match(). That function first resolve the radix_node using the actual >> dest address, and then compute a hash for mpath using the radix_node key >> instead of the dest address. As the radix node is the default route node (in >> my case), the radix node key is always 0.0.0.0. So the hash end up having >> always the same value, and the route selected for mpatch is always the same. > > Thanks for the bug report and great analysis. Does the diff below fix > the issue for you?
Thank you or the quick fix. It works :-).