From 988be8d0521820660f3ae2bc54acb1f524d74671 Mon Sep 17 00:00:00 2001 From: Mira Limbeck Date: Mon, 29 Mar 2021 14:07:15 +0200 Subject: [PATCH] fix #2670: cloudinit enable SLAAC cloud-init's SLAAC option was disabled in 2018 because there was no support for it. Now that cloud-init 19.4 or newer versions are more widespread, we can finally reenable it. Also include minimum required cloud-init version for SLAAC support in format description. Tested on Ubuntu 20.04 (ci 20.4), CentOS 8 (ci 19.4), Debian 10 (ci 20.2). Signed-off-by: Mira Limbeck --- PVE/QemuServer.pm | 3 ++- PVE/QemuServer/Cloudinit.pm | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index f9379f64..8c483e63 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -964,7 +964,8 @@ IP addresses use CIDR notation, gateways are optional but need an IP of the same The special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided. -For IPv6 the special string 'auto' can be used to use stateless autoconfiguration. +For IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires +cloud-init 19.4 or newer. If cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4. diff --git a/PVE/QemuServer/Cloudinit.pm b/PVE/QemuServer/Cloudinit.pm index 3224dd08..a5474d3e 100644 --- a/PVE/QemuServer/Cloudinit.pm +++ b/PVE/QemuServer/Cloudinit.pm @@ -449,8 +449,8 @@ sub nocloud_network { if ($ip eq 'dhcp') { $content .= "${i}- type: dhcp6\n"; } elsif ($ip eq 'auto') { - # SLAAC is not supported by cloud-init, this fallback should work with an up-to-date netplan at least - $content .= "${i}- type: dhcp6\n"; + # SLAAC is only supported by cloud-init since 19.4 + $content .= "${i}- type: ipv6_slaac\n"; } else { $content .= "${i}- type: static6\n" . "${i} address: '$ip'\n"; -- 2.39.5