I did some testing, using an openstack instance with radvd running on a router in a flat provider network. radvd was set up with the following config on the provider network: interface eth1 { AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on; AdvRASolicitedUnicast on; AdvLinkMTU 1450; prefix fd12:3456:789a:1::/64 { AdvAutonomous on; AdvOnLink on; }; }; Setting IPV6_FORCE_ACCEPT_RA=yes in the interface configuration seem to fix this problem without also enabling autoconf which I belive would be the preffered configuration. Question: Would it based on this result make sense to make the "accept-ra: true|false" in netplan (network-config version=2) control IPV6_FORCE_ACCEPT_RA in sysconf? And for cloudinit/sources/helpers/openstack.py enable it for network['type'] == dhcpv6-stateful? Actual results: --------------- instance metadata - network_data.json: { "services": [ { "type": "dns", "address": "fd12:3456:789a:1::1" } ], "networks": [ { "network_id": "0e5c86ca-4f61-4e8d-a356-84c8001a297b", "type": "ipv6_dhcpv6-stateful", "services": [ { "type": "dns", "address": "fd12:3456:789a:1::1" } ], "netmask": "ffff:ffff:ffff:ffff::", "link": "tapecbf57bf-c0", "routes": [ { "netmask": "::", "network": "::", "gateway": "fd12:3456:789a:1::fffe" } ], "ip_address": "fd12:3456:789a:1::1:14e", "id": "network0" } ], "links": [ { "vif_id": "ecbf57bf-c0ff-4104-b5bf-5c310cc32d96", "type": "phy", "ethernet_mac_address": "fa:16:3e:26:da:7e", "id": "tapecbf57bf-c0", "mtu": 1450 } ] } file: /etc/sysconfig/network NOZEROCONF=yes # Created by cloud-init on instance boot automatically, do not edit. # NETWORKING=yes NETWORKING_IPV6=yes IPV6_AUTOCONF=no file: /etc/sysconfig/network-scripts/ifcfg-eth0 # Created by cloud-init on instance boot automatically, do not edit. # BOOTPROTO=none DEFROUTE=yes DEVICE=eth0 DHCPV6C=yes HWADDR=fa:16:3e:26:da:7e IPV6INIT=yes IPV6_DEFAULTGW=fd12:3456:789a:1::fffe MTU=1450 ONBOOT=yes TYPE=Ethernet USERCTL=no $ sysctl net.ipv6.conf.eth0 net.ipv6.conf.eth0.accept_dad = 1 net.ipv6.conf.eth0.accept_ra = 0 <- RA is disabled net.ipv6.conf.eth0.accept_ra_defrtr = 1 net.ipv6.conf.eth0.accept_ra_pinfo = 1 net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.eth0.accept_ra_rtr_pref = 1 net.ipv6.conf.eth0.accept_redirects = 0 net.ipv6.conf.eth0.accept_source_route = 0 net.ipv6.conf.eth0.autoconf = 0 <- Autoconf is disabled net.ipv6.conf.eth0.dad_transmits = 1 net.ipv6.conf.eth0.disable_ipv6 = 0 net.ipv6.conf.eth0.enhanced_dad = 1 net.ipv6.conf.eth0.force_mld_version = 0 net.ipv6.conf.eth0.force_tllao = 0 net.ipv6.conf.eth0.forwarding = 0 net.ipv6.conf.eth0.hop_limit = 64 net.ipv6.conf.eth0.keep_addr_on_down = 0 net.ipv6.conf.eth0.max_addresses = 16 net.ipv6.conf.eth0.max_desync_factor = 600 net.ipv6.conf.eth0.mc_forwarding = 0 net.ipv6.conf.eth0.mldv1_unsolicited_report_interval = 10000 net.ipv6.conf.eth0.mldv2_unsolicited_report_interval = 1000 net.ipv6.conf.eth0.mtu = 1450 net.ipv6.conf.eth0.ndisc_notify = 0 net.ipv6.conf.eth0.optimistic_dad = 0 net.ipv6.conf.eth0.proxy_ndp = 0 net.ipv6.conf.eth0.regen_max_retry = 3 net.ipv6.conf.eth0.router_probe_interval = 60 net.ipv6.conf.eth0.router_solicitation_delay = 1 net.ipv6.conf.eth0.router_solicitation_interval = 4 net.ipv6.conf.eth0.router_solicitations = 3 net.ipv6.conf.eth0.temp_prefered_lft = 86400 net.ipv6.conf.eth0.temp_valid_lft = 604800 net.ipv6.conf.eth0.use_optimistic = 0 net.ipv6.conf.eth0.use_tempaddr = 0 $ ip addr show eth0 2: eth0: mtu 1450 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:26:da:7e brd ff:ff:ff:ff:ff:ff inet6 fd12:3456:789a:1::1:14e/128 scope global dynamic valid_lft 7353sec preferred_lft 7053sec inet6 fe80::f816:3eff:fe26:da7e/64 scope link valid_lft forever preferred_lft forever $ ip -6 route unreachable ::/96 dev lo metric 1024 error -113 pref medium unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 pref medium unreachable 2002:a00::/24 dev lo metric 1024 error -113 pref medium unreachable 2002:7f00::/24 dev lo metric 1024 error -113 pref medium unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 pref medium unreachable 2002:ac10::/28 dev lo metric 1024 error -113 pref medium unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 pref medium unreachable 2002:e000::/19 dev lo metric 1024 error -113 pref medium unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 pref medium fd12:3456:789a:1::1:14e dev eth0 proto kernel metric 256 expires 7036sec pref medium fe80::/64 dev eth0 proto kernel metric 256 pref medium fe80::/64 dev eth4 proto kernel metric 256 pref medium fe80::/64 dev eth2 proto kernel metric 256 pref medium fe80::/64 dev eth5 proto kernel metric 256 pref medium fe80::/64 dev eth1 proto kernel metric 256 pref medium fe80::/64 dev eth3 proto kernel metric 256 pref medium (undercloud) [centos@undercloud ~]$ ping6 fd12:3456:789a:1::1:14e PING fd12:3456:789a:1::1:14e(fd12:3456:789a:1::1:14e) 56 data bytes ^C --- fd12:3456:789a:1::1:14e ping statistics --- 45 packets transmitted, 0 received, 100% packet loss, time 44006ms Communication with the undercloud fails. Expected results: ----------------- The instance should be able to communicate. Additional info: ---------------- If I add IPV6_FORCE_ACCEPT_RA=yes to /etc/sysconfig/network-scripts/ifcfg-eth0 and do "ifdown etc0 / ifup eth0" the results are: $ sysctl net.ipv6.conf.eth0 net.ipv6.conf.eth0.accept_dad = 1 net.ipv6.conf.eth0.accept_ra = 1 <<-- RA's are enabled net.ipv6.conf.eth0.accept_ra_defrtr = 1 net.ipv6.conf.eth0.accept_ra_pinfo = 1 net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.eth0.accept_ra_rtr_pref = 1 net.ipv6.conf.eth0.accept_redirects = 0 net.ipv6.conf.eth0.accept_source_route = 0 net.ipv6.conf.eth0.autoconf = 0 <<-- Autoconf is disabled net.ipv6.conf.eth0.dad_transmits = 1 net.ipv6.conf.eth0.disable_ipv6 = 0 net.ipv6.conf.eth0.enhanced_dad = 1 net.ipv6.conf.eth0.force_mld_version = 0 net.ipv6.conf.eth0.force_tllao = 0 net.ipv6.conf.eth0.forwarding = 0 net.ipv6.conf.eth0.hop_limit = 64 net.ipv6.conf.eth0.keep_addr_on_down = 0 net.ipv6.conf.eth0.max_addresses = 16 net.ipv6.conf.eth0.max_desync_factor = 600 net.ipv6.conf.eth0.mc_forwarding = 0 net.ipv6.conf.eth0.mldv1_unsolicited_report_interval = 10000 net.ipv6.conf.eth0.mldv2_unsolicited_report_interval = 1000 net.ipv6.conf.eth0.mtu = 1450 net.ipv6.conf.eth0.ndisc_notify = 0 net.ipv6.conf.eth0.optimistic_dad = 0 net.ipv6.conf.eth0.proxy_ndp = 0 net.ipv6.conf.eth0.regen_max_retry = 3 net.ipv6.conf.eth0.router_probe_interval = 60 net.ipv6.conf.eth0.router_solicitation_delay = 1 net.ipv6.conf.eth0.router_solicitation_interval = 4 net.ipv6.conf.eth0.router_solicitations = 3 sysctl: reading key "net.ipv6.conf.eth0.stable_secret" net.ipv6.conf.eth0.temp_prefered_lft = 86400 net.ipv6.conf.eth0.temp_valid_lft = 604800 net.ipv6.conf.eth0.use_optimistic = 0 net.ipv6.conf.eth0.use_tempaddr = 0 $ ip addr show eth0 2: eth0: mtu 1450 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:26:da:7e brd ff:ff:ff:ff:ff:ff inet6 fd12:3456:789a:1::1:14e/128 scope global dynamic valid_lft 6995sec preferred_lft 6695sec inet6 fe80::f816:3eff:fe26:da7e/64 scope link valid_lft forever preferred_lft forever $ ip -6 route unreachable ::/96 dev lo metric 1024 error -113 pref medium unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 pref medium unreachable 2002:a00::/24 dev lo metric 1024 error -113 pref medium unreachable 2002:7f00::/24 dev lo metric 1024 error -113 pref medium unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 pref medium unreachable 2002:ac10::/28 dev lo metric 1024 error -113 pref medium unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 pref medium unreachable 2002:e000::/19 dev lo metric 1024 error -113 pref medium unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 pref medium fd12:3456:789a:1::1:14e dev eth0 proto kernel metric 256 expires 7022sec pref medium fd12:3456:789a:1::/64 dev eth0 proto kernel metric 256 expires 86309sec pref medium <<-- Route is added fe80::/64 dev eth4 proto kernel metric 256 pref medium fe80::/64 dev eth2 proto kernel metric 256 pref medium fe80::/64 dev eth5 proto kernel metric 256 pref medium fe80::/64 dev eth1 proto kernel metric 256 pref medium fe80::/64 dev eth3 proto kernel metric 256 pref medium fe80::/64 dev eth0 proto kernel metric 256 pref medium default via fe80::f816:3eff:fef2:dd78 dev eth0 proto ra metric 1024 expires 1709sec hoplimit 64 pref medium !! - Now that the route was added I can communicate with the instance !!! (undercloud) [centos@undercloud ~]$ ping6 fd12:3456:789a:1::1:14e PING fd12:3456:789a:1::1:14e(fd12:3456:789a:1::1:14e) 56 data bytes 64 bytes from fd12:3456:789a:1::1:14e: icmp_seq=1 ttl=64 time=0.554 ms 64 bytes from fd12:3456:789a:1::1:14e: icmp_seq=2 ttl=64 time=1.09 ms 64 bytes from fd12:3456:789a:1::1:14e: icmp_seq=3 ttl=64 time=0.472 ms ^C --- fd12:3456:789a:1::1:14e ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 0.472/0.705/1.090/0.274 ms