-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Namespace borders not applied by default #867
Comments
Coming across this issue as I created a second namespace right now, just to find out that from a ACL perspective it made no difference at all. I explicitly created a second namespace for a group of devices that have nothing to do with the first one. I would love to see a per-default blocking between namespace as this is what most users would expect. Another note: I was surprised to see that the new namespace uses the same IP pool. Is there a reasoning behind, which I do not see yet? |
I notice the same behavior, devices in different namespaces can communicate with each other per default / without ACLs. I am unsure if it is a bug because this behavior also seems logical - without ACLs there no traffic restrictions. On the other hand, this behavior is misleading because it is documented differently. Users might get unwanted results. |
Tailnets in vanilla Tailscale are not distinct networks and everyone actually shares the 100.64.0.0/10 space. This behaviour is mirrored in Headscale. In Tailscale however, they isolate peers based on the Tailnet, even though the address space is shared across all users. If you're using ACL rules I think it makes sense for Headscale not to get in the way and instead you can define the boundaries for your use-case in ACL rules. |
Sorry to resurrect this issue but I'm not sure if this is marked as completed and working as intended now and my assumptions are incorrect or if it's a bug that still exists. The documentation states For example:
=> I would assume that Host1 and Host2 can communicate, Host1 and Host3 cannot Is my interpretion of the documentation incorrect? I'm currently using 0.22.3 (which was released on 2023-05-12, so two days after this issue was closed, so I would asume if it was a bug it would be fixed in this version). |
I'm currently testing 0.22.3 (podman rootless) and expected the namespaces/users to be isolated. My tests gave me the following results:
I started to tag all nodes to prevent accidental access between the namespaces/users. For now this seems to be the best way for my usecase. Offtopic: |
Maybe you could test it on a new alpha release if this still is a use there, as we won't fix anything in 0.23.3 anymore. Can't answer if it should have been fixed in 0.22.3. |
I did try 0.23.0-alpha9 and ran (unknowingly) straight into the postgres bug. While troubleshooting I switched to 0.22.3 (with sqlite in the end). It feels more reliable to stick with it and not using an alpha version. Using an ACL file is no problem for me, because I need one to reach my goal. Just wanted to share my findings. |
As stated in documentation:
Implying that the default behavior is to disallow communication between namespaces. By digging into the code we can find the comment:
Which was actually true previously, as peers were filtered by namespace.
The question is, should we assume that documentation is outdated(and fix it and provide an example with ACLs for achieving the same behavior?) or should the stated behavior be reimplemented?
There's definitely demand for namespace borders(metal-stack/metal-roles#105 and #841).
The text was updated successfully, but these errors were encountered: