mirror of
https://github.com/juanfont/headscale.git
synced 2026-01-11 20:00:28 +01:00
[Bug] autoApprove does not work for 0.0.0.0/0 and ::/0 #1010
Closed
opened 2025-12-29 02:27:25 +01:00 by adam
·
6 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#1010
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 @spymobilfon on GitHub (May 5, 2025).
Is this a support request?
Is there an existing issue for this?
Current Behavior
Hello,
I hope you are doing well!
Sorry to bother but I think the fix #2550 did not help and broke workaround.
I was running Tailscale v1.82.5 on a Linux instance and Headscale v0.26.0-beta.1 as a controller on Linux as well.
The Tailscale client was started like this
Routers list looks like this
Then was started with empty advertise routes and again like this
Routers list looks like this
Routes to 104.16.208.203/32 and 104.19.159.190/32 was not approved.
autoApprove in ACL looks like this
Expected Behavior
Have the routes auto-enabled from start
Steps To Reproduce
Config
Policy
Tailscale
Environment
Runtime environment
Debug information
Route management is not logged.
@nblock commented on GitHub (May 6, 2025):
Thanks for testing 0.26.0-beta.1! It seems that exit nodes and subnet routers are mixed up and that's causing issues
with your policy:
… --advertise-exit-node=false ….0.0.0.0/0and::/0can only be used to approve exit nodes. They cannot be used to approve arbitraryroutes from a subnet router.
104.16.208.203/32and104.19.159.190/32are not covered in theautoApproverssection of the policyand need to be approved manually.
Here is a similar (but simplified) policy where automatic approval during
tailscale upworks (0.26.0-beta.1).Headscale:
Router:
Client:
Can you please update your policy based on the example above, especially the
autoApproverssection? The docs for routes cover subnet routers and exit nodes with more explanation and examples: https://headscale.net/development/ref/routes/@spymobilfon commented on GitHub (May 6, 2025):
Thank you for your answer!
This news is upset me(
Our scheme has worked until v0.25.1, is broke only in 0.26.0-beta.1.
I showed only one simple example. We have many special routes to hosts in Internet (/32) and this IPs is changed often. Traffic is routed to this hosts via general routers, not via exit nodes. Manual approve many routes is so difficult and braeks scheme which we used in v0.23.0 and v0.22.3.
It looks like a breaking changes in 0.26.0-beta.1.
Will this behaviour to be in the next versions?
@nblock commented on GitHub (May 6, 2025):
Can you elaborate a bit on your use-case? Do those
/32hosts share some prefix that could be auto approved at once?@spymobilfon commented on GitHub (May 6, 2025):
Of course.
Example we have a few Tailscale router nodes which responsible for access to special resources. It can be hosts (endpoints) our clients or our services or something else in Internet, it doesn't matter, example service desk portal or another portal or SSH service or RDP service. This endpoints can often change, dynamically add or remove. We restrict access to this routes via ACL.
We know how use DNS names with Tailscale instead of IPs. We don't know sometimes IPs which we should manually approve because IPs of DNS records can change. That's why advertise-routes can dynamically change.
This Tailscale routers have special tags like tag:internet-routers. We allow auto-approve anything routes (0.0.0.0/0) for this tags. We don't want approve each route to host (/32) because it's overhead. We don't want use exit-nodes for this purpose because we don't want to route all traffic via exit-nodes, only for special routes.
I hope that I describe my scheme understandable.
@nblock commented on GitHub (May 10, 2025):
Thanks for describing your use case. Headscale 0.26.0-beta.2 is now available and should support your use case. You may want to check if everything works as expected.
@spymobilfon commented on GitHub (May 13, 2025):
Yes, it works. Thank you.