[GH-ISSUE #4396] IP routing fails with flannel interface #8608

Closed
opened 2026-08-05 01:18:50 -04:00 by saavagebueno · 2 comments
Owner

Originally created by @Alemiz112 on GitHub (Aug 23, 2025).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/4396

Some interfaces such as flannel have . in the name (flannel.1) and the associated /proc/sys/net/ipv4/conf/ is actually called flannel.1 rather than flannel/1.

This causes issues when Netbird client tries to set up server advertised routes.

The client shows following error:

2025-08-23T21:07:50Z ERRO client/internal/routemanager/systemops/systemops_linux.go:124: Error setting up sysctl: 1 error occurred:
	* read sysctl net.ipv4.conf.flannel.1.rp_filter: open /proc/sys/net/ipv4/conf/flannel/1/rp_filter: no such file or directory

I have been able to trace this to the following code that is responsible for resolving the rp_filter in directory named after the interface: link

My understanding is that this issue is causing client to fail configuring advanced routing, which as a result causes routes advertised by management/server not to work.

My environment
I am testing in kubernetes RKE2 environment with latest Netbird client running in a container/pod with privileged access with hostNetwork: true enabled. The host has a flannel interface flannel.1, which is part of the kubernetes stack.

Originally created by @Alemiz112 on GitHub (Aug 23, 2025). Original GitHub issue: https://github.com/netbirdio/netbird/issues/4396 Some interfaces such as flannel have `.` in the name (`flannel.1`) and the associated `/proc/sys/net/ipv4/conf/` is actually called `flannel.1` rather than `flannel/1`. This causes issues when Netbird client tries to set up server advertised routes. The client shows following error: ``` 2025-08-23T21:07:50Z ERRO client/internal/routemanager/systemops/systemops_linux.go:124: Error setting up sysctl: 1 error occurred: * read sysctl net.ipv4.conf.flannel.1.rp_filter: open /proc/sys/net/ipv4/conf/flannel/1/rp_filter: no such file or directory ``` I have been able to trace this to the following code that is responsible for resolving the `rp_filter` in directory named after the interface: [link](https://github.com/netbirdio/netbird/blob/5e273c121ac207ed36ca5367ff70eeeb056cc6cd/client/internal/routemanager/sysctl/sysctl_linux.go#L73) My understanding is that this issue is causing client to fail configuring advanced routing, which as a result causes routes advertised by management/server not to work. **My environment** I am testing in kubernetes RKE2 environment with latest Netbird client running in a container/pod with `privileged` access with `hostNetwork: true` enabled. The host has a flannel interface `flannel.1`, which is part of the kubernetes stack.
saavagebueno added the triage-needed label 2026-08-05 01:18:50 -04:00
Author
Owner

@dyumin commented on GitHub (Aug 27, 2025):

same problem on keenetic

<!-- gh-comment-id:3229916771 --> @dyumin commented on GitHub (Aug 27, 2025): same problem on keenetic
Author
Owner

@stefan-fast commented on GitHub (Jul 18, 2026):

Still relevant in the newest version v0.74.7 unfortunately.

<!-- gh-comment-id:5010974389 --> @stefan-fast commented on GitHub (Jul 18, 2026): Still relevant in the newest version `v0.74.7` unfortunately.
Sign in to join this conversation.
No Label triage-needed
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#8608