[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