when use embedded DERP server, there are a lot of identical logs with "named node xxx no address" in tailscaled #555

Closed
opened 2025-12-29 02:19:56 +01:00 by adam · 7 comments
Owner

Originally created by @lcuwx2016 on GitHub (Sep 6, 2023).

Bug description

When use embedded DERP server, there are a lot of identical logs in tailscaled such as:

Wed Sep  6 13:52:17 2023 daemon.err tailscaled[9755]: 2023/09/06 05:52:17 netcheck: netcheck.runProbe: named node "901" has no address
Wed Sep  6 13:52:44 2023 daemon.err tailscaled[9755]: 2023/09/06 05:52:44 netcheck: netcheck.runProbe: named node "901" has no address
Wed Sep  6 13:54:01 2023 daemon.err tailscaled[9755]: 2023/09/06 05:54:01 netcheck: netcheck.runProbe: named node "901" has no address
Wed Sep  6 13:54:27 2023 daemon.err tailscaled[9755]: 2023/09/06 05:54:27 netcheck: netcheck.runProbe: named node "901" has no address
Wed Sep  6 13:54:49 2023 daemon.err tailscaled[9755]: 2023/09/06 05:54:49 netcheck: netcheck.runProbe: named node "901" has no address

The part of config.yaml is like:

 76 derp:
 77   server:
 78     # If enabled, runs the embedded DERP server and merges it into the rest of the DERP config
 79     # The Headscale server_url defined above MUST be using https, DERP requires TLS to be in place
 80     enabled: true
 81 
 82     # Region ID to use for the embedded DERP server.
 83     # The local DERP prevails if the region ID collides with other region ID coming from
 84     # the regular DERP config.
 85     region_id: 901
 86 
 87     # Region code and name are displayed in the Tailscale UI to identify a DERP region
 88     region_code: "njc"
 89     region_name: "Nanjing City"
 90 
 91     # Listens over UDP at the configured address for STUN connections - to help with NAT traversal.
 92     # When the embedded DERP server is enabled stun_listen_addr MUST be defined.
 93     #
 94     # For more details on how this works, check this great article: https://tailscale.com/blog/how-tailscale-works/
 95     stun_listen_addr: "0.0.0.0:3478"
 96 
 97   # List of externally available DERP maps encoded in JSON
 98   urls:
 99     # - https://controlplane.tailscale.com/derpmap/default
100 
101   # Locally available DERP map files encoded in YAML
102   #
103   # This option is mostly interesting for people hosting
104   # their own DERP servers:
105   # https://tailscale.com/kb/1118/custom-derp-servers/
106   #
107   # paths:
108   #   - /etc/headscale/derp-example.yaml
109   paths:
110    # - /etc/headscale/custom_derp.yaml
111 
112   # If enabled, a worker will be set up to periodically
113   # refresh the given sources and update the derpmap
114   # will be set up.
115   auto_update_enabled: true
116 
117   # How often should we check for DERP updates?
118   update_frequency: 24h

Environment

  • OS: Ubuntu 22.04.LTS
  • Headscale version: 0.22.3
  • Tailscale version: 1.48.1
Originally created by @lcuwx2016 on GitHub (Sep 6, 2023). <!-- Before posting a bug report, discuss the behaviour you are expecting with the Discord community to make sure that it is truly a bug. The issue tracker is not the place to ask for support or how to set up Headscale. Bug reports without the sufficient information will be closed. Headscale is a multinational community across the globe. Our language is English. All bug reports needs to be in English. --> ## Bug description When use embedded DERP server, there are **a lot of identical logs** in tailscaled such as: ``` Wed Sep 6 13:52:17 2023 daemon.err tailscaled[9755]: 2023/09/06 05:52:17 netcheck: netcheck.runProbe: named node "901" has no address Wed Sep 6 13:52:44 2023 daemon.err tailscaled[9755]: 2023/09/06 05:52:44 netcheck: netcheck.runProbe: named node "901" has no address Wed Sep 6 13:54:01 2023 daemon.err tailscaled[9755]: 2023/09/06 05:54:01 netcheck: netcheck.runProbe: named node "901" has no address Wed Sep 6 13:54:27 2023 daemon.err tailscaled[9755]: 2023/09/06 05:54:27 netcheck: netcheck.runProbe: named node "901" has no address Wed Sep 6 13:54:49 2023 daemon.err tailscaled[9755]: 2023/09/06 05:54:49 netcheck: netcheck.runProbe: named node "901" has no address ``` The part of config.yaml is like: ``` 76 derp: 77 server: 78 # If enabled, runs the embedded DERP server and merges it into the rest of the DERP config 79 # The Headscale server_url defined above MUST be using https, DERP requires TLS to be in place 80 enabled: true 81 82 # Region ID to use for the embedded DERP server. 83 # The local DERP prevails if the region ID collides with other region ID coming from 84 # the regular DERP config. 85 region_id: 901 86 87 # Region code and name are displayed in the Tailscale UI to identify a DERP region 88 region_code: "njc" 89 region_name: "Nanjing City" 90 91 # Listens over UDP at the configured address for STUN connections - to help with NAT traversal. 92 # When the embedded DERP server is enabled stun_listen_addr MUST be defined. 93 # 94 # For more details on how this works, check this great article: https://tailscale.com/blog/how-tailscale-works/ 95 stun_listen_addr: "0.0.0.0:3478" 96 97 # List of externally available DERP maps encoded in JSON 98 urls: 99 # - https://controlplane.tailscale.com/derpmap/default 100 101 # Locally available DERP map files encoded in YAML 102 # 103 # This option is mostly interesting for people hosting 104 # their own DERP servers: 105 # https://tailscale.com/kb/1118/custom-derp-servers/ 106 # 107 # paths: 108 # - /etc/headscale/derp-example.yaml 109 paths: 110 # - /etc/headscale/custom_derp.yaml 111 112 # If enabled, a worker will be set up to periodically 113 # refresh the given sources and update the derpmap 114 # will be set up. 115 auto_update_enabled: true 116 117 # How often should we check for DERP updates? 118 update_frequency: 24h ``` ## Environment <!-- Please add relevant information about your system. For example: - Version of headscale used - Version of tailscale client - OS (e.g. Linux, Mac, Cygwin, WSL, etc.) and version - Kernel version - The relevant config parameters you used - Log output --> - OS: Ubuntu 22.04.LTS - Headscale version: 0.22.3 - Tailscale version: 1.48.1
adam added the stalebug labels 2025-12-29 02:19:56 +01:00
adam closed this issue 2025-12-29 02:19:56 +01:00
Author
Owner

@flyzstu commented on GitHub (Sep 6, 2023):

I had the exact same problem.

image

@flyzstu commented on GitHub (Sep 6, 2023): I had the exact same problem. ![image](https://github.com/juanfont/headscale/assets/94161727/50017e56-1a6d-455b-8dd1-80004b8786d4)
Author
Owner

@juanfont commented on GitHub (Sep 6, 2023):

Are you using a domain name for Headscale or your IP address?

On Wed, Sep 6, 2023, 08:26 flyzstu @.***> wrote:

I had the exact same problem.

[image: image]
https://user-images.githubusercontent.com/94161727/265912827-50017e56-1a6d-455b-8dd1-80004b8786d4.png


Reply to this email directly, view it on GitHub
https://github.com/juanfont/headscale/issues/1542#issuecomment-1707743912,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABMGQ4GRF5A3UW6BGNC473XZAJQNANCNFSM6AAAAAA4MZB6UU
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

@juanfont commented on GitHub (Sep 6, 2023): Are you using a domain name for Headscale or your IP address? On Wed, Sep 6, 2023, 08:26 flyzstu ***@***.***> wrote: > I had the exact same problem. > > [image: image] > <https://user-images.githubusercontent.com/94161727/265912827-50017e56-1a6d-455b-8dd1-80004b8786d4.png> > > — > Reply to this email directly, view it on GitHub > <https://github.com/juanfont/headscale/issues/1542#issuecomment-1707743912>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AABMGQ4GRF5A3UW6BGNC473XZAJQNANCNFSM6AAAAAA4MZB6UU> > . > You are receiving this because you are subscribed to this thread.Message > ID: ***@***.***> >
Author
Owner

@lcuwx2016 commented on GitHub (Sep 6, 2023):

I used a domain name.
image

@lcuwx2016 commented on GitHub (Sep 6, 2023): I used a domain name. ![image](https://github.com/juanfont/headscale/assets/31233561/2b68f4b7-8c83-4b6f-9fe1-a22b409b5fe5)
Author
Owner

@shilazi commented on GitHub (Sep 10, 2023):

When I deploy with fredliang/derper, the same log is output. After understanding the operation logic of netcheck, now can explain this problem. If the server which running tailscaled, has an ipv6 address, the netcheck goroutine will also use ipv6 check derper. When derper.yaml has an valid ipv6 or DNS response AAAA address with hostname, this has no address log will not output.

In other words, a server is vps1, which tailscaled running on it, a derper is derp1

  • vps1 has ipv4, no ipv6
    • derp1 has ipv4, no ipv6 ->
    • derp1 has ipv6, no ipv4 -> has no address
    • derp1 has ipv4, has ipv6 ->
  • vps1 has ipv6, no ipv4
    • derp1 has ipv4, no ipv6 -> has no address
    • derp1 has ipv6, no ipv4 ->
    • derp1 has ipv4, has ipv6 ->
  • vps1 has ipv4, has ipv6
    • derp1 has ipv4, no ipv6 -> has no address
    • derp1 has ipv6, no ipv4 -> has no address
    • derp1 has ipv4, has ipv6 ->

It can be understood as the ipv4/ipv6 situation of vps1, then get the single-stack or dual-stack address of derp1. The log has no address can perhaps be expressed more clearly as has no v4/v6 address

@shilazi commented on GitHub (Sep 10, 2023): When I deploy with [fredliang/derper](https://hub.docker.com/r/fredliang/derper), the same log is output. After understanding the operation logic of [netcheck](https://github.com/tailscale/tailscale/blob/v1.48.1/net/netcheck/netcheck.go), now can explain this problem. If the server which running tailscaled, has an ipv6 address, the netcheck goroutine will also use ipv6 check derper. When [derper.yaml](https://github.com/juanfont/headscale/blob/main/derp-example.yaml) has an valid ipv6 or DNS response AAAA address with hostname, this `has no address` log will not output. In other words, a server is `vps1`, which tailscaled running on it, a derper is `derp1` * `vps1` has ipv4, no ipv6 * `derp1` has ipv4, no ipv6 -> * `derp1` has ipv6, no ipv4 -> `has no address` * `derp1` has ipv4, has ipv6 -> * `vps1` has ipv6, no ipv4 * `derp1` has ipv4, no ipv6 -> `has no address` * `derp1` has ipv6, no ipv4 -> * `derp1` has ipv4, has ipv6 -> * `vps1` has ipv4, has ipv6 * `derp1` has ipv4, no ipv6 -> `has no address` * `derp1` has ipv6, no ipv4 -> `has no address` * `derp1` has ipv4, has ipv6 -> It can be understood as the ipv4/ipv6 situation of `vps1`, then get the single-stack or dual-stack address of `derp1`. The log `has no address` can perhaps be expressed more clearly as `has no v4/v6 address` * https://github.com/tailscale/tailscale/blob/v1.48.1/net/netcheck/netcheck.go#L822-L833 * https://github.com/tailscale/tailscale/blob/v1.48.1/net/interfaces/interfaces.go#L447-L495 * https://github.com/tailscale/tailscale/blob/v1.48.1/net/netcheck/netcheck.go#L486-L487 * https://github.com/tailscale/tailscale/blob/v1.48.1/net/netcheck/netcheck.go#L1559-L1643
Author
Owner

@github-actions[bot] commented on GitHub (Dec 11, 2023):

This issue is stale because it has been open for 90 days with no activity.

@github-actions[bot] commented on GitHub (Dec 11, 2023): This issue is stale because it has been open for 90 days with no activity.
Author
Owner

@github-actions[bot] commented on GitHub (Dec 19, 2023):

This issue was closed because it has been inactive for 14 days since being marked as stale.

@github-actions[bot] commented on GitHub (Dec 19, 2023): This issue was closed because it has been inactive for 14 days since being marked as stale.
Author
Owner

@longregen commented on GitHub (Oct 31, 2025):

I was able to suppress these warnings by setting ipv4: none or ipv6: none in the derp.map

@longregen commented on GitHub (Oct 31, 2025): I was able to suppress these warnings by setting `ipv4: none` or `ipv6: none` in the derp.map
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#555