Comment 2 for bug 1633562

Revision history for this message
Stéphane Graber (stgraber) wrote :

So I suspect the reason for this behavior is that there is no reason why you'd want to run dhclient in IPv6 mode before you've brought up the interface and parsed the router advertisement.

That's because unlike IPv4, IPv6 configuration is mostly done through router advertisements which happen entirely outside of DHCPv6. The content of that router advertisement then dictates whether DHCPv6 should be done and if so, in which mode.

So the way things are expected to happen is:
 - Bring up the interface
 - Do router solicitation and get a router advertisement
 - Parse the router advertisement, looking for the other-config (O) and managed (M) flag.
 - If the managed bit is set, then trigger dhcpv6 in stateful mode
 - If the managed bit isn't set and other-config bit is set, then trigger dhcpv6 in stateless mode
 - If neither are, then use the RDNSS and DNSSL information from the advertisement to configure DNS

Triggering dhclient in stateless or even stateful mode before getting a router advertisement may succeed but may also run into a race condition as the gateway and prefix length may not have been received by the time the DHCP dialog is over, leading to invalid configuration.