-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
[Bug] v0.23.0-beta1 breaks built-in DERP #2025
Comments
I think you forgot to add This new beta update works for me without changing the setup. ports:
- 3478:3478/udp |
Adding in the Also should this maybe be in the upgrade documentation for the final release? |
Ah nevermind it just took |
I'm having trouble reproducing this and all of the tests keep passing, it has me quite puzzled. The error about empty DERP is only covering the DERP loaded via URL/file, so in this case it is displayed before the DERPs from the embedded server, and if there are no DERPs at all, the whole server will halt https://github.com/juanfont/headscale/blob/main/hscontrol/app.go#L516-L518.
Does this mean it was there initially, but then disappeared after? |
I've expanded the DERP tests a bit to ensure that the embedded server isnt removed by the updater in #2030.
So this makes me think that this is a networking issue, because headscale sends the DERP server as part of the map update. I did notice this tho:
This could indicate that it only listens to IPv6? however my test logs shows the same, so I would find it odd to be the cause, and I do not think anything related to that has changed. |
No the way I'm testing this is that I'm redeploying the other version on my VPS and then run tailscale status on my client to see if it's still working / printing out the error.
This was my first thought aswell, but the issue now reproduces over multirple docker versions and really consistently with every switch of images that I do.
After I have switched to the
So since all of this did not help I also had a look at the output of tailscaled on my client and this looks interesting:
So what actually seems to break is the internal DNS server (or something in that realm) and the DERP is just fallout from the before failure:
So this means apparently it now sets the "DNS Domain" to a different value, but I'm not sure whether that causes the issue 🤔 Since it might be of interest, here is the output of my DNS config: dns_config:
override_local_dns: true
nameservers:
- 8.8.8.8
restricted_nameservers:
fritz.box:
- 192.168.71.5
domains: []
extra_records:
- name: "grafana.vpn.heusel.eu"
type: "A"
value: "100.64.0.6"
- name: "prometheus.vpn.heusel.eu"
type: "A"
value: "100.64.0.6"
- name: "alertmanager.vpn.heusel.eu"
type: "A"
value: "100.64.0.6"
- name: "repo.vpn.heusel.eu"
type: "A"
value: "100.64.0.6"
magic_dns: true
base_domain: vpn.heusel.eu Also @kradalby thanks for looking into this, this is very much appreciated! ❤️ |
ah yes, a DNS issue might be the potential culprit, while waiting for a reply I started to write up some clearly missing DNS tests, so will continue with that then. I'll post when I have an update, maybe on either of those two issues. |
I think #2034 addresses this, would it be possible for you to help me test it? would be great to avoid another bad release like beta1. Binary is available here: https://github.com/juanfont/headscale/actions/runs/10195837541?pr=2034 |
@kradalby thanks for working on a fix! 🤗 Except for the fact that I had to rename from |
Yes, sorry, thats part of the PR, I have one theory looking at your config, can you try setting a
Did you not get any warnings at the beginning of your logs? I've made it so if not replaced it should fatal now. |
To test, you can set the This might be a good thing that we discovered, that having the same base_name and headscale dns name will no longer be possible due to how Tailscale takes over the DNS. For the record, in Tailscale upstream, this is the same behaviour:
so by headscale injecting username stuff, it did not break before, but that prevents us from achieving some other things, so it sadly has to go. |
@christian-heusel did you have an opportunity to test this? |
Sorry I forgot about this, will test and report soon! |
This makes the three types of queries from above work again 😊 👍🏻 Regarding #2025 (comment): When unsetting the previously set
Maybe I'm testing this wrong, but I dont get any warnings/fatal versions with the latest version of your branch and the following DNS config snippet (which I have verified to be the active one inside of the confainer by running dns:
override_local_dns: true
nameservers:
# global:
- 8.8.8.8
restricted_nameservers:
# split:
fritz.box:
- 192.168.71.5
domains: []
magic_dns: true
base_domain: magicdns.vpn.heusel.eu Instead I'm being warned about a key I don't even have set:
|
Edit: reverted bogus comment here, I tried to connect against a node of mine that went offline for unbeknownst reaons. 😆 |
hmm, I you wont really get any errors/warnings for setting the wrong keys, for example At the moment it will only warn if you have the old set, and not the new. if you mix, it wont detect it. |
Is this a support request?
Is there an existing issue for this?
Current Behavior
Expected Behavior
The builtin DERP keeps on working with the update, I have also configured and used this setup for a long time now.
Steps To Reproduce
headscale
to version v0.23.0-beta1I hope that I did not miss anything in the changelogs, but to me it looks like there was no config changes etc. required to keep this working between the two relevant versions.
Environment
Runtime environment
Although both of the above are the case the DERP server is just publicly accesible:
Anything else?
The startup log claims that I do not have any DERP's configured:
and yet this is my derp config (snippet), which used to work with the previous versions:
The text was updated successfully, but these errors were encountered: