Title: DNS resolution fails on macOS for domains available via both private and public DNS (e.g., AWS MySQL databases) #1983

Open
opened 2025-11-20 06:10:41 -05:00 by saavagebueno · 2 comments
Owner

Originally created by @tissoni on GitHub (Jun 19, 2025).

Hi NetBird team,

I'm experiencing a DNS resolution issue that occurs only on macOS. This happens across all versions of the NetBird client I’ve tested — including the latest — and it does not occur on Linux or Windows.

Importantly, this issue affects all users in my organization who are using macOS, not just a specific machine or user — confirming it's a broader platform-level issue.

Issue Description
On macOS, when connected to a NetBird network, domains that have both private and public DNS records (e.g., MySQL database endpoints) often fail to resolve, or resolve incorrectly to a public IP address.

For example, if I try to connect to a MySQL database using DBeaver, the hostname fails to resolve. However:

If I run host my-db.domain.com in the macOS terminal, it resolves to a private IP.

If I copy that IP and paste it into DBeaver instead of the hostname, the connection works perfectly.

This behavior does not happen on Linux or Windows, where using the hostname in DBeaver works as expected and resolves to the correct private IP via NetBird.

Steps to Reproduce
Connect to a NetBird network on macOS.

Open a terminal and run: host my-db.domain.com → it resolves to the correct private IP.

Open DBeaver, enter my-db.domain.com as the hostname → connection fails.

Enter the resolved IP manually into DBeaver → connection succeeds.

Repeat the same process on Linux or Windows — hostname resolution works and the connection succeeds without issues.

Environment
OS: macOS (tested on multiple versions)

NetBird Client: Multiple versions tested — issue persists

Users affected: All macOS users in our organization

DNS Setup: Default NetBird DNS configuration

Tool used for testing: DBeaver (MySQL connection)

Expected Behavior
Hostnames with private DNS records should resolve correctly via NetBird on macOS, just like they do on Linux and Windows — and should work when used directly in tools like DBeaver.

Let me know if you'd like logs or further testing (e.g., dig, scutil --dns, or verbose output from DBeaver).

Thanks for your support and for building such a great tool!

Originally created by @tissoni on GitHub (Jun 19, 2025). Hi NetBird team, I'm experiencing a DNS resolution issue that occurs only on macOS. This happens across all versions of the NetBird client I’ve tested — including the latest — and it does not occur on Linux or Windows. Importantly, this issue affects all users in my organization who are using macOS, not just a specific machine or user — confirming it's a broader platform-level issue. Issue Description On macOS, when connected to a NetBird network, domains that have both private and public DNS records (e.g., MySQL database endpoints) often fail to resolve, or resolve incorrectly to a public IP address. For example, if I try to connect to a MySQL database using DBeaver, the hostname fails to resolve. However: If I run host my-db.domain.com in the macOS terminal, it resolves to a private IP. If I copy that IP and paste it into DBeaver instead of the hostname, the connection works perfectly. This behavior does not happen on Linux or Windows, where using the hostname in DBeaver works as expected and resolves to the correct private IP via NetBird. Steps to Reproduce Connect to a NetBird network on macOS. Open a terminal and run: host my-db.domain.com → it resolves to the correct private IP. Open DBeaver, enter my-db.domain.com as the hostname → connection fails. Enter the resolved IP manually into DBeaver → connection succeeds. Repeat the same process on Linux or Windows — hostname resolution works and the connection succeeds without issues. Environment OS: macOS (tested on multiple versions) NetBird Client: Multiple versions tested — issue persists Users affected: All macOS users in our organization DNS Setup: Default NetBird DNS configuration Tool used for testing: DBeaver (MySQL connection) Expected Behavior Hostnames with private DNS records should resolve correctly via NetBird on macOS, just like they do on Linux and Windows — and should work when used directly in tools like DBeaver. Let me know if you'd like logs or further testing (e.g., dig, scutil --dns, or verbose output from DBeaver). Thanks for your support and for building such a great tool!
saavagebueno added the clienttriage-neededdns labels 2025-11-20 06:10:41 -05:00
Author
Owner

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

Any news? Thanks

@tissoni commented on GitHub (Sep 10, 2025): Any news? Thanks
Author
Owner

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

Could you give more details on what do you mean by "Default NetBird DNS configuration"? To the best of my knowledge, there isn't anything configured on a fresh account. Those could be any of: Nameserver, domain Network Resource or domain Network Route.

Did you try resolving the IP from the terminal with both dscacheutil -q host -a name name.at.example.com. and non-macos specific tool like dig or nslookup or ping?

I'm not an expert here, but at a point, I have noticed a lot of tooling (like dig/nslookup) wasn't updated to use the system resolver on MacOS (like dscacheutil does), I suspect DBeaver might be using a separate cache and/or resolving mechanism.

The verbose output from dbeaver and/or DNS packets capture with tcpdump/wireshark would definitely help in determining what is going on. Feel free to send those to support@netbird.io if you don't want to share publicly.

@nazarewk commented on GitHub (Sep 10, 2025): Could you give more details on what do you mean by "Default NetBird DNS configuration"? To the best of my knowledge, there isn't anything configured on a fresh account. Those could be any of: Nameserver, domain Network Resource or domain Network Route. Did you try resolving the IP from the terminal with both `dscacheutil -q host -a name name.at.example.com.` and non-macos specific tool like `dig` or `nslookup` or `ping`? I'm not an expert here, but at a point, I have noticed a lot of tooling (like `dig`/`nslookup`) wasn't updated to use the system resolver on MacOS (like `dscacheutil` does), I suspect DBeaver might be using a separate cache and/or resolving mechanism. The verbose output from dbeaver and/or DNS packets capture with `tcpdump`/`wireshark` would definitely help in determining what is going on. Feel free to send those to support@netbird.io if you don't want to share publicly.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/netbird#1983