Re: [PATCH] net: ipv6: don't generate link-local address in any addr_gen_mode
From: Mark Smith <hidden>
Date: 2021-09-13 15:46:46
Also in:
linux-arm-kernel, linux-mediatek, lkml
Hi Lorenzo, On Mon, 13 Sept 2021 at 19:38, Lorenzo Colitti [off-list ref] wrote:
On Mon, Sep 13, 2021 at 12:47 AM Mark Smith [off-list ref] wrote:quoted
This is all going in the wrong direction. Link-local addresses are not optional on an interface, all IPv6 enabled interfaces are required to have one:The original patch did indeed disable the generation of the link-local address, but that patch was rejected. It sounds like the right approach here is to provide two new addressing modes: IN6_ADDR_GEN_MODE_RANDOM_LL_TOKEN IN6_ADDR_GEN_MODE_STABLE_PRIVACY_LL_TOKEN which would form the link-local address from the token passed in via IFLA_INET6_TOKEN, but would form non-link-local addresses (e.g., global addresses) via the specified means (either random or stable privacy). I haven't looked at how to do that yet though.
I think there is a broader issue here. If RFC7217 is used to generate the Link-Local address, then the likelihood of the Link-Local address being a duplicate with the GGSN is very low, because RFC7217 uses a function such as SHA-1 or SHA-256. RFC7217 also performs DAD just in case, and triggers RFC7217 again if a duplicate does occur. RFC8064 recommends RFC7217 for all stable IPv6 addresses by default now, which includes Link-Local addresses. Following RFC8064 by Implementing RFC7217 for all stable IPv6 addresses the Linux kernel generates would solve both the 3GPP's duplicate Link-Local address concern, and also make the Linux kernel compliant with the latest SLAAC recommendation for default IIDs and stable IPv6 addresses. Regards, Mark.