Bug#827424: systemd-networkd IPv6AcceptRouterAdvertisements doesn't work

Michael Berg michael.berg at misumasu.com
Thu Jun 16 01:23:06 BST 2016


Package: systemd
Version: 230-2
Severity: normal

According on the systemd.network manual page:
IPv6AcceptRouterAdvertisements=
    Force the setting of the accept_ra ...
    Takes a boolean.
    ... note that systemd's setting of 1
    corresponds to kernel's setting of 2.

This documented behavior is not the behavior that I am seeing.
IPv6AcceptRouterAdvertisements always results in accept_ra=1.
Since this system also performs routing (forwarding is enabled),
this means that router advertisements are ignored.

The interface in question is a bridge interface named br_32.
The contents of /etc/systemd/network/br_32.network are
=====
[Match]
Name=br_32

[Network]
IPv6AcceptRouterAdvertisements=yes
IPv6PrivacyExtensions=yes
=====

The following sequence of commands show what I'm experiencing.
=====
# systemctl restart systemd-networkd.service
# sysctl net.ipv6.conf.br_32.accept_ra
net.ipv6.conf.br_32.accept_ra = 1

# sysctl -w net.ipv6.conf.br_32.accept_ra=2
# sysctl net.ipv6.conf.br_32.accept_ra
net.ipv6.conf.br_32.accept_ra = 2

# systemctl restart systemd-networkd.service
# sysctl net.ipv6.conf.br_32.accept_ra
net.ipv6.conf.br_32.accept_ra = 1
=====

So systemd-networkd does not set accept_ra=2 as indicated
in the manual page and as required in my network configuation.

I can manually set accept_ra=2 for that interace with `sysctl -w`,
and then everything works correctly (RAs are accepted and SLAAC works).
However, restarting systemd-networkd sets accept_ra back to 1,
disabling acceptance of future RAs.

I've also tried setting IPv6AcceptRouterAdvertisements=2.
Unfortunately, this is unsupported syntax as it "Takes a boolean."
So I'm unable to set or keep accept_ra=2 via systemd-networkd,
and I can't set it via /etc/sysctl.conf since systemd-networkd.service
will clobber the sysctl.conf setting when it runs.

Please fix systemd-networkd so that IPv6AcceptRouterAdvertisements
behaves as described in the manual page.


-- Package-specific info:

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.6.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages systemd depends on:
ii  adduser         3.114
ii  libacl1         2.2.52-3
ii  libapparmor1    2.10-4
ii  libaudit1       1:2.5.2-1
ii  libblkid1       2.28-5
ii  libc6           2.22-11
ii  libcap2         1:2.25-1
ii  libcap2-bin     1:2.25-1
ii  libcryptsetup4  2:1.7.0-2
ii  libgcrypt20     1.7.0-2
ii  libgpg-error0   1.22-2
ii  libkmod2        22-1.1
ii  liblzma5        5.1.1alpha+20120614-2.1
ii  libmount1       2.28-5
ii  libpam0g        1.1.8-3.3
ii  libseccomp2     2.3.1-2
ii  libselinux1     2.5-3
ii  libsystemd0     230-2
ii  mount           2.28-5
ii  util-linux      2.28-5

Versions of packages systemd recommends:
ii  dbus            1.10.8-1
ii  libpam-systemd  230-2

Versions of packages systemd suggests:
ii  systemd-container  230-2
ii  systemd-ui         3-4

Versions of packages systemd is related to:
ii  udev  230-2

-- Configuration Files:
/etc/systemd/resolved.conf changed [not included]
/etc/systemd/timesyncd.conf changed [not included]

-- no debconf information



More information about the Pkg-systemd-maintainers mailing list