0.54.0.1 Windows Client DNS matched Domains are not resolving #2186

Open
opened 2025-11-20 07:05:29 -05:00 by saavagebueno · 7 comments
Owner

Originally created by @jacac on GitHub (Aug 14, 2025).

Netbird client: Windows0.54.1
Netbird Server: netbird-mgmt version 0.54.1

After successful connection to Netbird matched domains are not resolving.

Checking the registry Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DnsPolicyConfig\ all domains are configured.

Image

Running Get-DnsClientNrptPolicy only returns the default domain policy.

After ending the DNS Client Service Get-DnsClientNrptPolicy return all matched domains and DNS resolution starts working.
Image

Workaround

Ending the task DNS client fixes the problem until the next reconnect.

Image
Originally created by @jacac on GitHub (Aug 14, 2025). Netbird client: Windows0.54.1 Netbird Server: netbird-mgmt version 0.54.1 After successful connection to Netbird matched domains are not resolving. Checking the registry `Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DnsPolicyConfig\` all domains are configured. <img width="396" height="220" alt="Image" src="https://github.com/user-attachments/assets/b7eef55c-6931-481e-8212-72f428ab9137" /> Running `Get-DnsClientNrptPolicy` only returns the default domain policy. After ending the DNS Client Service `Get-DnsClientNrptPolicy` return all matched domains and DNS resolution starts working. <img width="343" height="151" alt="Image" src="https://github.com/user-attachments/assets/770d0805-1dad-4600-a1ca-e21099bf7076" /> ### Workaround Ending the task DNS client fixes the problem until the next reconnect. <img width="343" height="151" alt="Image" src="https://github.com/user-attachments/assets/770d0805-1dad-4600-a1ca-e21099bf7076" />
saavagebueno added the triage-needed label 2025-11-20 07:05:29 -05:00
Author
Owner

@jacac commented on GitHub (Aug 23, 2025):

After more testing, the NRPT policies eventually get loaded. It varies for me between 3 and 20 minutes. Also, on a disconnect, it can take a few minutes until the policies are removed.

@jacac commented on GitHub (Aug 23, 2025): After more testing, the NRPT policies eventually get loaded. It varies for me between 3 and 20 minutes. Also, on a disconnect, it can take a few minutes until the policies are removed.
Author
Owner

@jacac commented on GitHub (Aug 25, 2025):

It seems that Netbird does not notify Name Resolution Policy client about the registry changes.

https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-gpnrpt/2547a7f3-3b7f-46a2-b8be-4789686f8379

On number 3 it points out that the after changing the registry the Name Resolution Policy client component needs to be notified. I could not find anywhere how this can be done manually.

@jacac commented on GitHub (Aug 25, 2025): It seems that Netbird does not notify `Name Resolution Policy client` about the registry changes. https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-gpnrpt/2547a7f3-3b7f-46a2-b8be-4789686f8379 On number 3 it points out that the after changing the registry the `Name Resolution Policy client component` needs to be notified. I could not find anywhere how this can be done manually.
Author
Owner

@jacac commented on GitHub (Aug 29, 2025):

I've disabled our DNS GPO temporarily and deleted the Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DnsPolicyConfig key.

Get-DnsClientNrptPolicy records are loaded now within a few seconds after connecting.

@jacac commented on GitHub (Aug 29, 2025): I've disabled our DNS GPO temporarily and deleted the `Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DnsPolicyConfig` key. `Get-DnsClientNrptPolicy` records are loaded now within a few seconds after connecting.
Author
Owner

@OnlyFreshMeat commented on GitHub (Sep 10, 2025):

I have the same problem
Netbird Server: netbird-mgmt version 0.56.1
Netbird tested clients: Windows 0.56.1 // 0.54 // 0.53
My solution was to remove 'match domain' and set it to 'ALL'. Luckily, I only have 1 domain

@OnlyFreshMeat commented on GitHub (Sep 10, 2025): I have the same problem Netbird Server: netbird-mgmt version 0.56.1 Netbird tested clients: Windows 0.56.1 // 0.54 // 0.53 My solution was to remove 'match domain' and set it to 'ALL'. Luckily, I only have 1 domain
Author
Owner

@PeakeIT commented on GitHub (Sep 17, 2025):

Same problem.
Netbird Server: Netbird Cloud.
Netbird tested clients: 0.57.1 and 0.56.1 - and many previous versions so I don't know when it started.

Get-DnsClientNrptPolicy returns nothing until I kill the DNS Client process and after it automatically restarts the expected entries are there.

@PeakeIT commented on GitHub (Sep 17, 2025): Same problem. Netbird Server: Netbird Cloud. Netbird tested clients: 0.57.1 and 0.56.1 - and many previous versions so I don't know when it started. Get-DnsClientNrptPolicy returns nothing until I kill the DNS Client process and after it automatically restarts the expected entries are there.
Author
Owner

@jacac commented on GitHub (Oct 10, 2025):

Like many others I've switched to resolve all domains. It is not ideal but the 15 minutes time delay before DNS starts to work was not acceptable for us.

@jacac commented on GitHub (Oct 10, 2025): Like many others I've switched to resolve `all domains`. It is not ideal but the 15 minutes time delay before DNS starts to work was not acceptable for us.
Author
Owner

@OnlyFreshMeat commented on GitHub (Oct 27, 2025):

This issue is now causing a problem in another case.
Let's say there is a domain "*.custom.com" that is restricted to my IP address. I have a Network with "*.custom.com" and with a routing peer inside my network. On macOS, iOS, and Android everything works, but on Windows I need to stop the DNS Client process.

Is it possible to configure Netbird so that when connecting and disconnectins, it executes:
$service = Get-WmiObject Win32_Service -Filter "Name='Dnscache'"
Stop-Process -Id $service.ProcessId -Force

(Searching for and stopping the process named "dnscache")

@OnlyFreshMeat commented on GitHub (Oct 27, 2025): This issue is now causing a problem in another case. Let's say there is a domain _"*.custom.com"_ that is restricted to my IP address. I have a Network with _"*.custom.com"_ and with a routing peer inside my network. On macOS, iOS, and Android everything works, but on Windows I need to stop the DNS Client process. Is it possible to configure Netbird so that when connecting and disconnectins, it executes: $service = Get-WmiObject Win32_Service -Filter "Name='Dnscache'" Stop-Process -Id $service.ProcessId -Force (Searching for and stopping the process named "dnscache")
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/netbird#2186