TL;DR: I propose to have IPForward default to “no change”, rather than 0, as 0 
has unexpected consequences for non-expert users.

Details: A few months ago there where some threads about ip_forwarding needing 
a toggle from 1 to 0 and back to 1 before it would work. [1][2][3]

It appears I found the reason for this. With "net.ipv4.ip_forward = 1” in 
sysctl.d, after a fresh boot:

    > for i in /proc/sys/net/ipv4/ip_forward 
/proc/sys/net/ipv4/conf/*/forwarding; do echo -n $i: ; cat $i; done
    /proc/sys/net/ipv4/ip_forward:1
    /proc/sys/net/ipv4/conf/all/forwarding:1
    /proc/sys/net/ipv4/conf/default/forwarding:1
    /proc/sys/net/ipv4/conf/enp0s3/forwarding:0    <= Why?
    /proc/sys/net/ipv4/conf/lo/forwarding:1

If I then do the toggle dance:

    > sysctl net.ipv4.ip_forward=0
    > sysctl net.ipv4.ip_forward=1

I get what I expected in the first place:

    /proc/sys/net/ipv4/ip_forward:1
    /proc/sys/net/ipv4/conf/all/forwarding:1
    /proc/sys/net/ipv4/conf/default/forwarding:1
    /proc/sys/net/ipv4/conf/enp0s3/forwarding:1
    /proc/sys/net/ipv4/conf/lo/forwarding:1

Adding net.ipv4.conf.enp0s3.forwarding = 1 to sysctl.d does not have the 
desired effect.

Turns out my innocent-looking .network file is the culprit:

    [Match]
    Name=en*

    [Network]
    DHCP=ipv4

Without that file, after boot the enp0s3 flag remains 1 as expected.

The problem: I thought I created that file to say “get an IP address via DHCP” 
because that’s all it talks about. But due to the IPForward default, I also 
specified “and turn off ip forwarding”, which is non-obvious (e.g. I just found 
out, and I originally ran into this in June). So I suggest the default should 
be “don’t touch this setting” instead of 0.

Cheers,



Johannes.


[1] http://lists.freedesktop.org/archives/systemd-devel/2015-June/033239.html
[2] http://lists.freedesktop.org/archives/systemd-devel/2015-July/033738.html
[3] https://github.com/systemd/systemd/issues/468

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to