mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-31 16:11:03 +01:00 
			
		
		
		
	Tailscale allows to override the local DNS settings of a node via
"Override local DNS" [1]. Restore this flag with the same config setting
name `dns.override_local_dns` but disable it by default to align it with
Tailscale's default behaviour.
Tested with Tailscale 1.80.2 and systemd-resolved on Debian 12.
With `dns.override_local_dns: false`:
```
Link 12 (tailscale0)
Current Scopes: DNS
     Protocols: -DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
   DNS Servers: 100.100.100.100
    DNS Domain: tn.example.com ~0.e.1.a.c.5.1.1.a.7.d.f.ip6.arpa [snip]
```
With `dns.override_local_dns: true`:
```
Link 12 (tailscale0)
Current Scopes: DNS
     Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
   DNS Servers: 100.100.100.100
    DNS Domain: tn.example.com ~.
```
[1] https://tailscale.com/kb/1054/dns#override-local-dns
Fixes: #2256
		
	
			
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package hsic
 | |
| 
 | |
| import "github.com/juanfont/headscale/hscontrol/types"
 | |
| 
 | |
| func MinimumConfigYAML() string {
 | |
| 	return `
 | |
| private_key_path: /tmp/private.key
 | |
| noise:
 | |
|   private_key_path: /tmp/noise_private.key
 | |
| `
 | |
| }
 | |
| 
 | |
| func DefaultConfigEnv() map[string]string {
 | |
| 	return map[string]string{
 | |
| 		"HEADSCALE_LOG_LEVEL":                         "trace",
 | |
| 		"HEADSCALE_POLICY_PATH":                       "",
 | |
| 		"HEADSCALE_DATABASE_TYPE":                     "sqlite",
 | |
| 		"HEADSCALE_DATABASE_SQLITE_PATH":              "/tmp/integration_test_db.sqlite3",
 | |
| 		"HEADSCALE_DATABASE_DEBUG":                    "0",
 | |
| 		"HEADSCALE_DATABASE_GORM_SLOW_THRESHOLD":      "1",
 | |
| 		"HEADSCALE_EPHEMERAL_NODE_INACTIVITY_TIMEOUT": "30m",
 | |
| 		"HEADSCALE_PREFIXES_V4":                       "100.64.0.0/10",
 | |
| 		"HEADSCALE_PREFIXES_V6":                       "fd7a:115c:a1e0::/48",
 | |
| 		"HEADSCALE_DNS_BASE_DOMAIN":                   "headscale.net",
 | |
| 		"HEADSCALE_DNS_MAGIC_DNS":                     "true",
 | |
| 		"HEADSCALE_DNS_OVERRIDE_LOCAL_DNS":            "false",
 | |
| 		"HEADSCALE_DNS_NAMESERVERS_GLOBAL":            "127.0.0.11 1.1.1.1",
 | |
| 		"HEADSCALE_PRIVATE_KEY_PATH":                  "/tmp/private.key",
 | |
| 		"HEADSCALE_NOISE_PRIVATE_KEY_PATH":            "/tmp/noise_private.key",
 | |
| 		"HEADSCALE_METRICS_LISTEN_ADDR":               "0.0.0.0:9090",
 | |
| 		"HEADSCALE_DERP_URLS":                         "https://controlplane.tailscale.com/derpmap/default",
 | |
| 		"HEADSCALE_DERP_AUTO_UPDATE_ENABLED":          "false",
 | |
| 		"HEADSCALE_DERP_UPDATE_FREQUENCY":             "1m",
 | |
| 
 | |
| 		// a bunch of tests (ACL/Policy) rely on predictable IP alloc,
 | |
| 		// so ensure the sequential alloc is used by default.
 | |
| 		"HEADSCALE_PREFIXES_ALLOCATION": string(types.IPAllocationStrategySequential),
 | |
| 	}
 | |
| }
 |