On Wed, Mar 20, 2024 at 12:34:54PM +0100, Paul Holzinger wrote:
On 20/03/2024 12:02, Stefano Brivio wrote:
On Wed, 20 Mar 2024 11:51:59 +0100 Paul Holzinger
wrote:
[snip]
+ if (anyifi) { + if (nany == 1) + return anyifi; + + warn("Multiple interfaces with %s routes, use -i to select one", + af == AF_INET ? "IPv4" : "IPv6"); This should not be a warning, for me this always triggers because I have two interfaces with link local addresses and no global ipv6 route as I do not have any ipv6 connection. I was about to reply as I just applied this with s/warn/info/ here :) The more I think about this I think this suggestion is just wrong. I have a valid ipv4 connection and no ipv6, offering me to use -i is just wrong as it will not help me, especially if one uses a different interface for ipv4/ipv6 connections.
Yeah, I think you're right. We should ignore link-local routes when doin this scan. Both for IPv6 and IPv4, although IPv4 link-local is much rarer. I'll have a look at that tomorrow, in the meantime this is still better than what we had.
Or maybe the correct fix is to never consider ipv6 link local routes for this logic? At least I cannot see the purpose of using a interface with only a link local route.
+ } + + if (!nany) + warn("No interfaces with %s routes", af == AF_INET ? "IPv4" : "IPv6"); ...and here, because if one has no IPv6 routes we would reintroduce the issue we just fixed in 338b6321ac0d ("conf: No routable interface for IPv4 or IPv6 is informational, not a warning").
I think the purpose of picking interfaces based on routes for link-local destinations is for practical test setups like the one described in https://github.com/containers/podman/issues/21896.
Functionally it doesn't make sense, but it shouldn't harm either (right?).
I am not sure how the issue is related to link local addresses, for ipv6 a link local route must explicitly never be routed anywhere else besides the current interface so picking this seems incorrect as it will be unusable not matter what.
+ + return 0; } /** I reproduced by having a second interface and confirm this patch fixes it. Thanks for checking! Let's hope that was the case in the failing test.
-- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson