mirror of
https://github.com/juanfont/headscale.git
synced 2026-01-11 20:00:28 +01:00
[Bug] Version 0.25.0 breaks exit node routes #947
Closed
opened 2025-12-29 02:26:33 +01:00 by adam
·
12 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#947
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 @jdewinne on GitHub (Feb 17, 2025).
Is this a support request?
Is there an existing issue for this?
Current Behavior
In Headscale v0.24.3 when adding an exit node, two routes are added that can be enabled
Starting headscale v0.25.0, the output from
headscale routes listis empty.Expected Behavior
I would expect v0.25.0 also to contain routes, when an exit node joins the tailnet.
Steps To Reproduce
tailscale up --timeout 60s --login-server ****--authkey**** --advertise-exit-nodeheadscale routes listand no routes will show.Environment
Runtime environment
Anything else?
No response
@rfrank commented on GitHub (Feb 18, 2025):
This is happening to me as well. Running host install behind a reverse proxy.
Edit: confirmed that downgrading to v0.24.3 fixes the issue.
@anna-oake commented on GitHub (Feb 18, 2025):
Same issue, and it applies to any advertised routes, not just exit node related.
I confirm this is fixed by downgrading to v0.24.3, deleting the node and enroling it again.
@alfs commented on GitHub (Feb 20, 2025):
Same issue, same solution as rfrank and anna-oake.
@Solanum95 commented on GitHub (Feb 21, 2025):
Same issue,
First time I've used headscale and could´t get exit-node to work, luckily i found this issue and installed v0.24.3 instead and now it works.
@Berjou commented on GitHub (Feb 22, 2025):
Just to add some info, I had this issue too on a fresh install of headscale v0.25.0 with docker and caddy. So the problem was not caused by an upgrade from a previous version. Like the others have already commented, a downgrade to v0.24.3 also solved it for me.
@kradalby commented on GitHub (Feb 23, 2025):
Hmm, this is a bit of a puzzle, we have tests covering advertising nodes and they are all passing, I've added a specific one for exit nodes and that is too passing https://github.com/juanfont/headscale/pull/2444.
I am unable to replicate this, anything you can see in that test case that is different from your setup?
@anna-oake commented on GitHub (Feb 23, 2025):
@kradalby In my case I use the Linux tailscale client and I tried
--advertise-exit-nodeboth insetandup.I tried doing
downand thenup, tried completely deleting the node from headscale and adding it again after resetting the client.In the end I never see any routes in
headscale routes, but if I runtailscale debug prefson the client, I can see them inAdvertiseRoutes.I use OIDC and always enrol the nodes via browser (haven't tested with pre-auth keys).
Only downgrading to
v0.24.3, completely removing the node and adding it again made the routes show up inheadscale routes.v0.24.3, then upgrading tov0.25.0, and then enabling--advertise-exit-nodewould yield a different result. Not sure if the tests you showed enrol clients from scratch or if it's a preconfigured environment@s1341 commented on GitHub (Feb 23, 2025):
I’ve tested with preauth keys and have the same behavior.
@anna-oake commented on GitHub (Feb 23, 2025):
Skimmed through the integration tests code - it seems that new tailscale clients/nodes/users are set up for the test, so that should be okay.
The only difference I see at first glance is that my user is an OIDC user.
@nblock commented on GitHub (Feb 23, 2025):
This also happens on non-OIDC setups with preauthkeys
@Berjou commented on GitHub (Feb 23, 2025):
If it helps you to replicate the issue, this is the docker compose setup I'm using to register my exit node (working on
v0.24.3).compose.yaml:
.env:
This compose is deployed on a standard
Debian 12VPS.The preauthkey was generated like that on my
headscaleserver:docker exec -it headscale headscale preauthkeys create --user <admin_user> --tags tag:exit-nodeI do not know if this is relevant, but I also have basic ACLs allowing my nodes to communicate with a
piholenode configured as DNS nameservers inheadscaleand my users to accessautogroup:internet:*for the exit node to work.Also, my users were manually created, no OIDC setup.
@kradalby commented on GitHub (Feb 23, 2025):
I think I found it, so the tests did an
upwith no parameters, then usedsetand it turned out that there was a missing save in the registration path.This means that setting routes with
upwas broken, butsetshould be fine, but probably only if there is no routes.Can you try to add a node without routes and set them?
I am updating the PR with the fix and a test covering both
upandset.