ok. so, i now know what happens, and why adding anything before the ipv6 address "fixes" the problem.
boot happens like this:
* system boot
* net-device-added fires network-interface.conf
* net-device-added runs ifup --allow auto
* ifup --allow auto reads /etc/network/interfaces *in order*
* after the *first* stanza is brought up, /etc/network/if-up.d/upstart is invoked
* /etc/network/if-up.d/upstart finds all interfaces to be up and emits static-network-up
* /etc/init/failsafe.conf is stopped, freeing procps.conf to start
* procps.conf runs sysctl on files in /etc/sysctl.d/*.conf
which includes /etc/sysctl.d/10-ipv6-privacy.conf
ipv6-privacy.conf ends up killing the existing addresses.
ok. so, i now know what happens, and why adding anything before the ipv6 address "fixes" the problem. interface. conf interfaces *in order* if-up.d/ upstart is invoked if-up.d/ upstart finds all interfaces to be up and emits static-network-up failsafe. conf is stopped, freeing procps.conf to start d/*.conf d/10-ipv6- privacy. conf
boot happens like this:
* system boot
* net-device-added fires network-
* net-device-added runs ifup --allow auto
* ifup --allow auto reads /etc/network/
* after the *first* stanza is brought up, /etc/network/
* /etc/network/
* /etc/init/
* procps.conf runs sysctl on files in /etc/sysctl.
which includes /etc/sysctl.
ipv6-privacy.conf ends up killing the existing addresses.