I've done some more digging. It seems that
/var/log/dhclient.ens5.leases and dhclient6.ens5.leases files are
written during boot, and it looks like it did obtain an IPv6 address:
default-duid "\000\001\000\0010{\377p\022[\265\203$\251";
lease6 {
interface "ens5";
ia-na b5:83:24:a9 {
starts 1760368543;
renew 70;
rebind 112;
iaaddr 2600:1f18:60b9:2f00:53ac:1e74:4794:50c {
starts 1760368543;
preferred-life 140;
max-life 450;
}
}
option dhcp6.client-id 0:1:0:1:30:7b:ff:70:12:5b:b5:83:24:a9;
option dhcp6.server-id 0:3:0:1:12:67:e6:f2:dc:d2;
}
But the ipv6 address has not been assigned to the interface ( only the
IPv4 one has ), and both dhclient daemons appear to die after that
point.
If I comment out the ipv6 line in /etc/network/interfaces, then reboot,
the IPv4 instance of dhclient stays running. With IPv6 enabled in
/etc/network/interfaces, I have to manually run them after a reboot:
dhclient -4 -v -pf /run/dhclient.ens5.pid -lf
/var/lib/dhcp/dhclient.ens5.leases -I -df /var/lib/dhc
p/dhclient6.ens5.leases ens5
And:
dhclient -6 -v -pf /run/dhclient6.ens5.pid -lf
/var/lib/dhcp/dhclient6.ens5.leases -I -df /var/lib/d
hcp/dhclient.ens5.leases ens5
As far as I can tell, this is exactly how ifup invokes them, so I'm not
sure why it works when I do it manually but not when ifup does.
Perhaps this should be reassigned to isc-dhcp-client?