IP routing fails with flannel interface #2220

Open
opened 2025-11-20 07:06:05 -05:00 by saavagebueno · 1 comment
Owner

Originally created by @Alemiz112 on GitHub (Aug 23, 2025).

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). 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 2025-11-20 07:06:05 -05:00
Author
Owner

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

same problem on keenetic

@dyumin commented on GitHub (Aug 27, 2025): same problem on keenetic
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/netbird#2220