FS#44707 - [systemd] forwarding not configured - systemd-sysctl fails to configure from /etc/sysctl.d/*.conf

Attached to Project: Arch Linux
Opened by James (thx1138) - Thursday, 23 April 2015, 19:48 GMT
Last edited by Dave Reisner (falconindy) - Thursday, 23 April 2015, 19:53 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To No-one
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

linux 4.0-2
systemd 219-6

Note:

$ systemctl is-enabled systemd-sysctl.service
static

$ systemctl status sysinit.target
● sysinit.target - System Initialization
Loaded: loaded (/usr/lib/systemd/system/sysinit.target; static; vendor preset: disabled)
Active: active since Thu 2015-04-23 12:44:01 MDT; 26min ago
Docs: man:systemd.special(7)

Apr 23 12:44:01 topaz systemd[1]: Reached target System Initialization.
Apr 23 12:44:01 topaz systemd[1]: Starting System Initialization.

$ strace -e open /usr/lib/systemd/systemd-sysctl 2>&1 | grep \\.conf
open("/etc/sysctl.d/30-ipforward.conf", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/sysctl.d/50-coredump.conf", O_RDONLY|O_CLOEXEC) = 4
open("/usr/lib/sysctl.d/50-default.conf", O_RDONLY|O_CLOEXEC) = 4

$ find /usr/lib/systemd/ -name "*systemd-sysctl*"
/usr/lib/systemd/system/systemd-sysctl.service
/usr/lib/systemd/system/sysinit.target.wants/systemd-sysctl.service
/usr/lib/systemd/systemd-sysctl

Immediately after boot:

$ sudo sysctl -a|grep forw
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.enp0s7.forwarding = 0
net.ipv4.conf.enp0s7.mc_forwarding = 0
net.ipv4.conf.enp4s0.forwarding = 0
net.ipv4.conf.enp4s0.mc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.enp0s7.forwarding = 0
net.ipv6.conf.enp4s0.forwarding = 0
net.ipv6.conf.lo.forwarding = 1
[ 48.494836] nr_pdflush_threads exported in /proc is scheduled for removal

Subsequent to boot, run manually:

$ sudo sysctl --system
* Applying /etc/sysctl.d/30-ipforward.conf ...
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.enp0s7.forwarding = 1
net.ipv4.conf.enp4s0.forwarding = 1
net.ipv4.conf.lo.forwarding = 1
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.enp0s7.forwarding = 1
net.ipv6.conf.enp4s0.forwarding = 1
net.ipv6.conf.enp0s7.accept_ra = 2
* Applying /usr/lib/sysctl.d/50-coredump.conf ...
kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e
* Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq =16
kernel.core_uses_pid = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
net.core.default_qdisc = fq_codel
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /etc/sysctl.conf ...
sysctl: cannot open "/etc/sysctl.conf": No such file or directory

On boot, systemd-sysctl fails to apply forwarding configuration from /etc/sysctl.d/30-ipforward.conf. Neither /usr/lib/sysctl.d/50-coredump.conf or /usr/lib/sysctl.d/50-default.conf appear to interfere with the forwading settings. "sysctl --system" seems to act normally, run manually after boot.

"all.forwarding" and "default.forwarding" settings are not propagating to the per-interface forwardiing settings, though the documentation seems unclear on the specific function for these. "Something" seems to be interfering with the settings in "/etc/sysctl.d/30-ipforward.conf". This problem started around systemd-218, and initially only effected ipv4 forwarding. This has been reported upstream, but there has been no response. Suse users have experienced this problem, but it was caused by a default firewall configuration, which is not being used here. Otherwise, Suse claims not to see this problem, so perhaps this is Arch specific. Or could systemd-networkd be interfering?

This is a more severe problem when Arch is being used for a router, which must then be configured manually after boot.
This task depends upon

Closed by  Dave Reisner (falconindy)
Thursday, 23 April 2015, 19:53 GMT
Reason for closing:  Duplicate
Additional comments about closing:   FS#44652 

Loading...