If the dhcpv6-options prefix-delegation configuration for an interface delegates prefixes to an interface that doesn't exist, yet, then configuration of the interface breaks during boot, and the entire interface config is lost from the running config.
Take the following example configuration:
interfaces { ethernet eth0 { address 1.2.3.4/29 address 5.6.7.8/29 address dhcpv6 address 10.1.11.3/24 description "WAN" dhcpv6-options { prefix-delegation { interface eth1 { address 1 sla-id 1 sla-len 4 } interface eth2.4 { address 1 sla-id 4 sla-len 4 } interface eth2.6 { address 1 sla-id 6 sla-len 4 } } } ipv6 { address { autoconf } } } ethernet eth1 { address 192.168.1.1/24 description DMZ } ethernet eth2 { vif 4 { address 192.168.4.1/24 description "VLAN 4" } vif 6 { address 192.168.6.1/24 description IOT } } ...
This all works fine when configured from the terminal, presumably because one configures the VLANs first and then goes back to set up prefix delegation on them.
But then save the config and reboot, and things are broken. Here are the symptoms:
eth0 will be only partially configured. It seems like address configuration is broken at the moment it handles the address dhcpv6 line, since the addresses before that line are correctly configured, but those after it are not:
$ sh int Interface IP Address S/L Description --------- ---------- --- ----------- eth0 1.2.3.4/29 u/u WAN 5.6.7.8/29 2603:3024:1234:5670::3/128 2603:3024:1234:5670:943:43ce:348a:bce4/64 2603:3024:1234:5670:208:a2ff:fe0a:abcd/64 eth1 192.168.1.1/24 u/u DMZ 2603:3024:1234:5671::1/64 2603:3024:1234:5672::1/64 eth2.4 192.168.20.1/24 u/u VLAN 4 2603:3024:1234:5674::1/64 eth2.6 192.168.60.1/24 u/u IOT 2603:3024:1234:5676::1/64
Interestingly, DHCPv6-PD succeeds.
But here's the worst part:
$ conf # sh int eth eth0 Configuration under specified path is empty [edit] #
Apparently, when parsing the saved config broke validating the interface list, it caused the entire interface's config to be discarded. In order to keep using the router, I have to re-type the entire eth0 config and the commit. And all is well again, until the next reboot.
Note that everything works as expected if the DHCPv6-PD is moved to a later interface, such as eth3, delegating back to VLANs on prior interfaces. The VLANs are configured already by the time the config processor gets there, in that case. (But that's not a viable solution for me anymore, because I'm now working on getting prefixes delegated by two providers, and I don't want to have to shift all my other interfaces around to do it.)