-
-
Notifications
You must be signed in to change notification settings - Fork 536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Peer's port 80 and 443 blocked after updating client from 0.29.4 to 0.30.0 #2701
Comments
Exactly the same issue here. OP, are those services that fail behind Docker? In my case: Netbird client for Unraid auto-updated to 0.30; instantaneously all of my Docker services became unreachable from any other Netbird host (from Unraid they're reachable on the Netbird IP). Unraid services other than Docker seem reachable (ssh, http). Downgrading to netbirdio/netbird:0.29.4 fixes the issue. |
I have seen this upon upgrading to 0.30.0 also. As above, for me the filtered ports are docker port forwards, and all ports >22 are in filtered state. I'm guessing it's going to be related to #2100 |
Here's the netbird nft table output from two of my hosts, the first on 0.29.4 and the second on 0.30.0. They are somewhat different. I'm still poking around but thought it might be useful information and prompt something for those who know the internals more:
|
Yes, traefik is running in a docker container, listening on port 80 and 443. The rest of my services are also behind docker, and are reverse proxied to by traefik. They aren't accessible either since the connections never reach traefik in the first place. |
Hello @IKA3RUS and everyone else did you refer to Doc ACL pre/post 0.30 ? |
I'd also like to add here, that the nft rules break iptables compatibility, which in turn breaks podman:
|
@Dr-Shadow Yes, this is definitely because of that. I don't really understand how this ACL change makes sense, as bridged docker networks on most deployed systems have their IPs assigned from a pool. Out of the box, docker bridge network forwarding doesn't require any extra configuration at all because it is designed that way: Reachable by default, with forwarding and masquearding configured by docker itself. Also this probably doesn't work in general for netbird clients that run dockerized in host network mode. What I'm trying to say is that this completely and utterly breaks a: "install netbird, connect two peers and you have a working VPN connection" scenario. I would much prefer an option to allow
With the current state fo implementation, I'm not really sure what settings I would change in ACL to make this work properly ever again without replacing netbird with vanilla wireguard and doing the ACL myself, because modifying the nftables rules for every machine isn't feasible from a maintainability standpoint. |
Oh I understand why it is currently affecting your setups and not mine after a quick test upgrading on 0.30. |
Yep exactly! Basically the temporary workaround is to override this behavior:
My plea to the netbird team would be that if the current behavior stays without any changes, an option to set this in some way for groups via ACL is added. Or any other option that enables the possibility to restore the pre 0.29.x permissive behavior. |
I'd have to agree with @Spiritreader i don't quite understand this change without some sort of config option or workaround. If I have a bunch of servers running docker with the default bridge networking, and NetBird running on those hosts. Am I expected to set up many duplicate very fine grained routes for dynamic pools of private ips for distribution to very small client groups? What if I want one NetBird client to access two separate other clients which run docker with overlapping private ranges? This seems like a huge amount of potentially impossible route config where previously there was no network route config required at all? |
After downgrading, everything is back to working now whereas before I was seeing the exact same behavior others have noted here - unable to connect to services on servers over the Netbird network. |
Could this be related to this PR #2705 |
All service run on the docker bridge network can not be accessed by Netbird IP |
We are working on a fix for deployments with docker host. |
That works on the peers that have netbird installed directly on the peer, but not on those that run netbird itself as docker container with network_mode: host I also have around 40 docker subnets on some of my machines that all change on reboot, so my suggestion would be to downgrade to 0.24 instead of attempting to fix it it via the work around. |
hi there; can you please update to and try our latest release |
Good news!
However, the issue still persists that it breaks iptables when the netbird service is running
|
Hey @mgarces, the issue's solved now and I am able to connect to my services. Thanks for the quick fix. For anyone who might want to compare the nft tables, here's the output for
|
I'm currently using NetBird version 0.34.1, and this issue still persists. However, after downgrading to version 0.29.4, the problem is resolved. I am still unsure about the solution to fix this issue without downgrading to version 0.29.4 |
Same here, this is not fixed. I'm stuck on 0.29.4 for my services. Running dockerized NetBird. |
still problem in version 0.35.1 |
Describe the problem
I run a self hosted netbird setup. On one of the peers, I run a traefik instance with a few webservices. After updating this peer's netbird client from
0.29.4
to0.30.0
, I'm unable to connect to its port80
and443
from other peers.Everything else, including
ping
andssh
to it works. Port80
and443
also start accepting connections immediately if I downgrade the netbird client back to0.29.4
– and stops working immediately if I update to0.30.0
.To Reproduce
sudo apt-get install netbird=0.30.0
to update the netbird client.80
and443
seem to be filtered. There are no firewalls on the defective peer or anywhere on the network which could be blocking these other than netbird itself.sudo apt-get install netbird=0.29.0
and verify outputs from step 2 haven't changed.nmap
the defective peer from a different peer again. It starts responding to ports 80 and 443.Expected behavior
There shouldn't be any difference in reaching port 80 and 443, after updating to 0.30.0.
Are you using NetBird Cloud?
No. I'm self-hosting the Netbird control plane on a Hetzner VPS.
NetBird version
0.30.0
NetBird status -dA output:
Additional context
I've tried running this with the control plane and the other non-defective peer running at both
0.29.4
and0.30.0
. It doesn't seem to make a difference.The text was updated successfully, but these errors were encountered: