[SRU][B/D] Ensure /proc/sys/net/bridge folders (dis)appear appropriately
Connor Kuehl
connor.kuehl at canonical.com
Wed Aug 28 23:28:12 UTC 2019
On 7/25/19 5:20 PM, Connor Kuehl wrote:
> Note: Bionic required two additional patches in order for these to apply cleanly, one
> of which required minor backporting to use the updated wrappers/symbols.
>
> BugLink: https://bugs.launchpad.net/bugs/1836910
>
> Justification taken from the link above ^
>
> SRU Justification
>
> Impact: Currently, the /proc/sys/net/bridge folder is only created in the initial network namespace.
> This blocks use-cases where users would like to e.g. not do bridge filtering for bridges in a specific
> network namespace while doing so for bridges located in another network namespace.
>
> Fix: The patches linked below ensure that the /proc/sys/net/bridge folder is available in each network
> namespace if the module is loaded and disappears from all network namespaces when the module is unloaded.
>
> In doing so the patch makes the sysctls:
>
> bridge-nf-call-arptables
> bridge-nf-call-ip6tables
> bridge-nf-call-iptables
> bridge-nf-filter-pppoe-tagged
> bridge-nf-filter-vlan-tagged
> bridge-nf-pass-vlan-input-dev
>
> apply per network namespace.
>
> Regression Potential: None, since this didn't use to work before. Otherwise limited to the br_netfilter module.
> The netfilter rules are afaict already per network namespace so it should be safe for users to specify whether
> bridge devices inside a network namespace are supposed to go through iptables et al. or not. Also, this can
> already be done per-bridge by setting an option for each individual bridge via Netlink. It should also be
> possible to do this for all bridges in a network namespace via sysctls.
>
> Test Case: Tested with LXD on a kernel with the patches applied and per-network namespace iptables.
>
Ping for SRU consideration into Bionic. Updated regression potential
from the bug report below:
"Regression Potential: Low since it is limited to the br_netfilter
module. I tested the patchset extensively by compiling a kernel with the
patches applied. I loaded and unloaded the module and verified that it
works correctly for the container usecase and does not crash. The Google
ChromeOS team has also backported this patchset to their kernel and has
not seen any issues so far:
https://bugs.chromium.org/p/chromium/issues/detail?id=878034
Security considerations around netfilter rules are also low. The
netfilter rules are already per network namespace so it should be safe
for users to specify whether bridge devices inside a network namespace
are supposed to go through iptables et al. or not. Also, this can
already be done per-bridge by setting an option for each individual
bridge via Netlink. It should also be possible to do this for all
bridges in a network namespace via sysctls."
More information about the kernel-team
mailing list