summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2018-11-28 11:44:20 +0100
committerLennart Poettering <lennart@poettering.net>2018-11-28 16:29:01 +0100
commit230450d4e4f1f5fc9fa4295ed9185eea5b6ea16e (patch)
tree985f14a8f645167a796bd4c4edb2ea6a69b55d7a
parent0d34228fc03f9dc47d1024268b66a23df1914914 (diff)
downloadsystemd-230450d4e4f1f5fc9fa4295ed9185eea5b6ea16e.tar.gz
sysctl.d: switch net.ipv4.conf.all.rp_filter from 1 to 2
This switches the RFC3704 Reverse Path filtering from Strict mode to Loose mode. The Strict mode breaks some pretty common and reasonable use cases, such as keeping connections via one default route alive after another one appears (e.g. plugging an Ethernet cable when connected via Wi-Fi). The strict filter also makes it impossible for NetworkManager to do connectivity check on a newly arriving default route (it starts with a higher metric and is bumped lower if there's connectivity). Kernel's default is 0 (no filter), but a Loose filter is good enough. The few use cases where a Strict mode could make sense can easily override this. The distributions that don't care about the client use cases and prefer a strict filter could just ship a custom configuration in /usr/lib/sysctl.d/ to override this.
-rw-r--r--NEWS9
-rw-r--r--sysctl.d/50-default.conf2
2 files changed, 10 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index d9f4e2be94..bbd1e2d8a1 100644
--- a/NEWS
+++ b/NEWS
@@ -70,6 +70,15 @@ CHANGES WITH 240 in spe:
glibc is going to make it available too. This locale enables UTF-8
mode by default, which appears appropriate for 2018.
+ * The "net.ipv4.conf.all.rp_filter" sysctl will now be set to 2 by
+ default. This effectively switches the RFC3704 Reverse Path filtering
+ from Strict mode to Loose mode. This is more appropriate for hosts
+ that have multiple links with routes to the same networks (e.g.
+ a client with a Wi-Fi and Ethernet both connected to the internet).
+
+ Consult the kernel documetnation for details on this sysctl:
+ https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
+
CHANGES WITH 239:
* NETWORK INTERFACE DEVICE NAMING CHANGES: systemd-udevd's "net_id"
diff --git a/sysctl.d/50-default.conf b/sysctl.d/50-default.conf
index e263cf0628..b0645f33e7 100644
--- a/sysctl.d/50-default.conf
+++ b/sysctl.d/50-default.conf
@@ -22,7 +22,7 @@ kernel.sysrq = 16
kernel.core_uses_pid = 1
# Source route verification
-net.ipv4.conf.all.rp_filter = 1
+net.ipv4.conf.all.rp_filter = 2
# Do not accept source routing
net.ipv4.conf.all.accept_source_route = 0