diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c index f83ff54369..e67e51f7ef 100644 --- a/src/network/networkd-dhcp6.c +++ b/src/network/networkd-dhcp6.c @@ -211,6 +211,9 @@ int dhcp6_configure(Link *link) { assert(link); + if (link->dhcp6_client) + return 0; + r = sd_dhcp6_client_new(&client); if (r < 0) return r; diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index f97600e2b5..ba64473cd3 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -2089,7 +2089,8 @@ static int link_configure(Link *link) { return r; } - if (link_dhcp6_enabled(link)) { + if (link_dhcp6_enabled(link) || + link_ipv6_accept_ra_enabled(link)) { r = dhcp6_configure(link); if (r < 0) return r;