dhcpcd-discuss

Re: Distinguish IPv6 address added via SLAAC and DHCPv6

Roy Marples

Wed Sep 11 19:47:27 2019

Hi Andreas

On 11/09/2019 19:15, feedback@xxxxxxxxxxxxx wrote:
due to some constraints from an external software protocol I need to group IPv6 addresses per network interface in link-local, manual-set, slaac- and dhcpv6-based addresses (I know, don't ask...).

I have done some research if this is possible after interface configuration via dhcpcd.

* link-local addresses can be filtered out by being 'scope=link'
* manual-set addresses can be filtered out by being permanent and not 'dynamic' and also because we set them manually of course

Unfortunately slaac- and dhcpv6-based addresses are indistinguishable as far as I can see because they share the same attributes by being 'scope=global' and 'dynamic'. I know of no other address flags which would make a difference.
Did I miss something obvious here?

If it's not possible after interface configuration, I thought about using my user-defined dhcpcd.enter-hook (or hacking dhcpcd directly?) to save 'incoming' slaac/dhcpv6 addresses in seperate text files and compare them later with the interface configuration. Maybe someone has done a similar approach (I doubt it ;-)) or a better solution around dhcpcd?

You've already worked out all you can from what the kernel provides.
So to get more you need to hook into dhcpcd.

You can do this either by a dhcpcd-run-hooks(8) hook such as /etc/dhcpcd.exit-hook OR by talking to the unpriviledged dhcpcd socket. See the dhcpcd-run-hooks(8) man page for the former or the libdhcpcd code [1] for the latter.

The only thing you can't work out here are static addresses defined in dhcpcd.conf.

Good luck!

Roy

[1] https://roy.marples.name/cgit/dhcpcd-ui.git/tree/src/libdhcpcd/dhcpcd.c#n1290
Follow-Ups:
Re: Distinguish IPv6 address added via SLAAC and DHCPv6Kirth Gersen
References:
Distinguish IPv6 address added via SLAAC and DHCPv6feedback
Archive administrator: postmaster@marples.name