Re: IPv4/IPv6 sysctl defaults in new namespace
From: Eric W. Biederman <hidden>
Date: 2016-02-15 21:26:07
Konstantin Khlebnikov [off-list ref] writes:
IPv6 initialized with default. That's ok. IPv4 makes a copy from init_net. Looks like a bug, here v2.6.24-2577-g752d14dc6aa9 root@zurg:~# sysctl net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0 net.ipv4.conf.all.forwarding = 0 net.ipv6.conf.all.forwarding = 0 root@zurg:~# unshare -n sysctl net.ipv4.conf.all.forwarding net.ipv6.conf.all.forwarding net.ipv4.conf.all.forwarding = 0 net.ipv6.conf.all.forwarding = 0 root@zurg:~# sysctl net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1 net.ipv4.conf.all.forwarding = 1 net.ipv6.conf.all.forwarding = 1 root@zurg:~# unshare -n sysctl net.ipv4.conf.all.forwarding net.ipv6.conf.all.forwarding net.ipv4.conf.all.forwarding = 1 net.ipv6.conf.all.forwarding = 0 This is nasty. Could we fix this or this bug set in stone?
The test is do we break anyone, and the initial network namespace is arbitrary enough I don't think anyone can depend upon a specific value when creating a new network namespace. So if someone is willing to do the work we can fix this. Of course the fixes would have to made against a recent kernel not something as ancient as 2.6.24. Eric