Make multiple Netbird client instances cooperate on the ip route table level on Linux (possibly other OS too?) #915

Open
opened 2025-11-20 05:19:49 -05:00 by saavagebueno · 2 comments
Owner

Originally created by @nazarewk on GitHub (May 21, 2024).

Is your feature request related to a problem? Please describe.
While debugging issue with missing routes (turned out to work just fine, but uses additional table I was not aware of) and digging into the setup I have discovered my multiple Netbird instances at some point started interfering with each other's ip route tables.

Basically the last instance started seem to take over the 7120 aka netbird route table deleting all entries not owned by it, seems to happen here:
50201d63c2/client/internal/routemanager/manager.go (L76-L83)

Describe the solution you'd like
either of:

  1. The simple fix is to make those 2 values configurable:
    50201d63c2/client/internal/routemanager/systemops_linux.go (L26-L29)
  2. The longer fix would be to use the same routing table, but don't interfere with network interfaces owned by other instances (having other interfce names)

Describe alternatives you've considered
see above

Additional context
I am running 2 Netbird instances (private and work-related) at the same time on NixOS (Linux) through https://github.com/NixOS/nixpkgs/pull/287236

Originally created by @nazarewk on GitHub (May 21, 2024). **Is your feature request related to a problem? Please describe.** While [debugging issue with missing routes](https://netbirdio.slack.com/archives/C02KHAE8VLZ/p1716286181576959) (turned out to work just fine, but uses additional table I was not aware of) and digging into the setup I have discovered my multiple Netbird instances at some point started interfering with each other's `ip route` tables. Basically the last instance started seem to take over the `7120` aka `netbird` route table deleting all entries not owned by it, seems to happen here: https://github.com/netbirdio/netbird/blob/50201d63c2095bb5fa36d6237789d849e4b46f2a/client/internal/routemanager/manager.go#L76-L83 **Describe the solution you'd like** either of: 1. The simple fix is to make those 2 values configurable: https://github.com/netbirdio/netbird/blob/50201d63c2095bb5fa36d6237789d849e4b46f2a/client/internal/routemanager/systemops_linux.go#L26-L29 2. The longer fix would be to use the same routing table, but don't interfere with network interfaces owned by other instances (having other interfce names) **Describe alternatives you've considered** see above **Additional context** I am running 2 Netbird instances (private and work-related) at the same time on NixOS (Linux) through https://github.com/NixOS/nixpkgs/pull/287236
saavagebueno added the feature-requestclientrouteslinux labels 2025-11-20 05:19:49 -05:00
Author
Owner

@mlsmaycon commented on GitHub (May 21, 2024):

Thanks for the request @nazarewk, we will discuss it and give you an feedback soon

@mlsmaycon commented on GitHub (May 21, 2024): Thanks for the request @nazarewk, we will discuss it and give you an feedback soon
Author
Owner

@nazarewk commented on GitHub (Apr 23, 2025):

related to https://github.com/netbirdio/netbird/issues/459

@nazarewk commented on GitHub (Apr 23, 2025): related to https://github.com/netbirdio/netbird/issues/459
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/netbird#915