[pve-devel] applied: [PATCH container] setup: fix alpine ipv6-slaac configuration

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Mar 20 13:49:10 CET 2019


On 3/19/19 4:34 PM, Stoiko Ivanov wrote:
> busybox ifupdown implementation differs from debian's - configuration type
> auto is not supported. If SLAAC is selected for the ipv6 configuration of an
> interface, the complete networking is not started, because of that error.
> 
> This workaround sets the interface type to 'manual' in case SLAAC is selected
> (as is already done for dhcpv6 (for different reasons)). That way all other
> configuration stanzas are setup correctly, and if a ipv4 configuration is
> present for the same interface the SLAAC-part usually works out of the box
> anyways (unless 'accept_ra' is set to 0 for the interface in the kernel).
> 
> Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
> ---
> The only downside is that a ipv6-slaac only (no ipv4) use of the interface will
> not work - the interface won't be set to up. The alternative being to either
> copy the network/interfaces creation code from debian or refactoring it in a
> bigger scope to take alpine specifics also into account. I suppose that few
> ipv6-only use-cases rely on slaac (with random generated mac-addresses)
> 

for now: applied, thanks! If there are really users of this, we'll here from
them, also it did not get worse for them ^^

>  src/PVE/LXC/Setup/Alpine.pm | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/src/PVE/LXC/Setup/Alpine.pm b/src/PVE/LXC/Setup/Alpine.pm
> index e7b8e67..75d6ebe 100644
> --- a/src/PVE/LXC/Setup/Alpine.pm
> +++ b/src/PVE/LXC/Setup/Alpine.pm
> @@ -79,6 +79,13 @@ sub setup_network {
>      # we can remove this bit.
>      #
>      # Filter out ipv6 dhcp and turn it into 'manual' so they see what's up.
> +    #
> +    # XXX: slaac works different from debian - busybox has no 'auto'
> +    # configuration type - https://wiki.alpinelinux.org/wiki/Configure_Networking#IPv6_Stateless_Autoconfiguration
> +    # the suggested configuration sadly does not take the interface up, but
> +    # at least with the workaround the networking starts and if an ipv4 is
> +    # configured slaac for ipv6 works (unless accept_ra = 0 in the node)
> +
>      my $netconf = {};
>      my $networks = {};
>      foreach my $k (keys %$conf) {
> @@ -86,7 +93,7 @@ sub setup_network {
>  	my $netstring = $conf->{$k};
>  	# check for dhcp6:
>  	my $d = PVE::LXC::Config->parse_lxc_network($netstring);
> -	if (defined($d->{ip6}) && $d->{ip6} eq 'dhcp') {
> +	if (defined($d->{ip6}) && ($d->{ip6} eq 'dhcp' || $d->{ip6} eq 'auto')) {
>  	    $d->{ip6} = 'manual';
>  	    $netstring = PVE::LXC::Config->print_lxc_network($d);
>  	}
> 




More information about the pve-devel mailing list