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.
lucab
mentioned this pull request
Closed
Closed
Closed
Open
13 tasks
BerriJ added a commit to BerriJ/nixpkgs that referenced this pull request
Aug 7, 2026The current default strict is neither the default of the linux kernel nor the default of systemd. Furthermore strict can break valid setups involving split DNS where the DNS resolver is not in the same broadcast domain as the client. Systemd changed the default value in November 2018 from strict to loose so this PR aligns the module with upstream (see systemd/systemd#10971). The Kernel default is 0 (see https://sysctl-explorer.net/net/ipv4/rp_filter/). Note that such an option does not exist for IPV6.
BerriJ added a commit to BerriJ/nixpkgs that referenced this pull request
Aug 10, 2026The current default strict is neither the default of the linux kernel nor the default of systemd. Furthermore strict can break valid setups involving split DNS where the DNS resolver is not in the same broadcast domain as the client. Systemd changed the default value in November 2018 from strict to loose so this PR aligns the module with upstream (see systemd/systemd#10971). The Kernel default is 0: https://sysctl-explorer.net/net/ipv4/rp_filter/ Note that such an option does not exist for IPV6.
BerriJ added a commit to BerriJ/nixpkgs that referenced this pull request
Aug 10, 2026The current default strict is neither the default of the linux kernel nor the default of systemd. Furthermore strict can break valid setups involving split DNS where the DNS resolver is not in the same broadcast domain as the client. Systemd changed the default value in November 2018 from strict to loose so this PR aligns the module with upstream (see systemd/systemd#10971). The Kernel default is 0: https://sysctl-explorer.net/net/ipv4/rp_filter/ Note that such an option does not exist for IPV6.
BerriJ added a commit to BerriJ/nixpkgs that referenced this pull request
Aug 13, 2026The current default strict is neither the default of the linux kernel nor the default of systemd. Furthermore strict can break valid setups involving split DNS where the DNS resolver is not in the same broadcast domain as the client. Systemd changed the default value in November 2018 from strict to loose so this PR aligns the module with upstream (see systemd/systemd#10971). The Kernel default is 0: https://sysctl-explorer.net/net/ipv4/rp_filter/ Note that such an option does not exist for IPV6.
BerriJ added a commit to BerriJ/nixpkgs that referenced this pull request
Aug 23, 2026The current default strict is neither the default of the linux kernel nor the default of systemd. Furthermore strict can break valid setups involving split DNS where the DNS resolver is not in the same broadcast domain as the client. Systemd changed the default value in November 2018 from strict to loose so this PR aligns the module with upstream (see systemd/systemd#10971). The Kernel default is 0: https://sysctl-explorer.net/net/ipv4/rp_filter/ Note that such an option does not exist for IPV6.
BerriJ added a commit to BerriJ/nixpkgs that referenced this pull request
Aug 23, 2026The current default strict is neither the default of the linux kernel nor the default of systemd. Furthermore strict can break valid setups involving split DNS where the DNS resolver is not in the same broadcast domain as the client. Systemd changed the default value in November 2018 from strict to loose so this PR aligns the module with upstream (see systemd/systemd#10971). The Kernel default is 0: https://sysctl-explorer.net/net/ipv4/rp_filter/ Note that such an option does not exist for IPV6.
BerriJ added a commit to BerriJ/nixpkgs that referenced this pull request
Aug 26, 2026The current default strict is neither the default of the linux kernel nor the default of systemd. Furthermore strict can break valid setups involving split DNS where the DNS resolver is not in the same broadcast domain as the client. Systemd changed the default value in November 2018 from strict to loose so this PR aligns the module with upstream (see systemd/systemd#10971). The Kernel default is 0: https://sysctl-explorer.net/net/ipv4/rp_filter/ Note that such an option does not exist for IPV6.