Bonjour on different domain

I am trying to use DNS-SD statically instead of using mDNS broadcast from Channels DVR itself. I'm using a different domain than .local (I'm using .localtest)
Thus far, I have the following setup on my DNS resolver:

#Channels DVR Server
local-data: "_services._dns-sd._udp.localtest. 60 IN PTR _channels_dvr._tcp.localtest."
local-data: "_channels_dvr._tcp.localtest. 60 IN PTR dvr-hollow._channels_dvr._tcp.localtest"

local-data: "dvr-hollow._channels_dvr._tcp.localtest. 60 IN SRV 0 0 8089 dvr-hollow._channels_dvr._tcp.localtest"
local-data: "dvr-hollow._channels_dvr._tcp.localtest. 60 IN A 192.168.1.114"
local-data: 'dvr-hollow._channels_dvr._tcp.localtest. 60 IN TXT "arch=x86_64" "os=linux" "version=2022.04.27.1712"'

Using a DNS-SD browser, I can see the _channels_dvr._tcp. entry, and I can navigate to http://dvr-hollow._channels_dvr._tcp.localtest:8089. However, this doesn't seem to work to allow clients to automatically discover the server at 192.168.1.114. Am I missing a piece of this auto-discovery puzzle? Are the clients only looking at .local? If so, could they be configured to look elsewhere?
I've set up some printers this way, and they are discoverable and working.

Thanks.

Which client/platform apps?

Oops - sorry. I've been testing using iOS Channels app and tvOS Channels app. I also have a DNS-SD Browser (Discovery - DNS-SD Browser) on iOS that shows me the _channels_dvr._tcp. entry on localtest domain. The apps don't seem to be finding it, though, because they keep saying "Your Channels DVR Server could not be discovered."
Edit: In case it was unclear: I am not using the bonjour broadcast from the Channels DVR server itself because I am trying to emulate it statically using my DNS resolver.

The setup is a bit more involved than what you are doing. I think you need at least 2 records:

;; ANSWER SECTION:
_channels_dvr._tcp.local. 10 IN PTR raspberrypi._channels_dvr._tcp.local.

;; ADDITIONAL SECTION:
raspberrypi._channels_dvr._tcp.local. 10 IN SRV 0 0 8089 dvr-raspberrypi.local.

You can test by

$ dig -p 5353 _channels_dvr._tcp.local @224.0.0.251

You can try the Discovery DNS-SD app on an iOS device (formerly known as Bonjour Browser). Check if it can see your .localtest domain

Yes, that is the app I have been using. I see it just fine under the .localtest domain there.

_channels_dvr._tcp.
dvr-hollow
dvr-hollow._channels_dvr._tcp.localtest:8089 192.168.1.114

I am glad you changed % into - :wink:

Looks like our app is hardcoded to look at .local. Did you have to enter localtest on that other app, or does it show it to pick from a list automatically? Or is it automatically looking at localtest by default as well, because the iOS device itself has a localtest domain assigned?

1 Like

I think changing this line into this would suffice:

local-data: "_channels_dvr._tcp.local. 60 IN PTR dvr-hollow._channels_dvr._tcp.localtest"

I am pretty positive it was correctly using ASCII decimal not octal notation. Regardless, I'm not having much luck with messing with .local domain on my DNS resolver. That is why I was using .localtest in the first place. I might have to do some more investigation into that, but I was thinking it might be reserved for mDNS.

@tmm1 I did not have to enter localtest manually. It showed up in my "Domains" list on the Discovery DNS-SD app automatically. It is my router's domain, and is being handed out as the default search domain by my DHCP server. (So although I can see precious little information about the search domains in iOS, other devices on the network do have it as the search domain automatically.)
Edit: Sorry I forgot to answer one of your other questions. By default, the Discovery DNS-SD app opens to local, but you can click the back button and get to the "Domains" list. localtest is automatically in that list right beneath local.