Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

macOS does not see an _smb._tcp service defined via Wide-Area DNS-SD

My laptop (M1 Pro, macOS 15.3.2) is connected to a dual stack network via Wi-Fi. The home.arpa. domain is supplied as a search domain via both DHCPv4 (options 15 and 119) and DHCPv6 (option 24). "Details…" for the network connection in System Settings show this domain under the DNS tab.

The laptop uses a Forwarding DNS Resolver of my router, which in turn forwards requests for home.arpa. (including subdomains) to a local DNS server (CoreDNS) which is authoritative for this zone.

The DNS server is configured via the following zone file:

$ORIGIN home.arpa.
$TTL 3600
@                   IN  SOA @ nobody.invalid. (1 3600 1200 604800 3600)
@                       NS @
@                       AAAA ….1
gateway                 A ….1
gateway                 AAAA …::1
b._dns-sd._udp          PTR @
lb._dns-sd._udp         PTR @
db._dns-sd._udp         PTR @
_services._dns-sd._udp  PTR _smb._tcp
_smb._tcp               PTR Media._smb._tcp
Media._smb._tcp         SRV 0 0 445 gateway
Media._smb._tcp         TXT ("path=/media" "u=guest")

Output of dig(1) looks like:

$ dig @….1 -t PTR lb._dns-sd._udp.home.arpa. 

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43291
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;lb._dns-sd._udp.home.arpa. IN  PTR

;; ANSWER SECTION:
lb._dns-sd._udp.home.arpa. 1993 IN  PTR home.arpa.

;; AUTHORITY SECTION:
home.arpa.      2771    IN  NS  home.arpa.
$ dig @….1 -t PTR _services._dns-sd._udp.home.arpa.

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9057
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;_services._dns-sd._udp.home.arpa. IN   PTR

;; ANSWER SECTION:
_services._dns-sd._udp.home.arpa. 3600 IN PTR   _smb._tcp.home.arpa.

;; AUTHORITY SECTION:
home.arpa.      3600    IN  NS  home.arpa.
$ dig @….1 -t PTR _smb._tcp.home.arpa.

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44220
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;_smb._tcp.home.arpa.       IN  PTR

;; ANSWER SECTION:
_smb._tcp.home.arpa.    3599    IN  PTR Media._smb._tcp.home.arpa.

;; AUTHORITY SECTION:
home.arpa.      3599    IN  NS  home.arpa.
$ dig @….1 -t SRV Media._smb._tcp.home.arpa.

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45878
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;Media._smb._tcp.home.arpa. IN  SRV

;; ANSWER SECTION:
media._smb._tcp.home.arpa. 3600 IN  SRV 0 0 445 gateway.home.arpa.

;; AUTHORITY SECTION:
home.arpa.      3600    IN  NS  home.arpa.
$ dig @….1 -t A gateway.home.arpa. 

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2782
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;gateway.home.arpa.     IN  A

;; ANSWER SECTION:
gateway.home.arpa.  86400   IN  A   192.168.99.1

;; AUTHORITY SECTION:
home.arpa.      3578    IN  NS  home.arpa.
$ dig @….1 -t AAAA gateway.home.arpa.  

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17297
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;gateway.home.arpa.     IN  AAAA

;; ANSWER SECTION:
gateway.home.arpa.  3600    IN  AAAA    fd6f:9784:5753::1

;; AUTHORITY SECTION:
home.arpa.      3600    IN  NS  home.arpa.

Output of dns-sd(1):

/usr/bin/dns-sd -test
…
Testing for error returns when various strings are > 63 bytes: PASSED
Running basic API input range tests with various pointer parameters set to NULL:
Basic API input range tests: PASSED
$ dns-sd -m -F
Looking for recommended browsing domains:
DATE: ---Fri 11 Apr 2025---
 8:50:17.846  ...STARTING...
Timestamp     Recommended Browsing domain
 8:50:17.847  Added     (More)           local
 8:50:17.847  Added                      arpa
                                         - > home
$ dns-sd -B _smb._tcp home.arpa.
Browsing for _smb._tcp.home.arpa.
DATE: ---Fri 11 Apr 2025---
 8:59:10.044  ...STARTING...
$ dns-sd -L Media _smb._tcp home.arpa.
Lookup Media._smb._tcp.home.arpa.
DATE: ---Fri 11 Apr 2025---
 9:15:53.328  ...STARTING...
$ dns-sd -Q _smb._tcp.home.arpa. PTR IN
DATE: ---Fri 11 Apr 2025---
 9:16:52.208  ...STARTING...
Timestamp     A/R  Flags         IF  Name                          Type   Class  Rdata
 9:16:52.210  Add  40000002       0  _smb._tcp.home.arpa.          PTR    IN     0.0.0.0    No Such Record
 9:16:52.222  Add  2              0  _smb._tcp.home.arpa.          PTR    IN     0.0.0.0    No Such Record

Similarly, when I open Finder->Network I see home.arpa but it's empty. Of interest is that on the DNS server side I see the following requests being made:

2025-04-11 09:03:15 container,info,debug [INFO] […]:56541 - 21555 "SOA IN _afpovertcp._tcp.home.arpa. udp 44 false 512" NXDOMAIN qr,aa,rd 112 0.000755089s 
2025-04-11 09:03:15 container,info,debug [INFO] […]:56077 - 58266 "SOA IN _smb._tcp.home.arpa. udp 37 false 512" NOERROR qr,aa,rd 105 0.001012632s 
2025-04-11 09:03:15 container,info,debug [INFO] […]:45274 - 45976 "SOA IN _rfb._tcp.home.arpa. udp 37 false 512" NXDOMAIN qr,aa,rd 105 0.000762339s 
2025-04-11 09:03:15 container,info,debug [INFO] […]:54387 - 32090 "SOA IN _adisk._tcp.home.arpa. udp 39 false 512" NXDOMAIN qr,aa,rd 107 0.001058132s 
2025-04-11 09:03:15 container,info,debug [INFO] […]:35855 - 51155 "SOA IN _tcp.home.arpa. udp 32 false 512" NOERROR qr,aa,rd 100 0.000664963s 

I suppose that an attempt to locate services is made but it's unsuccessful and I'm not sure why.

What further debugging can I attempt?

FWIW the Wi-Fi network has the "Private Wi-Fi address" option set to Fixed but "Limit IP address tracking" set to Enabled. I'm an iCloud subscriber and iCloud Private Relay is on.

In the logs I see:

Question for _smb._tcp.home.arpa. (PTR) assigned DNS service -- id: 7, type: ODoH, source: nw, scope: uuid (353A4F9C-CEF5-4CEE-93AD-4697BB0318D7), interface: /0, servers: {}, domains: {}, attributes: {a-ok, aaaa-ok, fail-fast, allows-failover}, interface properties: {ipv4, ipv6}, resolver config: {provider name: oblivious.r15.doh.dns.akasecure.net, provider path: /dns-query}, use count: 1

Which suggests that the mDNSResponder service attempted to forward .home.arpa. domain via ODOH, which is wrong per my interpretation of RFC 8375.

deleted

I'm a bit puzzled regarding why both Finder (Connect to Server->smb://gateway.home.arpa) and Safari (https://gateway.home.arpa) can successfully connect but dns-sd fails to resolve. AFAIK they both refer to the same stub resolver (mDNSResolver):

$ dns-sd -q gateway.home.arpa. A
DATE: ---Sat 12 Apr 2025---
10:29:38.633  ...STARTING...
Timestamp     A/R  Flags         IF  Name                          Type   Class  Rdata
10:29:38.634  Add  40000002       0  gateway.home.arpa.            Addr   IN     0.0.0.0    No Such Record

$ dns-sd -q gateway.home.arpa. AAAA
DATE: ---Sat 12 Apr 2025---
10:29:41.623  ...STARTING...
Timestamp     A/R  Flags         IF  Name                          Type   Class  Rdata
10:29:41.624  Add  40000002       0  gateway.home.arpa.            AAAA   IN     0.0.0.0    No Such Record
Accepted Answer

Okay, confirmed that disabling iCloud Private Relay fixes the issue. Reported as FB17214559.

More mDNSResponder logs:

2025-04-14 10:16:07.886 Df mDNSResponder[18627:44e303] [com.apple.mDNSResponder:Default] DNS service (1/3) -- id: 1, type: Do53, source: sc, scope: none, interface: /0, servers: {192.168.31.53:53}, domains: {.}, attributes: {a-ok, aaaa-ok}, interface properties: {ipv4, ipv6}, use count: 1
2025-04-14 10:16:07.886 Df mDNSResponder[18627:44e303] [com.apple.mDNSResponder:Default] DNS service (2/3) -- id: 2, type: Do53, source: sc, scope: interface, interface: en0/13, servers: {192.168.31.53:53}, domains: {.}, attributes: {a-ok, aaaa-ok}, interface properties: {ipv4, ipv6}, use count: 1
2025-04-14 10:16:07.886 Df mDNSResponder[18627:44e303] [com.apple.mDNSResponder:Default] DNS service (3/3) -- id: 3, type: Do53, source: sc, scope: interface, interface: ipsec0/22, servers: {[fd00:976a::9]:53, [fd00:976a::10]:53}, domains: {.}, attributes: {aaaa-ok}, interface properties: {ipv6}, use count: 1
...
2025-04-14 10:16:10.346 Df mDNSResponder[18627:44e32e] [com.apple.mDNSResponder:mDNS] [R54] DNSServiceBrowse START -- service type: _smb._tcp., domain: home.arpa., flags: 0x0, interface index: 0, client pid: 18638 (dns-sd),
2025-04-14 10:16:10.346 Df mDNSResponder[18627:44e32e] [com.apple.mDNSResponder:mDNS] [R54] DNSServiceBrowse -> SubBrowser START -- qname: _smb._tcp.home.arpa. (64023839)
2025-04-14 10:16:10.347 Df mDNSResponder[18627:44e32e] [com.apple.mDNSResponder:Default] [R0->Q12962] Question assigned DNS service 1
2025-04-14 10:16:10.347 Df mDNSResponder[18627:44e32e] [com.apple.mDNSResponder:mDNS] [Q12962] mDNS_StartQuery_internal START -- qname: _smb._tcp.home.arpa. (64023839), qtype: SOA
2025-04-14 10:16:10.348 Db mDNSResponder[18627:44e32e] [com.apple.mDNSResponder:Default] [R54->Q54619] Retrying path evaluation -- qname: _smb._tcp.home.arpa., qtype: PTR, reason: ResolverUUID may be stale
2025-04-14 10:16:10.348 Df mDNSResponder[18627:44e32e] [com.apple.mDNSResponder:Default] [R54->Q54619] Question for _smb._tcp.home.arpa. (PTR) assigned DNS service -- (null)
2025-04-14 10:16:10.348 Df mDNSResponder[18627:44e32e] [com.apple.mDNSResponder:Default] [Q54619] DetermineUnicastQuerySuppression: Query suppressed for _smb._tcp.home.arpa. PTR (no DNS service)
2025-04-14 10:16:10.348 Db mDNSResponder[18627:44e326] [com.apple.mdns:resolver] [Q12962] Creating session to 192.168.31.53
2025-04-14 10:16:10.348 Df mDNSResponder[18627:44e326] [com.apple.mdns:resolver] [Q12962] Sent 37-byte query #1 to 192.168.31.53 over UDP via any/0 -- id: 0x38FF (14591), flags: 0x0100 (Q/Query, RD, NoError), counts: 1/0/0/0, _smb._tcp.home.arpa. IN SOA?
2025-04-14 10:16:10.356 Df mDNSResponder[18627:44e326] [com.apple.mdns:resolver] [Q12962] Received acceptable 108-byte response from 192.168.31.53 over UDP via any/0 -- id: 0x38FF (14591), flags: 0x8500 (R/Query, AA, RD, NoError), counts: 1/0/1/0, _smb._tcp.home.arpa. IN SOA?, home.arpa. 60 IN SOA ns.home.arpa. nobody.invalid. 1 3600 1200 604800 60
2025-04-14 10:16:10.356 I  mDNSResponder[18627:44e326] [com.apple.mdns:resolver] [Q12962] Querier concluded -- reason: response
2025-04-14 10:16:10.356 Df mDNSResponder[18627:44e326] [com.apple.mDNSResponder:Default] [Q12962] Handling concluded querier: _smb._tcp.home.arpa. SOA IN
2025-04-14 10:16:10.356 Df mDNSResponder[18627:44e326] [com.apple.mDNSResponder:mDNS] [Q12962] mDNS_StopQuery_internal STOP -- name hash: 64023839
2025-04-14 10:16:10.365 Df mDNSResponder[18627:44e309] [com.apple.mDNSResponder:Default] [R54->Q54619] Starting long-lived DNS polling -- polling interval: 15 min
2025-04-14 10:16:10.366 Df mDNSResponder[18627:44e309] [com.apple.mDNSResponder:Default] [R54->Q29523] Question for _smb._tcp.home.arpa. (PTR) assigned DNS service -- id: 4, type: ODoH, source: nw, scope: uuid (353A4F9C-CEF5-4CEE-93AD-4697BB0318D7), interface: /0, servers: {}, domains: {}, attributes: {a-ok, aaaa-ok, fail-fast, allows-failover}, interface properties: {ipv4, ipv6}, resolver config: {provider name: odoh.cloudflare-dns.com, provider path: /dns-query}, use count: 1
2025-04-14 10:16:10.368 Db mDNSResponder[18627:44e326] [com.apple.mdns:resolver] [Q29523] Creating session to odoh.cloudflare-dns.com
2025-04-14 10:16:10.368 I  mDNSResponder[18627:44e326] [com.apple.mdns:resolver] [Q29523] Querier session event -- type: ready, error: 0/0x0 noErr
2025-04-14 10:16:10.370 Df mDNSResponder[18627:44e326] [com.apple.mdns:resolver] [Q29523] Sent 128-byte query #1 to odoh.cloudflare-dns.com over HTTPS via any/0 -- id: 0x0000 (0), flags: 0x0100 (Q/Query, RD, NoError), counts: 1/0/0/1, _smb._tcp.home.arpa. IN PTR?, . OPT 512 0 {EDE, code: 0}, {Padding, <70 zero bytes>}
2025-04-14 10:16:10.496 I  mDNSResponder[18627:44e326] [com.apple.mdns:dns_service] Reporting success for service id: 4
2025-04-14 10:16:10.496 Df mDNSResponder[18627:44e309] [com.apple.mdns:resolver] [Q29523] Received acceptable 468-byte response from odoh.cloudflare-dns.com over HTTPS via any/0 -- id: 0x0000 (0), flags: 0x8183 (R/Query, RD, RA, NXDomain), counts: 1/0/1/1, _smb._tcp.home.arpa. IN PTR?, home.arpa. 604800 IN SOA prisoner.iana.org. hostmaster.root-servers.org. 1 604800 60 604800 604800, . OPT 1232 0 {Padding, <339 zero bytes>}
2025-04-14 10:16:10.496 I  mDNSResponder[18627:44e309] [com.apple.mdns:resolver] [Q29523] Querier concluded -- reason: response

The issue is also present on iOS, but not tvOS. I assume that’s because iCloud Private Relay is not available there.

macOS does not see an _smb._tcp service defined via Wide-Area DNS-SD
 
 
Q