Patch merged upstream to address this: https://review.openstack.org/#/c/386201/
Upstream patch has merged, so this should be fixed in OSP 10.
The issue is still present even though net.ipv6.conf.all.accept_ra and net.ipv6.conf.all.autoconf are now turned off by puppet: [root@overcloud-controller-0 heat-admin]# sysctl net.ipv6.conf.all.autoconf net.ipv6.conf.all.autoconf = 0 [root@overcloud-controller-0 heat-admin]# sysctl net.ipv6.conf.all.accept_ra net.ipv6.conf.all.accept_ra = 0 The default route installed in the routing table: [root@overcloud-controller-0 heat-admin]# ip -6 route show default default via fe80::5054:ff:fe86:1d1b dev eth4 proto ra metric 1024 expires 1476sec hoplimit 64 The static default route which should be the one installed: [root@overcloud-controller-0 heat-admin]# cat /etc/sysconfig/network-scripts/route6-vlan100 default via 2001:db8:ca2:4::1 dev vlan100 Moreover the route seems to get renewed so the static route never gets installed: [root@overcloud-controller-0 heat-admin]# ip -6 route show default default via fe80::5054:ff:fe86:1d1b dev eth4 proto ra metric 1024 expires 1240sec hoplimit 64 [root@overcloud-controller-0 heat-admin]# ip -6 route show default default via fe80::5054:ff:fe86:1d1b dev eth4 proto ra metric 1024 expires 1698sec hoplimit 64 Checking the interface sysctl values I see they are turned on: [root@overcloud-controller-0 heat-admin]# sysctl net.ipv6.conf.eth4.accept_ra net.ipv6.conf.eth4.accept_ra = 1 [root@overcloud-controller-0 heat-admin]# sysctl net.ipv6.conf.eth4.autoconf net.ipv6.conf.eth4.autoconf = 1