mirror of
https://github.com/juanfont/headscale.git
synced 2026-01-11 20:00:28 +01:00
Namespace borders not applied by default #351
Closed
opened 2025-12-29 01:27:29 +01:00 by adam
·
7 comments
No Branch/Tag Specified
main
update_flake_lock_action
gh-pages
kradalby/release-v0.27.2
dependabot/go_modules/golang.org/x/crypto-0.45.0
dependabot/go_modules/github.com/opencontainers/runc-1.3.3
copilot/investigate-headscale-issue-2788
copilot/investigate-visibility-issue-2788
copilot/investigate-issue-2833
copilot/debug-issue-2846
copilot/fix-issue-2847
dependabot/go_modules/github.com/go-viper/mapstructure/v2-2.4.0
dependabot/go_modules/github.com/docker/docker-28.3.3incompatible
kradalby/cli-experiement3
doc/0.26.1
doc/0.25.1
doc/0.25.0
doc/0.24.3
doc/0.24.2
doc/0.24.1
doc/0.24.0
kradalby/build-docker-on-pr
topic/docu-versioning
topic/docker-kos
juanfont/fix-crash-node-id
juanfont/better-disclaimer
update-contributors
topic/prettier
revert-1893-add-test-stage-to-docs
add-test-stage-to-docs
remove-node-check-interval
fix-empty-prefix
fix-ephemeral-reusable
bug_report-debuginfo
autogroups
logs-to-stderr
revert-1414-topic/fix_unix_socket
rename-machine-node
port-embedded-derp-tests-v2
port-derp-tests
duplicate-word-linter
update-tailscale-1.36
warn-against-apache
ko-fi-link
more-acl-tests
fix-typo-standalone
parallel-nolint
tparallel-fix
rerouting
ssh-changelog-docs
oidc-cleanup
web-auth-flow-tests
kradalby-gh-runner
fix-proto-lint
remove-funding-links
go-1.19
enable-1.30-in-tests
0.16.x
cosmetic-changes-integration
tmp-fix-integration-docker
fix-integration-docker
configurable-update-interval
show-nodes-online
hs2021
acl-syntax-fixes
ts2021-implementation
fix-spurious-updates
unstable-integration-tests
mandatory-stun
embedded-derp
prtemplate-fix
v0.28.0-beta.1
v0.27.2-rc.1
v0.27.1
v0.27.0
v0.27.0-beta.2
v0.27.0-beta.1
v0.26.1
v0.26.0
v0.26.0-beta.2
v0.26.0-beta.1
v0.25.1
v0.25.0
v0.25.0-beta.2
v0.24.3
v0.25.0-beta.1
v0.24.2
v0.24.1
v0.24.0
v0.24.0-beta.2
v0.24.0-beta.1
v0.23.0
v0.23.0-rc.1
v0.23.0-beta.5
v0.23.0-beta.4
v0.23.0-beta3
v0.23.0-beta2
v0.23.0-beta1
v0.23.0-alpha12
v0.23.0-alpha11
v0.23.0-alpha10
v0.23.0-alpha9
v0.23.0-alpha8
v0.23.0-alpha7
v0.23.0-alpha6
v0.23.0-alpha5
v0.23.0-alpha4
v0.23.0-alpha4-docker-ko-test9
v0.23.0-alpha4-docker-ko-test8
v0.23.0-alpha4-docker-ko-test7
v0.23.0-alpha4-docker-ko-test6
v0.23.0-alpha4-docker-ko-test5
v0.23.0-alpha-docker-release-test-debug2
v0.23.0-alpha-docker-release-test-debug
v0.23.0-alpha4-docker-ko-test4
v0.23.0-alpha4-docker-ko-test3
v0.23.0-alpha4-docker-ko-test2
v0.23.0-alpha4-docker-ko-test
v0.23.0-alpha3
v0.23.0-alpha2
v0.23.0-alpha1
v0.22.3
v0.22.2
v0.23.0-alpha-docker-release-test
v0.22.1
v0.22.0
v0.22.0-alpha3
v0.22.0-alpha2
v0.22.0-alpha1
v0.22.0-nfpmtest
v0.21.0
v0.20.0
v0.19.0
v0.19.0-beta2
v0.19.0-beta1
v0.18.0
v0.18.0-beta4
v0.18.0-beta3
v0.18.0-beta2
v0.18.0-beta1
v0.17.1
v0.17.0
v0.17.0-beta5
v0.17.0-beta4
v0.17.0-beta3
v0.17.0-beta2
v0.17.0-beta1
v0.17.0-alpha4
v0.17.0-alpha3
v0.17.0-alpha2
v0.17.0-alpha1
v0.16.4
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.16.0-beta7
v0.16.0-beta6
v0.16.0-beta5
v0.16.0-beta4
v0.16.0-beta3
v0.16.0-beta2
v0.16.0-beta1
v0.15.0
v0.15.0-beta6
v0.15.0-beta5
v0.15.0-beta4
v0.15.0-beta3
v0.15.0-beta2
v0.15.0-beta1
v0.14.0
v0.14.0-beta2
v0.14.0-beta1
v0.13.0
v0.13.0-beta3
v0.13.0-beta2
v0.13.0-beta1
upstream/v0.12.4
v0.12.4
v0.12.3
v0.12.2
v0.12.2-beta1
v0.12.1
v0.12.0-beta2
v0.12.0-beta1
v0.11.0
v0.10.8
v0.10.7
v0.10.6
v0.10.5
v0.10.4
v0.10.3
v0.10.2
v0.10.1
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.1
v0.8.0
v0.7.1
v0.7.0
v0.6.1
v0.6.0
v0.5.2
v0.5.1
v0.5.0
v0.4.0
v0.3.6
v0.3.5
v0.3.4
v0.3.3
v0.3.2
v0.3.1
v0.3.0
v0.2.2
v0.2.1
v0.2.0
v0.1.1
v0.1.0
Labels
Clear labels
CLI
DERP
DNS
Nix
OIDC
SSH
bug
database
documentation
duplicate
enhancement
faq
good first issue
grants
help wanted
might-come
needs design doc
needs investigation
no-stale-bot
out of scope
performance
policy 📝
pull-request
question
regression
routes
stale
tags
tailscale-feature-gap
well described ❤️
wontfix
Mirrored from GitHub Pull Request
No Label
bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/headscale#351
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @GrigoriyMikhalkin on GitHub (Oct 19, 2022).
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(https://github.com/metal-stack/metal-roles/issues/105 and https://github.com/juanfont/headscale/issues/841).
@doebi commented on GitHub (Oct 27, 2022):
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?
My thinking was that namespaces are complete distinct networks (tailnets).
@razza-guhl commented on GitHub (Oct 28, 2022):
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.
@madjam002 commented on GitHub (Nov 2, 2022):
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.
@darookee commented on GitHub (Apr 15, 2024):
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
When using ACL's the User borders are no longer applied. All machines whichever the User have the ability to communicate with other hosts as long as the ACL's permits this exchange.. As I'm not using ACLs I expect devices/nodes/machines that are registerred to a nother user/namespace cannot 'see' each other.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).
@Hobby-Student commented on GitHub (May 19, 2024):
I'm currently testing 0.22.3 (podman rootless) and expected the namespaces/users to be isolated. My tests gave me the following results:
{ "action": "accept", "src": ["namespace"], "dst": ["namespace:*"] }(namespace has to be replaced with the actual name) for every namespace/user --> expected behaviour of splitting the namespaces/usersI 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:
Thank you very much for this great project. I just started few days ago and it's amazing!
@ohdearaugustin commented on GitHub (May 20, 2024):
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.
@Hobby-Student commented on GitHub (May 20, 2024):
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.